为有效加速设计模型

为加速模式选择块

Accelerator模拟模式运行以下块,就像您在正常模式下运行一样,因为这些块不会为Accelerator生成代码。因此,如果您的模型包含高百分比的这些块,加速器模式可能不会显著提高性能。所有这些模拟万博1manbetx®块使用解释的代码。

注意

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

在默认的JIT加速模式下运行时,以下代码块会导致模拟运行时性能不佳。

选择块快速加速器模式

不支持代码生成的块(如SimEvent万博1manbetxs)®)或仅为特定目标生成代码的块不能在快速加速器模式下模拟。

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

  • 解释功能的MATLAB

  • 设备驱动程序的功能,如块万博1manbetx仿真软件实时™或针对飞思卡尔™MPC555的产品

注意

在某些情况下,由于模型的解释版本和编译版本之间的数值精度略有差异,普通模式输出可能无法精确匹配快速加速器模式的输出。

控制S-功能执行

注意

在默认JIT加速器模式,不支持用户编写的TLC S-功能的内联。万博1manbetx如果您运行包含在JIT加速器模式TLC S函数的模型,还有就是执行速度降低的可能性。代码生成的速度,但是,将是JIT加速高所致。

内联使用具有通过消除对Simulink的API不必要的调用经典加速器模式目标语言编译器的增加性能S-功能。万博1manbetx默认情况下,然而,经典的加速器模式忽略了一个S-功能的内联TLC文件,即使该文件存在。快速加速器模式始终使用TLC文件(如果可用)。

写入访问特定的硬件寄存器上的I / O板的设备驱动器S-功能块就是为什么这种行为被选为默认的一个例子。因为主机系统,而不是目标万博1manbetx的Simulink的软件运行时,它无法访问目标,试图这样做,当I / O寄存器,因此会失败。

直接经典加速器模式使用TLC文件的S-功能MEX文件,而不是指定SS_OPTION_USE_TLC_WITH_ACCELERATOR在里面mdlInitializeSizes在S-功能的功能,如在这个例子中:

静态无效mdlInitializeSizes(SimStruct * S){/ *代码删除* / ssSetOptions(S,SS_OPTION_USE_TLC_WITH_ACCELERATOR);}

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

注意

要为您的s函数使用.c或.cpp代码,请确保它们与S-Function mex -文件在同一个文件夹中,否则,您可以将附加文件包含到s函数中,或者通过使用rtwmakecfg绕过路径限制。m文件。有关更多信息,请参见使用rtwmakecfg.m API来定制生成的makefile(万博1manbetx仿真软件编码器)。

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

  • 加速器模式支持定点信号和矢量,最多万博1manbetx可达128位。

  • 快速加速器模式支持定点多达128位的参数。万博1manbetx

  • 快速加速器模式支持定点根输入高达32位万博1manbetx

  • 快速加速器模式支持枚举数据类型的根输入万博1manbetx

  • 的快速加速器模式不支持定点数据万博1manbetx从工作区块。

  • 快速加速器模式忽略的选择将定点数据记录为fi对象的复选框到工作空间块。

  • 快速加速器模式支持总线对象作为参数。万博1manbetx

  • 该加速器模式和快速模式加速器存储整数尽量紧凑。

  • 定点设计师™不会收集分钟,在加速或快速加速器模式大豆或溢出数据。

  • 加速器模式支持一组运行时诊断的限定万博1manbetx,包括断言块。

  • 快速加速器模式支持一组运行时诊断的限定,包括断万博1manbetx言块。

范围和观众的行为与快速加速器模式

运行在命令行或菜单中的模拟确定快速加速器模式范围和观众的行为。

范围或浏览器类型 从菜单运行模拟 模拟运行从命令行
万博1manbetxSimulink的范围块 支持与正常万博1manbetx模式相同
  • 支持记录万博1manbetx

  • 不更新范围窗口

万博1manbetxSimulink信号查看器范围 图形会更新,但不支持日志记录万博1manbetx 不支持万博1manbetx
其他信号观众范围 万博1manbetx支持仅限于提供外部模式 不支持万博1manbetx
信号记录 万博1manbetx中列出的限制信号记录在快速加速器模式 万博1manbetx中列出的限制信号记录在快速加速器模式
多速率信号观众 不支持万博1manbetx 不支持万博1manbetx
Stateflow的®图块 对于图表动万博1manbetx画作为普通模式相同的支撑 不支持万博1manbetx

快速加速器模式不支持多速率信号查看器,如DSP System T万博1manbetxoolbox™频谱范围或通信工具箱™散点图、信号轨迹或眼睛图范围。

注意

尽管作用域和观众,当你在命令行中运行快速加速器模式不更新,他们做更新,当您运行从菜单中选择模型。从用户界面运行加速模式演示如何从菜单中运行快速加速器模式。以编程方式与加速模式交互演示如何从命令行运行模拟。

抑制加速因子

  • 如果你的模型,你不能使用加速器或快速加速器模式:

    • 经过阵列参数以MATLAB®不是数字数组、逻辑数组或字符数组的s -函数是稀疏数组,或具有两个以上维度的函数。

    • 用途Fcn含三角函数块具有复杂的输入。

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

    • TLC代码

    • S-功能源代码,包括rtwmakecfg.m文件

    • 集成的自定义代码

    • s函数生成器

    在这种情况下,考虑了顶级型号的代码力再生。或者,也可以通过删除代码生成文件夹,如slprj或所生成的模型代码的文件夹迫使顶部模型代码再生。

    注意

    有JIT加速度,加速度目标代码是在存储器中。因此,可以重复使用,只要模式是开放的,即使你删除slprj文件夹中。

快速加速器模式的限制

  • 快速加速器模式不支持:万博1manbetx

    • 代数循环。

    • 用C ++编写的目标。

    • 解释功能的MATLAB块。

    • 非内联的MATLAB语言或Fortran函数。必须用C编写s函数,或者使用目标语言编译器(TLC)内联它们,或者也可以使用MEX文件。有关更多信息,请参见编写完全内联的s函数(万博1manbetx仿真软件编码器)。

    • 调试器或探查。

    • 对于运行时间对象万博1manbetxSimulink.RunTimeBlock万博1manbetxSimulink.BlockCompOutputPortData块。

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

    • 布尔

    • uint8要么INT8

    • uint16要么INT16

    • UINT32要么int32

    • 要么

    • 固定点

    • 枚举

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

  • 如果快速加速构建包括参考模型(通过使用模型块)上,建立这些模型,使用固定的步距求解程序为它们生成代码。顶部模型,但是,可以使用可变步长求解器,只要在所引用的模型块是离散的。

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

  • 对于根输入,快速加速器模式只支持基础作为万博1manbetxSrcworkspace

  • 对于根输入端口,当您指定块应该输出的最小值和最大值时,Rapid Accelerator模式在模拟期间不会识别这些限制。

  • 在快速加速器模式,到文件要么到工作空间内部函数调用子系统块,如果函数调用端口连接到不产生任何日志文件地面或无关的。

  • 快速加速器模式不支持运行RHEL / CentOS 6的系统。万博1manbetx7. x或者x。

保留关键字

有些词被保留使用万博1manbetxSimulink的编码器™代码语言和加速器模式和快速加速器模式运行。这些关键字一定不能出现如函数或变量名的一个子系统,或导出的全局信号名称。使用在Simulink软件保留关键字结果报告错误,该模型不能编译或运行。万博1manbetx

对于保留的关键字万博1manbetx仿真软件编码器产品中列出生成的标识符的建设(万博1manbetx仿真软件编码器)。仅适用于加速器和快速加速器模式的附加关键字是:

muDoubleScalarAbs muDoubleScalarCos muDoubleScalarMod
muDoubleScalarAcos muDoubleScalarCosh muDoubleScalarPower
muDoubleScalarAcosh muDoubleScalarExp muDoubleScalarRound
muDoubleScalarAsin muDoubleScalarFloor muDoubleScalarSign
muDoubleScalarAsinh muDoubleScalarHypot muDoubleScalarSin
muDoubleScalarAtan, muDoubleScalarLog muDoubleScalarSinh
muDoubleScalarAtan2 muDoubleScalarLog10 muDoubleScalarSqrt
muDoubleScalarAtanh muDoubleScalarMax muDoubleScalarTan
muDoubleScalarCeil muDoubleScalarMin muDoubleScalarTanh

相关的例子

更多关于