Simulink模型开发中的一些自动化方法

随着Simulink模型的产品化开发进程,许多模型开发人员会关心模型的建模自动化问题。比如如何对模型中的元素进行批量查找和修改;如何构建自己的建模规则对模型进行检查;如何实现测试自动化等。在这些使用场景中我们都需要了解一些Simulink函数,或者称之为Simulink API。以下我们通过两个小例子来演示Simulink常见函数的功能吧。

案例一:自动创建并保存Simulink模型

% 新建一个名为'mymodel'的模型,并返回句柄值h

h = new_system('mymodel');

% 打开刚才新创建的模型

open_system(h);

% 保存模型并重命名为'newsysname'

save_system('mymodel', 'newsysname.slx');

% 或者做一些防错处理,如在MATLAB路径中发现已有待保存的同名模型时给出命令行提示

save_system('mymodel','newsysname.slx','ErrorIfShadowed',true);

接下来可以创建MATLAB快捷方式,取名为'createModel',将上述代码作为快捷方式的回调函数,这样在需要快速新建一个模型,直接点击该快捷方式即可。

案例二:批量查找并修改Simulink模块

创建一个名为setBlocks的函数,用于批量修改模型中的所有输入模块的数据类型

function setBlocks(sys)

%查找模型中所有模块类型为Inport的模块,并将结果保存到blk中

blk =find_system(sys,'BlockType','Inport');

%blk其实返回了查找到的所有符合条件的模块对象

%在for循环中依次修改所得模块的属性

for n=1:length(blk)

set_param(blk{n},'OutDataTypeStr','int16');

end

最后在命令行中调用上述函数,输入参数为模型名。

>>setBlocks('test')

调用setBlocks前的test模型如下:

调用setBlocks后的test模型

总结

在上述案例中我们用到了Simulink的new_system , open_system , save_system , find_system , set_param 等API,此外更多的API可以在MATLAB的帮助文档中找到,灵活运用这些API可以帮助提高建模效率,实现许多很酷又实用的功能。

小贴士

在需要察看模块具备哪些属性时,可将鼠标单击该模块并在命令行输入

>>inspect (gcbh) 即可打开如下属性观测器

相关推荐
民乐团扒谱机6 小时前
【微实验】机器学习之集成学习 GBDT和XGBoost 附 matlab仿真代码 复制即可运行
人工智能·机器学习·matlab·集成学习·xgboost·gbdt·梯度提升树
L543414467 小时前
告别代码堆砌匠厂架构让你的系统吞吐量翻倍提升
大数据·人工智能·架构·自动化·rpa
Evand J7 小时前
TDOA(到达时间差)的GDOP和CRLB计算的MATLAB例程,论文复现,附参考文献。GDOP:几何精度因子&CRLB:克拉美罗下界
开发语言·matlab·tdoa·crlb·gdop
码农阿豪7 小时前
多服务器批量指令管理:从Xshell到自动化运维
运维·服务器·自动化
2501_941982058 小时前
别再手动发群消息了!企业微信外部群自动化推送的架构设计与实现
运维·自动化·企业微信
Wpa.wk8 小时前
接口自动化 - 接口鉴权处理常用方法
java·运维·测试工具·自动化·接口自动化
0思必得08 小时前
[Web自动化] Selenium获取元素的子元素
前端·爬虫·selenium·自动化·web自动化
Wpa.wk9 小时前
接口自动化 - 多环境统一文件配置 +多响应统一转换处理
运维·服务器·测试工具·自动化·接口自动化·统一配置
是枚小菜鸡儿吖9 小时前
从 0 到 1 生成自定义算子:CANN + AIGC 的自动化工作流
运维·自动化·aigc
楚轩努力变强9 小时前
iOS 自动化环境配置指南 (Appium + WebDriverAgent)
javascript·学习·macos·ios·appium·自动化