主要内容

金宝app检查

金宝app检查概述

使用Simuli金宝appnk®Model Advisor检查以配置模拟模型。

另请参阅

迁移到简化初始化模式概述

在R2008b中引入简化初始化模式,提高了仿真结果的一致性。这种模式对于不为有条件执行的子系统输出端口指定初始条件的模型尤其重要。有关更多信息,请参见简化初始化方式而且经典初始化模式

使用Model Advisor检入迁移到简化初始化模式以帮助将模型迁移到简化初始化模式。

另请参阅

识别未连接的线路、输入端口和输出端口

检查身份证mathworks.design.UnconnectedLinesPorts

检查未连接的线路或端口。

描述

此检查列出未连接的线路或端口。这可能难以传播信号属性,如数据类型、采样时间和维度。

请注意

连接到接地/终止块的端口将通过此测试。

结果及建议的行动

条件 建议的行动
线路、输入端口或输出端口断开。 连接信号。双击未连接项列表可定位故障。

能力与限制

您可以:

  • 在库模型上运行此检查。

  • 如果您有。则排除此检查中的块和图表金宝app模型检查™许可证。

提示

使用PortConnectivity命令获取描述块输入或输出端口的结构数组。

另请参阅

公共块属性有关PortConnectivity命令。

模型顾问排除概述(金宝app仿真软件检查)

检查根型号导入块规格

检查身份证mathworks.design.RootInportSpec

检查根模型导入块是否完全定义了维度、采样时间和数据类型。

描述

使用根模型没有完全定义维度、采样时间或数据类型的导入块会导致不期望的模拟结果。金宝appSimulink软件从下游块反向传播维度、采样时间和数据类型,除非您显式地为它们赋值。

结果及建议的行动

条件 建议的行动
根级导入块的属性未定义。 完全定义根级导入块的属性。

能力与限制

如果你有金宝app仿真软件检查许可证,您可以从此检查中排除块和图表。

提示

以下配置通过检查:

  • 配置参数> Solver >周期采样时间约束设置为确保采样时间无关

  • 对于导出函数模型,继承样本时间没有标记。

另请参阅

检查优化设置

检查身份证mathworks.design.OptimizationSettings

检查可能导致非最佳代码生成和模拟的优化。

描述

此检查检查可以提高代码效率和模拟时间的优化状态。

结果及建议的行动

条件 建议的行动
指定的优化是关闭的。

控件上选择以下优化复选框优化“配置参数”对话框中的

控件上选择以下优化复选框优化“配置参数”对话框中的

  • 内联不变信号(金宝app仿真软件编码器)(除非你有一个金宝app仿真软件编码器™许可)

在“配置参数”对话框中勾选以下优化复选框:

控件上选择以下优化复选框优化“配置参数”对话框中的

请注意

Model Advisor只在存在状态流的情况下检查这些参数®模型中的图表。

应用程序寿命(天)设为无穷大。这可能导致昂贵的64位计数器使用。 如果不打算这样做,请选择一个停止时间。
指定的诊断(可以增加模拟模型所需的时间)被设置为警告错误

选择没有一个:

  • 解算器数据不一致

  • 超出数组边界

  • 诊断>数据的有效性>仿真范围检查

指定的嵌入式编码器®参数关闭。

如果你有嵌入式Coder许可证,并且你正在使用基于ert的系统目标文件:

提示

如果系统包含模型块和引用的模型处于加速器模式,模拟模型需要生成和编译代码。

检查

另请参阅

检查加速模型参考仿真过程中忽略的诊断设置

检查身份证mathworks.design.ModelRefSIMConfigCompliance

检查在加速仿真过程中Simulink更改配置参数设置的参考模型。金宝app

描述

对于在加速模式中引用的模型,Simulink忽略下列配置参数的设置金宝app没有一个

  • 超出数组边界

  • 诊断>数据的有效性>Inf或NaN块输出

  • 诊断>数据的有效性>除以奇异矩阵

  • 诊断>数据的有效性>包装溢出

此外,对于在加速模式下引用的模型,Simulink忽略以下内容金宝app配置参数>诊断>数据的有效性>数据存储内存块参数,如果您将它们设置为禁用所有.详情请参见数据存储诊断

  • 先读后写检测

  • 检测读后写

  • 检测写后写

结果及建议的行动

条件 建议的行动

您希望看到带有产生警告或错误设置的运行识别的诊断的结果。

在正常模式下模拟模型并解决诊断警告或错误。

检查被引用模型忽略的参数可调性信息

检查身份证mathworks.design.ParamTunabilityIgnored

检查参数可调性信息是否包含在“模型参数配置”对话框中。

描述

金宝appSimulink软件忽略在模型参数配置对话框中指定的可调性信息。此检查标识那些包含参数可调性信息的模型,如果模型被其他模型引用,那么Simulink软件将忽略这些参数可调性信息。金宝app

结果及建议的行动

条件 建议的行动
模型包含被忽略的参数可调性信息。 单击链接可在MATLAB中转换为等效的Simulink参数对象金宝app®工作区。

另请参阅

在生成的代码中创建可调校准参数(金宝app仿真软件编码器)

检查隐式信号分辨率

检查身份证mathworks.design.ImplicitSignalResolution

识别试图解析命名信号和状态的模型金宝app仿真软件。信号对象。

描述

要求Simulink金宝app软件解析所有命名信号和状态是低效的,并且会减缓增量代码生成和模型引用。此检查标识您可以关闭隐式信号解析并强制解析的那些信号和状态。

结果及建议的行动

条件 建议的行动
不是所有的信号和状态都被解析。 关闭隐式信号解析,并对已解析的每个信号和状态强制解析。

另请参阅

解析输出数据的信号对象

检查最佳总线虚拟性

检查身份证mathworks.design.OptBusVirtuality

确定可以非虚拟的虚拟总线。使这些总线是非虚拟的可以提高生成的代码效率。

描述

此检查标识包含跨越子系统边界的虚拟总线的块。将它们更改为非虚拟代码可以提高生成的代码效率。

结果及建议的行动

条件 建议的行动
块,指定跨越子系统边界的虚拟总线。 将高亮显示的总线更改为非虚拟总线。

能力与限制

您可以:

  • 在库模型上运行此检查。

  • 如果您有。则排除此检查中的块和图表金宝app仿真软件检查许可证。

另请参阅

检查初始条件不确定的离散时间积分器块

检查身份证mathworks.design.DiscreteTimeIntegratorInitCondition

识别具有既不由初始条件也不由常数块提供的状态端口和初始条件端口的离散时间积分器块。

描述

具有状态端口和初始条件端口的离散时间积分器块可能无法适当初始化,除非它们来自初始条件或常数块。当离散时间积分器块用于建模二阶或高阶动态系统时,这种情况更有可能发生。

结果及建议的行动

条件 建议的行动
离散时间积分器块在模型初始化阶段不初始化。 添加一个常量或初始条件块来提供外部初始条件端口。

能力与限制

您可以:

  • 在库模型上运行此检查。

  • 如果您有。则排除此检查中的块和图表金宝app仿真软件检查许可证。

另请参阅

识别禁用的库链接

检查身份证mathworks.design.DisabledLibLinks

禁用库链接的搜索模型。

描述

禁用库链接会导致意外的模拟结果。在保存模型之前解决禁用的链接。

请注意

这张支票可能与检查模型的块升级问题

结果及建议的行动

条件 建议的行动
库链接被禁用。 单击库链接>解决链接选项。

能力与限制

您可以:

  • 在库模型上运行此检查。

  • 如果您有。则排除此检查中的块和图表金宝app仿真软件检查许可证。

提示

  • 使用模型浏览器查找库链接。

  • 要启用中断的链接,右键单击模型中的块,以显示上下文菜单。选择库链接>解决链接

另请参阅

恢复禁用的链路

模型顾问排除概述(金宝app仿真软件检查)

检查跨越模型引用边界的虚拟总线的大量函数参数

检查身份证mathworks.design.CheckVirtualBusAcrossModelReferenceArgs

检查跨模型引用边界的虚拟总线信号,并标记跨模型引用边界使用虚拟总线会显著增加函数参数数量的情况。

描述

为了提高代码生成过程的速度,可以使用此检查来减少生成的函数参数的数量。如果检查找到一个模型,其中将为一个函数生成许多参数,您可以单击更新模型修改模型,使其产生更少的参数。

结果及建议措施

由于虚拟总线信号跨越模型引用边界而产生许多函数参数的方法减慢了代码生成过程。

条件 建议的行动
列出了为当前模型配置生成大量参数的方法,该检查可以通过修改模型来减少这些参数。 点击更新模型

点击更新模型重置轮廓尺寸而且外港块参数和插入信号转换块,以减少为模型生成的函数参数的数量。

另请参阅

模型接口上的非虚拟总线

识别参数化库链接

检查身份证mathworks.design.ParameterizedLibLinks

参数化库链接的搜索模型。

描述

无意的参数化库链接可能导致模型中出现意外的参数设置。这可能导致不恰当的模型操作。

结果及建议的行动

条件 建议的行动
列出了参数化的链接。 验证链接是否打算被参数化。

能力与限制

您可以:

  • 在库模型上运行此检查。

  • 如果您有。则排除此检查中的块和图表金宝app仿真软件检查许可证。

提示

  • 右键单击模型中的一个块以显示上下文菜单。选择连接选项并点击前往图书馆大厦从库中查看原始块。

  • 若要参数化库链接,请选择看面具下的样子,从上下文菜单中选择参数。

另请参阅

恢复禁用的链路

模型顾问排除概述(金宝app仿真软件检查)

识别未解决的库链接

检查身份证mathworks.design.UnresolvedLibLinks

在模型中搜索未解析的库链接,其中无法找到指定的库块。

描述

检查未解决的库链接。当存在未解析的库链接时,模型不会进行模拟。

结果及建议的行动

条件 建议的行动
库链接无法解决。 查找丢失的库块或替代库块。

能力与限制

您可以:

  • 在库模型上运行此检查。

  • 如果您有。则排除此检查中的块和图表金宝app仿真软件检查许可证。

另请参阅

修复未解决的图书馆链接问题

模型顾问排除概述(金宝app仿真软件检查)

识别可配置的子系统块,以转换为不同的子系统块

检查身份证mathworks.design.CSStoVSSConvert

搜索模型以识别模型或子系统级别的可配置子系统块。

结果及建议的行动

条件 建议的行动
识别可配置子系统块。 将这些块转换为不同的子系统块,以避免兼容性问题。看到可配置子系统

能力与限制

您可以在库模型上运行此检查。

另请参阅

转换为可变子系统

识别变体模型块,并将其转换为包含模型块选择的变体子系统

检查身份证mathworks.design.ConvertMdlrefVarToVSS

搜索模型进行识别变体模型块。

结果及建议的行动

条件 建议的行动

变体模型列出了模型中可用的块。

将这些块转换为不同的子系统块。

另请参阅

转换为变体

使用带有空条件的Variant对象识别Variant块

检查身份证mathworks.design.emptyVariantObjects

搜索模型以识别具有空Variant对象的Variant块或库。

结果及建议的行动

条件 建议的行动
列出了模型或库中具有空Variant对象的Variant块。 在变量对象中使用有效的条件。

另请参阅

变量控制介绍

检查函数调用连接的使用情况

检查身份证mathworks.design.CheckForProperFcnCallUsage

检查应用于函数调用连接性并可能影响模型执行的模型诊断设置。

描述

检查可能导致不确定模型执行的连通性诊断设置。

结果及建议的行动

条件 建议的行动
诊断>连通性>上下文相关的输入设置为禁用所有使用本地设置.这可能导致不确定的模型执行。 诊断>连通性>上下文相关的输入启用所有错误

另请参阅

函数调用子系统

检查数据存储内存块是否存在多任务处理、强类型和阴影问题

检查身份证mathworks.design.DataStoreMemoryBlkIssue

寻找与建模相关的问题数据存储内存块。

描述

检查多任务数据完整性、强类型和高范围数据存储的阴影。

结果及建议的行动

条件 建议的行动
数据存储名称重复Check设置为没有一个警告 考虑设置数据存储名称重复检查错误在“配置参数”对话框中,单击诊断>数据有效性窗格。

数据存储变量名在下列情况之一中不是强类型的:

  • 信号的属性方格块的参数对话框数据存储存储器

  • 全局数据存储名称

通过执行以下操作之一指定除auto以外的数据类型:

  • 选择数据类型而不是继承:汽车信号的属性方格块的参数对话框数据存储存储器块。

  • 如果使用全局数据存储名称,则在金宝app仿真软件。信号对象。

多任务数据存储Check设置为没有一个警告 考虑设置多任务数据存储检查错误在“配置参数”对话框中,单击诊断>数据有效性窗格。

能力与限制

如果你有金宝app仿真软件检查许可证,您可以从此检查中排除块和图表。

另请参阅

检查数据存储块是否开启了读写诊断功能

检查身份证mathworks.design.DiagnosticDataStoreBlk

对于模型中的数据存储块,启用读写诊断顺序检查,以检测运行时问题。

描述

检查读写诊断顺序检查。通过启用读写诊断,您可以检测潜在的运行时问题。

结果及建议的行动

条件 建议的行动
先读后写检测“Check”被禁用。 考虑启用先读后写检测在“配置参数”对话框中诊断>数据有效性窗格。
检测读后写“Check”被禁用。 考虑启用检测读后写在“配置参数”对话框中诊断>数据有效性窗格。
检测写后写“Check”被禁用。 考虑启用检测写后写在“配置参数”对话框中诊断>数据有效性窗格。

能力与限制

如果您有。则排除此检查中的块和图表金宝app仿真软件检查许可证。

提示

  • 运行时诊断会大大降低模拟速度。验证Simulink在模拟过程中不会产生警告或错误后,将金宝app它们设置为禁用所有

另请参阅

检查数据存储块样本时间,以确定建模错误

检查身份证mathworks.design.DataStoreBlkSampleTime

识别由于数据存储块的采样次数而导致的建模错误。

描述

检查数据存储块的连续或固定的小步骤采样时间。

结果及建议的行动

条件 建议的行动
模型中的数据存储块具有连续或固定的小步骤采样时间。 考虑使列出的块是离散的,或者用其中之一替换它们内存转到而且块。

能力与限制

如果你有金宝app仿真软件检查许可证,您可以从此检查中排除块和图表。

另请参阅

检查涉及数据存储访问的潜在订购问题

检查身份证mathworks.design.OrderingDataStoreAccess

查找可能导致结果不准确的读/写问题。

描述

在一次更新图,识别与数据存储块的“写前读”、“读后写”和“写后写”条件相关的潜在问题。

结果及建议的行动

条件 建议的行动
读和写(先读后写或先读后写)发生乱序。 考虑重构您的模型,使数据存储读块在数据存储写块之前执行。
多个写操作发生在一个时间步内。 将模型更改为每个时间步骤只写入一次数据,或者参考下面的Tips部分。

能力与限制

如果你有金宝app仿真软件检查许可证,您可以从此检查中排除块和图表。

提示

此检查执行静态分析,可能无法识别每个不适当使用的实例。具体来说,函数调用子系统、状态流图、用于代码生成的MATLAB、用于迭代器子系统和用于每个子系统都可能导致漏检和误报。要进行更全面的检查,请考虑在诊断>数据有效性“配置参数”对话框中的先读后写检测检测读后写,检测写后写

另请参阅

检查总线信号的结构参数使用情况

检查身份证mathworks.design.MismatchedBusParams

识别区块和金宝app仿真软件。信号对象,通过使用不匹配的结构初始化总线信号。

描述

在模型中,您可以使用MATLAB结构来初始化总线信号。例如,如果将总线信号通过单位延迟块,你可以设置初始条件结构的参数。有关使用结构初始化总线的基本信息,请参见为总线信号指定初始条件

运行此检查,通过将初始条件结构的形状和数值数据类型与总线信号的形状和数值数据类型相匹配,生成高效和可读的代码。匹配这些特征可以避免不必要的显式类型转换,并使用调用等替换逐字段结构的赋值memcpy

部分结构

此检查列出块和金宝app仿真软件。信号对象,通过使用部分结构初始化总线信号。在创建模型的迭代过程中,您可以使用部分结构来关注总线中信号元素的子集。对于一个成熟的模型,使用full结构来:

  • 生成可读且高效的代码。

  • 金宝app支持显式初始化未指定信号的建模样式。当使用部分结构时,Simulink隐式初始化未指定的信号。金宝app

有关完整结构和部分结构的更多信息,请参见创建完整的初始化结构而且为初始化创建部分结构

数据类型不匹配

此检查列出块和金宝app仿真软件。信号初始条件结构导致数据类型不匹配的对象。这些结构的字段具有与相应总线信号元素的数据类型不匹配的数值数据类型。

该检查不检测块的不匹配,例如单位延迟块,它隐式地将初始条件的数据类型转换为输入信号。

当您将初始条件结构配置为在生成的代码中显示为可调全局结构时,请通过匹配数据类型避免不必要的显式类型转换。看到为总线信号生成可调初始条件结构(金宝app仿真软件编码器)

结果及建议的行动

条件 建议的行动

块或信号对象使用部分结构

考虑使用函数金宝appSimulink.Bus.createMATLABStructure来创建一个完整的初始条件结构。

结构字段的数据类型与对应信号元素的数据类型不匹配

考虑将结构定义为金宝app仿真软件。参数对象,并创建金宝app仿真软件。公共汽车对象,以用作总线信号和参数对象的数据类型。要控制数值型数据类型,请使用金宝app仿真软件。公共汽车Element总线对象中的对象。

另请参阅

检查延迟,单位延迟和零阶保持块速率转换

检查身份证mathworks.design.ReplaceZOHDelayByRTB

识别延迟单位延迟,或零级举行用于速率转换的块。用实际的块替换这些块率转换块。

描述

如果一个模型使用延迟单位延迟,或零级举行块提供输入和输出信号之间的速率转换,Simulink用内置的隐藏替换这些块金宝app率转换块。在编译后的框图中,一个黄色符号和字母“RT”出现在替换的框图的左上角。这个替换会影响模型的行为,如下所示:

  • 这些块失去了延迟信号或实现零阶保持的算法设计属性。相反,它们获得速率跃迁行为。

  • 此建模技术仅适用于特定的转换配置(从慢到快延迟而且延迟块,从快到慢零级举行块)。将块采样时间设置为等于较慢的速率延迟而且单位延迟的块和目标零级举行块)。

  • 当下游或上游块的块采样时间发生变化时,这些延迟单位延迟而且零级举行块可能不会执行速率转换。例如,设置源和目标采样次数相等停止速率转换。然后,这些块采用它们最初的算法设计属性。

  • 块采样时间显示了关于采样时间率的不完全信息。块代码以两种不同的速率运行以处理数据传输。然而,块采样时间和采样时间颜色显示它为单速率块。使用示例时间信息的工具和MATLAB脚本将其行为建立在此信息之上。

另一种选择是替换延迟单位延迟,或零级举行率转换块。

  • 该技术确保了块行为的明确结果。延迟单位延迟,或零级举行块根据各自的算法设计来分别延迟和保持信号。只有率转换块执行实际的速率转换。

  • 使用实际的率转换如果您希望指定确定性行为或要实现的内存缓冲区类型,则速率转换块提供了一个可配置的解决方案来处理数据传输。

使用此检查来识别模型中的实例延迟单位延迟零级举行块进行隐藏替换,以提供信号之间的速率转换。点击升级模型将这些块替换为实际的率转换块。

结果及建议的行动

条件 建议的行动
的实例延迟单位延迟,或零级举行用于速率转换的块。 不需要任何操作。
的实例延迟单位延迟,或零级举行用于速率转换的块。

检查可以识别这些实例,并允许您升级模型。

  1. 点击升级模型用实际的代替率转换块。

  2. 保存对模型的更改。

如果不选择更换延迟单位延迟和/或零级举行率转换, Simuli金宝appnk继续用内置的速率转换块对这些块进行隐藏替换。

能力与限制

您可以:

  • 在库模型上运行此检查。

  • 如果您有。则排除此检查中的块和图表金宝app仿真软件检查许可证。

另请参阅

检查对slDataTypeAndScale的调用

检查身份证mathworks.design.CallslDataTypeAndScale

识别对内部函数的调用slDataTypeAndScale

描述

在Simulink的一些以前版本中,打开保存在较早版本中的金宝app模型会触发自动升级到用于数据类型处理的代码。自动升级插入对内部函数的调用slDataTypeAndScale.尽管Simulin金宝appk继续支持该函数的某些用法,但如果金宝app您消除了对它的调用,就会得到更清晰、更快的代码。

金宝appSimulink不支持调用金宝appslDataTypeAndScale当:

  • 第一个参数是a金宝app仿真软件。AliasType对象。

  • 第一个参数是a金宝app仿真软件。NumericType具有属性的对象IsAlias设置为true。

运行检查对slDataTypeAndScale的调用识别呼叫slDataTypeAndScale需要或建议更换的。在大多数情况下,运行检查并遵循推荐的操作将删除调用。您可以忽略未接通的来电。运行检查,除非你确定没有电话slDataTypeAndScale

结果及建议的行动

条件 建议的行动
需要更换的案例 手动或自动替换呼叫slDataTypeAndScale.所列出的情况要求您替换对的调用slDataTypeAndScale
建议更换个案 对于列出的情况,建议您手动或自动替换对的调用slDataTypeAndScale
手工巡检案例 检查每个列出的案例,以确定是否应该手动升级。

能力与限制

如果你有金宝app仿真软件检查许可证,您可以从此检查中排除块和图表。

提示

  • 不手动插入呼叫slDataTypeAndScale变成一个模型。该功能仅供内部使用。

  • 运行检查对slDataTypeAndScale的调用调用Simulink金宝app函数slRemoveDataTypeAndScale.直接调用这个函数可以提供更广泛的转换选项。但是,您很少需要更多的转换选项。

另请参阅

  • 有关升级数据类型和规模的更多信息,请在MATLAB命令窗口中执行以下命令:

    • 帮助slDataTypeAndScale

    • 帮助slRemoveDataTypeAndScale

  • 模型顾问排除概述(金宝app仿真软件检查)

检查总线信号作为向量处理

检查身份证mathworks.design.BusTreatedAsVector

识别Simulink视为向量的总线信号。金宝app

描述

不能使用Simulink软件隐式转换为向量的总线信号。金宝app相反,要么插入一个总线到向量转换块之间的总线信号和它提供的块输入端口,或使用金宝appSimulink.BlockDiagram.addBusToVector命令。

结果及建议的行动

条件 建议的行动

总线信号隐式转换为向量。

使用金宝appSimulink.BlockDiagram.addBusToVector或插入一个总线到Vector块。

模型未配置为识别Simulink视为向量的总线信号。金宝app

在“配置参数”对话框中,单击诊断>连接窗格中,设置总线信号作为矢量处理错误

行动的结果

点击修改在隐式地将总线信号转换为向量的块的输入端口插入一个总线到向量块。

提示

  • 运行前执行此检查检查输出端口和合并块的初始化参数的一致性

  • 有关更多信息,请参见识别自动总线转换

另请参阅

检查可能延迟的函数调用子系统返回值

检查身份证mathworks.design.DelayedFcnCallSubsys

识别可能因Simulink软件插入隐式信号转换块而延迟的函数调用返回值。金宝app

描述

为了使信号驻留在连续的内存中,Simulink软件可以在函数调用启动器块输入端口前自动插入金宝app隐式信号转换块。这可能导致从调用函数调用子系统返回信号值时出现一步延迟。通过确保信号来自函数调用系统中的信号块,可以避免延迟。或者,如果延迟是可以接受的,在受影响的输入端口前面插入一个单元延迟块。

结果及建议的行动

条件 建议的行动
列出的块输入端口可以有一个隐式信号转换块。

决定返回信号值的一步延迟对于列出的信号是否可以接受。

  • 如果延迟不可接受,则重做模型,以便输入信号来自调用子系统内部。

  • 如果延迟是可以接受的,在每个列出的输入端口前面插入一个单元延迟块。

能力与限制

如果你有金宝app仿真软件检查许可证,您可以从此检查中排除块和图表。

另请参阅

信号转换

单位延迟

模型顾问排除概述(金宝app仿真软件检查)

识别具有连续采样时间和非浮点数据类型的块输出信号

检查身份证mathworks.design.OutputSignalSampleTime

查找连续采样时间,非浮点输出信号。

描述

非浮点信号可能不能在不丢失信息的情况下表示连续变量。

结果及建议的行动

条件 建议的行动
具有连续采样次数的信号具有非浮点数据类型。 在识别的信号上,改变采样时间为离散或固定在小步长([0 1])。

能力与限制

如果你有金宝app仿真软件检查许可证,您可以从此检查中排除块和图表。

另请参阅

什么是采样时间?

模型顾问排除概述(金宝app仿真软件检查)

检查Merge块的使用情况

检查身份证mathworks.design.MergeBlkUsage

识别带有可能导致意外行为的参数设置的Merge块,并帮助将模型迁移到简化的初始化模式。

请注意

与其他支票一起运行此支票迁移到简化初始化模式概述

描述

在R2008b中引入简化初始化模式,提高了仿真结果的一致性。有关更多信息,请参见简化初始化方式而且经典初始化模式

中的设置合并块,如果使用经典初始化模式,则会导致问题。它还建议设置Merge块的一致行为。子检查的结果包含两种类型的语句:Failed和Warning。失败的语句确定了必须手动解决的问题,然后才能将模型迁移到简化的初始化模式。警告语句标识迁移后可能发生的问题或行为变化。

结果及建议的行动

条件 建议的行动
检查Merge块的运行时诊断设置。
  1. 2 .在“配置参数”对话框中设置检测多个驱动块在同一时间执行步骤错误

  2. 在再次运行此检查之前,验证模型模拟无误。

检查正在使用PIL模拟模式的模型块。 简化的初始化模式不支持用于模型引用的processor -in- loop (PIL)模金宝app拟。
检查带有无法迁移的实例的库块。 检查每个块的失败子检查结果,以确定纠正措施。
检查单输入合并块。

替换Mux块,用于产生输入信号和合并一个多输入块合并块。

单输入合并简化初始化模式不支持块。金宝app

检查具有未指定的根合并块初始输出价值。

的显式值初始输出参数的合并块,则Simul金宝appink使用输出数据类型的默认初始值。

一个根合并Block是一个合并块,该块的输出端口没有连接到其他端口合并块。有关默认初始值的信息,请参见初始化信号值

检查输入端口偏移量非零的Merge块。

清除允许不相等的端口宽度参数合并块。

请注意

考虑使用合并只阻塞需要真正合并的信号元素。方法可以将其他元素与合并的元素组合在一起连接块。

检查Merge块是否有未连接的输入或者有来自非条件执行子系统的输入。

设置输入数量参数合并块的数量合并块的输入。你必须把每个输入连接到一个信号上。

验证每一个合并块输入由一个有条件执行的子系统驱动。合并块不能直接由迭代器子系统或者一个不是有条件执行的子系统的块。

检查Merge块的输入是否在有条件执行的子系统外部被组合或重新排序。

的组合或重新排序合并块输入信号发生在有条件执行的子系统中。这样的设计可以使用Mux总线的创造者,或选择器块。

检查输入样本时间不一致的合并块。

验证每个输入信号合并Block有相同的样品时间

如果不这样做,可能会导致不可预测的行为。因此,简化的初始化模式不允许不一致的采样时间。

检查由单一源驱动的多个输入端口的Merge块。 验证合并块没有由相同的有条件执行子系统或有条件执行驱动的多个输入信号模型块。
检查使用信号对象指定的合并块初始输出价值。

验证以下行为是否可接受。

在简化初始化模式下,信号对象不能指定初始输出参数合并块。虽然你仍然可以初始化输出信号为合并类的初始化结果可以覆盖合并块。

请注意

金宝appSimulink生成一个警告,表示信号对象的初始值已被忽略。

另请参阅

检查输出端口块的使用情况

检查身份证mathworks.design.InitParamOutportMergeBlk

识别带有可能导致意外行为的参数设置的输出端口块和条件子系统,并帮助将模型迁移到简化的初始化模式。

请注意

与其他支票一起运行此支票迁移到简化初始化模式概述

描述

在R2008b中引入简化初始化模式,提高了仿真结果的一致性。这种模式对于不为有条件执行的子系统输出端口指定初始条件的模型尤其重要。有关更多信息,请参见简化初始化方式而且经典初始化模式

此Model Advisor检查标识模型中的输出端口块和条件子系统,如果您使用简化初始化模式,它们可能会导致问题。它还建议设置输出端口块的一致行为。子检查的结果包含两种类型的语句:Failed和Warning。失败的语句确定了必须手动解决的问题,然后才能将模型迁移到简化的初始化模式。警告语句标识迁移后可能发生的问题或行为变化。

结果及建议的行动

条件 建议的行动
检查迭代器子系统中需要消耗时间的块。

在迭代器子系统层次结构中,不要使用需要维护两次连续执行之间的时间的服务的块。

由于迭代器子系统可以在给定的时间步骤中执行多次,因此在两次这样的执行之间并没有明确定义运行时间的概念。在迭代器子系统中使用这些块可能会导致意外行为。

检查有冲突的信号缓冲区要求的输出端口块。

外港块有一个通过它的函数调用触发器或函数调用数据依赖信号,以及标准数据信号。一些标准数据信号需要显式信号缓冲区来初始化相应子系统的输出信号。但是,缓冲函数调用相关的信号会导致函数调用数据依赖冲突。

考虑修改模型,通过单独的外港块。有关违背函数调用数据依赖关系的示例,请参阅示例模型sl_subsys_semantics

由于下列原因之一,标准数据信号可能需要额外的信号拷贝:

  • 外港块由一个输出不能被覆盖的块驱动。的地面Block和常数块就是这种块的例子。

  • 外港Block与另一个Block共享同一个信号源外港块在同一个子系统中,或者嵌套在当前子系统中的一个,但具有不同的初始输出值。

  • 外港块连接到a的输入合并

  • 的输入信号之一外港块指定了金宝app仿真软件。信号具有显式初始值的。

检查由总线信号驱动的输出端口块初始输出值不是标量。 外港经典初始化模式不支持IC (Initial Condition)结构,而简化初始化模式支持IC结构。金宝app因此,当将模型从经典模式迁移到简化模式时,指定一个标量初始输出参数。迁移完成后,要为总线信号的不同元素指定不同的初始值,可以使用IC结构。有关更多信息,请参见创建初始条件结构

检查需要显式信号拷贝的输出端口块。

驱动的总线信号的显式副本外港块用于相应子系统输出信号的初始化。插入一个信号转换外港块,然后设置输出参数信号转换总线副本

由于下列一个或多个原因,标准数据信号可能需要额外的信号副本:

  • 具有不能被覆盖的输出的块正在驱动外港块。的地面Block和常数块就是这种块的例子。

  • 外港Block与另一个Block共享同一个信号源外港块在同一个子系统中,或者嵌套在当前子系统中的一个,但具有不同的初始输出值。

  • 外港块连接到a的输入合并

  • 的输入信号之一外港块指定了金宝app仿真软件。信号具有显式初始值的。

属性继承的合并输出端口块初始输出值从已配置为当块被禁用时重置的输出端口块。 外港块正在驱动一个Merge块,不要设置它们禁用时的输出参数重置
检查合并外港由嵌套的有条件执行的子系统驱动的块。

确定新行为是否外港Blocks是可以接受的。如果不能接受,在迁移到简化初始化模式之前,修改模型以解释新的行为。

检查合并的输出端口块,当这些块被禁用时重置。

设置禁用时的输出参数外港举行.此设置是必需的,因为外港块连接到合并块。

有关更多信息,请参见外港

检查有未定义的输出端口块初始输出初始条件源无效的值。

验证以下行为是否可接受。

初始输出参数未指定([]),它从源块继承初始输出。如果至少有一个来源外港块不是继承初始值的有效源,该块使用该数据类型的默认初始值。

对于简化初始化模式,有效源和外港块可以继承初始输出值分别为:常数初始条件合并(带有初始输出)、状态流图、函数调用模型引用或有条件执行的子系统块。

检查具有自动速率转换的输出端口块。

金宝appSimulink已经插入了率转换块的输入外港块。指定初始输出每个参数外港块。

否则,执行以下步骤:

  1. 在“配置参数”对话框中,单击解算器窗格,清除该选项自动处理数据传输的速率转换

  2. 再次运行这个Model Advisor检查。

检查有特殊信号存储需求和未定义的输出端口块初始输出价值。

验证以下行为是否可接受。

指定初始输出参数。外港块。将此值设置为[](空矩阵)使用输出数据类型的默认初始值。

检查初始输出设置当它们被禁用时重置的输出端口块。

指定初始输出参数外港块。

您必须指定初始输出值为配置为当它们被禁用时重置的块。

检查初始输出设置通过函数调用数据依赖信号的输出端口块。

您不能指定初始输出的值外港块,因为函数调用数据依赖信号正在通过它。设置初始输出值:

  1. 设置初始输出参数外港[]

  2. 在数据依赖项信号的源提供初始值,而不是在外港块。

方法指定的输出端口块初始输出价值。

验证以下行为是否可接受。

在简化初始化模式下,信号对象不能指定初始输出参数外港块。的输入或输出信号仍然可以初始化外港类的初始化结果可能会被覆盖外港块。

请注意

如果您正在处理一个有条件执行的子系统外港块时,Simu金宝applink会生成一个警告,表明信号对象的初始值被忽略了。

检查带有警告实例的库块。

在迁移到简化初始化模式之前,检查每个块的警告子检查结果。

检查未连接或连接到接地块的合并输出端口块。

验证以下行为是否可接受。

外港Block正在驾驶合并块,但其输入要么未连接,要么已连接地面块。在经典的初始化模式下,未连接或接地的输出端口不更新合并信号,即使它们的父子系统在有条件地执行。然而,在简化的初始化模式中,当它们的父子系统有条件执行时,这些输出端口将更新合并信号的值为零。

方法获取的输出端口块初始输出值,当它们被迁移时。

验证以下行为是否可接受。

初始输出参数外港块未指定。因此,简化的初始化模式将假定初始输出的值外港块是由输入信号派生而来的。这个假设可能会导致不同的初始化行为。

如果这种行为不可接受,在迁移到简化初始化模式之前修改您的模型。

检查外部外港具有显式初始输出

验证以下行为是否可接受。

在经典初始化模式下,初始输出而且禁用时的输出参数说明外港块必须匹配它们的源外港块。

在简化初始化模式下,Simulink设置金宝app初始输出参数的外部输出端口块到[](空矩阵)和禁用时的输出参数举行

检查在初始化过程中从有条件执行的子系统读取输入的块。

验证以下行为是否可接受。

一些块,例如离散时间积分器块,在经典初始化模式下,从有条件执行的子系统中读取它们的输入。金宝appSimulink将此步骤作为一种优化技术来执行。

这种优化在简化初始化模式下是不允许的,因为有条件执行的子系统在初始化后的第一个时间步骤的输出可能与相应的初始值声明不同外港块。特别是,如果子系统在第一个时间步是活动的,则会发生这种差异。

类型的输出端口块是否存在迁移冲突对话框随着初始输出值的来源

具有相同库链接的其他Outport块实例要么无法迁移,要么正在以不同的方式进行迁移。审查的结果检查带有无法迁移的实例的库块了解它们的其他实例的不同迁移路径外港块。

外港块将保持其当前设置并使用其指定的初始输出价值。

检查使用的输出端口块的迁移冲突输入信号随着初始输出源价值。

具有相同库链接的其他Outport块实例要么无法迁移,要么正在以不同的方式进行迁移。审查的结果检查带有无法迁移的实例的库块了解它们的其他实例的不同迁移路径外港块。

外港块当前指定初始输出[](空矩阵),和禁用时的输出作为举行.这意味着每个输出端口不执行初始化,而是隐式地依赖源块来初始化其输入信号。

迁移完成后,参数初始输出值的来源将设置为输入信号来反映这种行为。

检查具有SimEvents的输出端口块的迁移冲突®语义。

具有相同库链接的其他Outport块实例要么无法迁移,要么正在以不同的方式进行迁移。审查的结果检查带有无法迁移的实例的库块了解它们的其他实例的不同迁移路径外港块。

外港块将继续使用初始输出的价值[](空矩阵)和禁用时的输出设置举行.金宝appSimulink将维护这些设置,因为它们有条件执行的父子系统连接到SimEvents块。

检查输入大小可变且未指定的最内部输出端口块的迁移冲突初始输出

对于这些输出端口块,只有当块的父子系统重新启用时,信号大小才会发生变化。因此,Simulink金宝app隐式地假设初始输出即使参数没有指定,参数也等于0,[]。因此,除非您指定该参数,否则当模型迁移到简化初始化模式时,Model Advisor将显式地将该参数设置为0。

具有相同库链接的其他Outport块实例要么无法迁移,要么正在以不同的方式进行迁移。审查的结果检查带有无法迁移的实例的库块了解它们的其他实例的不同迁移路径外港块。

检查使用默认接地值作为初始输出的Outport块是否存在迁移冲突。 的参数初始输出设置为[](空矩阵)和源的外港无效的初始条件源。因此,在简化初始化模式下,块使用默认的初始值作为初始输出。具有相同库链接的其他Outport块实例要么有错误,要么正在以不同的方式进行迁移。
的显式规范,检查合并的输出端口块是否存在迁移冲突初始输出 检查子检查的结果检查带有无法迁移的实例的库块以了解每个输出端口块的其他实例的不同迁移路径。对于其余的输出端口块,初始输出设置为[](空矩阵)和禁用时的输出设置为举行分别为简化初始化模式。

另请参阅

检查离散时间积分器块的使用情况

检查身份证mathworks.design.DiscreteBlock

识别具有可能导致意外行为的参数设置的离散时间积分器块,并帮助将模型迁移到简化的初始化模式。

请注意

与其他支票一起运行此支票迁移到简化初始化模式概述

描述

在R2008b中引入简化初始化模式,提高了仿真结果的一致性。有关更多信息,请参见简化初始化方式而且经典初始化模式

此Model Advisor检查标识模型中离散时间积分器块中的设置,如果使用简化初始化模式,这些设置可能会导致问题。它还建议设置离散时间积分器块的一致行为。子检查的结果包含两种类型的语句:Failed和Warning。失败的语句确定了必须手动解决的问题,然后才能将模型迁移到简化的初始化模式。警告语句标识迁移后可能发生的问题或行为变化。

结果及建议的行动

条件 建议的行动

检查其参数的离散时间积分器块初始条件设置设置为输出

确定新行为是否离散时间积分器Blocks是可以接受的。如果不能接受,在迁移到简化初始化模式之前,修改模型以解释新的行为。

检查离散时间积分器块初始条件设置参数设置为状态(最有效)并且处于一个使用触发采样时间的子系统中。

使用周期采样时间为块,或设置初始条件设置输出

检查迭代器子系统中需要消耗时间的块。

在迭代器子系统层次结构中,不要使用需要维护两次连续执行之间的时间的服务的块。

由于迭代器子系统可以在给定的时间步骤中执行多次,因此在两次这样的执行之间并没有明确定义运行时间的概念。在迭代器子系统中使用这些块可能会导致意外行为。

另请参阅

检查迁移到简化初始化模式的模型设置

请注意

不要单独运行此检查。与其他支票一起运行此支票迁移到简化初始化模式概述

检查身份证mathworks.design.ModelLevelMessages

识别模型块中的设置和模型配置参数,它们可能导致意外的行为,并帮助将模型迁移到简化的初始化模式。

描述

在R2008b中引入简化初始化模式,提高了仿真结果的一致性。有关更多信息,请参见简化初始化方式而且经典初始化模式

此Model Advisor检查确定模型配置参数和中的问题模型当您迁移到简化初始化模式时,模型中的块可能会导致问题。子检查的结果包含两种类型的语句:Failed和Warning。失败的语句确定了必须手动解决的问题,然后才能将模型迁移到简化初始化模式。警告语句标识迁移后可能发生的问题或行为变化。

在运行这个Model Advisor一致性检查之后,如果您单击探索的结果按钮,则消息只属于非库链接的块。

请注意

因为很难撤消这些更改,所以选择文件>另存恢复点为在迁移到简化初始化模式之前备份您的模型。

有关更多信息,请参见型号配置参数:连通性诊断

结果及建议的行动

条件 建议的行动

验证所有Model块都使用简化初始化模式。

将model块引用的模型迁移到简化初始化模式,然后迁移顶级模型。

验证简化初始化模式设置

配置参数>未指定的初始化检测简化

行动的结果

点击修改设置原因如下:

  • Model参数设置为简化

  • 如果输出端口块具有初始输出参数设置为空字符向量,[],然后SourceOfInitialOutputValue参数设置为输入信号

  • 如果输出端口有一个空的初始输出一个可变大小的信号,然后初始输出设置为零。

另请参阅

检查模型中的s函数

检查身份证mathworks.design.SFuncAnalyzer

对Simulink模型或子系统中的s函数执行质量检查。金宝app

描述

s函数分析器对s函数执行质量检查,以确定指定模型中的改进和潜在问题。

结果及建议的行动

条件 建议的行动
中修改连续状态mdlOutputs方法。 修改连续状态在一个主要的时间步长和使用ssSetSolverNeedsResets函数代码中的函数。
中修改连续状态mdlUpdate方法。 只在主要的时间步长和使用时修改连续状态ssSetSolverNeedsResets函数代码中的函数。
对s函数离散态进行了修正mdlOutputs迈出了一小步。 修改离散状态的主要步骤由ssIsMajorTimeStep函数。
对s函数模态向量进行了修改mdlOutputs方法在一个小步骤。 只在由。保护的主要步骤修改模式向量sslsMajorTimeStep函数。
s函数使用静态或全局变量来声明内部状态。 使用显式声明状态ssSetNumDiscStates函数或通过创建数据存储对全局数据进行建模
s函数具有连续状态,但采样时间不声明为连续的。 指定连续采样时间ssSetSampleTime函数。
s函数有离散状态,但是mdlOutputs而且mdlUpdate方法是组合的。 定义mdlOutputs而且mdlUpdate方法分离,只修改离散状态mdlUpdate方法。
s函数设置了SS_OPTION_CAN_BE_CALLED_CONDITIONALLY选项,当具有类状态数据或多个采样次数时。 当s函数具有类似于状态的数据或多个采样次数时,删除选项。
墨西哥人机器上不存在编译器。 检查是否存在或安装墨西哥人机器上的编译器。
s函数在编译模型时遇到错误。 检查诊断查看器输出并重新编译模型。

检查驱动派生端口的非连续信号

检查身份证mathworks.design.NonContSigDerivPort

识别驱动派生端口的非连续信号。

描述

驱动微分端口的非连续信号导致求解器在每次信号改变值时重置,这减慢了模拟。

结果及建议的行动

条件 建议的行动
驱动导数端口的模型中存在非连续信号。
  • 使指定的信号连续。

  • 将接收这些信号的连续块替换为块的离散状态版本。

能力与限制

如果你有金宝app仿真软件检查许可证,您可以从此检查中排除块和图表。

另请参阅

s函数的运行时诊断

检查身份证mathworks.design.DiagnosticSFcn

检查数组边界和求解器一致性功能块在模型中。

描述

验证是否功能模块遵循Simulink应用于其内置模块的ODE求解器一致性规则。金宝app

结果及建议的行动

条件 建议的行动
解算器数据不一致设置为没有一个 2 .在“配置参数”对话框中设置解算器数据不一致警告错误
超出数组边界设置为没有一个 2 .在“配置参数”对话框中设置超出数组边界警告错误

能力与限制

如果你有金宝app仿真软件检查许可证,您可以从此检查中排除块和图表。

另请参阅

检查模型是否有外国字符

检查身份证mathworks.design.characterEncoding

检查与当前编码不兼容的字符

描述

检查模型文件中不能用当前编码表示的字符。当您试图保存模型时,这可能会导致错误。

结果及建议的行动

条件 建议的行动
发现不兼容字符 将当前编码更改为utf - 8通过使用slCharacterEncoding

提示

Upgrade Advisor报告显示了所需的编码,或者您可以使用以下命令从模型中检索编码:

get_param (modelname SavedCharacterEncoding)

要更改编码,请使用slCharacterEncoding.此设置适用于当前的MATLAB会话。如果您重新启动MATLAB并想要再次保存相同的模型,您必须对当前编码进行相同的更改。

更多信息请参见:

另请参阅

识别模型中的单元不匹配

检查身份证mathworks.design.UnitMismatches

识别模型中端口之间单元不匹配的实例。

描述

检查模型中端口之间单元不匹配的实例。

结果及建议的行动

条件 建议的行动
发现单元不匹配 更改一个不匹配的单元设置,以匹配另一个端口的单元设置。

另请参阅

识别模型中的自动单元转换

检查身份证mathworks.design.AutoUnitConversions

识别模型中自动单元转换的实例。

描述

识别模型中自动单元转换的实例。

结果及建议的行动

条件 建议的行动
发现自动单元转换 检查转换的单元是否符合模型的要求。

另请参阅

识别模型中不允许的单元系统

检查身份证mathworks.design.DisallowedUnitSystems

识别模型中不允许的单元系统的实例。

描述

识别模型中不允许的单元系统的实例。

结果及建议的行动

条件 建议的行动
发现不允许的单元系统 选择一个符合配置的单元系统的单元,或选择另一个单元系统。有关更多信息,请参见限制单位制

另请参阅

识别模型中未定义的单元

检查身份证mathworks.design.UndefinedUnits

识别模型中未在单元数据库中定义的单元规范实例。

描述

识别模型中未在单元数据库中定义的单元规范实例。

结果及建议的行动

条件 建议的行动
发现未定义单元 将单元更改为Simulink支持的单元。金宝app金宝app

另请参阅

识别模型中不明确的单元

检查身份证mathworks.design.AmbiguousUnits

在模型中识别不明确的单元规范的实例,例如单元数据库中重复的单元名称。

描述

在模型中识别不明确的单元规范的实例,例如单元数据库中重复的单元名称。

结果及建议的行动

条件 建议的行动
发现模棱两可的单位 您可以忽略警告或使用格式指定具有相应单位系统的单位unit_system::unit_name

另请参阅

检查模型的块升级问题

检查身份证mathworks.design.Update

检查常见的块升级问题。

描述

检查模型中的块,以确定由于使用新版本的Simulink软件而导致的兼容性问题。金宝app

结果及建议的行动

条件 建议的行动
发现有兼容性问题的块。 点击修改修复检测到的块问题。
检查二级API s函数的更新状态。 考虑用第2级s函数替换第1级s函数。

行动的结果

点击修改用最新版本替换Simulink软件以前版本中的块。金宝app

另请参阅

检查模型中需要编译时信息的块升级问题

检查身份证mathworks.design.UpdateRequireCompile

检查常见的块升级问题。

描述

检查因升级到新版本的Simulink软件而导致的兼容性问题块。金宝app当模型处于编译模式时,一些块升级需要收集信息或数据。对于这个检查,模型被设置为编译模式,然后检查升级。

结果及建议的行动

条件 建议的行动
模型包含查找表查找表(2-D)块和一些块指定使用最近的输入使用上面的输入用于查找方法。 取代查找表块和查找表(2-D)块与n-D查找表块。不要申请使用最近的输入使用上面的输入对于查找方法;选择另一个选项。
模型包含查找表查找表(2-D)块和一些块在插值时首先执行乘法运算。 取代查找表块和查找表(2-D)块与n-D查找表块。然而,因为n-D查找表块首先执行除法,这种替换可能会导致结果的数值差异。
模型包含查找表查找表(2-D)块。其中一些块指定Interpolation-Extrapolation随着查找方法但是它们的输入和输出不是相同的浮点类型。 取代查找表块和查找表(2-D)块与n-D查找表块。然后更改外推方法或用于块替换的端口数据类型。

模型包含单位延迟块与样品时间设置为-1继承一个连续的采样时间。

取代单位延迟块与内存块。

检查多任务处理的数据存储内存块

行动的结果

点击修改用最新版本替换Simulink软件以前版本中的块。金宝app

另请参阅

检查模型是否保存为SLX格式

检查身份证mathworks.design.UseSLXFile

检查模型是否保存为SLX格式。

描述

检查模型是否保存为SLX格式。

结果及建议的行动

条件 建议的行动
模型没有以SLX格式保存 考虑升级到SLX文件格式,以使用Simulink中的最新功能。金宝app

能力与限制

您可以在库模型上运行此检查。

提示

项目可以帮助您将模型升级到SLX格式,并在源代码控制中保存文件修订历史。看到在项目中从MDL转换为SLX并保存修订历史

另请参阅

检查模型或库是否保存在当前版本中

检查身份证mathworks.design.CheckSavedInCurrentVersion

检查模型、库或子系统是否保存在当前版本的Simulink中。金宝app

描述

检查模型文件是否保存在当前的Simulink版本中。金宝app

结果及建议的行动

条件 建议的行动
模型、库或子系统未保存在当前版本的Simulink中。金宝app 考虑在当前版本的Simulink中保存模型文件。金宝app

能力与限制

您可以在您的模型、库和子系统上运行此检查。

提示

项目可以帮助您将项目中的所有模型和库保存到当前的Simulink版本中。金宝app看到升级所有项目模型、库和MATLAB代码文件

另请参阅

检查SB2SL块的模型

检查身份证mathworks.金宝appsimulink.SB2SL.Check

检查模型没有过时的SB2SL块。

描述

检查模型是否包含过时的SB2SL块。

结果及建议的行动

条件 建议的行动
模型包含过时的SB2SL块 考虑将模型升级到当前的SB2SL块。

行动的结果

点击更新SB2SL块用最新版本替换块。

另请参阅

检查模型历史属性

检查身份证mathworks.design.SLXModelProperties

检查已编辑的模型历史属性

描述

检查模型中可与源代码控制工具关键字替换一起使用的已编辑的Model History属性值。此关键字替换与SLX文件格式不兼容。

在MDL文件格式中,您可以配置一些模型属性,以使用源代码控制工具关键字替换。如果以SLX格式保存模型,则源代码控制工具不能执行关键字替换。当您第一次将MDL文件保存为SLX时,来自这种关键字替换的模型文件中的信息会被缓存,并且不会再次更新。模型中的模型属性历史窗格和模型信息块从那时起显示陈旧的信息。

结果及建议的行动

条件 建议的行动
编辑的模型历史属性 手动或自动将属性重置为默认值。单击按钮重置,或者手动检查和更改这些属性,打开Model properties对话框并查看History窗格。

能力与限制

您可以在库模型上运行此检查。

另请参阅

确定可以与外部源代码控制工具交互的Model Info块

检查身份证mathworks.design.ModelInfoKeywordSubstitution

使用此检查可以找到可以通过关键字替换由外部源代码控制工具更改的Model Info块。

描述

该检查在$符号内的Model Info块中搜索可以被外部源代码控制工具覆盖的字符向量。使用第三方源代码控制工具关键字扩展可能会在您提交模型文件时损坏它们。关键字替换在SLX模型文件格式中不可用。

对于源代码控制工具更灵活的接口,使用Simulink项目而不是Model Info块。金宝app看到关于项目的源代码控制

结果及建议的行动

条件 建议的行动

Model Info块包含如下字段:关键字

检查报告中的字段列表,然后从Model Info块中删除关键字字符向量。

另请参阅

识别使用配置管理器的模型信息块

检查身份证mathworks.design.ModelInfoConfigurationManager

使用此检查来查找使用配置管理器的Model Info块。

描述

使用配置管理器的模型信息块允许使用外部源代码控制工具进行有风险的关键字替换。使用第三方源代码控制工具关键字扩展可能会在您提交模型文件时损坏它们。关键字替换在SLX模型文件格式中不可用。Model Info块的Configuration Manager将在未来的版本中被删除。

对于源代码控制工具更灵活的接口,使用Simulink项目而不是Model Info块。金宝app看到关于项目的源代码控制

结果及建议的行动

条件 建议的行动

模型信息块正在使用配置管理器。

点击删除配置管理器

另请参阅

检查型号是否可升级并行转换器工具箱

检查身份证mathworks.design.serdesUpgrades

列出保存在SerDes Toolbox™上一个版本中过时的块。

描述

此检查搜索并列出可升级的SerDes工具箱块,以便与当前版本兼容。

结果及建议的行动

条件 建议的行动
找到保存在旧版本SerDes Toolbox中的块。 点击升级SerDes工具箱块升级SerDes工具箱块以与当前版本兼容。

行动的结果

点击升级SerDes工具箱块升级过时的SerDes工具箱块以与当前版本兼容。

另请参阅

检查模型的遗留3DoF或6DoF块

检查身份证mathworks.design.Aeroblks.CheckDOF

列表3DoF和6DoF块已经过时。

描述

这个检查从3.13 (R2014a)之前的库版本中搜索3DoF和6DoF块。

结果及建议的行动

条件 建议的行动
发现配置了旧版本3DoF或6DoF块的块。 点击替换3DoF和6DoF块用最新版本替换块。

行动的结果

点击替换3DoF和6DoF块用最新版本替换块。

另请参阅

检查型号航空航天Blockset导航模块

检查身份证mathworks.design.Aeroblks.CheckNAV

搜索3.21 (R2018a)之前的三轴惯性测量单元、三轴陀螺仪和三轴加速度计块。

描述

此检查搜索已在R2018a中更新的三轴惯性测量单元、三轴陀螺仪和三轴加速度计块。

结果及建议的行动

条件 建议的行动
R2018a之前的三轴惯性测量单元,三轴陀螺仪和三轴加速度计块。

在R2018a或更高版本中,如果您以前没有求解稳态条件,那么现在就保存模型。如果您之前为模型求解了稳态条件,那么再次求解这些稳态条件,然后保存模型。

另请参阅

检查并更新库中的掩码块以使用提升参数

检查身份证mathworks.design.CheckAndUpdateOldMaskedBuiltinBlocks

检查应该更新的库以使用提升的参数。

描述

该检查在R2011b之前创建的库中搜索应该更新为使用提升参数的屏蔽块。从R2011b开始,如果一个块参数没有提升,它在链接块中的值将被锁定到库块中的值。该检查排除了子系统、模型引用、s -函数和m - s -函数类型的块。

结果及建议的行动

条件 建议的行动
找到需要更新的库 点击更新.更新库之后,再次运行检查

能力与限制

您可以:

  • 在库模型上运行此检查。

  • 如果您有。则排除此检查中的块和图表金宝app仿真软件检查许可证。

另请参阅

检查和更新带有不必要的imread()函数调用的掩码图像显示命令

检查身份证mathworks.design.CheckMaskDisplayImageFormat

使用图像显示命令与不必要的调用来识别掩码imread ()函数。

描述

该检查搜索对控件进行不必要调用的掩码显示命令imread ()函数,并使用掩码显示命令更新它们imread ()函数。从2013a开始,使用图像路径而不是RGB三重矩阵来指定掩码图像的性能和内存优化是可用的。

结果及建议的行动

条件 建议的行动
的不必要调用屏蔽显示命令imread ()函数被找到。 点击更新.一旦块被更新,再次运行检查。

能力与限制

您可以:

  • 在库模型上运行此检查。

  • 如果您有。则排除此检查中的块和图表金宝app仿真软件检查许可证。

另请参阅

检查并更新掩码以确认图标绘制命令依赖于掩码工作区

检查身份证mathworks.design.CheckMaskRunInitFlag

检查标识掩码图标绘制命令是否依赖于掩码工作区。

描述

此检查确定掩码图标绘制命令是否依赖于掩码工作区,并更新RunInitForIconRedraw相应的属性。如果没有掩码工作区依赖项,则RunInitForIconRedraw设置为,反之,如果存在掩码工作空间依赖,则设置为

设置的值RunInitForIconRedraw当没有掩码工作区依赖时,通过在绘制块图标之前不执行掩码初始化代码来优化性能。

结果及建议的行动

条件 建议的行动

找到依赖于或独立于掩码工作区的掩码绘图命令。

点击更新.一旦块被更新,再次运行检查。

能力与限制

您可以:

  • 在库模型上运行此检查。

  • 如果您有。则排除此检查中的块和图表金宝app仿真软件检查许可证。

另请参阅

使用MaskTabNames参数识别在掩码对话框中指定选项卡的掩码块

检查身份证mathworks.design.CheckAndUpdateOldMaskTabnames

控件在掩码对话框中指定选项卡的掩码块MaskTabNames参数。

描述

属性的掩码块MaskTabNames参数以编程方式在掩码对话框中创建选项卡。从R2013b开始,对话框控件用于在掩码对话框的选项卡中对参数进行分组。

结果及建议的行动

条件 建议的行动
的掩码块MaskTabNames参数可以在掩码对话框中以编程方式创建选项卡。 点击升级可在行动部分。一旦块被更新,再次运行检查。

能力与限制

您可以在库模型上运行此检查。

另请参阅

为严格的单精度设计识别有问题的操作

检查身份证mathworks.design.StowawayDoubles

对于严格的单精度设计,这种检查识别引入双精度操作和非最佳模型设置的块。

描述

对于严格的单精度设计,这种检查识别引入双精度操作和非最佳模型设置的块。

结果及建议的行动

条件 建议的行动
模型中发现的双精度浮点操作。

验证:

  • 块输入和输出数据类型设置正确。

  • 在“配置参数”对话框中,默认为未指定的数据类型设置为

Model使用的库标准对于严格的单一设计来说不是最优的。

验证:

  • 模型使用的所有特定于目标的数学库都支持单精度实现。金宝app

    配置参数>标准数学库C99 (ISO)

逻辑信号不是作为布尔数据实现的。

验证:

  • 在“配置参数”对话框中,将逻辑信号实现为布尔数据被选中。

能力与限制

如果你有金宝app仿真软件检查许可证,您可以从此检查中排除块和图表。

另请参阅

检查get_param调用CompiledSampleTime块

检查身份证mathworks.design.CallsGetParamCompiledSampleTime

使用此检查可以在您的工作环境中识别包含get_param函数调用以返回块CompiledSampleTime参数。

描述

对于多速率块(包括子系统),Simulink将块编译的采样时间作为块中采样速率的单元数组返回金宝app。返回值是双精度值对的单元格数组。只接受此返回值作为双精度值对的MATLAB代码,在使用多速率块调用时可能返回错误。使用此检查在您的环境中识别此类代码。修改这些代码实例,以接受双精度值对组成的单元格数组。

例如,考虑一个变量blkTs,它被分配为多速率块的编译样例时间。

blkTs = get_param(block,'CompiledSampleTime');

以下是一些例子,在这些例子中,原始代码仅在blkTs是一对双精度数据且block是单速率数据块时才起作用:

  • 示例1

    if isinf(blkTs(1)) disp('found constant sample time')结束

    由于blkTs现在是一个单元格数组,Simulink给出了这样的错金宝app误消息:

    未定义函数'isinf'用于'cell'类型的输入参数
    相反,请使用以下代码,其中blkt可以是一个单元格数组或一对双精度对象。

    if isequal(blkTs, [inf,0]) disp('found constant sample time')结束
  • 示例2

    if all(blkTs == [-1,-1]) disp('found triggers sample time')结束

    对于上面的例子,由于blkTs现在是一个单元格数组,Simulink给出了这个错误:金宝app

    未定义的函数'eq'用于'cell'类型的输入参数

    相反,请使用以下代码,其中blkt可以是一个单元格数组或一对双精度对象。

    if isequal(blkTs, [-1,-1]) disp('发现触发采样时间')结束
  • 示例3

    if (blkTs(1) == -1) disp('found a activated context')结束

    同样,由于blkTs现在是一个单元格数组,Simulink给出了这个错误:金宝app

    未定义的函数'eq'用于'cell'类型的输入参数

    相反,使用以下代码。

    if ~iscell(blkTs) blkTs = {blkTs};length(blkTs) thisTs = blkTs{idx};if (thisTs(1) == -1) disp('发现一个已触发的上下文')end end

    上面的代码检查触发类型的样例时间(触发的或异步的)。如果一个块除了触发或异步之外还有恒定的采样时间([inf,0]),或者当一个块有多个异步速率时,这个可选属性会检测触发类型的采样时间。

该检查扫描环境中的MATLAB文件。如果检查发现MATLAB代码的实例包含get_param调用来输出块编译样例时间,Upgrade Advisor将显示这些结果。它建议您修改从多速率块接受块编译样例时间的代码。

结果及建议的行动

条件 建议的行动
没有MATLAB文件调用CompiledSampleTime get_param(块) 没有一个
一些MATLAB文件调用CompiledSampleTime get_param(块) 如果文件使用块CompiledSampleTime参数来自多速率块,修改这些文件以接受参数作为双精度值对的单元格数组

另请参阅

检查是否所有模拟输出都作为一个单一的Simulink返回。金宝appSimulationOutput对象

检查身份证mathworks.design.CheckSingleSimulationOutput

使用此检查来确定是否将模拟结果作为单个返回金宝app仿真软件。SimulationOutput对象。

描述

此检查扫描您的模型,以验证参数是否ReturnWorkspaceOutputs启用。类型返回模拟输出金宝app仿真软件。SimulationOutput交互式模拟时。仿真输出包括信号、状态、输出、DSM日志记录和范围和到工作空间块日志记录。

ReturnWorkspaceOutputs启用时,它提供:

  • 更容易管理模拟数据。

  • 自动访问SimulationMetadata

  • 兼容多个并行模拟和批处理模拟。

结果及建议的行动

条件 建议的行动
模拟输出不作为单个返回金宝app仿真软件。SimulationOutput对象

将所有模拟输出返回为单个金宝app仿真软件。SimulationOutput对象

另请参阅

检查模型参数初始化和调优问题

检查身份证mathworks.design.ParameterTuning

使用此检查可以识别在初始化参数或调优参数时模型中出现的问题。

描述

这个检查扫描你的模型参数初始化和调优问题,比如:

  • 区块间速率不匹配

  • 在有条件执行的子系统中除以零问题

  • 控件端口值无效索引向量

结果及建议的行动

条件 建议的行动

该模型存在速率转换问题。

选择自动处理数据传输的速率转换解算器模型配置参数的窗格。

该模型在具有控制端口的有条件执行子系统中存在除零问题。

在命令提示符下,运行

set_param (control_port“DisallowConstTsAndPrmTs”,“上”)

模型在有条件执行的子系统中有一个无效的控制端口值。

在命令提示符下,运行

set_param (control_port“DisallowConstTsAndPrmTs”,“上”)

行动的结果

选择升级模型解决模型中与参数初始化和调优相关的问题。

另请参阅

检查跨模型引用边界的虚拟总线

检查身份证mathworks.design.CheckVirtualBusAcrossModelReference

检查跨模型参考边界的虚拟总线信号。

描述

此检查标识根级别轮廓尺寸而且外港块,以及带有虚拟总线输出的模型块,需要更新以更改为非虚拟总线信号。

如果检查发现问题,单击更新模型转换根级别轮廓尺寸而且外港配置为虚拟总线在以下情况下使用非虚拟总线的块:

  • 对根级轮廓尺寸blocks -启用输出为非虚拟总线参数并插入信号转换阻塞后轮廓尺寸块。的信号转换块配置为输出虚拟总线。

  • 对根级外港blocks -启用在父模型中输出为非虚拟总线参数。

  • 模型blocks -用于端口的外港块被更新以解决问题,插入一个信号转换块后对应的端口模型块。的信号转换块配置为输出虚拟总线。

建议的行动和结果

可单击解决问题升级模型

请注意

运行分析模型层次结构并继续升级顺序检查顶层模型,然后向下通过模型引用层次结构。

点击升级模型转换受影响的根级别轮廓尺寸而且外港为虚拟总线配置的块,在模型中使用非虚拟总线:

  • 使用函数原型控件

  • 方法执行c++代码生成I/O参数步进方法选择。

    或者,您可以将c++代码生成函数规范设置更改为默认步进方法

    1. 配置参数>代码生成>接口窗格中,单击配置c++类接口

    2. 在对话框中设置功能规范参数默认步进方法

  • 使用具有可变尺寸信号的总线

  • 使用关联的非自动存储类外港块信号

    • 只有当您拥有模型所需的目标生成许可证时,才会发生对非自动存储类的转换。例如,ERT目标需要嵌入式Coder许可证。

  • 使用导出函数模型外港块由非虚拟总线驱动

  • 模型引用模型包含的块外港已固定的块-单击升级模型更新模型块,引用模型外港分析模型层次结构并继续升级顺序检查。

另请参阅

检查依赖于信号帧状态的自定义库块的模型

检查身份证mathworks.design.DSPFrameUpgrade

该检查标识模型中依赖于信号帧状态的自定义库块。

描述

此检查在依赖于信号的帧状态的模型中搜索自定义库块。检查分析块,建议修复,并给出修复的原因。您必须手动进行修复。

结果及建议的行动

条件 建议的行动

该检查查找依赖于信号的帧状态的自定义库块。

按照升级顾问给出的建议操作。

能力与限制

您只能在模型中的自定义库块上运行此检查。

您必须手动进行修复。

只有安装了DSP系统工具箱™,才会出现此检查。

另请参阅

框架处理(DSP系统工具箱)

检查型号s功能升级问题

检查身份证“mathworks.design.CheckForSFcnUpgradeIssues”

在模型上使用这种检查来确定S-function的升级兼容性问题。这些问题可能包括使用32位api、使用不兼容选项进行编译,或者使用已弃用的独立复杂api。下面的结果和建议部分描述了与修复程序相关的一些常见问题和信息。

描述

当升级您的S-function以使用最新版本中的特性时,此检查将扫描您的模型,以警告S-function升级不兼容问题。如果检查的结果给出警告或错误,请根据描述修复您的C MEX S-functions。

结果及建议的行动

条件 建议的行动

不支持定制的s函数。金宝app

用可用的兼容选项重新编译s函数。看到当前版本不支持定制的MEX文件金宝app更多信息。

S-function没有使用最新的API (墨西哥人-R2018a).

使用最新标志重新编译(墨西哥人-R2018a).看到MEX文件使用过时的选项编译更多信息。

s函数使用32位函数。

根据中的说明修改代码MEX文件调用一个32位函数

S-function使用已弃用的独立复杂api (mxGetPi, mxSetPi, mxGetImagData, mxSetImagData)。

使用交错的复杂api,并使用最新的标志(墨西哥人-R2018a).看到升级MEX文件以使用交错复杂API更多信息。

s函数使用已弃用的类型不安全数据API (mxGetData, mxSetData)。 使用类型安全的数据api并重新编译代码。看到MEX文件调用无类型数据访问函数更多信息。
S-function在未来版本中编译,当前版本不支持。金宝app 看到在MATLAB版本中构建的MEX文件在当前版本中不支持金宝app重新编译您的文件。

另请参阅

检查快速加速器信号记录

检查身份证mathworks.design.CheckRapidAcceleratorSignalLogging

在快速加速模式下模拟模型时,使用此检查来查找登录到模型中全局禁用的信号。快速加速器模式支持信号记录。金宝app使用此检查可全局启用信号日志记录。

描述

此检查扫描您的模型,以查看模拟是否处于快速加速模式,以及该模型是否包含带有信号记录的信号。如果检查找到一个实例并且全局禁用信号日志记录,则会出现一个全局启用信号日志记录的选项。

结果及建议的行动

条件 建议的行动

模拟模式不是快速加速器。

一个也没有。您可以在快速加速模式下启用信号记录。

模拟模式为快速加速器。升级顾问没有找到启用信号日志记录的信号。

一个也没有。该模型不使用信号记录。如果要记录信号,则为信号和全局启用信号记录。

模拟模式为快速加速器。升级顾问发现启用了信号日志记录的信号。然而,信号记录的全局设置被禁用。

如果要在启用信号日志记录的情况下记录信号,则全局启用信号日志记录。

信号日志记录已经全局启用。

一个也没有。

行动的结果

选择修改在模型中启用全局信号日志记录。

另请参阅

检查虚拟总线输入块

检查身份证mathworks.design.VirtualBusUsage

检查总线输入信号的一组块。

描述

检查总线输入信号的一组块。

从R2015b开始,对需要非总线或非虚拟总线输入的块的虚拟总线信号输入可能会导致错误。可以指定总线对象作为输出数据类型的块的示例包括总线的创造者Block和根轮廓尺寸块。在这种情况下,当它们有一个虚拟总线输入时,会导致错误的块是:

  • 赋值

  • 延迟

    延迟block只会在你使用block参数对话框来:

    • 设置初始条件为MATLAB结构或零。

    • 为指定一个值国家的名字

  • 排列尺寸

  • 重塑

  • 选择器

  • 单位延迟

    单位延迟block只会在你使用block参数对话框来:

    • 设置初始条件为MATLAB结构或零。

    • 为指定一个值国家的名字

  • 向量连接

结果及建议的行动

条件 建议的行动

虚拟总线信号输入到这些块:

  • 赋值

  • 延迟(如果您从对话框中指定一个初始条件,该初始条件为MATLAB结构或零,值为国家的名字不是空的)

  • 排列尺寸

  • 重塑

  • 选择器

  • 单位延迟(如果指定的初始条件为MATLAB结构或零,则为国家的名字不是空的)

  • 向量连接

在“升级顾问”中,单击修改

支票附有总线到向量块试图将虚拟总线输入信号转换为矢量信号。对于升级顾问识别但无法修复的问题,请手动修改模型。详情请参见识别自动总线转换

行动的结果

点击修改插入一个总线到向量块的输入端口。

对于许多模型,运行Upgrade Advisor会修改模型,这样总线信号就不会被视为向量。然而,对于某些模型,即使在运行检查之后,您也可能会遇到兼容性问题。手动修改您的模型以解决这些问题。

在您使用Upgrade Advisor编译模型之后,Simulink Editor有时会指示您需要保存模型(模金宝app型是脏的),即使您没有进行更改。要防止此模型再次出现此问题,请保存该模型。

建模模式 问题 解决方案

数据存储内存块与数据类型设置为继承:汽车

一个数据存储内存与其关联的块数据存储读数据存储写读写总线信号数据的块必须使用总线对象。

数据存储内存块,设置数据类型的信号属性总线:< BusObject >

信号转换输出参数匹配输入总线类型

一个信号转换块的输出参数设置为Nonvirtual总线需要虚拟总线输入。

一个信号转换块的输出参数设置为虚拟总线需要一个非虚拟总线输入。

若要创建输入信号的副本,请设置输出信号复制

合并开关,或多端口切换有多个总线输入的块

合并开关,或多端口切换具有多个总线输入的块要求这些输入具有相同的名称和层次结构。

重新配置模型,以便总线输入具有相同的名称和层次结构。

轮廓尺寸阻止输出虚拟总线并指定值港维

一个根轮廓尺寸输出到虚拟总线的块必须继承维度。

设置轮廓尺寸港维的信号属性11(继承)

Mux块使用非虚拟总线输入

一个Mux块不能接受非虚拟总线信号。

若要将输出视为数组,请替换Mux向量连接块。

如果需要虚拟总线输出,请使用总线的创造者阻塞来合并信号。

总线到向量块没有虚拟总线信号输入

非总线信号不需要总线到向量块。

删除总线到向量块。

赋值块使用虚拟总线输入

升级顾问将转换赋值Y0矢量的端口总线输入。

添加一个总线到向量赋值块。

s函数使用非虚拟总线

不是Level-2 C s -函数的s -函数不支持非虚总线信号。金宝app

将s函数更改为Level-2 C s函数。

考虑使用s函数生成器块创建一个二级C s函数。

具有参数化数据类型的状态流图

在状态流图中,如果数据类型是总线对象,则不能根据另一个输入或输出参数化输入或输出的数据类型。

对于参数化的端口,设置数据类型总线:<对象名称>

在状态流程图中具有总线操作的子系统

一个轮廓尺寸状态流图中子系统内部的块,如果其信号是总线,则需要总线对象数据类型。

轮廓尺寸块,设置数据类型总线:<对象名称>

地面用作总线源的块

a的输出信号地面块不能是总线的源。

使用一个常数块与恒定值设置为0和输出数据类型信号属性设置为总线:<对象名称>

外港块使用单元素总线对象数据类型

的输入外港如果块指定总线对象作为其数据类型,则块必须是总线。

外港块,设置数据类型继承:汽车

另请参阅

检查具有恒定采样时间的根输出

检查身份证mathworks.design.CheckConstRootOutportWithInterfaceUpgrade

使用此检查来识别具有固定采样时间的根输出端口,这些时间用于AUTOSAR目标、函数原型控制或模型c++类接口。

描述

当使用AUTOSAR目标、函数原型控制或模型c++类接口时,不支持具有恒定采样时间的根输出。金宝app使用此检查来识别具有此条件的根Outport块,并根据推荐修改这些块。

结果及建议的行动

条件 建议的行动

与AUTOSAR目标、函数原型控制或模型c++类接口一起使用的具有恒定采样时间的根输出端口。

考虑以下任何一个问题:

  • 将块的采样时间设置为基本采样时间。

  • 确定恒定采样时间的来源,将其采样时间设置为基本采样时间。

  • 在块之前放置一个带有继承采样时间(-1)的速率转换块。

另请参阅

分析模型层次结构并继续升级顺序

检查身份证com.mathworks.金宝appSimulink.UpgradeAdvisor.UpgradeModelHierarchy

检查子模型并指导您进行升级检查。

描述

此检查标识此模型的子模型,并指导您通过升级检查来运行非编译和编译检查。Advisor提供了帮助完成这些任务的工具:

  • 如果检查找到了子模型,它将轮流在每个子模型上运行Upgrade Advisor,并继续升级序列。如果您有一个模型层次结构,您需要依次检查和更新每个子模型。

  • 如果没有子模型,您仍然需要继续检查序列,直到您运行了非编译和编译检查。

您必须按此顺序运行升级检查:首先是不需要编译时信息且不触发Update Diagram的检查,然后是编译检查。

点击继续升级顺序运行下一个检查。如果有子模型,这将打开下一个模型。继续点击继续升级顺序直到支票通过。

结果及建议的行动

条件 建议的行动
发现儿童模特 点击继续升级顺序运行下一个检查。如果有子模型,这将关闭当前的Upgrade Advisor会话,并打开层次结构中下一个模型的Upgrade Advisor。
没有子模型,但是要运行更多的检查 如果没有子模型,单击继续升级顺序以刷新选择编译检查的升级顾问。编译检查触发更新图(用).运行下一步检查并采取建议的操作。返回此复选框时,单击继续升级顺序直到支票通过。

提示

升级模型层次结构的最佳实践是检查和升级每个模型,从叶端开始,一直到根模型。

当你点击继续升级顺序时,升级顾问会在层次结构中尽可能远的地方打开叶模型。后续步骤指导您将层次结构从叶模型升级到根模型。

打开升级顾问时,选中的检查不需要编译时信息,也不会触发更新图。默认情况下,触发更新图的检查不被选中以运行,并且被标记为.当您在层次结构上使用升级顾问时,请继续单击继续升级顺序通过这一系列的分析:

  1. Upgrade Advisor依次从叶到根打开每个模型和库,并选择非编译检查。运行检查,采取建议的操作,然后单击继续升级顺序打开下一个模型并继续。

  2. 当您到达层次结构的根端时,Upgrade Advisor然后以相同的顺序再次打开每个模型(但不是库),并只选择需要模型编译的检查。运行检查,采取建议的操作,然后单击继续升级顺序打开下一个模型。继续,直到到达层次结构的末尾,并且该检查通过。

另请参阅

检查数据存储访问权限

检查身份证mathworks.design.ConflictsForDataStoreReadWriters

在对数据存储进行读写时,识别潜在的执行命令敏感性。

描述

读写同一数据存储的块的执行顺序可以改变模拟结果。当同一层次结构中的块访问相同的数据存储时,执行顺序是不确定的。

结果及建议的行动

条件 建议的行动

数据存储同一层次结构中的多个块访问的内存块。

要强制执行块的执行顺序,请考虑以下情况:

  • 在块之间添加数据依赖项。

  • 设置块优先级。

  • 将块移动到单独的函数调用子系统块中并调度它们。

另请参阅

检查数据存储读块和数据存储写块的相对执行顺序

检查身份证mathworks.design.TaskBasedSorting

检查数据存储读和数据存储写块的遗留排序和基于任务的排序之间的相对执行顺序变化。

描述

遗留模型使用块排序来确定块执行顺序。使用基于任务的排序,涉及数据存储内存块的相对执行顺序可以改变。此检查检测更改,并提供一个选项以使用原始的执行顺序更新您的模型。

结果及建议的行动

条件 建议的行动
数据存储内存块的执行顺序发生变化。您需要原始的执行命令。 单击修改按钮。

另请参阅

检查模型和库引用中的大小写不匹配

检查身份证mathworks.design.CaseSensitiveBlockDiagramNames

识别并修复对模型和库的不区分大小写的引用。

描述

从R2020a开始,Simulin金宝appk模型和库名称区分大小写。该检查检测并提供一个选项来修复对模型和库的不区分大小写的引用。

结果及建议的行动

条件 建议的行动
该检查在对模型和库的引用中查找大小写不匹配。 按照升级顾问给出的建议操作。

另请参阅