主要内容

健壮的调优系统质-弹

这个例子展示了如何为一个不确定的强劲优化PID控制器系统建模仿真软件质-弹。金宝app

金宝app仿真软件模型系统质-弹

图1所示是模仿质-弹的二阶微分方程

$ $ m \ ddot {x} + c \点{x} + k x = F $ $

在哪里$ F $力应用于质量和吗x美元质量的水平位置。

图1:系统质-弹。

这个系统在仿真软件建模如下:金宝app

open_system (“rct_mass_spring_damper”)

我们可以使用一个PID控制器生成工作$ F $需要改变位置x美元。调优这个PID控制器是简单的物理参数$ m c k美元是已知的。但是很少会出现这种情况在实践中,由于许多因素包括不精确的测量,制造公差,操作条件的变化,以及磨损。这个例子展示了如何考虑这种不确定性在调优的范围内保持高绩效预期值$ m c k美元

不确定性建模

仿真软件金宝app模型使用“最可能”或“名义”的价值观$ m c k美元:

$ $ m = 3 \ \;c = 1, \ \;$ $ k = 2

使用“不确定真正的”(尿素的)对象模型值的范围,每个参数可能需要。这里的不确定性被指定为一个百分比偏离标称值。

嗯=尿素的(“米”3,“比例”,40);加州大学=尿素的(“c”,1“比例”,20);英国=尿素的(“k”2,“比例”,30);

名义上的调优

首先为名义调整PID控制器的参数值。在这里,我们使用两个简单的设计要求:

  • 位置x美元应该跟踪阶跃变化1秒响应时间

  • 滤波器系数N美元在PID控制器不应该超过100。

这些需求表示为优化目标:

Req1 = TuningGoal.Tracking (“r”,“x”1);Req2 = TuningGoal.ControllerPoles (“控制器”,0,0100);

创建一个slTuner界面优化仿真软件中的“控制器”块模型,和使用金宝appsystune调整PID收益和最好的满足这两个要求。

ST0 = slTuner (“rct_mass_spring_damper”,“控制器”);圣= systune (ST0 [Req1 Req2]);
最后:软= 1.02,=无穷,迭代= 44

使用getIOTransfer查看闭环阶跃响应。

Tnom = getIOTransfer(圣,“r”,“x”);步骤(Tnom)

名义响应满足响应时间要求,看起来不错。但有多健壮的变化$ m c k美元吗?

鲁棒性分析

要回答这个问题,“块替换”功能的使用slTuner创建一个不确定的闭环系统质-弹的模型。块替换允许您指定一个特定的块的线性化模型模型。金宝app在这里我们用这个替换的脆值$ m c k美元不确定的值加州大学,英国上面的定义。

blocksubs (1)。Name =“rct_mass_spring_damper /质量”;blocksubs (1)。值= 1 /嗯;blocksubs (2)。Name =“rct_mass_spring_damper /阻尼”;blocksubs (2)。值=加州大学;blocksubs (3)。Name =“rct_mass_spring_damper /弹簧刚度”;blocksubs (3)。值=英国;UST0 = slTuner (“rct_mass_spring_damper”,“控制器”,blocksubs);

评估名义调优的鲁棒性,应用PID调整收益(不调谐的)不确定性模型UST0和模拟“不确定”的闭环响应。

%名义调优(ST)的结果适用于不确定UST0闭环模型setBlockValue (UST0 getBlockValue (ST));Tnom = getIOTransfer (UST0,“r”,“x”);rng(0)步骤(Tnom 25),网格

一步图显示了名义上的闭环响应调整PID为20个随机选择的值$ m c k美元在指定范围的不确定性。观察到显著的性能退化参数组合,低阻尼振荡和长时间解决。

健壮的调优

为了提高PID控制器的鲁棒性,re-tune使用不确定闭环模型UST0而不是名义闭环模型ST0。由于的存在尿素的组件模型中,systune自动试图最大化性能整个不确定性范围。这相当于减少“软”的最坏值优化的目标Req1Req2

UST0 = slTuner (“rct_mass_spring_damper”,“控制器”,blocksubs);科大= systune (UST0 [Req1 Req2]);
硬软:[1.02,4.91]:[无穷,无穷],迭代= 44软:[1.03,1.41],硬:负无穷,无穷,迭代= 31软:[1.04,1.04],硬:负无穷,无穷,迭代= 21决赛:软= 1.04,=无穷,迭代= 96

鲁棒性能只比标称性能稍差,但同样不确定闭环仿真显示显著提高名义设计。

Trob = getIOTransfer(科大,“r”,“x”);rng(0)步骤(Tnom Trob 25),网格传奇(“名义上的调优”,‘强健’调优)

这是证实了策划最坏的获得r美元x美元作为频率的函数。注意1 rad / s附近的衰减共振。

clf次要情节(121),wcsigmaplot (Tnom{1飞行,1 e2}),网格设置(gca,“YLim”,-20年[10]),标题(“名义上的调优”)次要情节(122),wcsigmaplot (Trob{1飞行,1 e2}),网格设置(gca,“YLim”,-20年[10]),标题(‘强健’调优),传说(“关闭”)

比较两个PID控制器显示类似的行为只有一个关键的区别。名义上调整PID过分依赖“取消”(开槽)植物共振,这并不是一个健壮的策略的不确定性在共振频率。

Cnom = getBlockValue(圣,“控制器”);Crob = getBlockValue(科大,“控制器”);clf,波德(Cnom Crob),网格传奇(“名义上的调优”,‘强健’调优)

为进一步的洞察力,情节的性能指标(最大价值的“软”优化的目标Req1, Req2)作为不确定参数的函数美元$ m, k名义上的阻尼c = 1美元。使用“不同参数”的特点slTuner创建一个数组的闭环模型的网格美元$ m, k值范围覆盖他们的不确定性。

%指定6-by-6网格为线性化(m, k)值女士= linspace (um.Range (1) um.Range (2), 6);uk.Range ks = linspace (uk.Range (1), (2), 6);(女士,ks) = ndgrid (ms, ks);参数(1)。Name =“米”;参数(1)。值=女士;参数(2)。Name =“k”;参数(2)。值= ks;STP = slTuner (“rct_mass_spring_damper”,“控制器”、参数);%计算性能指标/ (m, k)名义上调整PID的网格setBlockValue (STP,“控制器”Cnom) [~, F1] = evalGoal (Req1 STP);(~,F2) = evalGoal (Req2 STP);Fnom = max (F1、F2);%计算性能指标对鲁棒PID (m, k)网格setBlockValue (STP,“控制器”Crob) [~, F1] = evalGoal (Req1 STP);(~,F2) = evalGoal (Req2 STP);Frob = max (F1、F2);%比较两个表面性能clf次要情节(211),冲浪(ms, ks, Fnom)包含(“米”),ylabel (“k”),zlabel (“性能”)、标题(的名义调优(c = 1))次要情节(212),冲浪(女士,ks Frob),集(gca),“ZLim”[1,2])包含(“米”),ylabel (“k”),zlabel (“性能”)、标题(‘强健’调优(c = 1))

这个情节表明名义调优质量的变化很敏感m美元或弹簧刚度k美元,而本质上是对这些参数的调优。完成设计,使用writeBlockValue应用鲁棒PID仿真软件模型和仿真软件进行进一步的验证。金宝app

writeBlockValue(科大)

相关的例子

更多关于