Simulink上搭建一个子函数,
可以参照以下教程
Matlab·Simulink的使用—【子系统的创建与封装】
上述教程搭建的是固定输入,输出通过Scope 查看,对于大的系统工程来说不便于模块化使用。
在该步骤基础上,subsystem的输入改成from work space,重命名成inport。
输出改成 to work space。同样重命名输出。就可以获得如图一所示simulink图。
对子函数里的变量,可以用常数给定。为了便于从.m文件更改,在此我们称这两个值为m、n。
Matlab的.m文件运行 Simulink 搭建的子系统
创建.m文件,假如子系统的名字为A.slx ,.m文件一般命名为 test_A.m。放在同一个文件夹。
首先对子函数里的变量赋值
m=1;n=15;
输入赋值
% load the input data into simulinkimport.time = 0:0.01:1;import.signals.values = 10*sin(5*import.time)'; % import.signals.dimension = 1;
注意在绘制子函数输入 ,不需要对输入进行设置。这些设置均通过上述代码实现。
输入通过一个结构体,设定输入信号的时间x和信号随时间的函数y=f(x)的转置。(转置的符号是单引号 ’ )。dimension保持默认1。
函数运行,输出读取
% run simulink in discreted time modestop_time = '1'; %model = sim('gain_add','StartTime','0','StopTime',stop_time,'SimulationMode','normal');gain_out1 = model.get('out1');gain_out2 = model.get('out2');
绘制输出进行查看
% plot the cic outputfigure;plot(gain_out1, 'r+');hold on;plot(gain_out2, 'b');title('the gain output');