为什么使用Simulink的Interpreted MATLAB Fcn相比M-file形式,Simulink的图形化界面可以方便改变边界条件,例如Step,TimeTable等。
Simulink中的Interpreted MATLAB Fcn模块,可以导入包含常微分方程组的function,形成黑箱。仅需要用户提供输入,即可得到输出。这样避免常规Simulink求解常微分方程组的模式,即通过搭建各种数学运算模块,确定各模块之间的运算关系,最终求解常微分方程组。
例1:求解单个常微分方程[1]
编写一个function,代码如下所示:
functiondydt=first_order(x)% Interpreted MATLAB Fcn的输入包括u,y
u=x(1);
y=x(2);
tau=5;
K=2;
dydt=(-y+K*u)/tau;
end
Simulink的框图如下所示:
要值得注意的是,Integrator模块可以求得的积分,即 。然后 反馈给Interpreted MATLAB Fcn,作为该模块的输入。
除此之外,模块Interpreted MATLAB Fcn中要填写导入function的名字,以及模块的输出数量,如下图红色框图所示: