声明:本系列博客参考有关专业书籍,截图均为自己实操,仅供交流学习!
一、Simulink与Matlab接口
1、Matlab工作区变量设置模块参数
Matlab工作区的变量可以作为模块的设置参数


2、Matlab工作区变量作为输入信号
使用From Workspace模块将工作区变量作为系统的输入信号:

编辑器输入信号变量格式:(不是直接输入,只是一个格式)

命令行窗口输入如下代码:

仿真得到如下结果:

3、信号输出到Matlab工作区
有两种方式:
①利用scope模块的设置,将数据记录到工作区,可设置变量名称和保存格式。

②利用To workspace模块,可设置相关输出参数。

4、Matlab Function模块
可进行函数编辑实现特定功能:(一般涉及代码有啥需求都交给GPT写,自己再进行调试、修改、完善)

二、使用命令行进行仿真
使用命令行可编写运行系统仿真的脚本文件,可实现在同一系统中采用不同仿真参数进行仿真,不必一次又一次更改模块参数点击"Run"进行仿真。
1、sim命令进行动态系统仿真
两种语法格式:
Matlab
simOut =sim('model','ParameterName1',Value1,'ParameterName2',Value2...)
simOut =sim('model',ParameterStruct)
第一个参数即模型名,后面依次是参数名,参数值,或者直接以参数结构体代替。若仿真参数设置为空,则使用默认值。
参数分仿真参数和模块参数!
①仿真参数 有StartTime、StopTime(仿真时间也可用切片形式描述)、Solver求解器以及MaxStep最大仿真步长、SaveState是否保存状态变量、SaveOutput是否保存输出变量等。也可在命令行使用simget得到系统仿真参数的结构体变量:(各个变量的意义可自行查阅)

simget的语法格式如下:
Matlab
parameterStruct=simget('model') %获得模型所有仿真参数的结构体变量
value = simget('model',parameter) %获得模型特定仿真参数取值
value = simget(parameterStruct,parameter) %获得仿真参数结构体变量种某个变量的取值
simset可获得所有仿真参数的可能选项取值:

这些取值选项,可用simset的如下3种语法进行设置:(simset返回的是一个结构体变量)
Matlab
parameterStruct = simset('parameter1',value1,'parameter2',value2,...) %设置仿真参数值
parameterStruct = simset(OldparameterStruct,'parameter1',value1,'parameter2',value2,...) %修改已存在结构体中的变量
parameterStruct = simset(OldparameterStruct1,parameterStruct2) %新旧结构体变量合并,相同项用新结构体的值覆盖
simset
②模块参数可在命令行窗口输入下面命令,输出结果configSetNames可得到所有参数名称:
Matlab
%注:命令行使用
configSet = getActiveConfigSet('model')
configSetNames = get_param(configSet, 'ObjectParameters')

simOut为仿真输出结果,是一个类,可用下面命令进一步查看结果:
Matlab
simOut.find('VarName')找出仿真结果中VarName这一项
simOut.get('VarName')获得仿真结果中VarName这一项
simOut.who返回所有仿真变量(包括工作区里的)
2、simplot命令
我们常使用Scope模块,最大的优点是可通过对Scope的操作,对系统输出方便观测,plot等绘图命令都远远不及。
simplot可输出与scope相似的图形,语法格式如下:
Matlab
simplot(data); %一般由Output模块、To workspace模块等输出,可为矩阵、向量、结构体等
simplot(time, data); %time为仿真结果的输出时间向量,若data类型中本身包含时间,则此项可忽略
示例如下:
Matlab
t=0:0.1:10;
simInput=[t',sin(0:0.1:10)'];
[t,x,y]=sim('systemTest',10,[],simInput);
simplot(t,y)
往期精彩
STM32专栏(付费9.9)http://t.csdnimg.cn/E2F88
OpenCV-Python专栏(付费9.9)http://t.csdnimg.cn/zK1jV
AI底层逻辑专栏(付费9.9)http://t.csdnimg.cn/zic0f
机器学习专栏(免费)http://t.csdnimg.cn/FaXzAFreeRTOS专栏(免费)
http://t.csdnimg.cn/SjIqU电机控制专栏(免费)
http://t.csdnimg.cn/FNWM7