主要内容

为有效加速设计模型

为加速器模式选择块

Accelerator simulation模式运行以下块,就像运行普通模式一样,因为这些块不会生成Accelerator生成的代码。因此,如果您的模型包含这些块的高百分比,则加速器模式可能不会显著提高性能。所有这些Simulink金宝app®块使用解释代码。

注意

在某些情况下,正常模式输出可能与加速器模式的输出不完全匹配,因为模型的解释版本和编译版本之间的数值精度略有差异。

在默认JIT加速器模式下运行时,以下块可能会导致仿真运行时性能不佳。

为快速加速器模式选择块

不支持代码生成的块(例如SimEven金宝appts®)或者只为特定目标生成代码的块不能在快速加速器模式下模拟。

此外,如果您的模型包含以下任何块,快速加速器模式将不起作用:

  • MATLAB函数解释

  • 设备驱动程序S功能,例如金宝appSimulink实时™产品,或那些针对飞思卡尔™ MPC555型

注意

在某些情况下,正常模式输出可能与快速加速器模式的输出不完全匹配,因为模型的解释版本和编译版本之间的数值精度略有差异。

控制S函数执行

注意

在默认的JIT加速器模式下,不支持用户编写的tlcs函数的内联。如果在JIT加速器模式下运行包含tlcs函数的模型,则有可能降低执行速度。但是,由于JIT加速,代码生成速金宝app度将很高。

使用目标语言编译器内联S函数,通过消除对simulinkapi的不必要调用,在经典加速器模式下提高了性能。但是,默认情况下,经典加速器模式忽略S函数的内联TLC文件,即使该文件存在。快速加速器模式始终使用TLC文件(如果有)。金宝app

设备驱动程序S功能块被写入以访问I/O板上的特定硬件寄存器,这就是为什么选择此行为作为默认行为的一个示例。由于Simulink软件在主机系统而不是目标系统上运行,因此它无法访问目标I/O寄存器,因此尝试访问时会失败。金宝app

要指示经典加速器模式使用TLC文件而不是S函数MEX文件,请指定SS\u选项\u使用\u TLC\u和\u加速器MDL系列尺寸S函数的函数,如本例所示:

静态void mdlinitializesize(SimStruct*S){/*代码已删除*/ssSetOptions(S,SS\u OPTION\u使用\u TLC\u和\u加速器);}

如果S函数的C文件不在同一文件夹中,则快速加速器模式将使用MEX文件。

注意

要为S函数使用.c或.cpp代码,请确保它们与S函数MEX文件位于同一文件夹中,否则,可以使用rtwmakecfg.m文件将其他文件包含到S函数中或绕过路径限制。有关详细信息,请参阅使用rtwmakecfg.mapi自定义生成的makefile(金宝appSimulink编码器).

加速器和快速加速器模式数据类型注意事项

  • 加速器模式支持高达128位的定点信金宝app号和矢量。

  • 快速加速器模式支持高达128位的定点参数。金宝app

  • 快速加速器模式支持高达32位的定点根输入金宝app

  • 快速加速器模式支持枚举数据类型的根输入金宝app

  • 快速加速器模式不支持金宝app从工作空间阻止。

  • 快速加速器模式忽略选择将定点数据记录为fi对象(FixptAsFi)复选框工作空间阻止。

  • 快速加速器模式支持总线对象作为参数。金宝app

  • 加速器模式和快速加速器模式尽可能紧凑地存储整数。

  • 定点设计器™ 在加速器或快速加速器模式下不收集最小值、最大值或溢出数据。

  • 加速器模式支持有限的运行时诊断集,金宝app包括断言块。

  • 快速加速器模式支持有限的运行时诊断集,包括断言金宝app块。

快速加速器模式下作用域和观察者的行为

从命令行或菜单运行模拟可确定快速加速器模式下作用域和查看器的行为。

范围或查看器类型 从菜单运行模拟 从命令行运行模拟
金宝appSimulink范围块 与正常模式金宝app相同的支持
  • 支持日志记录金宝app

  • 范围窗口未更新

金宝appSimulink信号查看器范围 图形已更新,但不支持日志记录金宝app 不支持金宝app
其他信号查看器范围 金宝app支持仅限于在外部模式下可用的支持 不支持金宝app
信号测井 金宝app支持。 金宝app支持。

带有日志输入的可视化工具

(如数据检查器或逻辑分析仪)

模拟过程中数据未可视化。 模拟过程中数据未可视化。
状态流®图表块 对图表动画金宝app的支持与普通模式相同 不支持金宝app

注意

虽然当您从命令行运行快速加速器模式时,作用域和查看器不会更新,但是当您从菜单运行模型时,它们会更新。从用户界面运行加速模式显示如何从菜单运行快速加速器模式。以编程方式与加速模式交互演示如何从命令行运行模拟。

抑制加速的因素

  • 如果您的模型:

    • 将数组参数传递给MATLAB®不是数字、逻辑或字符数组的S函数是稀疏数组,或具有两个以上维度的S函数。

    • 使用Fcn公司包含有复杂输入的三角函数的块。

  • 在某些情况下,与外部或自定义代码关联的更改不会导致加速器或快速加速器模拟结果更改。其中包括:

    • TLC代码

    • S函数源代码,包括rtwmakecfg.m文件

    • 集成自定义代码

    • S函数生成器

    在这种情况下,考虑强制再生顶级代码的代码。或者,可以通过删除代码生成文件夹(如slprj或生成的模型代码文件夹)强制重新生成顶级模型代码。

    注意

    对于JIT加速,加速目标代码在内存中。因此,只要模型处于打开状态,即使删除了slprj公司文件夹。

快速加速器模式限制

  • 快速加速器模式不支持:金宝app

    • 代数循环。

    • 用C++编写的目标。

    • MATLAB函数解释阻碍。

    • 非线性MATLAB语言或Fortran S函数。您必须用C编写S函数,或者使用目标语言编译器(TLC)内联这些函数,也可以使用MEX文件。有关详细信息,请参阅编写完全内联的S函数(金宝appSimulink编码器).

    • 调试器或探查器。

    • 的运行时对象金宝appSimulink.RunTimeBlock文件金宝appSimulink.BlockCompoputPortData模块阻碍。

  • 模型参数必须是以下数据类型之一:

    • 布尔值

    • 单位8国际8

    • 单元16国际16

    • uint32公司国际32

    • 单一的双重的

    • 固定点

    • 列举

  • 不能在快速加速器模式下暂停模拟。

  • 如果快速加速器构建包含参考模型(通过使用模型块),设置这些模型以使用固定步长解算器为其生成代码。但是,顶层模型可以使用可变步长解算器,只要参考模型中的块是离散的。

  • 在某些情况下,更改块参数可能会导致对模型进行结构更改,从而更改模型校验和。这种变化的一个例子是改变DSP模拟中的延迟数。在这些情况下,必须重新生成模型的代码。看到了吗加速模型中的代码再生更多信息。

  • 对于根输入端口,快速加速器模式仅支持将基作为金宝appSRC工作区.

  • 对于根输入,当指定块应输出的最小值和最大值时,快速加速器模式在模拟期间不会识别这些限制。

  • 在快速加速器模式下,归档工作空间如果函数调用端口连接到,则函数调用子系统中的块不会生成任何日志文件地面或者不相连。

  • 快速加速器模式不支持运行RHEL/CentOS 6.x或7.x的金宝app系统。

保留关键字

某些单词是为用户保留的金宝appSimulink编码器™代码语言和由加速器模式和快速加速器模式。这些关键字不能在子系统上显示为函数或变量名,也不能显示为导出的全局信号名。使用保留关键字会导致Simulink软件报告错误,并且无法编译或运行模型。金宝app

为保留的关键字金宝appSimulink编码器产品列在生成标识符的构造(金宝appSimulink编码器). 仅适用于加速器和快速加速器模式的其他关键字包括:

muDoubleScalarAbs公司 muDoubleScalarCos公司 muDoubleScalarMod公司
muDoubleScalarAcos公司 muDoubleScalarCosh公司 muDoubleScalarPower公司
muDoubleScalarAcosh公司 muDoubleScalarExp软件 MudoubleScalaround公司
木豆角蛋白酶 双层地板 双标量符号
muDoubleScalarAsinh公司 muDoubleScalarHypot公司 木通
muDoubleScalarAtan先生, muDoubleScalarLog语言 muDoubleScalarSinh公司
muDoubleScalarAtan2型 muDoubleScalarLog10码 muDoubleScalarSqrt公司
muDoubleScalarAtanh公司 muDoubleScalarMax公司 木豆沙坦
muDoubleScalarCeil公司 木豆胶 muDoubleScalarTanh公司

相关实例

更多关于