数据类型不匹配和结构体初始条件
使用 Simulink.Parameter 对象指定总线信号初始条件
此示例说明如何用 Simulink.Parameter 对象替换结构体初始条件。这种方法允许结构体保持其可调性。
双击 Unit Delay 模块以查看模块参数。Unit Delay 模块使用结构体初始条件。

在 MATLAB® 命令行中定义一个
Simulink.Parameter对象。将参数对象的数据类型设置为总线对象SensorData。将参数对象的值设置为指定的结构体。为了保持可调性,将StorageClass属性设置为ExportedGlobal。P = Simulink.Parameter; P.DataType = 'Bus: SensorData'; P.Value = struct('Torque',5,'Speed',8); P.StorageClass = 'ExportedGlobal';
在 Unit Delay 模块对话框中,将初始条件设置为
P,即您定义的Simulink.Parameter对象。Simulink.Parameter对象中定义的结构体保持可调。
有关为使用可调初始条件结构体的总线信号生成代码的详细信息,请参阅Control Signal and State Initialization in the Generated Code。
数据类型不匹配和封装原子子系统
当结构体初始条件驱动使用封装原子子系统指定的总线信号时,会发生数据类型不匹配。
将子系统更改为非原子子系统,或使用 Simulink.Parameter 对象指定结构体参数(如使用 Simulink.Parameter 对象指定总线信号初始条件中所述)以避免数据类型不匹配错误。