上文(https://mp.csdn.net/editor/html/115607641)我们用实例讲解了如何利用.m文件实现对simulink系统的动态仿真,实例中有一句代码为:
[t1,x1,y1]=sim('new',10)
该语句中x1,y1均为空数组,其表示什么含义呢?如何让x1、y1有值呢?本文就来对sim语句进行详细的讲解。
一、sim语句的语法结构
-
[
T,X,Y] = sim(
'model',Timespan, Options, UT)
-
[
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文件
-
clc
-
clear
all
-
%%%g=
10时高度与时间的关系
-
t=
0:0.2:10
-
h=
10+0*t
-
input=
[t',h']
-
-
[t1,x1,y1]=
sim('new',10)
-
-
%绘图
-
figure
-
plot(t1,y1)
输出结果如下,这时我们发现y1是有值的。
打开simulink中示波器(scope)中查看h与时间的关系,发现与.m文件绘制的图像一致,说明输出结果确实记录至workspace中。
转载:https://blog.csdn.net/moxiangxiaozhu/article/details/115710408
查看评论