主要内容

LinearizationAdvisor

用于故障排除线性化结果的诊断信息

描述

当你线性化Simulink的时候®模型,可以创建一个LinearizationAdvisor对象,该对象包含关于各个块线性化的诊断信息。通过查看此诊断信息,可以对线性化结果进行故障排除。

要访问诊断信息,请使用getBlockInfo函数。

创建

有几种方法可以创建LinearizationAdvisor对象在线性化Simulink模型时。当你线性化一个模型使用:

  • 线性化函数,首先创建一个linearizeOptions选项集,设置StoreAdvisor选项真正的.然后,对模型进行线性化线性化,返回信息论点。

  • 一个slLinearizer接口,首先创建一个linearizeOptions选项集,设置StoreAdvisor选项真正的.然后,创建slLinearizer接口。当您使用线性化函数从接口获得线性模型时,例如getIOTransfer,返回信息论点。

  • 一个slTuner接口,首先创建一个slTunerOptions选项集,设置StoreAdvisor选项真正的.然后,创建slTuner接口。当您使用线性化函数从接口获得线性模型时,例如getIOTransfer,返回信息论点。

然后可以访问LinearizationAdvisor对象使用信息。顾问.如果你在多个工作点线性化模型或使用参数变化,信息。顾问的数组。LinearizationAdvisor对象。

此外,建议而且找到函数返回LinearizationAdvisor对象,该对象包含满足相关搜索条件的块的诊断信息。

属性

全部展开

与Simulink模型关联的线性化诊断信息,作为字符向量返回。

模型是只读属性。

线性分析点,包括输入、输出和开口,作为线性化I/O对象或线性化I/O对象的向量返回。

AnalysisPoints对应于:

  • io的输入参数。线性化命令。

  • 分析了环口和环口slLinearizerslTuner接口。

有关分析点的更多信息,请参见指定要线性化的模型部分

AnalysisPoints是只读属性。

模型被线性化的工作点,指定为工作点对象。

OperatingPoint是只读属性。

用于线性化的参数样本,指定为以下之一:

  • []—线性化结果无关联参数值。

  • Structure -单个参数的值,指定为具有以下字段的结构:

    • 的名字-参数名称

    • 价值-参数值

  • 结构数组-多个参数的值。

有关参数变化的更多信息,请参见为批量线性化指定参数样本

参数是只读属性。

线性化算法选项,指定为linearizeOptions对象。

LinearizationOptions对应于选项的输入参数线性化slLinearizer,或slTuner

LinearizationOptions是只读属性。

属性所使用的搜索条件相匹配的每个块的诊断信息LinearizationAdvisor对象,指定为BlockDiagnostic的对象或向量BlockDiagnostic对象。

属性可以访问这些块诊断getBlockInfo命令。若要获取块的列表,请使用getBlockPaths命令。

BlockDiagnostics是只读属性。

用于获取线性化诊断的查询类型,指定为以下之一:

  • “所有块”当您最初创建LinearizationAdvisor对象使用线性化函数,例如线性化getIOTransfer

  • “线性化的建议”当你创建LinearizationAdvisor对象使用建议命令。

  • 属性匹配的字符向量QueryType属性时,对应的自定义查询对象LinearizationAdvisor对象使用找到命令。

QueryType是只读属性。

用于获取线性化诊断的查询的说明,指定为以下之一:

  • “所有线性化块”当您最初创建LinearizationAdvisor对象使用线性化函数,例如线性化getIOTransfer

  • “对线性化有潜在问题的块”当你创建LinearizationAdvisor对象使用建议命令。

  • 属性匹配的字符向量描述属性时,对应的自定义查询对象LinearizationAdvisor对象使用找到命令。

描述是只读属性。

对象的功能

建议 找出线性化有潜在问题的块
突出 突出线性化路径动态仿真模块模型
找到 在线性化结果中找到符合特定标准的块
getBlockInfo 获取块线性化的诊断信息
getBlockPaths 中获取块列表LinearizationAdvisor对象

例子

全部折叠

加载Simulink模型。

mdl =“scdpendulum”;load_system (mdl)

创建线性化选项集,启用StoreAdvisor选择。

opt =线性化选项(“StoreAdvisor”,真正的);

使用此选项集线性化模型,返回信息论点。

IO = getlinio(mdl);[linsys,~,info] =线性化(mdl,io,opt);

提取LinearizationAdvisor对象从信息

Advisor = info。顾问
模型:'scdpendulum'操作点:[1x1 opcond.]BlockDiagnostics: [1x11 linear .advisor.]BlockDiagnostic] QueryType: '所有块'

加载Simulink模型。

mdl =“scdspeed”;load_system (mdl)

创建线性化选项集,启用StoreAdvisor选择。

opt =线性化选项(“StoreAdvisor”,真正的);

定义输入和输出分析点,并创建一个slLinearizer使用此选项集的接口。

Io (1) = linio(“scdspeed /油门(度)”, 1“输入”);Io (2) = linio('scdspeed/rad//s to rpm', 1“输出”);SL = slLinearizer(mdl,io,opt);

求从输入到输出的传递函数,返回信息论点。

[linsys,info] = getIOTransfer(SL,“scdspeed /油门(度)”'scdspeed/rad//s to rpm');

提取LinearizationAdvisor对象从信息

Advisor = info。顾问
Model: 'scdspeed' OperatingPoint: [1x1 opcond.]BlockDiagnostics: [1x27 linear .advisor.]BlockDiagnostic] QueryType: '所有块'

加载Simulink模型。

mdl =“scdspeed”;load_system (mdl)

创建一个slTunerOptions选项集,启用StoreAdvisor选择。

opt = slTunerOptions(“StoreAdvisor”,真正的);

定义输入和输出分析点,并创建一个slTuner使用此选项集的接口。

Io (1) = linio(“scdspeed /油门(度)”, 1“输入”);Io (2) = linio('scdspeed/rad//s to rpm', 1“输出”);ST = slTuner(mdl,io,opt);

控件对控制系统进行调优systune函数。然后,你可以找到从输入到输出的传递函数,返回信息论点。

[linsys,info] = getIOTransfer(ST,“scdspeed /油门(度)”'scdspeed/rad//s to rpm');

提取LinearizationAdvisor对象从信息

Advisor = info。顾问
Model: 'scdspeed' OperatingPoint: [1x1 opcond.]BlockDiagnostics: [1x27 linear .advisor.]BlockDiagnostic] QueryType: '所有块'

加载Simulink模型。

mdl =“scdpendulum”;load_system (mdl)

线性化模型,得到LinearizationAdvisor对象。

IO = getlinio(mdl);opt =线性化选项(“StoreAdvisor”,真正的);[linsys,~,info] =线性化(mdl,io,opt);advisor = info.Advisor;

找到线性化的潜在问题块。

Result = advise(advisor)
Model: 'scdpendulum' OperatingPoint: [1x1 opcond.]BlockDiagnostics: [1x3 linear .advisor.]QueryType: '线性化建议'

加载Simulink模型。

mdl =“scdspeed”;load_system (mdl)

对模型进行线性化,得到LinearizationAdvisor对象。

opts =线性化选项(“StoreAdvisor”,真正的);Io (1) = linio(“scdspeed /油门(度)”, 1“输入”);Io (2) = linio('scdspeed/rad//s to rpm', 1“输出”);[sys,op,info] =线性化(mdl,io,opts);advisor = info.Advisor;

创建复合查询对象,用于查找具有一个输入和一个输出的所有块。

qSISO = linqueryHasInputs(1) & linqueryHasOutputs(1);

使用复合查询对象查找所有SISO块。

advSISO = find(advisor,qSISO)
advSISO =线性顾问与属性:模型:'scdspeed'操作点:[1x1 opcond。BlockDiagnostics: [1x10 linear .advisor.]BlockDiagnostic] QueryType: '(Has 1 Inputs & Has 1 Outputs)'

加载Simulink模型。

mdl =“scdpendulum”;load_system (mdl)

对模型进行线性化,得到LinearizationAdvisor对象。

IO = getlinio(mdl);opt =线性化选项(“StoreAdvisor”,真正的);[linsys,~,info] =线性化(mdl,io,opt);advisor = info.Advisor;

找出线性化有潜在问题的块。

Blocks = advise(advisor);

获取这些块的诊断信息。

digs = getBlockInfo(块)
digs =块的线性化诊断:块信息:-----------索引BlockPath Is On Path有助于线性化scdpendulum/pendulum/Saturation是否完全正确scdpendulum/angle_wrap/三角函数1是否摄动scd摆/摆/三角函数是否扰动

选择功能

应用程序

中的“线性化顾问”,可以交互方式对线性化结果进行故障排除模型线性化电路.有关示例,请参见在模型线性器中排除线性化结果

版本历史

在R2017b中引入

Baidu
map