主要内容

s -功能特点和局限性

功能特性

下表概述了不同类型的s -函数所支持的特性。金宝app第一张表主要是手写的s功能。第二个表比较了由S-Function Builder或遗留代码工具自动生成的s -函数的特性。

手写s函数的特点

功能 2级MATLAB函数 手写C MEX s -功能
数据类型 金宝app支持Simulink支持的任何数据类型金宝app®软件,包括定点类型。 金宝app支持Simulink软件支持的任何数据类型,包括定点类型。金宝app
数值类型 金宝app支持真实和复杂信号。 金宝app支持真实和复杂信号。
框架支持金宝app 金宝app支持框架和非框架信号。 金宝app支持框架和非框架信号。
港维 金宝app支持标量、一维和多维输入和输出信号。 金宝app支持标量、一维和多维输入和输出信号。
功能的API 金宝app支持更大的s函数API集。看到MATLAB二级s函数回调方法获取支持的方法列表。金宝app 金宝app支持整个s功能API。
代码生成的支持金宝app 需要一个手写TLC文件来生成代码。 本地支持代码生成。金宝app在代码生成期间需要一个手写的TLC文件来内联s函数。
金宝app仿真软件加速器模式 提供在加速模式下使用TLC文件的选项,而不是解释性地运行。 提供在加速模式下使用TLC或MEX文件的选项。
模型参考 金宝app当在参考模型中使用时,支持正常和加速模式模拟。加速器模式需要TLC文件。 在引用的模型中使用时,提供示例时间继承和Normal模式支持的选项。金宝app看到模型参考需求和限制
金宝app仿真软件。
AliasType
金宝app仿真软件。
NumericType
金宝app
金宝app支持金宝app仿真软件。NumericType金宝app仿真软件。AliasType类(见配置自定义数据类型). 金宝app支持所有这些类(参见配置自定义数据类型).
总线输入输出信号 不支持总线输入输出金宝app信号。 金宝app支持非虚拟总线输入或输出信号。
可调参数和运行时参数 金宝app支持可调参数和运行时参数。 金宝app支持可调参数和运行时参数。
工作向量 金宝app支持DWork向量(参见MATLAB二级s函数中DWork向量的使用). 金宝app支持所有工作矢量类型(参见DWork向量的类型).

自动生成s函数的特点

功能 s函数生成器 遗留代码的工具
数据类型 金宝app支持Simulink软件支持的任何数据类型,包括定点类型。金宝app 金宝app支持所有内置数据类型。要使用定点数据类型,必须将数据类型指定为金宝app仿真软件。NumericType.不能使用未指定缩放的定点类型。
数值类型 金宝app支持真实和复杂信号。 金宝app仅支持内置数据类型的复杂信号。
框架支持金宝app 金宝app支持框架和非框架信号。 不支持基于帧的信号金宝app。
港维 金宝app支持标量、一维和多维输入和输出信号。 金宝app支持标量、一维和多维输入和输出信号。
功能的API 金宝app支持创建自定义mdlInitializeSizesmdlInitializeSampleTimesmdlDerivativesmdlUpdate,mdlOutputs.也允许自动生成mdlStartmdlTerminate 金宝app支持mdlInitializeSizesmdlInitializeSampleTimesmdlStartmdlInitializeConditionsmdlOutputs,mdlTerminate
代码生成的支持金宝app 本地支持代码生成。金宝app另外,在代码生成期间自动生成一个TLC文件,用于内联s函数。 本机支持为嵌入式系金宝app统优化的代码生成。另外,自动生成一个TLC文件,该文件支持表达式折叠,以便在代码生成期间内联s函数。金宝app

金宝app仿真软件加速器™模式

在加速器模式下使用TLC文件,如果文件是生成的。否则,使用MEX文件。 提供在加速模式下使用TLC或MEX文件的选项。
模型参考 在引用模型中使用时使用默认行为。 在引用模型中使用时使用默认行为。
金宝app仿真软件。AliasType金宝app仿真软件。NumericType 不支持这些类。金宝app 金宝app支持金宝app仿真软件。AliasType金宝app仿真软件。NumericType
总线输入输出信号 金宝app支持总线输入输出信号。看到sfbuilder_bususage了一个例子。 金宝app支持总线输入输出信号。必须定义金宝app仿真软件。公共汽车对象。®等同于遗留代码中使用的输入或输出结构的工作区。不支持总线参数。金宝app
可调参数和运行时参数 金宝app仅在模拟过程中支持可调参数。金宝app支持运行时参数。 金宝app支持可调参数和运行时参数。
工作向量 不提供工作带菌者的途径。 金宝app支持使用类型的DWork向量SS_DWORK_USED_AS_DWORK.看到DWork向量的类型,以讨论不同的DWork向量使用类型。

功能的局限性

下表总结了不同类型s函数的主要局限性。

实现 限制
2级MATLAB S-functions
  • 不支持总线输入输出金宝app信号。

  • 不能在模拟期间合并遗留代码,只能在通过TLC文件生成代码期间。

手写C MEX s函数 金宝app支持模型引用,但有一些限制。看到参考型号中的s函数
s函数生成器
  • 使用包装器函数生成s函数代码,这会产生额外的开销。

  • 不支持以下S-fu金宝appnction特性:

    • 工作向量

    • 出口样品时间

    • 多次采样次数或非零偏移时间

    • 动态大小的输入和输出信号的s函数与多个输入和输出端口

请注意

具有一个输入和一个输出端口的s函数可以具有动态大小的信号

遗留代码的工具
  • 为仅用C或c++编写的现有函数生成C MEX s -函数。该工具不支持MATLAB或Fortr金宝appan函数的转换。

  • 可以与c++函数接口,但不能与c++对象接口。

  • 不支持模拟连续或离金宝app散状态。

  • 不支持使用函数指针金宝app作为被调用的遗留函数的输出。

  • 总是设置s功能的标志为直接引线大小。DirFeedthrough)真正的

  • 金宝app只支持连续的,但固定在小时间步长,采样时间和偏移量选择。

  • 金宝app支持复数,但仅限于Simulink金宝app内置的数据类型

  • 不支持以下S-fu金宝appnction特性:

    • 功向量,除了一般的功向量

    • 基于帧的输入和输出信号

    • 出口样品时间

    • 多个基于块的样本时间