24小时热门版块排行榜    

查看: 3638  |  回复: 0

zhanglulu302

新虫 (初入文坛)

[求助] matlab的simulink中s函数运行太慢,有没有什么办法可以提高运行速度?

s函数的作用是为了仿真变压器的饱和特性。
s函数程序如下:
function [sys,x0,str,ts,simStateCompliance] = myfunction(t,x,u,flag,x_initial)

switch flag,
  case 0,
    [sys,x0,str,ts,simStateCompliance]=mdlInitializeSizes(x_initial);
  case 1,
    sys=mdlDerivatives(t,x,u);
  case 2,
    sys=mdlUpdate(t,x,u);
  case 3,
    sys=mdlOutputs(t,x,u);
  case 4,
    sys=mdlGetTimeOfNextVarHit(t,x,u);
  case 9,
    sys=mdlTerminate(t,x,u);
  otherwise
    DAStudio.error('Simulink:blocks:unhandledFlag', num2str(flag));
end
sizes = simsizes;

sizes.NumContStates  = 1;
sizes.NumDiscStates  = 0;
sizes.NumOutputs     = 1;
sizes.NumInputs      = 1;
sizes.DirFeedthrough = 1;
sizes.NumSampleTimes = 1;   % at least one sample time is needed

sys = simsizes(sizes);
x0  = x_initial;
str = [];
ts  = [0 0];
simStateCompliance = 'UnknownSimState';

function sys=mdlDerivatives(t,x,u)
dx=qiudaofz(x)*u;
sys=dx;

function sys=mdlUpdate(t,x,u)
sys = [];

function sys=mdlOutputs(t,x,u)
sys = x;

function sys=mdlGetTimeOfNextVarHit(t,x,u)
sampleTime = 0.001;    %导致程序运行时间长的因素一
sys = t + sampleTime;

function sys=mdlTerminate(t,x,u)
sys = [];
其中调用了qiudaofz()函数,函数文件如下:
function mhtran=qiudaofz(cc)
xa=cc/0.39712;
syms ya;
g=1.5*10^6*(coth((xa+1.5*10^(-3)*ya)/1000)-1000/(xa+1.5*10^(-3)*ya))-ya;
yya=solve(g);      %导致程序运行时间长的因素二
m=xa;
yy=double(yya);
mht1=-1.48*10^6*(1440000-(m+0.0023*yy)^2*csch((m+0.0023*yy)/1200)^2)/(4.902*10^9-1200*(m+0.0023*yy)^2- 3404*(m+0.0023*yy)^2*csch((m+0.0023*yy)/1200)^2);
mhtran=1/(0.000195/0.39712*4*3.14*10^(-7)*(1+mht1));  %导致程序运行时间长的因素三
end

已经多次调试过程序,可能的影响的因素应该在三个方面,第一个可能是s函数的采样时间的设置上面,因为电源是正弦信号,所以我想时间设置小一点,会不会得到的结果更精确一点;第二个solve所解的方程为非线性方程,所以是否导致运行速度变慢,第三个mhtran输出的数值较大,是否也影响运行速度。
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 zhanglulu302 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 一志愿山大07化学 332分 四六级已过 本科山东双非 求调剂! +3 不想理你 2026-03-16 3/150 2026-03-21 03:59 by JourneyLucky
[考研] 310求调剂 +3 baibai1314 2026-03-16 3/150 2026-03-21 03:56 by JourneyLucky
[考研] 279分求调剂 一志愿211 +11 chaojifeixia 2026-03-19 12/600 2026-03-21 01:49 by 星空星月
[考研] 085700资源与环境308求调剂 +12 墨墨漠 2026-03-18 13/650 2026-03-21 01:42 by JourneyLucky
[考研] 354求调剂 +5 Tyoumou 2026-03-18 8/400 2026-03-21 00:35 by JourneyLucky
[考研] 一志愿西南交大,求调剂 +5 材化逐梦人 2026-03-18 5/250 2026-03-21 00:26 by JourneyLucky
[考研] 296求调剂 +6 www_q 2026-03-18 10/500 2026-03-20 23:56 by JourneyLucky
[考研] 317求调剂 +5 申子申申 2026-03-19 9/450 2026-03-20 22:26 by JourneyLucky
[考研] 289求调剂 +6 怀瑾握瑜l 2026-03-20 6/300 2026-03-20 20:30 by 学员8dgXkO
[考研] 0703化学调剂 ,六级已过,有科研经历 +13 曦熙兮 2026-03-15 13/650 2026-03-20 19:35 by Dream007008
[考研] 环境工程调剂 +9 大可digkids 2026-03-16 9/450 2026-03-20 17:38 by 醉在风里
[考研] 281求调剂(0805) +14 烟汐忆海 2026-03-16 25/1250 2026-03-20 15:47 by yuncha
[考研] 0856调剂,是学校就去 +8 sllhht 2026-03-19 9/450 2026-03-20 14:25 by 无懈可击111
[考研] 材料学硕318求调剂 +5 February_Feb 2026-03-19 5/250 2026-03-19 23:51 by 23Postgrad
[考研] 085600材料与化工求调剂 +6 绪幸与子 2026-03-17 6/300 2026-03-19 13:27 by houyaoxu
[考研] 344求调剂 +6 knight344 2026-03-16 7/350 2026-03-18 20:13 by walc
[考研] 085601专硕,总分342求调剂,地区不限 +5 share_joy 2026-03-16 5/250 2026-03-18 14:48 by haxia
[考研] [导师推荐]西南科技大学国防/材料导师推荐 +3 尖角小荷 2026-03-16 6/300 2026-03-16 23:21 by 尖角小荷
[考研] 333求调剂 +3 文思客 2026-03-16 7/350 2026-03-16 18:21 by 文思客
[考研] 0856专硕279求调剂 +5 加油加油!? 2026-03-15 5/250 2026-03-15 11:58 by 2020015
信息提示
请填处理意见