主要内容

数据类型不匹配和结构体初始条件

R2026b

使用 Simulink.Parameter 对象指定总线信号初始条件

此示例说明如何用 Simulink.Parameter 对象替换结构体初始条件。这种方法允许结构体保持其可调性。

  1. 双击 Unit Delay 模块以查看模块参数。Unit Delay 模块使用结构体初始条件。

    Block Parameters dialog for Unit Delay block. The Initial condition parameter is set to struct('Torque',5,'Speed',8).

  2. 在 MATLAB® 命令行中定义一个 Simulink.Parameter 对象。将参数对象的数据类型设置为总线对象 SensorData。将参数对象的值设置为指定的结构体。为了保持可调性,将 StorageClass 属性设置为 ExportedGlobal。

    P = Simulink.Parameter;
    P.DataType = 'Bus: SensorData';
    P.Value = struct('Torque',5,'Speed',8);
    P.StorageClass = 'ExportedGlobal';

  3. 在 Unit Delay 模块对话框中,将初始条件设置为 P,即您定义的 Simulink.Parameter 对象。Simulink.Parameter 对象中定义的结构体保持可调。

有关为使用可调初始条件结构体的总线信号生成代码的详细信息,请参阅Control Signal and State Initialization in Generated Code。

数据类型不匹配和封装原子子系统

当结构体初始条件驱动使用封装原子子系统指定的总线信号时,会发生数据类型不匹配。

将子系统更改为非原子子系统,或使用 Simulink.Parameter 对象指定结构体参数(如使用 Simulink.Parameter 对象指定总线信号初始条件中所述)以避免数据类型不匹配错误。

另请参阅

主题