主要内容

多设计点slTuner接口

对于调优gain-scheduled控制系统,您必须使你的模型金宝app®模型线性化的数组线性时不变模型对应的各种操作条件是你的设计点。因此,当你获得一个家庭的线性模型中描述的植物工厂模型Gain-Scheduled控制器调优,你必须将它与slTuner接口仿真软件模型。金宝app这样做,您可以使用块替换导致slTuner用数组代替植物子系统模型的线性模型。这个过程建立一个家庭内的可调闭环模型slTuner接口。

块代替植物

假设您有一个数组线性植物模型获得的每个操作点在网格设计。在最简单的情况下,满足下列条件:

  • 数组中的线性模型完全对应工厂子系统模型。

  • 你想调整以外的元素,没有其他模型中随调度变量。

仿真软件模型金宝appmdl含有植物子系统G数组和一个线性模型Garr代表设计的植物在一个网格点,下面的命令创建一个slTuner接口:

BlockSubs =结构(“名字”,“mdl / G”,“价值”,Garr);st0 = slTuner (“mdl”,{“金伯利进程”,“吻”},BlockSubs);

st0包含闭环线性模型的一个家庭,每个设计点线性化,每个与相应的线性植物插入G。如果“金伯利进程”“吻”是获得计划你想调整(如查找表),你可以用可调增益参数化表面,所述参数化得到时间表和优化它们。

多个块替换

在其他情况下,植物模型的线性化数组你有可能不完全对应工厂子系统仿真软件模型中。金宝app或者,您可能需要替换的其他部分模型,随操作条件。在这种情况下,需要更多的关心在构建正确的块替换。以下部分突出几个这样的病例。

例如,考虑下面的模型说明。

这个模型有一个内循环与proportional-only gain-scheduled控制器。控制器是由查找表Kp_in和产品块刺激。外循环包括PI控制器gain-scheduled比例和积分系数代表的查找表KpKi。所有获得计划依赖于相同的调度变量α

假设你想优化内环路增益调度Kp_in外层循环开放。为此,你获得线性模型的一个数组G_in从输入u到输出{q,α}。这个模型阵列有错误的I / O维度作为一块替换G。因此,您必须“垫”G_in用额外的输出尺寸。

Garr = [0;G_in];BlockSubs1 =结构(“名字”,“mdl / G”,“价值”,Garr);

此外,您可以删除所有的影响外循环通过替换不同的PID控制器块在所有操作系统中渗流为零的条件。因为这个街区有三个输入,3-input取代它,一个输出零系统。

BlockSubs2 =结构(“名字”,“mdl /不同的PID控制器”,“价值”党卫军([0 0 0]));

与块替换,以下命令创建一个slTuner界面,您可以使用内环路增益调度进行优化。

st0 = slTuner (“mdl”,“Kp_in”);st0。BlockSubstitutions = [BlockSubs1;BlockSubs2];

看这个例子角速率控制HL-20自动驾驶仪另一个案例中,几个元素以外的植物本身是块替换所取代。

用块取决于调度变量

接下来,假设你已经调内环路增益时间表,并得到一个数组Kp_in_tuned值的Kp_in对应于每个设计点(每个值α线性化植物)。还假设您有一个新的Garr这是完整的植物u{y, q,α}线性化的内循环封闭。调优和获得时间表,你必须用数组替换产品的块Kp_in_tuned。重要的是要注意,你取代注射点,产品块刺激,而不是查找表Kp_in。替换产品块有效地将其转换为一个不同的增益。也,你必须取消第一个产品的输入块删除查找表的影响Kp_in

prodsub = [0 ss (Kp_in_tuned)];BlockSubs1 =结构(“名字”,“mdl /刺激”,“价值”,prodsub);BlockSubs2 =结构(“名字”,“mdl / G”,“价值”,Garr);st0 = slTuner (“mdl”,{“金伯利进程”,“吻”});st0。BlockSubstitutions = [BlockSubs1;BlockSubs2];
另一个例子,显示了previously-tuned这种替换查找表,看看HL-20自动驾驶仪姿态控制——输出设计

下图的一部分模型突出了另一个场景,在该场景中,您可能需要替换块随调度变量。假设调度变量α,在你的模型中,一个信号u被除以α

以确保slTuner线性物体正确的价值观α在设计网格,必须替换数组线性模型,每一个α价值。这一块相当于发送u通过获得的1 /α:

因此,您可以使用以下块替换你slTuner接口,alphagrid是一个数组的α在你的设计点值。

divsub =党卫军[(1 / alphagrid), 0] BlockSubs =结构(“名字”,“mdl / div-by-alpha”,“价值”,divsub);st0。BlockSubstitutions = [st0.BlockSubstitutions;BlockSubs]

模型中的每个条目数组中divsub首次将输入的相应的条目alphagrid,第二次输入0。因此,这个替换给期望的结果y = u /α

解决不匹配块和替换

有时,线性模型数组不是一个精确的替代模型的部分你想替换。例如,考虑下面的插图三个输入,一个输出子系统。

假设您有一个数组的线性化模型Garr对应于G。您可以配置一块替换整个子系统G_full通过构造一个替代模型,再现了平均三个输入的影响,如下:

Gsub = Garr * (1/3 1/3 1/3);BlockSubs =结构(“名字”,“mdl / G_full”,“价值”,Gsub);

有时候,你可以在I / O解决不匹配维度用0填充输入或输出,如图所示多个块替换。仍然在其他情况下,您可能需要执行其他模型算法,使用命令系列,反馈,或连接建立一个合适的替代。

块替换LPV街区

如果工厂仿真软件模型是由一个表示金宝appLPV系统,你仍然必须在创建执行块替换slTuner界面优化获得时间表。slTuner不能直接从读取数组线性模型LPV系统块。不过,您可以使用线性模型数组中指定块的块替换,如果它对应于你的设计点调优。例如,假设你是一个植物LPV系统块,LPVPlant数组,指定了一个模型PlantArray。您可以配置一块替换LPVPlant如下:

BlockSubs =结构(“名字”,“mdl / LPVPlant”,“价值”,PlantArray);

另请参阅

相关的话题