中使用系统对象的注意事项动态仿真模块
类中使用System对象的方式有所不同MATLAB系统Simulink中的块®而不是在MATLAB中使用相同的对象®.当使用可变大小的信号和可调参数时,以及当使用System对象作为属性时,您可以看到这些差异。
适应信号
要在System对象™中使用可变大小的信号,必须实现传播方法。特别地,使用isOutputFixedSizeImpl
方法指定输出是可变大小还是固定大小。这种方法用于解释执行和代码生成模拟方法。
可调参数
Simulink将System对象的公共可调属性注册为相应的可调参数MATLAB系统块。属性中的“系统对象”属性是可调的,则该属性也是可调的MATLAB系统块。在运行时,可以使用以下方法之一更改参数。更改应用于模拟循环的顶部。
在MATLAB命令行中,使用
set_param
修改参数值。在Simulink编辑器中,编辑MATLAB系统方块对话框更改参数值,然后更新方块图。
不能从系统对象的内部方法更改公共可调属性stepImpl
.
在模拟过程中,在可调参数上设置无效值会导致错误消息并停止模拟。
作为属性的系统对象
的MATLAB系统block允许系统对象拥有其他系统对象作为公共或私有属性。然而:
系统对象和其他作为公共属性存储的MATLAB对象是只读的。因此,您不能设置参数的值,只能获取参数的值。
存储为属性值的系统对象在MATLAB系统对话框。
默认属性值
MATLAB不要求对象为属性分配默认值。但是,在Simulink中,如果“系统”对象具有没有分配默认值的属性,则相关的对话框参数要求值数据类型为内置的Simulink数据类型。
每个子系统中的系统对象
使用MATLAB系统块内的每个子系统块,实现supportsMultipleInstanceImpl
方法。这个方法应该返回真正的
.的MATLAB系统block为每个对象克隆System对象每个子系统迭代。
输入验证
在Simulink中,使用validateInputsImpl
方法只验证输入的属性(大小、数据类型和复杂性)。不要使用此方法验证输入的值。