怎么把M文件导入Simulink
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么把M文件导入Simulink相关的知识,希望对你有一定的参考价值。
首先得生成数据,生成数据后和simulink地连接有两种方法。一种是把数据加载到matlab空间,
另一种是把数据存储为mat文件。然后从simulink的sources模块组中的from
workspace(对应第一种)或者from
mat文件(对应第二种)加入到你的simulink模型中,然后设置好采样时间就可以仿真了。
懂啦 参考技术A m文件对simulink的连接:
1、在m文件中首先打开mdl文件,用open_system('model');
2、现在可以在m文件中用set_param()和get_param()函数改变和获得simulink中模块的参数值;
把m函数封装成simulink模块(matlab7.0):
1、可以应用user-Defined
Functions
里面的Embedded
MATLAB
Function;
2、m函数为多输入与多输出时可直接改fcn函数输入与输出,保存就可以那;
用sim()函数
该函数的调用格式为:
[t,x,y]=sim(f1,tspan,options,ut)
其中f1为SIMULINK的模型名,tspan为仿真时间控制变量;参数options为模型控制参数;ut为外部输入向量。
matlabm文件中如何调用simulink模块
先运行m文件,然后就可以使用simulink模型了。如果是脚本文件,变量会保存在基本工作区,simulink模型可以直接使用。如果是函数m文件就比较麻烦一些,需要把相关变量使用evalin函数传递到基本工作区。
如果希望打开或运行simulink模型时自动运行m文件,可以设置模型的回调函数preloadfcn、postloadfcn或initfcn。如果设置preloadfcn或postloadfcn,则会在模型加载之前或加载之后执行;如果设置initfcn,会在每次模型更新或仿真之前运行。
设置回调函数可通过模型的file
-->
model
properties菜单进行,也可以使用set_param函数。 参考技术A 在m文件里调用模型mdl关键是用sim命令。
[
t,
x,
y
]
=
sim(
model,
timespan,
options,
ut)
[
t,
x,
y1,
y2,
…,
yn]
=
sim(
model,
timespan,
options,
ut)
(1)model:需要进行仿真的系统模型框图名称;
(2)timespan:系统仿真的时间范围(起始至终止时间),可有如下形式:
tFinal:设置仿真终止时间。仿真起始时间默认为0;
[tStarttFinal]:设置起始时间(tStart)与终止时间(tFinal);
[tStartOutputTimestFinal]:设置起始时间(tStart)与终止时间(tFinal),并且设置仿真返回的时间向量[tStartOutputTimestFinal],其中tStart、OutputTimes、tFinal必须按照升序排列。
(3)options:由simset命令所设置的除仿真时间外的仿真参数;
(4)ut:表示系统模型顶层的外部可选输入。ut可以是MATLAB
函数。可以使用多个外部输入ut1、ut2、…。
(5)t:返回系统仿真的时间向量。
(6)x:返回系统仿真的状态变量矩阵。
(7)y:返回系统仿真的输出矩阵。按照顶层输出Outport模块的顺序输出。如果输出信号为向量输出,则输出信号具有与此向量相同的维数。
(8)y1,…,yn:返回多个系统仿真的输出。
改变模型输入参数的demo,同时不影响原来的mdl文件
>t=0:0.1:10;
t=t’;
u=sin(t);
sim_input=[t,
u];
>[tout1,
x1,
yout1]=sim(‘command_in_out’,
10);
%使用Simulink仿真参数对话框中的workspace
I/O
从MATLAB
工作空间中获得输入信号
>u=cos(t);
>ut=[t,
u];
%改变系统输入信号
>>[tout2,
x2,
yout2]=sim(‘command_in_out’,
10,
[],
ut);
以上是关于怎么把M文件导入Simulink的主要内容,如果未能解决你的问题,请参考以下文章
.m 文件中的工作区不会导入到 simulink 模型中。 MATLAB