在毕设的过程中,要用脚本动态的控制mdl模型的运行。在编写脚本的过程中,有几个命令特别常用(open_system,find_system,set_param,get_param和close_system),这里总结一下它们的用法。
- open_system
该函数的形式很多,常用的有:
open_system('sys')
open_system('blk')
open_system('blk', 'force')
open_system('blk', 'parameter')
open_system('blk', 'mask')
open_system('blk', 'OpenFcn')
open_system('sys', 'destsys', 'replace')
open_system('sys', 'destsys', reuse')
打开由sys指定的系统模型或子系统窗口。例子:
- find_system
该函数的使用形式:
find_system(sys, 'c1', cv1, 'c2', cv2,...'p1', v1, 'p2', v2,...),用来查找具有某种特性的模块、系统、线、端口或注释的路径或句柄。
如果sys是路径名或者路径名cell array,那么find_system返回它查找到的对象的路径名的cell array;
如果sys是句柄或句柄向量(vector),那么find_system返回它查找到的对象的句柄向量。
另外,在find_system中可以设置查找的方式,例如“SearchDepth”等,利用这些设置选项,可以灵活地查找对象。例如:
这句话就是允许深入封装模块、允许使用正则表达式来查找所有含有变量“C”的模块的路径名,Qam_blocks是个cell array。
- set_param
该函数的使用形式:set_param(object, paramName1, Value1, ..., paramNameN, ValueN),用来设置系统或模块参数的值。
一般而言,对于大规模的对很多模块的同一参数设置相同的值(如很多模块都有参数C,整个模型系统中C的值是一致的),
一般而言是先用find_system找到这些模块的位置,再有set_param将这些模块的参数设置成相应的值。例如:
对于set_param函数,有一点需要注意,参数的值ValueN一般要转换为string类型。
- get_system
该函数的典型用法:
paramValue = get_param(object, paramName)
paramValues = get_param(objectCellArray, paramName)
paramValue = get_param(objectHandle, paramName)
paramValue = get_param(0, paramName)
paramStruct = get_param(object, 'ObjectParameters')
paramCellArray = get_param(object, 'DialogParameters')
与set_param相对应,用来获取参数的值。
- close_system
该函数的用法:
close_system close_system('sys') close_system('sys', saveflag) close_system('sys', 'newname') close_system('sys', 'newname','ErrorIfShadowed', true)
与open_system函数相对应,用来关闭Simulink系统的窗口或对话框。
这个函数在对多个模型做仿真时很有用。
当然,Simulink的仿真命令还有很多:add_block,delete_block等等,本文只是介绍在脚本的编写中比较常用的。
最后附上一篇毕设中用到的典型脚本:
本文介绍了在Simulink中如何使用open_system、find_system、set_param、get_param和close_system等命令进行模型的动态控制。通过示例说明了这些命令的具体用法,包括查找模型对象、设置和获取参数值等操作。
9万+

被折叠的 条评论
为什么被折叠?



