小言_互联网的博客

MATLAB如何利用.m文件实现对simulink系统的动态仿真?(2)

276人阅读  评论(0)

上文(https://mp.csdn.net/editor/html/115607641)我们用实例讲解了如何利用.m文件实现对simulink系统的动态仿真,实例中有一句代码为:

[t1,x1,y1]=sim('new',10)

该语句中x1,y1均为空数组,其表示什么含义呢?如何让x1、y1有值呢?本文就来对sim语句进行详细的讲解。

一、sim语句的语法结构


  
  1. [ T,X,Y] = sim( 'model',Timespan, Options, UT)
  2. [ T,X,Y1, ...,Yn] = sim( 'model',Timespan, Options, UT)

T:返回仿真的时间向量

x:返回仿真的状态矩阵,该矩阵由连续状态和离散状态组成

y:返回仿真的输出矩阵

model:模型名称,即simulink的文件名

timespan:仿真的起始时间和结束时间

二、实例讲解

仍然以自由落体运动为例

搭建simulink系统如下,本次仿真用inport模块作为g,以output模块作为输出,将输入输出数据记录到workspace中

 

设置inport模块、output模块的方法:在simulink下拉菜单中选择model configuration parameters选项,设置输入名称为input、输出名称为yout、时间名称tout

然后编写.m文件


  
  1. clc
  2. clear all
  3. %%%g= 10时高度与时间的关系
  4. t= 0:0.2:10
  5. h= 10+0*t
  6. input= [t',h']
  7. [t1,x1,y1]= sim('new',10)
  8. %绘图
  9. figure
  10. plot(t1,y1)

输出结果如下,这时我们发现y1是有值的。

打开simulink中示波器(scope)中查看h与时间的关系,发现与.m文件绘制的图像一致,说明输出结果确实记录至workspace中。

 


转载:https://blog.csdn.net/moxiangxiaozhu/article/details/115710408
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场