使用仿真软件金宝app®Model Advisor检查以配置您的模型进行模拟。
金宝app仿真软件编码器检查(金宝app仿真软件编码器)
金宝appSimulink检查检查(金宝appSimulink检查)
R2008b中引入了简化的初始化方式,以提高仿真结果的一致性。对于没有为有条件执行的子系统输出端口指定初始条件的模型,这种模式尤其重要。有关更多信息,请参见简化初始化模式和经典初始化模式.
使用Model Advisor签入迁移到简化的初始化模式帮助将模型迁移到简化的初始化模式。
检查ID:mathworks.design.UnconnectedLinesPorts
检查未连接的行或端口。
此检查列出未连接的线路或端口。它们可能难以传播信号属性,如数据类型、样本时间和维度。
请注意
连接到地面/终结器块的端口将通过此测试。
条件 | 建议操作 |
---|---|
行,输入端口或输出端口是未连接的。 | 连接的信号。双击未连接项列表,定位故障。 |
你可以:
在您的库模型上运行这个检查。
如果您有一个,请从此检查中排除块和图表金宝appSimulink Check™许可证。
使用PortConnectivity
命令获取描述块输入或输出端口的结构阵列。
常见的块属性有关的信息PortConnectivity
命令。
Model Advisor排除概述(金宝appSimulink检查)
检查ID:mathworks.design.rootinportspec.
检查根模型import块是否完全定义了维度、样本时间和数据类型。
使用没有完全定义维度、样本时间或数据类型的根模型导入块可能会导致不期望的模拟结果。金宝appSimulink软件从下游块反向传播维度、样本时间和数据类型,除非你显式地给它们赋值。
条件 | 建议操作 |
---|---|
根级别Inport块具有未定义的属性。 | 完全定义根级导入块的属性。 |
如果你有一个金宝app仿真软件检查许可证,您可以从此检查中排除块和图表。
以下配置通过此检查:
配置参数>求解器>定期采样时间约束被设置为确保独立的采样时间
对于出口函数模型,继承采样时间没有标记。
Model Advisor排除概述(金宝appSimulink检查)
检查ID:mathworks.design.OptimizationSettings
检查可能导致非最佳代码生成和仿真的优化。
这个检查检查可以提高代码效率和模拟时间的优化状态。
条件 | 建议操作 |
---|---|
指定的优化已关闭。 | 选择以下优化复选框优化“配置参数”对话框中的窗格:
选择以下优化复选框优化“配置参数”对话框中的窗格:
在“配置参数”对话框中选择以下优化复选框:
选择以下优化复选框优化“配置参数”对话框中的窗格: 请注意 模型顾问仅在存在状态流时检查这些参数®图表在模型中。
|
应用寿命(天)设为无穷大。这可能会导致昂贵的64位计数器的使用。 | 如果不打算选择停止时间。 |
指定的诊断,可以增加模拟模型所需的时间,设置为警告 或错误 . |
选择
|
指定的嵌入式编码器®参数。 | 如果您有嵌入式编码器许可证,并且您使用的是基于erct的系统目标文件:
|
如果系统包含模型块和被引用的模型处于Accelerator模式,模拟模型需要生成和编译代码。
检查
模型配置参数:代码生成优化(金宝app仿真软件编码器)
检查ID:mathworks.design.modelrefsimconfig概念
检查在加速模拟期间Simulink更改配置参数设置的参考模型。金宝app
对于Accelerator模式中引用的模型,Simulink忽略了您设置为以外的值的以金宝app下配置参数的设置没有任何
.
超过数组界限
诊断>数据的有效性>Inf或NaN块输出
诊断>数据的有效性>单数矩阵划分
诊断>数据的有效性>包装上溢出
此外,对于Accelerator模式中引用的模型,Simulink忽略了以下内容金宝app配置参数>诊断>数据的有效性>数据存储内存块参数,如果将它们设置为非禁用所有
.有关详细信息,请参阅数据存储诊断.
写前检测读
读后检测写
写后检测写
条件 | 建议操作 |
---|---|
您希望查看使用设置运行已识别的诊断以产生警告或错误的结果。 |
在正常模式下模拟模型,并解决诊断警告或错误。 |
检查ID:mathworks.design.ParamTunabilityIgnored
检查“模型参数配置”对话框中是否包含参数可调性信息。
金宝appSimulink软件忽略“模型参数配置”对话框中指定的可调性信息。此检查标识包含Simulink软件如果其他模型引用的Simulink软件将忽略Simulink软件的型号。金宝app
条件 | 建议操作 |
---|---|
模型包含被忽略的参数可调性信息。 | 点击链接转换为MATLAB中的等效Simulink参数对象金宝app®工作区。 |
在生成的代码中创建可调谐校准参数(金宝app仿真软件编码器)
检查ID:mathworks.design.ImplicitSignalResolution
识别试图解析指定信号和状态的模型金宝app仿真软件。信号
对象。
要求Simulink金宝app软件解决所有命名信号和状态是低效的,并且会减慢增量代码生成和模型引用。此检查识别您可以关闭隐式信号解析并强制解析的信号和状态。
条件 | 建议操作 |
---|---|
并不是所有的信号和状态都能被解析。 | 关闭隐式信号解析,并对已解析的每个信号和状态强制解析。 |
检查ID:mathworks.design.OptBusVirtuality
识别可以非virtual的虚拟总线。使这些公共汽车非宽恕可提高生成的代码效率。
此检查标识包含跨子系统边界的虚拟总线的块。将这些转换为非范围提高了生成的代码效率。
条件 | 建议操作 |
---|---|
指定跨越子系统边界的虚拟总线的块。 | 将突出显示的总线更改为NonVirtual。 |
你可以:
在您的库模型上运行这个检查。
如果您有一个,请从此检查中排除块和图表金宝app仿真软件检查许可证。
Model Advisor排除概述(金宝appSimulink检查)
检查ID:mathworks.design.DiscreteTimeIntegratorInitCondition
用状态端口和初始条件端口识别离散时间积分器块,这些端口既不是由初始条件块也不是常数块提供的。
带有状态端口和初始条件端口的离散时间积分器块可能不会被适当地初始化,除非它们是从初始条件块或常量块馈送。当离散时间积分器块用于建模二阶或高阶动态系统时,这种情况更有可能发生。
条件 | 建议操作 |
---|---|
离散时间积分器块在模型初始化阶段没有初始化。 | 添加一个常量或初始条件块以馈送外部初始条件端口。 |
你可以:
在您的库模型上运行这个检查。
如果您有一个,请从此检查中排除块和图表金宝app仿真软件检查许可证。
集成电路块
持续的块
Model Advisor排除概述(金宝appSimulink检查)
检查ID:mathworks.design.disableabledLiblink
禁用库链接的搜索模型。
禁用的库链接可能导致意外的模拟结果。在保存模型之前解析禁用的链接。
请注意
这个检查可能与检查模型以进行块升级问题.
条件 | 建议操作 |
---|---|
库链接被禁用。 | 单击库链接>解析链接选项在上下文菜单中。 |
你可以:
在您的库模型上运行这个检查。
如果您有一个,请从此检查中排除块和图表金宝app仿真软件检查许可证。
使用模型浏览器查找库链接。
要启用断开的链接,右键单击模型中的块以显示上下文菜单。选择库链接>解析链接.
Model Advisor排除概述(金宝appSimulink检查)
检查ID:mathworks.design.CheckVirtualBusAcrossModelReferenceArgs
检查跨模型引用边界的虚拟总线信号,并标记跨模型引用边界使用虚拟总线显著增加函数参数数量的情况。
为了提高代码生成过程的速度,您可以使用此检查来减少生成的函数参数的数量。如果检查发现一个模型,其中将为一个函数生成许多参数,则可以单击更新模型修改模型,以便它生成更少的参数。
由于虚拟总线信号越过模型参考边界而产生许多函数参数的方法会减慢代码生成过程。
条件 | 建议操作 |
---|---|
列出了为当前模型配置生成大量参数的方法,该检查可以通过修改模型来减少这些参数。 | 点击更新模型. |
点击更新模型重置inport.和外港块参数和插入信号转换块,以减少为模型生成的函数参数的数量。
检查ID:mathworks.design.parameterizedLiblinks.
搜索参数化库链接的模型。
非故意的参数化库链接可能会导致模型中出现意外的参数设置。这可能会导致模型操作不当。
条件 | 建议操作 |
---|---|
列出了参数化的链接。 | 验证链接是否要参数化。 |
你可以:
在您的库模型上运行这个检查。
如果您有一个,请从此检查中排除块和图表金宝app仿真软件检查许可证。
右键单击模型中的块以显示上下文菜单。选择链接选项
然后点击去图书馆块
去图书馆看原始街区。
要参数化库链接,请选择看下面具
,从上下文菜单中选择参数。
Model Advisor排除概述(金宝appSimulink检查)
检查ID:mathworks.design.unresolvedliblinks.
搜索未解决的库链接的模型,无法找到指定的库块。
检查未解决的库链接。模型不会模拟,而图书馆链接有未解决的图书链接。
条件 | 建议操作 |
---|---|
库链接未得到解决。 | 找到缺少的库块或替代方案。 |
你可以:
在您的库模型上运行这个检查。
如果您有一个,请从此检查中排除块和图表金宝app仿真软件检查许可证。
Model Advisor排除概述(金宝appSimulink检查)
检查ID:mathworks.design.csstovssconvert.
搜索模型以标识模型或子系统级别的可配置子系统块。
条件 | 建议操作 |
---|---|
识别可配置的子系统块。 | 将这些块转换为变体子系统块以避免兼容性问题。看可配置子系统. |
您可以在您的库模型上运行这个检查。
检查ID:mathworks.design.ConvertMdlrefVarToVSS
搜索要识别的模型变体模型块。
条件 | 建议操作 |
---|---|
变体模型列出了模型中可用的块。 |
将这些块转换为变体子系统块。 |
检查ID:mathworks.design.emptyvariantObjects.
搜索模型以标识具有空变量对象的变体块或库。
条件 | 建议操作 |
---|---|
列出了模型或库中具有空Variant对象的Variant块。 | 在变量对象中使用有效的条件。 |
检查ID:mathworks.design.CheckForProperFcnCallUsage
检查适用于功能呼叫连接的模型诊断设置,可能会影响模型执行。
检查可能导致不确定性模型执行的连接诊断设置。
条件 | 建议操作 |
---|---|
>连接>上下文相关的输入被设置为禁用所有 或使用本地设置 .这可能导致非确定性模型执行。 |
集诊断>连接>上下文相关的输入来启用所有为错误 . |
检查ID:mathworks.design.datastoremememoryblkissue.
寻找与之相关的建模问题数据存储内存块。
检查多任务数据完整性,强类型和更高范围的数据存储阴影。
如果你有一个金宝app仿真软件检查许可证,您可以从此检查中排除块和图表。
数据存储存储块的存储类(金宝app仿真软件编码器)
Model Advisor排除概述(金宝appSimulink检查)
检查ID:mathworks.design.DiagnosticDataStoreBlk
对于模型中的数据存储块,请启用读写诊断顺序检查以检测运行时问题。
检查读写诊断订单检查。通过启用读写诊断,可以检测潜在的运行时问题。
如果您有一个,请从此检查中排除块和图表金宝app仿真软件检查许可证。
.
运行时诊断可以大大减慢模拟。一旦验证了Simulink在模拟期间不会生成警告或错误,金宝app请将其设置为禁用所有
.
Model Advisor排除概述(金宝appSimulink检查)
检查ID:mathworks.design.datastoreBlksAmpletime.
由于数据存储块的采样时间来确定建模错误。
检查数据存储块,用于连续或固定内部步骤逐步采样时间。
条件 | 建议操作 |
---|---|
模型中的数据存储块具有连续或固定的小步采样时间。 | 考虑使列出的块是离散或替换它们内存或去和从块。 |
如果你有一个金宝app仿真软件检查许可证,您可以从此检查中排除块和图表。
检查ID:mathworks.design.orderingdataStoreacess.
寻找读/写问题,可能导致结果不准确。
在一次更新图,识别与数据存储块的“写前读”、“读后写”和“写后写”条件相关的潜在问题。
条件 | 建议操作 |
---|---|
读写(读写前或写入后读取条件)发生无序。 | 考虑重构您的模型,以便数据存储读块在数据存储写块之前执行。 |
多个写入在单个时间内发生。 | 将模型更改为每次步骤仅在一次写入数据,或者参考以下提示部分。 |
如果你有一个金宝app仿真软件检查许可证,您可以从此检查中排除块和图表。
此检查执行静态分析,可能无法识别不正确使用的每个实例。具体而言,函数调用子系统,stateflow图表,用于代码生成的MATLAB,用于迭代器子系统,以及每个子系统的代码生成都可能导致错过的检测和误报。有关更全面的检查,请考虑启用以下诊断诊断>数据有效性“配置参数”对话框中的窗格:写前检测读,读后检测写,写后检测写.
检查ID:mathworks.design.MismatchedBusParams
确定块和金宝app仿真软件。信号
使用不匹配的结构初始化总线信号的对象。
在模型中,您可以使用MATLAB结构初始化总线信号。例如,如果通过a通过总线信号单位延迟块,则可以设置初始条件参数到结构。有关使用结构初始化总线的基本信息,请参阅指定总线元素的初始条件.
运行此检查以通过与总线信号的初始条件结构的形状和数字数据类型匹配来生成高效和可读的代码。匹配这些特性避免了不必要的显式类型,并用例如呼叫替换字段字段结构分配memcpy
.
这个检查表列出了区块和金宝app仿真软件。信号
通过使用部分结构初始化总线信号的对象。在创建模型的迭代过程中,您可以使用部分结构集中在总线中的信号元素的子集上。对于成熟的模型,请使用完整的结构:
生成可读和有效的代码。
金宝app支持模拟样式,明确初始化未指定的信号。使用部分结构时,Simulink隐式初始化未指定的信号。金宝app
有关完整和部分结构的更多信息,请参见创建完整的初始化结构和为初始化创建部分结构.
这个检查表列出了区块和金宝app仿真软件。信号
初始条件结构引入数据类型不匹配的对象。这些结构的字段具有与相应总线信号元素的数据类型不匹配的数字数据类型。
此检查不检测块的不匹配,例如单位延迟块,该块隐式地将初始条件的数据类型转换为输入信号。
当您将初始条件结构配置为在生成的代码中显示为可调全局结构时,请通过匹配数据类型避免不必要的显式类型转换。看为总线信号生成可调初始条件结构(金宝app仿真软件编码器).
条件 | 建议操作 |
---|---|
块或信号对象使用部分结构 |
考虑使用该功能 |
结构字段的数据类型与相应信号元素的数据类型不匹配 |
考虑将结构定义为 |
检查ID:mathworks.design.ReplaceZOHDelayByRTB
识别延迟,单位延迟, 要么零阶持有用于速率转换的块。用实际替换这些块率过渡块。
如果模型使用延迟,单位延迟, 要么零阶持有模块提供输入和输出信号之间的速率转换,Simulink用内置的隐藏替换这些模块金宝app率过渡块。在编译的框图中,黄色符号和字母“RT”出现在替换块的左上角。此替换可能会影响模型的行为,如下:
这些块丢失了算法设计属性以延迟信号或实现零级保持。相反,他们获得速率过渡行为。
这种建模技术只适用于特定的转换配置(慢到快的转换配置)延迟和单位延迟块,快速缓慢零阶持有块)。设置块采样时间等于较慢的速率(源延迟和单位延迟块和目的地零阶持有块)。
当下游或上游块的块采样时间改变时,这些延迟,单位延迟和零阶持有块可能不会执行速率转换。例如,设置源和目的采样时间相等的停止速率过渡。然后这些块就会采用它们原来的算法设计属性。
块采样时间显示有关采样时间率的不完整信息。块代码以两种不同的速率运行以处理数据传输。但是,块采样时间和采样时间颜色将其显示为单速率块。使用示例时间信息基于此信息的工具和MATLAB脚本基于其行为。
另一种选择是要取代延迟,单位延迟, 要么零阶持有块与实际率过渡块。
该技术确保了块行为中的明确结果。延迟,单位延迟, 要么零阶持有块根据其算法设计来延迟和保持信号。仅有的率过渡块执行实际速率转换。
使用一个实际的率过渡如果您想指定确定的行为或要实现的内存缓冲区类型,则为速率转换块提供了处理数据传输的可配置解决方案。
使用此检查来确定模型中的实例延迟,单位延迟或零阶持有块进行隐藏替换以提供信号之间的速率转换。点击升级模型用实际的率过渡块。
条件 | 建议操作 |
---|---|
模型没有实例延迟,单位延迟, 要么零阶持有用于速率转换的块。 | 不需要采取行动。 |
模型有以下实例延迟,单位延迟, 要么零阶持有用于速率转换的块。 | 检查标识这些实例并允许您升级模型。
|
如果您不选择更换延迟,单位延迟和/或零阶持有块与实际率过渡块,Simuli金宝appnk继续用内置的速率转换块执行这些块的隐藏替换。
你可以:
在您的库模型上运行这个检查。
如果您有一个,请从此检查中排除块和图表金宝app仿真软件检查许可证。
Model Advisor排除概述(金宝appSimulink检查)
检查ID:mathworks.design.CallslDataTypeAndScale
识别对内部函数的调用slDataTypeAndScale
.
在一些以前版本的Simulink中,打开保存在以前版本中的金宝app模型会自动升级到用于数据类型处理的代码。自动升级会插入对内部函数的调用slDataTypeAndScale
.虽然Simulin金宝appk继续支持该函数的一些使用,但如果金宝app您消除了对它的调用,您将得到更清晰和更快的代码。
金宝appSimulink不支持调用金宝appslDataTypeAndScale
什么时候:
第一个参数是金宝app仿真软件。AliasType
目的。
第一个参数是金宝app仿真软件。NumericType
对象与属性Isalias.
设置为true。
跑步检查对SLDATATAPANDSCALE的调用标识要求slDataTypeAndScale
这是必需的或推荐的更换。在大多数情况下,运行检查和遵循建议的操作删除呼叫。您可以忽略留下的调用。除非您确定没有电话,否则请运行支票slDataTypeAndScale
.
条件 | 建议操作 |
---|---|
需要更换情况下 | 手动或自动更换调用slDataTypeAndScale .列出的案例要求你把电话转给slDataTypeAndScale . |
推荐的替代案例 | 对于列出的案例,建议您手动或自动更换呼叫slDataTypeAndScale . |
手动检查情况 | 检查列出的每个案例,以确定是否需要手动升级。 |
如果你有一个金宝app仿真软件检查许可证,您可以从此检查中排除块和图表。
不手动插入调用slDataTypeAndScale
成一个模型。该函数仅供内部使用。
跑步检查对SLDATATAPANDSCALE的调用调用Simulink金宝app函数slRemoveDataTypeAndScale
.直接调用这个函数可以提供更广泛的转换选项。然而,您很少需要更多的转换选项。
有关升级数据类型和尺度的更多信息,请在MATLAB命令窗口中执行以下操作:
帮助slDataTypeAndScale
帮助slremovedatataTymeandscale.
Model Advisor排除概述(金宝appSimulink检查)
检查ID:mathworks.design.bustreatedasvector.
识别Simulink处理为矢量的总线信号。金宝app
您不能使用Simulink软件隐式转换为矢量的总线信号。金宝app相反,插入一个总线向量转换块之间的总线信号和块输入端口,它提供,或使用金宝appSimulink.BlockDiagram.addBusToVector
命令。
条件 | 建议操作 |
---|---|
总线信号被隐式转换为向量。 |
使用 |
模型未配置为识别Simulink处理作为向量的总线信号。金宝app |
在“配置参数”对话框中,单击诊断>连接窗格中,设置公共汽车信号被视为矢量来 |
点击调整在块的输入端口插入总线到向量块,该块隐式地将总线信号转换为向量。
在运行之前运行这个检查检查出口和合并块的初始化参数的一致性.
有关更多信息,请参见识别自动总线转换.
检查ID:mathworks.design.DelayedFcnCallSubsys
识别由于Simulink软件插入了隐式信号转换块而可能延迟的函数调用返回值。金宝app
因此,信号驻留在连续内存中,Simulink软件可以在功能呼叫启动器块输入端口前面自动插入金宝app隐式信号转换块。这可以导致从调用函数调用子系统返回信号值的一步延迟。可以通过确保信号源自函数呼叫系统内的信号块来避免延迟。或者,如果延迟是可接受的,则在受影响的输入端口前面插入单元延迟块。
条件 | 建议操作 |
---|---|
列出的块输入端口可以具有隐式信号转换块。 | 确定列出信号值是否可以接受返回信号值的一步延迟。
|
如果你有一个金宝app仿真软件检查许可证,您可以从此检查中排除块和图表。
信号转换块
单位延迟块
Model Advisor排除概述(金宝appSimulink检查)
检查ID:mathworks.design.outputSignalSampletime.
找到连续采样时间,非浮点输出信号。
非浮点信号可能无法在不丢失信息的情况下表示连续变量。
条件 | 建议操作 |
---|---|
具有连续采样时间的信号具有非浮点数据类型。 | 对识别的信号,将采样时间改变为离散或固定的小步长([0 1])。 |
如果你有一个金宝app仿真软件检查许可证,您可以从此检查中排除块和图表。
Model Advisor排除概述(金宝appSimulink检查)
检查ID:mathworks.design.mergeblkusage.
使用可能导致意外行为的参数设置识别合并块,并帮助将模型迁移到简化的初始化模式。
请注意
运行此检查以及其他检查迁移到简化初始化模式概述.
R2008b中引入了简化的初始化方式,以提高仿真结果的一致性。有关更多信息,请参见简化初始化模式和经典初始化模式.
中的设置,此Model Advisor检查将标识合并如果使用经典初始化模式,则可能导致问题的模型中的块。它还建议设置合并块的一致行为。子检查的结果包含两种类型的语句:Failed和Warning。失败的语句识别出在将模型迁移到简化的初始化模式之前必须手动解决的问题。警告语句识别迁移后可能发生的问题或行为更改。
条件 | 建议操作 |
---|---|
检查合并块的运行时诊断设置。 |
|
检查正在使用PIL模拟模式的模型块。 | 简化的初始化模式不支持用于模型参考的处理器在环(PIL)模拟。金宝app |
检查库块是否具有无法迁移的实例。 | 检查每个块的失败的子轮克结果以确定纠正措施。 |
检查单输入合并块。 | 取代的Mux块用于产生输入信号和合并块与一个多输入合并块。 单输入合并在简化的初始化模式中不支持块。金宝app |
检查具有未指定的根合并块初始输出价值。 | 如果您未指定显式值初始输出参数的根合并块,则Simul金宝appink使用输出数据类型的默认初始值。 一个根合并块是A.合并块与输出端口没有连接到另一个输出端口合并块。有关默认初始值的信息,请参阅初始化信号值. |
检查具有非零输入端口偏移量的Merge块。 | 清除允许端口宽度不相等参数的合并块。 请注意 考虑使用合并仅块仅适用于需要真实合并的信号元素。您可以使用合并元素的其他元素使用合并元素衔接块。 |
检查具有未连接输入的合并块,也可以从无条件执行的子系统中输入输入。 |
设定输入数量参数的合并块为合并块输入的数量。你必须把每个输入连接到一个信号上。 确认每一个合并块输入由一个有条件执行的子系统驱动。合并块不能直接驱动迭代器子系统或者不是条件执行的子系统的块。 |
检查在有条件执行的子系统之外组合或重新排序的输入的Merge块。 | 验证组合或重新排序合并块输入信号发生在一个有条件执行的子系统中。这种设计可使用Mux,公共汽车创造者, 要么选择器块。 |
检查输入样本时间不一致的合并块。 | 验证每个输入信号合并块有相同的采样时间. 未能这样做可能会导致不可预测的行为。因此,简化的初始化模式不允许采样时间不一致。 |
检查由单一源驱动的多个输入端口的合并块。 | 验证合并块没有由同一个有条件执行的子系统或有条件执行的多个输入信号模型块。 |
检查是否使用信号对象来指定初始输出价值。 | 验证以下行为是可接受的。 在简化的初始化模式下,信号对象不能指定初始输出参数的合并块。而您仍然可以初始化输出信号为合并块使用信号对象,初始化结果可能会被缩回合并块。 请注意 金宝appSimulink生成警告,即信号对象的初始值已被忽略。 |
Model Advisor排除概述(金宝appSimulink检查)
检查ID:mathworks.design.InitParamOutportMergeBlk
使用可能导致意外行为的参数设置识别Outport块和条件子系统,并帮助将模型迁移到简化的初始化模式。
请注意
运行此检查以及其他检查迁移到简化初始化模式概述.
R2008b中引入了简化的初始化方式,以提高仿真结果的一致性。对于没有为有条件执行的子系统输出端口指定初始条件的模型,这种模式尤其重要。有关更多信息,请参见简化初始化模式和经典初始化模式.
Model Advisor检查标识了模型中的Outport块和条件子系统,如果使用简化的初始化模式,它们可能会导致问题。它还建议设置Outport块的一致行为。子检查的结果包含两种类型的语句:Failed和Warning。失败的语句识别出在将模型迁移到简化的初始化模式之前必须手动解决的问题。警告语句识别迁移后可能发生的问题或行为更改。
条件 | 建议操作 |
---|---|
检查Iterator子系统内部需要消耗时间的块。 | 在迭代器子系统层次结构中,不要使用需要维护两次连续执行之间所经过时间的服务的块。 由于迭代器子系统可以在给定的时间步骤中执行多次,因此在两次执行之间的运行时间的概念并没有很好地定义。在迭代器子系统中使用这些块可能会导致意外行为。 |
检查具有冲突的信号缓冲区要求的出口块。 | 的外港块有一个函数调用触发器或函数调用数据依赖信号通过它,以及标准数据信号。一些标准数据信号需要一个显式信号缓冲区来初始化相应子系统的输出信号。但是,缓冲函数调用相关的信号会导致函数调用数据依赖冲突。 考虑修改模型以通过一个单独的外港块。有关违背函数调用数据依赖关系的示例,请参见示例模型 由于下列原因之一,标准数据信号可能需要额外的信号副本:
|
检查由总线信号驱动的和谁的输出模块初始输出值不是标量。 | 为外港典型的初始化模式不支持初始条件结构,而简化的初始化模式支持。金宝app因此,在将模型从经典模式迁移到简化模式时,为初始输出参数。迁移完成后,为总线信号的不同元素指定不同的初始值,使用IC结构。有关更多信息,请参见创建初始条件结构. |
检查需要显式信号拷贝的Outport块。 |
驱动的总线信号的明确副本外港初始化相应子系统的输出信号所需的块。插入A.信号转换街区前外港块,然后设置输出参数的信号转换块到 标准数据信号可能需要一个或多个以下原因的附加信号副本:
|
检查继承的合并出口块初始输出从出口块的值被配置为在禁用块时重置的块。 | 当外港块正在驾驶合并块,不要设置他们的禁用时输出参数到重置 . |
检查合并外港由嵌套的、有条件执行的子系统驱动的块。 | 确定是否是新的行为外港块是可以接受的。如果是不可接受的,则在迁移到简化初始化模式之前,修改模型以解释新行为。 |
检查合并的Outport块是否在块被禁用时重置。 | 设定禁用时输出参数的外港块到 有关更多信息,请参见外港. |
检查有未定义的Outport块初始输出初始条件源无效时的值。 | 验证以下行为是可接受的。 当。。。的时候初始输出参数未指定( 对于简化的初始化模式,有效的源文件外港块可以继承初始输出价值来自:持续的,初始条件,合并(用初始输出),extendflow图表,函数调用模型引用或有条件执行的子系统块。 |
检查具有自动速率转换的Outport块。 | 金宝appSimulink插入了一个率过渡块的输入外港块。指定初始输出参数为每个外港块。 否则,执行以下步骤:
|
检查具有特殊信号存储要求和未定义的输出模块初始输出价值。 | 验证以下行为是可接受的。 指定初始输出参数的外港块。将此值设置为 |
检查初始输出禁用时重置的Outport块设置。 | 指定初始输出参数的外港块。 必须指定初始输出值,用于在禁用时配置为重置的块。 |
检查初始输出设置通过函数调用数据依赖信号的Outport块。 | 您无法指定初始输出价值外港块,因为函数调用数据依赖信号正在通过它。设置初始输出价值:
|
检查使用信号对象指定的出口块初始输出价值。 | 验证以下行为是可接受的。 在简化的初始化模式下,信号对象不能指定初始输出参数A.外港块。对象的输入或输出信号仍然可以初始化外港块使用信号对象,但初始化结果可能会被那些覆盖外港块。 请注意 如果您使用有条件执行的子系统外港块时,Simu金宝applink生成一个警告,提示信号对象的初始值已被忽略。 |
检查具有有警告的实例的库块。 | 在迁移到简化的初始化模式之前,检查每个块的警告子检查结果。 |
检查合并的输出模块是否未连接或连接到接地模块。 | 验证以下行为是可接受的。 的外港Block正在驾驶合并块,但其输入要么未连接,要么已连接地面块。在经典的初始化模式中,未连接或接地的输出端口不会更新合并信号,即使它们的父级有条件执行的子系统正在执行。然而,在简化的初始化模式中,当它们的父子系统有条件执行时,这些输出端口将用零值更新合并信号。 |
检查获取的出口块初始输出从输入信号迁移时的值。 | 验证以下行为是可接受的。 的初始输出参数的外港块未指定。结果,简化的初始化模式将假设初始输出价值外港块是由输入信号导出的。这个假设可能会导致不同的初始化行为。 如果此行为不可接受,请在迁移到简化初始化模式之前修改模型。 |
检查外面外港具有显式初始输出. | 验证以下行为是可接受的。 在经典的初始化模式中初始输出和禁用时输出参数的参数外港块必须与他们的来源匹配外港块。 在简化的初始化模式中,Simulink设置金宝app初始输出参数的外部输出模块 |
检查初始化期间从有条件执行的子系统读取输入的块。 | 验证以下行为是可接受的。 一些块,如离散时间积分器块,在经典初始化模式中的初始化期间从有条件执行的子系统读取其输入。金宝appSimulink执行此步骤作为优化技术。 这种优化在简化的初始化模式中是不允许的,因为在初始化后的第一时间步骤中有条件执行的子系统的输出可能与相应的初始值不同外港块。特别地,如果子系统在第一步是活动的,就会发生这种差异。 |
检查使用a的outport块的迁移冲突对话框 随着初始输出值的来源. |
具有相同库链接的其他出口块的实例无法以不同的方式迁移或正在迁移。查看结果检查带有不能迁移的实例的库块了解每个实例的其他迁移路径外港块。 的外港块将维护其当前设置并使用其指定的设置初始输出价值。 |
检查使用的Outport块的迁移冲突输入信号 随着初始输出源价值。 |
具有相同库链接的其他出口块的实例无法以不同的方式迁移或正在迁移。查看结果检查带有不能迁移的实例的库块了解每个实例的其他迁移路径外港块。 的外港块当前指定初始输出的 迁移后,该参数初始输出值的来源将被设置为 |
检查具有SimEvents的Outport块的迁移冲突®语义。 | 具有相同库链接的其他出口块的实例无法以不同的方式迁移或正在迁移。查看结果检查带有不能迁移的实例的库块了解每个实例的其他迁移路径外港块。 的外港块将继续使用初始输出的价值 |
检查具有可变大小输入和未指定的最内部出口块的迁移冲突初始输出. | 对于这些出口块,信号大小仅在重新启用块的父子系统时才会变化。因此,Simulink金宝app隐含地假设初始输出参数等于0,即使参数未指定,[]也是如此。因此,除非您指定参数,否则模型顾问将在模型迁移到简化初始化模式时将参数明确地将参数设置为0。 具有相同库链接的其他出口块的实例无法以不同的方式迁移或正在迁移。查看结果检查带有不能迁移的实例的库块了解每个实例的其他迁移路径外港块。 |
检查使用默认接地值作为初始输出的Outport块的迁移冲突。 | 的参数初始输出被设置为[] (空矩阵)的来源外港是无效的初始条件源。因此,块使用默认初始值作为简化初始化模式下的初始输出。具有相同库链接的其他Outport块实例要么存在错误,要么正在以不同的方式进行迁移。 |
在没有明确规范的情况下检查合并的出口块的迁移冲突初始输出. | 从锁上审查结果检查带有不能迁移的实例的库块要了解每个Outport块的其他实例的不同迁移路径。对于剩余的出口块,初始输出被设置为[] (空矩阵)和禁用时输出被设置为举行 分别在简化的初始化模式下。 |
Model Advisor排除概述(金宝appSimulink检查)
检查ID:mathworks.design.DiscreteBlock
使用可能导致意外行为的参数设置识别离散时间积分器块,并帮助将模型迁移到简化的初始化模式。
请注意
运行此检查以及其他检查迁移到简化初始化模式概述.
R2008b中引入了简化的初始化方式,以提高仿真结果的一致性。有关更多信息,请参见简化初始化模式和经典初始化模式.
此模型顾问检查在模型中的离散时间Integrator块中的设置识别,如果使用简化的初始化模式,可能会导致问题。它还建议设置离散时间Integrator块的一致行为。子检查的结果包含两种类型的语句:Failed和Warning。失败的语句识别出在将模型迁移到简化的初始化模式之前必须手动解决的问题。警告语句识别迁移后可能发生的问题或行为更改。
条件 | 建议操作 |
---|---|
检查其参数的离散时间集成电区初始条件设置被设置为 |
确定是否是新的行为离散时间积分器块是可以接受的。如果是不可接受的,则在迁移到简化初始化模式之前,修改模型以解释新行为。 |
检查离散时间集成器块初始条件设置参数设置为 |
使用块的定期采样时间,或设置初始条件设置来 |
检查Iterator子系统内部需要消耗时间的块。 |
在迭代器子系统层次结构中,不要使用需要维护两次连续执行之间所经过时间的服务的块。 由于迭代器子系统可以在给定的时间步骤中执行多次,因此在两次执行之间的运行时间的概念并没有很好地定义。在迭代器子系统中使用这些块可能会导致意外行为。 |
Model Advisor排除概述(金宝appSimulink检查)
请注意
不要单独运行此检查。运行此检查以及其他检查迁移到简化初始化模式概述.
检查ID:mathworks.design.modellevelmessages.
识别模型块和模型配置参数中的设置,可能导致意外行为,并帮助将模型迁移到简化的初始化模式。
R2008b中引入了简化的初始化方式,以提高仿真结果的一致性。有关更多信息,请参见简化初始化模式和经典初始化模式.
此Model Advisor检查识别模型配置参数中的问题模型在迁移到简化初始化模式时,模型中可能导致问题的块。子检查的结果包含两种类型的语句:Failed和Warning。失败的语句识别出在将模型迁移到简化的初始化模式之前必须手动解决的问题。警告语句识别迁移后可能发生的问题或行为更改。
运行此Model Advisor一致性检查后,如果单击探索结果按钮时,消息只属于非库链接的块。
请注意
因为很难撤消这些更改,所以选择文件>保存恢复点在迁移到简化的初始化模式之前备份模型。
有关更多信息,请参见模型配置参数:连接诊断.
条件 | 建议操作 |
---|---|
验证所有Model块都在使用简化的初始化模式。 |
将model块引用的模型迁移到简化的初始化模式,然后迁移顶部模型。 |
验证简化的初始化模式设置 |
集配置参数>未指定初始化检测来 |
点击修改设置原因如下:
模型参数设置为简化
如果一个Outport块有初始输出参数设置为空字符向量,[]
,那么sourceofinitialoutputpulue.
参数设置为输入信号.
如果出口有空初始输出和一个可变尺寸的信号,那么初始输出为零。
Model Advisor排除概述(金宝appSimulink检查)
检查ID:mathworks.design.sfuncanalyzer.
在Simulink模型或子系统中对S函数进行质量检查。金宝app
S函数分析仪对S函数进行质量检查,以识别指定模型中的改进和潜在问题。
条件 | 建议操作 |
---|---|
连续状态在mdloutputs. 方法。 |
修改连续状态在一个主要的时间步骤和使用Sssetsolverneedsreset. 在S函数代码中的功能。 |
连续状态在mdlupdate. 方法。 |
修改连续状态仅在一个主要的时间步骤和使用Sssetsolverneedsreset. 在S函数代码中的功能。 |
S函数离散状态在其中修改mdloutputs. 在一个小的步骤。 |
修改离散状态只在一个主要的步骤ssismajortimestep. 函数。 |
对s函数模态向量进行了修正mdloutputs. 在次要步骤中的方法。 |
仅在守卫的主要步骤中修改模式向量sslsmajortimestep. 函数。 |
S-function使用静态或全局变量来声明内部状态。 | 明确宣布各国使用sssetnumdiscstates. 函数或通过创建数据存储来模拟全局数据. |
s函数的状态是连续的,但采样时间不是连续的。 | 使用使用的连续采样时间sssetsampletime. 函数。 |
S函数具有离散状态,但是mdloutputs. 和mdlupdate. 方法的总和。 |
定义mdloutputs. 和mdlupdate. 方法单独和修改离散状态仅在mdlupdate. 方法。 |
功能设置SS_OPTION_CAN_BE_CALLED_CONDITIONALLY 选项在具有状态数据或多个采样时间时。 |
当s函数具有类似状态的数据或多个样本时间时,删除这些选项。 |
梅克斯 机器上不存在编译器。 |
检查是否存在或安装梅克斯 机器上的编译器。 |
S函数在编译模型时遇到错误。 | 检查诊断观众输出并重新编译模型。 |
检查ID:mathworks.design.NonContSigDerivPort
识别驱动导数端口的非连续信号。
驱动导数端口的非连续信号使求解器每次都会改变值时重置,这会减慢模拟。
条件 | 建议操作 |
---|---|
模型驱动导数端口中存在非连续信号。 |
|
如果你有一个金宝app仿真软件检查许可证,您可以从此检查中排除块和图表。
Model Advisor排除概述(金宝appSimulink检查)
检查ID:mathworks.design.diagnosticsfcn.
如果,检查数组边界和求解器一致性S函数块在模型中。
验证是否S函数块遵循Simulink应用于其内置块的ODE求解器一致性规则。金宝app
条件 | 建议操作 |
---|---|
解决数据不一致被设置为没有一个 . |
在“配置参数”对话框中设置解决数据不一致来警告 或错误 . |
超过数组界限被设置为没有一个 . |
在“配置参数”对话框中设置超过数组界限来警告 或错误 |
如果你有一个金宝app仿真软件检查许可证,您可以从此检查中排除块和图表。
Model Advisor排除概述(金宝appSimulink检查)
检查ID:mathworks.design.characterEncoding
检查与当前编码不兼容的字符
检查模型文件中不能用当前编码表示的字符。当您试图保存模型时,这些可能会导致错误。
条件 | 建议操作 |
---|---|
不兼容的特征发现 | 将当前编码更改为utf - 8 通过使用slCharacterEncoding . |
升级顾问报告显示您需要的所需编码,或者您可以使用命令检索从模型中的编码:
get_param (modelname SavedCharacterEncoding)
要更改编码,请使用slCharacterEncoding
.这个设置适用于当前的MATLAB会话。如果重新启动MATLAB并希望再次保存相同的模型,则必须对当前编码进行相同的更改。
有关更多信息,请参阅:
检查ID:mathworks.design.UnitMismatches
识别模型中端口之间的单元不匹配实例。
检查模型中端口之间的单位不匹配的实例。
条件 | 建议操作 |
---|---|
单位不匹配发现 | 更改一个不匹配的单元设置以匹配其他端口的单位设置。 |
检查ID:mathworks.design.AutoUnitConversions
识别模型中自动单元转换的实例。
识别模型中自动单元转换的实例。
条件 | 建议操作 |
---|---|
找到自动单元转换 | 检查转换的单位是预期的模型。 |
检查ID:mathworks.design.DisallowedUnitSystems
识别模型中不允许的单元系统实例。
识别模型中不允许的单元系统实例。
条件 | 建议操作 |
---|---|
发现不允许的单位系统 | 要么选择符合配置单元系统的单元,要么选择另一个单元系统。有关更多信息,请参见限制单元系统. |
检查ID:mathworks.design.undefinedUnits.
在模型中识别单元规范的实例,而不是在单元数据库中定义的。
在模型中识别单元规范的实例,而不是在单元数据库中定义的。
条件 | 建议操作 |
---|---|
发现未定义的单位 | 将单元更改为Simulink支持的单元。金宝app金宝app |
检查ID:mathworks.design.AmbiguousUnits
识别不明确的单元规范实例,例如模型中的单元数据库中重复的单元名称。
识别不明确的单元规范实例,例如模型中的单元数据库中重复的单元名称。
条件 | 建议操作 |
---|---|
模棱两可的单位发现 | 您可以忽略警告或使用格式指定具有相应单元系统的单元Unit_System.::unit_name . |
检查ID:mathworks.design.Update
检查常见块升级问题。
检查由于使用新版本的Simulink软件而导致的兼容性问题。金宝app
条件 | 建议操作 |
---|---|
发现有兼容性问题的块。 | 点击调整修复检测到的块问题。 |
检查级别2 API S函数的更新状态。 | 考虑使用级别2替换1级S函数。 |
点击调整用最新版本替换先前版本的Simulink软件的块。金宝app
检查ID:mathworks.design.UpdateRequireCompile
检查常见块升级问题。
检查由于升级到新版本的Simulink软件而导致的兼容性问题。金宝app当模型处于编译模式时,一些块升级需要收集信息或数据。对于此检查,将模型设置为编译模式,然后检查是否升级。
条件 | 建议操作 |
---|---|
模型包含查找表或查找表(二)块和一些块指定使用输入的或使用上面的输入用于查找方法。 | 取代查找表块和查找表(二)块与n-d查找表块。不适用使用输入的或使用上面的输入查找方法;选择另一个选择。 |
模型包含查找表或查找表(二)块和一些块在插补时先执行乘法。 | 取代查找表块和查找表(二)块与n-d查找表块。但是,因为n-d查找表块首先执行除法,这种替换可能会导致结果中的数值差异。 |
模型包含查找表或查找表(二)块。其中一些块指定Interpolation-Extrapolation随着查找方法但它们的输入和输出不是相同的浮点类型。 | 取代查找表块和查找表(二)块与n-d查找表块。然后更改外推方法或端口数据类型以进行块替换。 |
模型包含单位延迟块与采样时间设置 |
取代单位延迟块与内存块。 |
点击调整用最新版本替换先前版本的Simulink软件的块。金宝app
检查ID:mathworks.design.useslxfile.
检查模型是否以SLX格式保存。
检查模型是否以SLX格式保存。
条件 | 建议操作 |
---|---|
模型未以SLX格式保存 | 考虑升级到SLX文件格式以使用Simulink中的最新功能。金宝app |
您可以在您的库模型上运行这个检查。
项目可以帮助您将模型升级到SLX格式并保留源控制中的文件修订历史记录。看在项目中从MDL转换为SLX并保存修订历史.
检查ID:mathworks.design.CheckSLXFileCompressionLevel
检查SLX文件压缩是否已关闭以减少Git™存储库大小。
检查SLX模型的压缩是否关闭。
条件 | 建议操作 |
---|---|
模型、库或子系统以SLX格式保存。打开文件压缩。 | 请考虑关闭文件压缩以优化源控制下的存储。 |
模型、库或子系统没有以SLX格式保存。 | 考虑升级到SLX文件格式,然后关闭文件压缩以优化源控制下的存储。 |
您可以在网站,库和子系统上运行此检查到Git源控制。
项目可以帮助您升级项目中的所有模型和库。看升级所有项目模型,库,和MATLAB代码文件.
检查ID:mathworks.design.CheckSavedInCurrentVersion
检查模型,库或子系统是否保存在当前版本的Simulink中。金宝app
检查模型文件是否保存在当前的Simulink版本中。金宝app
条件 | 建议操作 |
---|---|
模型、库或子系统未保存在当前版本的Simulink中。金宝app | 考虑在当前版本的Simulink中重新定位模型文件。金宝app |
您可以在您的模型,库和子系统上运行此检查。
项目可以帮助您将项目中的所有型号和库保存到当前的Simulink版本。金宝app看升级所有项目模型,库,和MATLAB代码文件.
检查ID:mathworks.金宝appsimulink.sb2sl.check.
检查模型是否有过时的SB2SL模块。
检查模型是否包含过时的SB2SL块。
条件 | 建议操作 |
---|---|
模型包含过时的SB2SL块 | 考虑将模型升级到当前的SB2SL块。 |
点击更新SB2SL块用最新版本替换块。
检查ID:mathworks.design.SLXModelProperties
检查已编辑的模型历史属性
检查模型中可与源代码控制工具关键字替换一起使用的已编辑的Model History属性值。此关键字替换与SLX文件格式不兼容。
在MDL文件格式中,您可以配置某些型号属性以使用源控制工具关键字替换。如果以SLX格式保存模型,则源控制工具无法执行关键字替换。当您首先将MDL文件保存为SLX时,可以缓存来自此类关键字替换的模型文件中的信息,并且不会再次更新。模型中的模型属性历史窗格和模型信息块从那时看,显示了陈旧信息。
条件 | 建议操作 |
---|---|
编辑的模型历史属性 | 手动或自动将属性重置为默认值。单击按钮重置,或手动检查和更改这些属性,请打开“模型属性”对话框并查看“历史纲要”窗格。 |
您可以在您的库模型上运行这个检查。
检查ID:mathworks.design.modelinfokeywordsubstitution.
使用此检查以查找可以通过关键字替换的外部源控制工具更改的模型信息块。
此检查搜索在可以通过外部源控制工具覆盖的美元符号内括起模型信息块中的字符向量。使用第三方源控制工具关键字扩展可能会在提交时损坏模型文件。关键字替换不适用于SLX模型文件格式。
为了使源代码控制工具的接口更加灵活,可以使用Simulink项目而不是Model Info块。金宝app看关于项目的源代码控制.
条件 | 建议操作 |
---|---|
Model Info块包含如下字段: |
检查报告中的字段列表,然后从Model Info块中删除关键字字符向量。 |
检查ID:mathworks.design.modelinfoconfigurationManager.
使用此检查可查找使用配置管理器的模型信息块。
使用Configuration Manager模型信息块允许使用外部源控制工具允许风险密钥替换。使用第三方源控制工具关键字扩展可能会在提交时损坏模型文件。关键字替换不适用于SLX模型文件格式。模型信息块的Configuration Manager将在将来的版本中删除。
为了使源代码控制工具的接口更加灵活,可以使用Simulink项目而不是Model Info块。金宝app看关于项目的源代码控制.
条件 | 建议操作 |
---|---|
模型信息块使用Configuration Manager。 |
点击删除配置管理器. |
检查ID:mathworks.design.serdesupgrades.
列出在SerDes Toolbox™以前版本中保存的过时的块。
此检查搜索并列出可以升级的SERDES工具箱块,以便与当前版本兼容。
条件 | 建议操作 |
---|---|
在旧版本的SerDes工具箱中找到保存的块。 | 点击升级SERDES工具箱块升级SERDES工具箱块与当前版本兼容。 |
点击升级SERDES工具箱块升级过时的SERDES工具箱块以与当前版本兼容。
SerDes系统的设计与仿真(Serdes工具箱)
检查ID:mathworks.design.Aeroblks.CheckDOF
列表3DoF和6DoF块过时了。
这个检查从3.13 (R2014a)之前的库版本中搜索3do和6DoF块。
条件 | 建议操作 |
---|---|
找到有找到的旧版本的3DOF或6dof块的块。 | 点击替换3DOF和6DOF块将块替换为最新版本。 |
点击替换3DOF和6DOF块用最新版本替换块。
运动方程(航空航天块集)
检查ID:mathworks.design.aeroblks.CheckNav.
在3.21之前搜索三轴惯性测量单元,三轴陀螺仪和三轴加速度计块(R2018A)。
此检查搜索在R2018a中更新的三轴惯性测量单元、三轴陀螺仪和三轴加速度计块。
条件 | 建议操作 |
---|---|
R2018A之前的三轴惯性测量单元,三轴陀螺仪和三轴加速度计块。 | 在R2018a或更高版本中,如果你以前没有解决稳态条件,现在保存模型。如果您之前已经为模型求解了稳态条件,那么再次求解这些稳态条件,然后保存模型。 |
检查ID:mathworks.design.CheckandupdateoldmaskedBuiltInblocks.
检查应该更新的库以使用升级的参数。
这个检查搜索在R2011b之前创建的需要更新以使用提升参数的屏蔽块的库。从R2011b开始,如果块参数没有提升,它在链接块中的值将被锁定为库块中的值。此检查不包括类型为子系统、型号参考、s -功能和m - s -功能的块。
条件 | 建议操作 |
---|---|
找到需要更新的库 | 点击更新.更新库之后,再次运行检查 |
你可以:
在您的库模型上运行这个检查。
如果您有一个,请从此检查中排除块和图表金宝app仿真软件检查许可证。
Model Advisor排除概述(金宝appSimulink检查)
检查ID:mathworks.design.CheckMaskDisplayImageFormat
使用图像显示命令对掩码进行不必要的调用imread ()
函数。
的掩码显示命令imread ()
功能,并使用不调用的掩码显示命令更新它们imread ()
函数。自2013A起,使用图像路径而不是RGB三矩阵指定的掩模图像可用性能和内存优化。
条件 | 建议操作 |
---|---|
掩码显示命令使不必要的调用imread () 功能是找到的。 |
点击更新.一旦区块被更新,再次运行检查。 |
你可以:
在您的库模型上运行这个检查。
如果您有一个,请从此检查中排除块和图表金宝app仿真软件检查许可证。
Model Advisor排除概述(金宝appSimulink检查)
检查ID:mathworks.design.CheckMaskRunInitFlag
检查屏蔽图标绘制命令是否具有屏蔽工作空间依赖性的验证。
此检查标识掩码图标绘制命令是否具有屏蔽工作区依赖性并更新RunInitForIconRedraw
相应的属性。如果没有掩码工作区依赖项,则RunInitForIconRedraw
被设置为离开
,然而,如果存在掩码工作区依赖项,则值设置为在
.
设置的值RunInitForIconRedraw
来离开
当没有掩码工作区依赖项时,通过在绘制块图标之前不执行掩码初始化代码来优化性能。
条件 | 建议操作 |
---|---|
找到依赖或独立屏蔽工作区的屏蔽绘图命令。 |
点击更新.一旦区块被更新,再次运行检查。 |
你可以:
在您的库模型上运行这个检查。
如果您有一个,请从此检查中排除块和图表金宝app仿真软件检查许可证。
Model Advisor排除概述(金宝appSimulink检查)
检查ID:mathworks.design.CheckAndUpdateOldMaskTabnames
属性标识在掩码对话框中指定选项卡的掩码块MaskTabnames.
参数。
该检查标识使用MaskTabnames.
参数以编程方式在“掩码”对话框中创建选项卡。由于R2013B,对话框控件用于在掩码对话框的选项卡中对参数进行分组。
条件 | 建议操作 |
---|---|
的掩码块MaskTabnames. 参数在掩码对话框中以编程方式创建选项卡。 |
点击升级可用的行动部分。一旦区块被更新,再次运行检查。 |
您可以在您的库模型上运行这个检查。
检查ID:mathworks.design.StowawayDoubles
对于严格的单精度设计,此检查标识引入双重精度操作的块,以及非最佳模型设置。
对于严格的单精度设计,此检查标识引入双重精度操作的块,以及非最佳模型设置。
条件 | 建议操作 |
---|---|
模型中的双精度浮点运算。 | 验证:
|
模型使用对严格的单一设计而不是最佳的库标准。 |
验证:
|
逻辑信号不是作为布尔数据实现的。 | 验证:
|
如果你有一个金宝app仿真软件检查许可证,您可以从此检查中排除块和图表。
Model Advisor排除概述(金宝appSimulink检查)
检查ID:mathworks.design.CallsGetParamCompiledSampleTime
使用此选项检查包含包含的工作环境中的MATLAB文件get_param.
函数调用返回块CompiledSampleTime
参数。
对于多速率块(包括子系统),Simulink将块编译的采样时间返回为块中采样率的小区阵列。金宝app返回值是一对双打的小区数组。MATLAB代码仅接受此返回值的代码仅用双倍级的双打返回错误时返回错误。使用此检查以识别您的环境中的此类代码。修改这些代码实例以接受一对双打的小区数组。
例如,考虑一个可变的blkts,它已经分配了多速率块的编译采样时间。
blkts = get_param(块,'compiledsampletime');
以下是一些示例,其中原始代码仅在blkTs是一对双精度块且块是单速率块时才能工作:
示例1
if isinf(blkTs(1)) disp('found constant sample time') end
由于blkTs现在是一个单元格数组,Simulink给出如下错误消金宝app息:
未定义函数'isinf'作为类型'cell'的输入参数
如果是(BLKTS,[INF,0])DISP('发现常数采样时间')结束
示例2
if all(blkTs == [-1,-1]) disp('发现触发采样时间')end . (blkTs == [-1,-1]
对于上面的例子,由于blkTs现在是一个单元格数组,Simulink给出如下错误:金宝app
用于“Cell”类型的输入参数的未定义功能'eq'
相反,使用此代码,其中BLKTS可以是单元格数组或一对双打。
如果是(blkts,[-1,-1])disp('发现触发的采样时间')结束
示例3
if(blkts(1)== -1)disp('找到触发的上下文')结束
同样,由于blkTs现在是一个单元格数组,Simulink给出如下错误:金宝app
用于“Cell”类型的输入参数的未定义功能'eq'
相反,使用下面的代码。
if ~iscell(blkTs) blkTs = {blkTs};end for idx = 1:length(blkTs) thisTs = blkTs{idx};if (thisTs(1) == -1) disp('found a triggered context') end end . if (thisTs(1) == -1
上面的代码检查触发的类型采样时间(触发或异步)。在块具有常量采样时间的情况下([INF,0])除了触发或异步还是块具有多个异步速率时,该替代属性检测触发的类型采样时间。
这个检查扫描环境中的MATLAB文件。如果检查发现MATLAB代码的实例包含get_param.
调用输出块编译的采样时间,升级顾问显示这些结果。它建议您修改接受来自多速率块的块已编译的采样时间的代码。
条件 | 建议操作 |
---|---|
没有matlab文件调用get_param(块,compiledsampletime) |
没有任何 |
一些MATLAB文件调用get_param(块,compiledsampletime) |
如果文件使用块CompiledSampleTime 来自多速率块的参数,修改这些文件以接受参数作为手段对的单元数组 |
检查ID:mathworks.design.ChecksinglesImulationOutput.
使用此检查识别模拟结果是否作为单个返回金宝app仿真软件。SimulationOutput
目的。
此检查扫描您的模型以验证是否参数returnksppaceOutputs.
已启用。启用此参数,返回仿真输出金宝app仿真软件。SimulationOutput
当模拟交互。仿真输出包括信号、状态、输出、DSM测井、范围和到工作区
阻止日志记录。
当returnksppaceOutputs.
已启用,提供:
更轻松地管理模拟数据。
自动访问仿真metadata.
.
兼容多个并行模拟和批处理模拟。
条件 | 建议操作 |
---|---|
仿真输出不会作为单个返回金宝app仿真软件。SimulationOutput 对象 |
返回所有模拟输出作为单一 |
检查ID:mathworks.design.parametertuning.
使用此检查以识别在初始化参数或调整它们时出现的模型中的问题。
此检查扫描您的模型,以获取参数初始化和调整问题,如:
块之间的速率不匹配
在有条件执行的子系统中除以零问题
中无效的控制端口值索引向量块
条件 | 建议操作 |
---|---|
该模型存在速率转移问题。 |
选择自动处理速率转换的数据传输在解算器窗格中的模型配置参数。 |
该模型在具有控制端口的有条件执行的子系统中存在除零问题。 |
在命令提示符下运行 set_param(control_port,'disallowconsttsandprmts','开') |
该模型在有条件执行的子系统中具有无效的控制端口值。 |
在命令提示符下运行 set_param(control_port,'disallowconsttsandprmts','开') |
选择升级模型解决模型中与参数初始化和调优相关的问题。
检查ID:mathworks.design.CheckVirtualBusAcrossModelReference
检查跨模型参考边界的虚拟总线信号。
此检查标识根级inport.和外港引用模型和模型块中的块,具有虚拟总线输出,需要更新以改变为非传真总线信号。
如果检查标识问题,请单击更新模型转换根级inport.和外港为虚拟总线配置的块在以下情况下使用非虚拟总线:
对根级inport.块 - 使能输出为非虚拟总线参数并插入一个信号转换块之后inport.块。的信号转换块配置为输出虚拟总线。
对根级外港块 - 使能在父模型中输出为非虚拟总线参数。
为模型块 - 对于港口外港块被更新为解决问题,插入a信号转换块后对应的端口模型块。的信号转换块配置为输出虚拟总线。
要解决问题,请单击升级模型.
请注意
运行分析模型层次结构并继续升级序列检查顶层模型,然后向下查看模型引用层次结构。
点击升级模型将影响根级inport.和外港为虚拟总线配置的块在模型中使用非虚拟总线:
使用函数原型控制
控件执行c++代码生成I/O参数步进方法
选择。
或者,您可以更改C ++代码生成功能规范设置默认的步骤方法
:
在里面配置参数>代码生成>接口窗格中,单击配置C ++类接口.
在对话框中,设置功能规格参数到默认的步骤方法
.
使用具有可变维信号的总线
使用关联的非自动存储类外港块信号
仅当您具有模型所需的目标生成许可证时,才会发生非自动存储类的转换。例如,ERT目标需要嵌入式编码器许可证。
使用导出函数模型外港块由非virtual总线驱动
有模型阻止包含的参考模型外港已修复的块 - 单击升级模型更新引用具有型号的模型块外港固定块分析模型层次结构并继续升级序列查看。
检查ID:mathworks.design.dspframeupgrade.dspframeupgrade.
此检查识别模型中依赖于信号的帧状态的自定义库块。
描述
这个检查在依赖于信号的帧状态的模型中搜索自定义库块。检查分析块,建议修复,并给出修复的原因。您必须手动进行修复。
结果和建议的行动
条件 | 建议操作 |
---|---|
检查查找依赖于信号的帧状态的自定义库块。 |
遵循升级顾问给出的建议。 |
功能和限制
您只能在模型中的自定义库块上运行此检查。
您必须手动进行修复。
仅当您安装了DSP系统工具箱™时,才会出现此检查。
另请参阅
基于帧的处理(DSP系统工具箱)
检查ID:'mathworks.design.checkforsfcnupgradeissues'
使用此检查您的模型可识别您的S函数升级兼容性问题。这些问题可能包括使用32位API,与不兼容的选项编译,或使用已弃用的单独复杂API。在下面的结果和建议部分中描述了一些与修复相关的常见问题和信息。
当升级您的S-functions以使用最新版本的功能时,此检查将扫描您的型号,以警告s -功能升级不兼容问题。如果检查结果给出警告或错误,请根据描述修复您的C MEX S-functions。
条件 | 建议操作 |
---|---|
不支持自定义的S函数。金宝app |
用可用的兼容选项重新编译s函数。看当前版本不支持定制的MEX文件金宝app为更多的信息。 |
S-函数未与最新API编译( |
使用最新的标志重新编译( |
S函数使用32位功能。 |
根据指令修改代码MEX文件调用32位功能. |
S函数使用已弃用的单独复杂API(MxGetPi,MxSetpi,MXGetImagdata,MXSetImagdata)。 |
使用交错的复杂api,用最新的标志重新编译代码( |
S-函数使用已弃用的类型 - 不安全数据API(MxGetData,MXSetData)。 | 使用类型安全的数据api并重新编译代码。看MEX文件调用非类型化数据访问函数为更多的信息。 |
S-function在未来的版本中编译,当前版本不支持。金宝app | 看MEX文件内置MATLAB版本不支持当前版本金宝app重新编译文件。 |
检查ID:'mathworks.design.ChecksystemObjectupdate'
使用此检查将在具有过时语法的模型中识别和更新任何自定义MATLAB系统对象™。
此检查扫描您的模型以识别过时的System对象语法。如果检查通过,则所有语法都是最新的。如果检查失败,您可以更新语法。
条件 | 建议操作 |
---|---|
系统对象语法是最新的。 |
一个也没有。 |
系统对象语法需要更新。 |
为与a相关联的每个唯一系统对象生成报告MATLAB系统块。使用更新更新语法。 |
检查ID:mathworks.design.CheckRapidacceleratorSignallogging.
在快速加速器模式下模拟模型时,请使用此选项查找在全局禁用的模型中登录的信号。快速加速器模式支持信号记录。金宝app使用此检查以启用全球信号日志记录。
此检查扫描您的模型,以查看模拟是否处于快速加速模式,以及模型是否包含带有信号记录的信号。如果检查发现一个实例,并且信号记录被全局禁用,则会出现一个选项来全局打开信号记录。
条件 | 建议操作 |
---|---|
模拟模式不是快速加速器。 |
一个也没有。您可以在快速加速模式下启用信号记录功能。 |
仿真模式是快速加速器。升级顾问没有找到启用了信号日志记录的信号。 |
一个也没有。该模型不使用信号记录。为信号启用信号记录,如果您想要记录信号,则全局启用信号记录。 |
仿真模式是快速加速器。升级顾问找到启用了信号日志记录的信号。但是,禁用了信号记录的全局设置。 |
如果您想要在启用了信号记录功能的情况下记录信号,则全局启用信号记录功能。 |
信号日志记录已启用已全局。 |
一个也没有。 |
选择调整在模型中全局启用信号记录。
检查ID:mathworks.design.virtualbusage.
检查一组块的总线输入信号。
检查一组块的总线输入信号。
从R2015B开始,虚拟总线信号输入到需要非信或非维速总线输入的块可能导致错误。可以指定总线对象作为其输出数据类型的块的示例包括a公共汽车创造者块和根inport.块。当它们在这种情况下具有虚拟总线输入时导致错误的块是:
赋值
延迟
的延迟仅当您使用“块参数”对话框中时,否则才会导致错误:
设置MATLAB结构或零的初始条件。
指定一个值国家的名字.
置换维度
重塑
选择器
单位延迟
的单位延迟仅当您使用“块参数”对话框中时,否则才会导致错误:
设置MATLAB结构或零的初始条件。
指定一个值国家的名字.
向量连接
条件 | 建议操作 |
---|---|
虚拟总线信号输入到这些块:
|
在升级顾问中,单击调整. 支票插入一个总线向量块以尝试将虚拟总线输入信号转换为向量信号。有关升级顾问识别但无法修复的问题,请手动修改模型。有关详细信息,请参阅识别自动总线转换. |
点击调整插入A.总线向量块在块的输入端口。
对于许多型号,运行升级顾问修改了您的模型,以便总线信号未被视为向量。但是,对于某些型号,即使运行检查后,您也可以遇到兼容性问题。手动修改模型以解决这些问题。
在您使用Upgrade Advisor编译模型之后,Simulink Editor有时会指示您需要保存模型(模金宝app型是脏的),即使您没有进行更改。为了防止该模型再次出现此问题,请保存模型。
建模模式 | 问题 | 解决方案 |
---|---|---|
数据存储内存块数据类型设置 |
一个数据存储内存块的相关数据存储读取或数据存储写入读或写总线信号数据的块必须使用总线对象。 |
在里面数据存储内存块,设置数据类型信号属性到 |
信号转换块输出参数匹配输入总线类型 |
一个信号转换块的输出参数设置为 一个信号转换块的输出参数设置为 |
要创建输入信号的副本,请设置输出来 |
合并,转变, 要么多端口交换机具有多个总线输入的块 |
合并,转变, 要么多端口交换机具有多个总线输入的块要求这些输入具有相同的名称和层次结构。 |
重新配置模型,使总线输入具有相同的名称和层次结构。 |
根inport.块输出虚拟总线并指定其值港维 |
一个根inport.输出到虚拟总线的块必须继承尺寸。 |
设定inport.块港维信号属性到 |
Mux块与非virtual总线输入 |
一个Mux块不能接受非虚拟总线信号。 |
要将输出作为数组处理,请替换Mux块与A.向量连接块。 如果您想要一个虚拟总线输出,请使用公共汽车创造者块来组合信号。 |
总线向量没有虚拟总线信号输入的阻塞 |
非总线信号不需要总线向量块。 |
去除那个总线向量块。 |
赋值块与虚拟总线输入 |
升级顾问转换赋值块 |
添加A.总线向量街区前赋值块。 |
使用非虚拟总线的s函数 |
不是Level-2 C S函数的S函数不支持非宽度总线信号。金宝app |
将s函数修改为二级C s函数。 考虑使用A.s函数生成器块创建二级C s功能。 |
带有参数化数据类型的状态流程图 |
在extendflow图表中,如果数据类型是总线对象,则无法在另一个输入或输出方面参数化输入或输出的数据类型。 |
对于参数化的端口,设置数据类型来 |
在状态流程图中具有总线操作的子系统 |
一个inport.如果其信号是总线,则在状态流图中的子系统内部的块需要总线对象数据类型。 |
在里面inport.块,设置数据类型来 |
地面块用作总线源 |
a的输出信号地面块不能是总线的源。 |
用一个持续的块恒定值设置为0和输出数据类型信号属性设置为 |
根外港块具有单元素总线对象数据类型 |
输入的输入外港如果指定总线对象作为其数据类型,则块必须是总线。 |
在里面外港块,设置数据类型来 |
检查ID:mathworks.design.checkconstrootoutportWithInterfaceupgrade.
使用此检查来确定根输出端口,使用AUTOSAR目标、函数原型控制或模型c++类接口的常量样本时间。
使用AutoSar目标,功能原型控制或模型C ++类接口时不支持具有常量采样时间的根出口。金宝app使用此检查以此条件识别root outport块,并按照推荐修改块。
条件 | 建议操作 |
---|---|
与AUTOSAR目标、函数原型控制或模型c++类接口一起使用的具有常量样本时间的根输出。 |
考虑以下其中之一:
|
检查ID:com.mathworks.金宝appsimulink.upgradeadvisor.upgrademodelhierarchy.
检查子模型并通过升级检查指导您。
此检查标识此模型的子模型,并指导您通过升级检查来运行非编译和编译检查。顾问提供了帮助帮助以下任务的工具:
如果检查查找子模型,则提供在每个子模型时运行升级顾问并继续升级顺序。如果您有模型层次结构,则需要依次检查并更新每个子模型。
如果没有子模型,您仍然需要继续检查序列,直到您运行非编译和编译检查。
您必须按以下顺序运行升级检查:首先是不需要编译时信息且不触发更新关系图的检查,然后是编译检查。
点击继续升级序列运行下一个检查。如果有儿童模型,这将打开下一个模型。继续点击继续升级序列直到支票通过。
条件 | 建议操作 |
---|---|
子模型发现 | 点击继续升级序列运行下一个检查。如果有子模型,这将关闭当前升级顾问会话,并在层次结构中打开下一个模型的升级顾问。 |
没有儿童模型,但更多的检查运行 | 如果没有子模型,单击继续升级序列要刷新升级顾问,请选择编译检查。编译检查触发更新图(标记为^ ).运行下一个检查并采取建议的操作。当您返回到此检查时,单击继续升级序列直到支票通过。 |
升级模型层次结构的最佳实践是检查和升级每个模型,从叶端开始,一直到根模型。
当你点击继续升级序列,则Upgrade Advisor将在层次结构中尽可能多地打开叶模型。后续步骤将指导您将层次结构从叶模型升级到根模型。
当您打开Upgrade Advisor时,所选择的检查不需要编译时信息,也不会触发更新关系图。默认情况下,不会选择运行触发更新关系图的检查,并将其标记为^
.在层次结构上使用Upgrade Advisor时,请继续单击继续升级序列通过这一系列的分析:
升级顾问依次打开每个模型和库,从叶片到root,然后选择非编译检查。运行检查,拿任何建议的操作,然后单击继续升级序列打开下一个模型并继续。
当您到达层次结构的根端时,升级顾问然后再次以相同的顺序(但不是库)再次打开每个模型,并仅选择需要模型编译的检查。运行检查,拿任何建议的操作,然后单击继续升级序列打开下一个模型。继续,直到您到达层次结构的末尾,此检查通过。
检查ID:mathworks.design.conflictsfordataStoreReadWreaders.
当读写数据存储时,识别潜在的执行顺序敏感性。
读写同一个数据存储的块的执行顺序可以改变模拟结果。当相同层次结构中的块访问相同的数据存储时,执行顺序是不确定的。
条件 | 建议操作 |
---|---|
数据存储同一层次结构中的多个块访问的内存块。 |
要为块执行执行顺序,请考虑以下内容:
|
检查ID:mathworks.design.TaskBasedSorting
检查数据存储读和数据存储写块的传统排序和基于任务的排序之间的相对执行顺序变化。
遗留模型使用块排序来确定块的执行顺序。使用基于任务的排序,涉及数据存储内存块的相对执行顺序可以改变。此检查检测更改,并提供一个选项以原始执行顺序更新您的模型。
条件 | 建议操作 |
---|---|
使用数据存储内存块的执行顺序更改。您想要原始执行顺序。 | 单击调整按钮。 |
检查ID:mathworks.design.CaseSensitiveBlockDiagramNames
识别并修复对模型和库的不区分大小写的引用。
启动R2020A,Simulink金宝app模型和库名称区分大小写。此检查检测并提供一个选项,以修复对模型和库的不敏感的引用。
条件 | 建议操作 |
---|---|
该检查在模型和库的引用中查找大小写不匹配。 | 遵循升级顾问给出的建议。 |
检查ID:mathworks.design.rfblockset.ce.checkdisconnecteddividerblocks.
搜索模型并列出使用威尔金森功率分配器组件的RF Blockset™分配器模块,端口连接断开3..
启动R2021a,使用威尔金森功率分配器组件的RF Blockset Divider模块的端口位置被改变。此检查使用威尔金森功率分配器组件模型搜索并列出在R2021a之前端口3上断开的端口连接的分配器块。然后可以使用Modify按钮重新连接连接。
条件 | 建议操作 |
---|---|
型号有使用威尔金森功率分频组件的RF块组分频块,端口3上的端口连接断开。 | 单击调整按钮来重新连接射频模块组分隔块端口3上的断开连接。 |
点击调整在射频块组分隔块的端口3上重新布线断开的端口连接。
请注意
的调整按钮将尝试使用您的模型中的威尔金森功率分配器组件,在分配器块的端口3上自动重新连接所有断开的连接。为确保准确性,您必须随后:
检查下面列出的细节结果升级顾问的窗格。
第一个列表列举了使用威尔金森功率分配器组件的RF模块集分配器模块,由于模型的复杂性,需要手动重新布线。
第二个列表枚举自动重新连接的块。
固定和非固定的分配器块分别临时突出显示为绿色和红色。单击删除所有临时块高亮显示链接的底部结果窗格删除亮点。