Matlab sim函数的用法

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u014170067/article/details/53355033

    最近用Simulink做仿真的时候,需要在m文件里运行Simulink模型,而且需要传递一些参数,所以要用到sim函数。查看了help文档,并百度到了一些关于sim的用法的答案,但并没能达到我要的效果,大多数答案都是描述sim函数的参数,并没有说Simulink模型中应该使用什么模块以及如何设置,所以在尝试的时候经常出错。通过不断尝试,达到了我想要的效果:在m文件中向Simulink模型传递参数,并运行模型,得到模型运行结果。

    以一个简单的PID控制仿真模型为例,如果要在m文件中运行这个模型,则m文件程序可以写成这样:

clear all;
close all;
ts = 1e-4;
In = 5;
Kp = 60;
Ki = 1;
Kd = 3;
simOut = sim('sim_test');
for k = 1:1:length(out)
    time(k) = k * ts;
end
figure(1);plot(time,out);grid on;

其中,In是PID控制的期望输入,Kp,Ki,Kd分别是PID控制参数,都要从m文件中传递给Simulink模型。out是Simulink模型运行得到的结果。

    Simulink模型框图如下:


其中,PID模块的参数应该如下图所示:


To Workspace模块将仿真结果传递给m文件,可以在m文件中直接调用。

    通过运行m文件就可以得到模型的仿真结果如下图所示:



    这样就能通过m文件对Simulink模型进行传递参数、运行模型并获取结果的操作。

展开阅读全文

没有更多推荐了,返回首页