主要内容

固定结构h∞合成hinfstruct

本示例使用hinfstruct调优固定结构控制器的命令<年代pan class="inlineequation"> H 约束。

介绍

hinfstruct命令扩展了经典<年代pan class="inlineequation"> H 合成(见hinfsyn)到固定结构控制系统。此命令适用于已经习惯使用hinfsyn工作流。如果你不熟悉<年代pan class="inlineequation"> H 合成或发现增强植物和加重功能吓人,使用systunelooptune代替。看到<一个href="//www.tatmou.com/au/help/control/ug/tuning-control-systems-with-systune.html" class="a">与SYSTUNE调谐控制系统为systune这个例子的对应物。

工厂模式

本例使用硬盘驱动器中的头盘组件(HDA)的九阶模型。该模型捕获HDA中的前几个灵活模式。

负载<年代pan style="color:#A020F0">hinfstruct_demoG波德(G)、网格

图中包含2个轴对象。从:u到:y轴对象1包含一个类型为line的对象。这个对象表示G. Axes对象2包含一个类型为line的对象。这个对象表示G。

我们使用如下所示的反馈回路来定位头部在正确的轨道上。该控制结构由PI控制器和返回路径的低通滤波器组成。头的位置y应该跟踪步骤变化吗r响应时间约为1毫秒,很少或没有超调,没有稳态误差。

图1:控制结构

可调的元素

在图1的控制结构中有两个可调元件:PI控制器<年代pan class="inlineequation"> C 年代 和低通滤波器

F 年代 一个 年代 + 一个

使用tunablePID类来参数化PI块并指定过滤器<年代pan class="inlineequation"> F 年代 作为一个依赖于可调实参数的传递函数<年代pan class="inlineequation"> 一个

C0 = tunablePID (<年代pan style="color:#A020F0">“C”,<年代pan style="color:#A020F0">“π”);<年代pan style="color:#228B22">%可调π一个= realp (<年代pan style="color:#A020F0">“一个”1);<年代pan style="color:#228B22">%滤波器系数F0 = tf(a,[1 a]);<年代pan style="color:#228B22">参数化的%过滤器

循环成型设计

环路整形是一种频域技术,用于加强对响应速度、控制带宽、滚转和稳态误差的要求。其思想是为开环响应指定一个目标增益轮廓或“环路形状”<年代pan class="inlineequation"> l 年代 F 年代 G 年代 C 年代 .这种应用程序的合理环路形状应该具有积分作用和大约1000 rad/s的交叉频率(期望响应时间0.001秒的倒数)。这表明了以下循环形状:

wc = 1000;<年代pan style="color:#228B22">%的目标交叉s =特遣部队(<年代pan style="color:#A020F0">“年代”);LS = (1 + 0.001 * s / wc) / (0.001 + s / wc);bodemag (LS, {1 e1, 1 e5}),网格,标题(<年代pan style="color:#A020F0">“目标回路形状”)

图中包含一个轴对象。axis对象包含一个类型为line的对象。该对象表示LS。

请注意,我们选择了双固有的双稳定的实现,以避免使用边缘稳定极点和不恰当的逆的技术困难。为了调整<年代pan class="inlineequation"> C 年代 和<年代pan class="inlineequation"> F 年代 hinfstruct,则必须将目标环路形状化为对闭环增益的约束。有一种系统的方法是测量反馈回路,如下所示:

  • 增加测量噪声信号n

  • 使用目标循环形状LS和它的倒数来过滤错误信号e和白噪声源西北

图2:闭环公式

如果<年代pan class="inlineequation"> T 年代 为的闭环传递函数(r,西北)电子战(y),增益约束

T < 1

确保下列理想的性能:

  • 在低频(wLS

  • 在高频(w>wc)时,开环增益保持在规定的增益以下LS

  • 闭环系统具有足够的稳定裕度

  • 闭环阶跃响应超调小。

因此,我们可以专注于调优<年代pan class="inlineequation"> C 年代 和<年代pan class="inlineequation"> F 年代 执行<年代pan class="inlineequation"> T < 1

在MATLAB中确定控制结构

在MATLAB中,可以使用连接命令模式<年代pan class="inlineequation"> T 年代 将固定组件和可调组件按图2的框图连接:

%标记块I/ oWn = 1 / LS;Wn。u =<年代pan style="color:#A020F0">“西北”;Wn。y =<年代pan style="color:#A020F0">“n”;我们= LS;我们。u =<年代pan style="color:#A020F0">“e”;我们。y =<年代pan style="color:#A020F0">“电子战”;C0。u =<年代pan style="color:#A020F0">“e”;C0。y =<年代pan style="color:#A020F0">“u”;F0。u =<年代pan style="color:#A020F0">“yn”;F0。y =<年代pan style="color:#A020F0">“。”;<年代pan style="color:#228B22">%指定求和连接Sum1 = sumblk (<年代pan style="color:#A020F0">'e = r - yf');Sum2 = sumblk (<年代pan style="color:#A020F0">'yn = y + n');<年代pan style="color:#228B22">把积木连接在一起T0 =连接(G, Wn, C0, F0 Sum1, Sum2, {<年代pan style="color:#A020F0">“r”,<年代pan style="color:#A020F0">“西北”},{<年代pan style="color:#A020F0">“y”,<年代pan style="color:#A020F0">“电子战”});

这些命令构建了一个广义状态空间模型T0的<年代pan class="inlineequation"> T 年代 .这个模型依赖于可调块C一个

T0。块
ans =<年代pan class="emphasis">结构体字段:C: [1x1 tunablePID] a: [1x1 realp]

请注意,T0捕获图2框图的以下“标准形式”,其中包含可调优组件<年代pan class="inlineequation"> C F 与固定的动力学分离。

图3:磁盘驱动器环路整形的标准形式

调整控制器增益

我们现在可以使用了hinfstruct调整PI控制器<年代pan class="inlineequation"> C 和过滤<年代pan class="inlineequation"> F 用于图1的控制体系结构。为了降低局部极小值的风险,运行三个优化,其中两个是从随机初始值开始的C0F0

rng (<年代pan style="color:#A020F0">“默认”) opt = hinfstructOptions(<年代pan style="color:#A020F0">“显示”,<年代pan style="color:#A020F0">“最后一次”,<年代pan style="color:#A020F0">“RandomStart”5);T = hinfstruct (T0,选择);
最后:峰值增益= 3.88,最后迭代= 67:峰值增益= 597,迭代= 187一些闭环极点略微稳定(衰变率接近1 e-07)最后:峰值增益= 596,迭代= 180一些闭环极点略微稳定(衰变率接近1 e-07)最后:峰值增益= 3.88,最后迭代= 66:最终:峰值增益= 1.56,迭代= 91

最佳闭环增益为1.56,因此约束<年代pan class="inlineequation"> T < 1 几乎是满意的。的hinfstruct命令返回调优的闭环传输<年代pan class="inlineequation"> T 年代 .使用showTunable的调谐值<年代pan class="inlineequation"> C 和滤波系数<年代pan class="inlineequation"> 一个

showTunable (T)
C = 1 Kp + Ki *——s, Kp = 0.000846, Ki = 0.0103----------------------------------- a = 5.49e+03

使用getBlockValue的调优值<年代pan class="inlineequation"> C 年代 和使用getValue对过滤器进行评估<年代pan class="inlineequation"> F 年代 的调优值<年代pan class="inlineequation"> 一个

C = getBlockValue (T)<年代pan style="color:#A020F0">“C”);F = getValue (F0 T.Blocks);<年代pan style="color:#228B22">%从T传播调谐参数到F特遣部队(F)
ans =从输入yn到输出yf: 5486 -------- s + 5486连续时间传递函数。

为了验证设计,绘制开环响应图L = F * G * C并与目标环路形状进行比较LS

波德(LS,<年代pan style="color:#A020F0">“r——”F, G * C *,<年代pan style="color:#A020F0">“b”1 e6}、{1 e1),网格,标题(<年代pan style="color:#A020F0">的开环反应),传说(<年代pan style="color:#A020F0">“目标”,<年代pan style="color:#A020F0">“实际”)

图中包含2个轴对象。标题为From: yn To: y的轴对象1包含两个类型为line的对象。这些对象代表Target, Actual。axis对象2包含2个类型为line的对象。这些对象代表Target, Actual。

0dB交叉频率和整体环路形状符合预期。稳定性边距可以通过右键单击并选择<年代trong class="emphasis bold">特征菜单。该设计具有24dB增益裕度和81度相位裕度。根据参考图绘制闭环阶跃响应r定位y

步骤(反馈(G * C、F)),网格,标题(<年代pan style="color:#A020F0">“闭环反应”)

图中包含一个轴对象。标题为From: In(1) To: y的轴对象包含一个类型为line的对象。这个对象表示untitled1。

当响应没有超调时,由于第一个共振峰,会有一些残余的抖动G.您可以考虑在前向路径中添加陷波滤波器,以消除这些模式的影响。

从Simulink调优控制器增益金宝app

假设你用这个<一个href="matlab:open_system('rct_diskdrive')" target="_blank">金宝app仿真软件模型表示控制结构。如果您已经安装了Simu金宝applink Control Design,您可以按如下方式从这个Simulink模型中调整控制器增益。先标记信号r, e, y, n如Simulink模型中的线性分析点。金宝app

的实例slTuner接口和标记的Simulink块金宝appCF可调:

ST0 = slTuner (<年代pan style="color:#A020F0">“rct_diskdrive”,{<年代pan style="color:#A020F0">“C”,<年代pan style="color:#A020F0">“F”});

由于滤波器<年代pan class="inlineequation"> F 年代 有一个特殊的结构,显式指定如何参数化F布洛克:

一个= realp (<年代pan style="color:#A020F0">“一个”1);<年代pan style="color:#228B22">%滤波器系数setBlockParam (ST0<年代pan style="color:#A020F0">“F”特遣部队([1]));

最后,使用getIOTransfer推导闭环传递函数的可调模型<年代pan class="inlineequation"> T 年代 (见图2)

%计算闭环传输(r,n) -> (y,e)可调模型T0 = getIOTransfer (ST0, {<年代pan style="color:#A020F0">“r”,<年代pan style="color:#A020F0">“n”},{<年代pan style="color:#A020F0">“y”,<年代pan style="color:#A020F0">“e”});<年代pan style="color:#228B22">%在n和e通道增加权重功能T0 = blkdiag(1,LS) * T0 * blkdiag(1,LS);

现在,您已经准备好对控制器增益进行调优hinfstruct

rng(0) opt = hinfstructOptions(<年代pan style="color:#A020F0">“显示”,<年代pan style="color:#A020F0">“最后一次”,<年代pan style="color:#A020F0">“RandomStart”5);T = hinfstruct (T0,选择);
最后:峰值增益= 3.88,最后迭代= 67:峰值增益= 596,迭代= 168一些闭环极点略微稳定(衰变率接近1 e-07)最后:峰值增益= 597,迭代= 174一些闭环极点略微稳定(衰变率接近1 e-07)最后:峰值增益= 3.88,最后迭代= 71:最终:峰值增益= 1.56,迭代= 90

验证您获得与MATLAB方法相同的调谐值:

showTunable (T)
C = 1 Kp + Ki *——s, Kp = 0.000846, Ki = 0.0103----------------------------------- a = 5.49e+03

另请参阅

相关的话题