主要内容

使用系统对象的注意事项动态仿真模块

中如何使用System对象是有区别的MATLAB系统在仿真软件®而不是在MATLAB中使用相同的对象®.当使用可变大小的信号和可调参数以及使用System对象作为属性时,您会看到这些差异。

适应信号

要在System对象™中使用可变大小的信号,必须实现传播方法。尤其要使用isOutputFixedSizeImpl方法指定输出是可变大小的还是固定大小的。解释执行和代码生成模拟方法都需要这种方法。

可调参数

Simulink将System对象的公共可调属性注册为相应的可调参数MATLAB系统块。中的“系统对象”属性是可调的,那么它也是可调的MATLAB系统块。在运行时,可以使用以下方法之一更改参数。更改应用于模拟循环的顶部。

  • 在MATLAB命令行中,使用set_param修改参数值。

  • 在Simulink编辑器中,编辑MATLAB系统“块”对话框更改参数值,然后更新框图。

不能从系统对象内部方法(例如stepImpl

在模拟过程中,在可调参数上设置无效值将导致错误消息并停止模拟。

作为属性的系统对象

MATLAB系统块允许一个系统对象拥有其他系统对象作为公共或私有属性。然而:

  • 系统对象和其他作为公共属性存储的MATLAB对象是只读的。因此,您不能设置参数的值,只能获取参数的值。

  • 存储为属性值的系统对象在MATLAB系统块对话框。

默认的属性值

MATLAB不要求对象为属性分配默认值。但是,在Simulink中,如果您的System对象具有没有指定默认值的属性,则相关的对话框参数要求值数据类型为内置的Simulink数据类型。

为每个子系统中的系统对象

使用MATLAB系统块在一个为每个子系统块,实现supportsMultipleInstanceImpl方法。这个方法应该返回真正的.的MATLAB系统block为每个对象克隆System对象为每个子系统迭代。

输入验证

在Simulink中,使用validateInputsImpl方法只验证输入的属性(大小、数据类型和复杂性)。不要使用此方法验证输入的值。

另请参阅

相关的例子

更多关于

Baidu
map