第1个回答 2019-06-30
matlab m文件中调用simulink模块步骤如下:
1、打开Simulink在Simulink库中选择”Simulink“库,在其下的子库”User-Defined Functions“中选择 ”MATLAB Function“并添加到Simulink仿真框图中。
2、打开m文件:如下图所示,双击MATLAB Function 即可打开编辑环境。
3、m语言编辑:在打开Function函数后即可进行语言编辑。
4、变量的定义:确定输入输出函数,在确定了输入输出变量之后进行函数头的编辑。
5、m文件正文部分编辑:m文件正文部分是重要的函数实现部分,可以实现需要的功能。
6、m文件模块外观:m文件编辑后即可进行封装并连接成整个函数系统,从而实现所需要的仿真功能。
本回答被网友采纳
第2个回答 推荐于2017-09-29
在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);
第3个回答 推荐于2017-09-19
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为外部输入向量本回答被提问者采纳