主要内容

fastRestartForLinearAnalysis

快速重启线性分析

描述

例子

fastRestartForLinearAnalysis (模型“上”)准备模型对于单个编译工作流程,通过翻转快速重启进行线性分析“上”.一旦调用了编译函数,在函数完成执行后,模型将保持编译状态。然后可以稍后调用编译函数,而不需要任何额外的编译。如果线性分析点或块替换在随后的编译函数调用中发生变化,则模型将被重新编译。

例子

fastRestartForLinearAnalysis (模型“在”,名称,值准备模型对于具有一个或多个指定的附加选项的单个编译工作流名称,值对参数。

例子

fastRestartForLinearAnalysis (模型“了”)关闭线性分析的快速重启,并将模型参数恢复到原始值。金宝app动态仿真模块®不让你关了吗模型当它处于符合状态时。方法之前,使用此语法关闭用于线性分析的快速重新启动模型

您还可以单击出现在已编译的Simulink模型顶部的链接来翻转金宝appfastRestartForLinearAnalysis掉了。有关更多信息,请参见提示

例子

全部折叠

修整和线性化一个闭环发动机转速控制模型。对线性分析使用快速重新启动,以减少循环遍历参数时模型编译的数量。

打开发动机转速控制模型,得到线性化的分析点。这样做可以防止在第一次调用之间重新编译findop而且线性化

模型=“scdspeedctrl”;Open_system (model) IO = getlinio(model);fopt = findopOptions(“DisplayReport”“关闭”);

配置PI控制器以使用基本工作区变量kp而且ki

Block = [model,]/ PID控制器的];set_param(块,“P”“金伯利进程”);set_param(块,“我”“吻”);

创建一个不同参数的网格。

Vp = 0.0005:0.0005:0.003;Vi = 0.0025:0.0005:0.005;[KP,KI] = ndgrid(vp,vi);N =数字(KP);sz =大小(KP);

初始化基本工作区变量kp和ki

kp = kp (1);ki = ki (1);

fastRestartForLinearAnalysis上并指定使用的分析点io

fastRestartForLinearAnalysis(模型,“上”“AnalysisPoints”io)

在循环中执行线性分析。当线性分析快速重启开启时,调用findop将更新后的控制器参数发送给模型。

Ops =操作规范(模型);%工作点规格i = N:-1:1 kp = kp (i);ki = ki (i);Op = findop(model,ops,fopt);%修剪模型[j,k] = ind2sub(sz,i);sysFastRestartLoop(:,:,j,k) =线性化(模型,io,op);线性化模型结束

关掉fastRestartForLinearAnalysis并关闭模型。

fastRestartForLinearAnalysis(模型,“关闭”) bdclose(模型)

当开启用于线性分析的快速重新启动时,调用编译函数不会自动对状态初始条件应用更改。因此,您必须使用操作点对象而不是使用参数或工作空间变量来配置初始状态。

打开模型并创建线性分析点。

mdl =“magball”;Open_system (mdl) io(1) = linio([mdl“/控制器”), 1“输入”);Io (2) = linio([mdl .“/磁球工厂”), 1“openoutput”);

配置球的高度以使用hInitial工作空间变量作为初始条件。

set_param ([mdl'/磁球装置/高度'),“InitialCondition”“hInitial”

开启线性分析的快速重启。

fastRestartForLinearAnalysis (mdl“上”

使用不同的初始高度值线性化模型。

hInitial = 0.05;Sys1 =线性化(mdl,io);hInitial = 0.1;Sys2 =线性化(mdl,io);

线性化模型的频率响应是相同的。因此,初始条件不更新时hInitial的变化。

波德(sys1“b”sys2,“r——”)传说(“sys1”“sys2”

图中包含2个轴对象。轴对象1的标题从:控制器到:磁球工厂包含2个类型为线的对象。这些对象表示sys1、sys2。坐标轴对象2包含2个line类型的对象。这些对象表示sys1、sys2。

当启用快速重启时,要改变初始状态,必须修改操作点对象。根据模型初始条件创建一个工作点。

Op = operpoint(mdl);

修改不同初始条件下的工作点,对模型进行线性化。

op.States(5)。X = 0.05;Sys3 =线性化(mdl,io,op);op.States(5)。X = 0.1;Sys4 =线性化(mdl,io,op);

线性化模型的频率响应不同。因此,当工作点对象改变时,初始条件也会改变。

波德(sys3“b”sys4,“r——”)传说(“sys3”“sys4”

图中包含2个轴对象。轴对象1的标题从:控制器到:磁球工厂包含2个类型为线的对象。这些对象表示sys3、sys4。坐标轴对象2包含2个line类型的对象。这些对象表示sys3、sys4。

关闭线性分析的快速重启并关闭模型。

fastRestartForLinearAnalysis (mdl“关闭”) bdclose (mdl)

输入参数

全部折叠

金宝appSimulink模型名称,指定为字符向量、字符串、slTuner对象,或slLinearizer对象。模型必须在当前工作文件夹中或MATLAB中®路径。

名称-值参数

指定可选参数对为Name1 = Value1,…,以=家,在那里的名字参数名称和价值对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。

在R2021a之前,使用逗号分隔每个名称和值,并将其括起来的名字在报价。

例子:…,“UseBusSignalLabels”,“上”

包含输入、输出和开口的分析点集,指定为逗号分隔的对,由AnalysisPoints以及线性化I/O对象或线性化I/O对象的向量。创建AnalysisPoints

  • 使用定义输入、输出和开口linio

  • 如果在Simulink模型中指定了输入、输出和开口,则使用金宝appgetlinio

每个线性化I/O对象AnalysisPoints必须对应于Simulink模型金宝app模型或者模型层次结构中的一些普通模式模型引用。

如果线性分析点随着后续对编译函数的调用而改变,则重新编译模型。

有关指定线性化输入、输出和开口的详细信息,请参见指定要线性化的模型部分

将线性化替换为块和模型子系统,指定为由逗号分隔的对组成BlockSubstitutions和以下其中之一:

  • 结构数组

  • 字符串数组

  • 一个字符向量

  • 字符向量的单元格数组

使用BlockSubstitutions为块或子系统指定自定义线性化。例如,您可以为没有分析线性化的块指定线性化,例如具有不连续或触发子系统的块。

如果块替换在后续调用编译函数时发生变化,则重新编译模型。

标志,指示是否使用总线信号通道号或名称来标记线性化模型中的I/ o,指定为逗号分隔的对,由UseBusSignalLabels和以下其中之一:

  • “关闭”-线性化模型中使用总线信号通道号标记总线信号上的I/ o。

  • “上”—线性化模型中,使用总线信号名称标记总线信号上的I/ o。当I/O点位于以下块的输出时,结果中出现总线信号名称:

    • 包含总线对象的根级输入块

    • 总线创建块

    • 子系统块,其源可以追溯到总线创建者块的输出

    • 子系统块,其源仅通过虚拟或非虚拟子系统边界追溯到根级导入

提示

  • 金宝appSimulink不允许您关闭模型当它处于编译状态时。关闭“线性分析快速重新启动”以关闭模型.你可以关掉fastRestartForLinearAnalysis用下列方法之一。

    • 使用语法fastRestartForLinearAnalysis(模型中,“了”)

    • 单击出现在Simulink模型顶部的链接。金宝app

  • 当开启用于线性分析的快速重新启动时,调用编译函数不会自动对状态初始条件应用更改。因此,您必须使用操作点对象而不是使用参数或工作空间变量来配置初始状态。有关更多信息,请参见使用多状态初始条件线性化模型

版本历史

在R2019a中引入