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

上文(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中

 

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

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

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

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

然后编写.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是有值的。

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

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

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

 

你可能感兴趣的:(simulink,matlab,simulink)