将Matlab的M函数引用到Simulink中.pdf
《将Matlab的M函数引用到Simulink中.pdf》由会员分享,可在线阅读,更多相关《将Matlab的M函数引用到Simulink中.pdf(4页珍藏版)》请在冰豆网上搜索。
将将Matlab的的M函数引用到函数引用到Simulink中中作者:
彭天邮件:
博客:
http:
/M函数:
functiony=peng(x,t)tt=0:
0.1:
2*t;y=sum(tt)*x;如果我需要在Simulink中用到这个peng函数,那么可以用下面的Simulink模型:
MATLABFcnMATLABFunctionDisplay14020Display10Constant2Clock其中MATLABFcn模块的设置如下:
也就是说x等于第一个输入,t为第二个输入。
而在我的Simulink模型中第一个输入是一个常量模块,一直为2,也就是x=2;第二个是随时间改变的量,也就是t每次仿真都等于当前的仿真时间,所以最后就是t=2;因此用peng函数计算出来的结果是4020,证明是正确的。
二、使用使用subsystem模块模块可以建立如下的模型图:
SubsystempengFunctioncreatedbyPenGDisplay11Display4020Constant1将上图保存为timpeng.mdl,并存放在当前目录中。
其中Subsystem的封装如下:
而Subsystem内部的模型如下:
Out11GainyIn11当双击Subsystem模块时,设置如下:
也就是说相当于输出peng(2,10)的值,结果自然是4020了。
如果你要循环的改变t的值,可以用如下的命令。
当然需要给timpeng.mdl增加一个输出模块,如下:
Out11SubsystempengFunctioncreatedbyPenGDisplay11Display4020Constant1然后,保存。
运行下面的程序:
open_system(timpeng);fori=1:
10set_param(timpeng/Subsystem,t,num2str(i);save_system(timpeng);t_out,x_out,y_out=sim(timpeng,010);disp(y_out(end);end也就是用open_system来打开Simulink模型文件,用set_param来设置其中Subsystem模块的t参数的值依次为1到10,然后用save_system来保存Simulink模型文件。
之后用sim函数来运行timpeng.mdl,然后用disp函数输出最后一个输出值。
可以看到会依次的输出当t为1到10时,对应的用peng函数计算的值。
最后一个是4020,代表运行完毕,即t=10.可以用close_system来关闭Simulink模型。