随着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模型:
小贴士
在需要察看模块具备哪些属性时,可将鼠标单击该模块并在命令行输入:
>>inspect (gcbh)
即可打开如下属性观测器:
在上述案例中我们用到了simulink的new_system, open_system, save_system, find_system, set_param等api, 此外更多的api可以在matlab的帮助文档中找到,灵活运用这些api可以帮助提高建模效率,实现许多很酷又实用的功能。
精彩技术文章
老胡专栏:自动生成的代码支持哪些硬件平台?
怎样生成我想要的c代码系列
解锁隐藏技能 | 使用stateflow调用外部c代码
移动通信的时代 | matlab加速移动通信技术的研发
科达全局感知三目摄像机实现“全景监控+结构化+人员卡口”三合一
硅晶圆价格大涨,半导体供应链恐怕开始进入万物皆涨的时代
泰瑞达预计2024年第一季度收入低于华尔街预期
安防行业划开人工智能时代帷幕,生态与场景成为关键
健身房中的智能显示屏带你体验什么是智能健身
关于Simulink的建模自动化的分析和说明以及应用
如何帮助零售行业的公司应用AI和机器学习来提高其盈利能力和可持续性
Shell命令编程实践指南
PLC触摸屏的作用_触摸屏是怎样控制PLC的
手机与大屏电视哪个才是MiniLED的核心赛道
粮食镉大米重金属检测仪的功能特点说明
华为小米增速快 2018年第一季度智能手机最新报告出炉
英国政府拨出150亿改善5G服务 VR时代即将到来
2018年数据科学和机器学习工具调查
5G模组的马拉松谁能笑到最后
电工最实用的经验公式
华为荣耀9、努比亚Z17、小米6、OPPOR11都是颜值担当你会怎么选?华为荣耀9、努比亚Z17、小米6、OPPOR11区别对比评
机电伺服系统一般由哪些环节组成_机电伺服系统的主要特点
低功耗蓝牙模块常见天线输出方式及选型建议
诺基亚新一代产品X7测评,AI智能场景侦测功能加持,拍暗叫绝