hinfstruct
本例使用hinfstruct
命令来调优固定结构控制器<年代pan class="inlineequation">
约束。
的hinfstruct
命令扩展经典<年代pan class="inlineequation">
合成(见hinfsyn
)至固定结构控制系统。命令适用于已经熟悉hinfsyn
工作流。如果你不熟悉<年代pan class="inlineequation">
合成或发现增强植物和加权功能吓人,使用systune
而且looptune
代替。看到<一个href="//www.tatmou.com/de/de/help/control/ug/tuning-control-systems-with-systune_btl4p3_.html" class="a">调节控制系统与SYSTUNE为systune
与本例对应。
本例使用硬盘驱动器中头部磁盘组件(HDA)的九阶模型。该模型捕获了HDA中的前几个柔性模态。
负载<年代pan style="color:#A020F0">hinfstruct_demoG波德(G)、网格
我们使用如下所示的反馈循环来将头部定位在正确的轨道上。该控制结构由PI控制器和回路低通滤波器组成。头部位置y
应该跟踪一个步骤的变化吗r
响应时间约为1毫秒,很少或没有超调,并且没有稳态误差。
图1:控制结构
在图1的控制结构中有两个可调元素:PI控制器<年代pan class="inlineequation"> 还有低通滤波器
使用tunablePID
类来参数化PI块并指定过滤器<年代pan class="inlineequation">
作为传递函数依赖于一个可调实参数<年代pan class="inlineequation">
.
C0 =可调谐pid (<年代pan style="color:#A020F0">“C”,<年代pan style="color:#A020F0">“π”);<年代pan style="color:#228B22">%可调PIA = realp(<年代pan style="color:#A020F0">“一个”1);<年代pan style="color:#228B22">%过滤系数F0 = tf(a,[1 a]);<年代pan style="color:#228B22">%参数化的过滤器
环路整形是一种频域技术,用于加强对响应速度、控制带宽、滚转和稳态误差的要求。其思想是为开环响应指定一个目标增益剖面或“环路形状”<年代pan class="inlineequation"> .对于这种应用,合理的回路形状应具有积分作用,交叉频率约为1000 rad/s(期望响应时间的倒数为0.001秒)。这建议使用以下循环形状:
Wc = 1000;<年代pan style="color:#228B22">%目标交叉S = tf(<年代pan style="color:#A020F0">“年代”);LS = (1+0.001*s/wc)/(0.001+s/wc);bodemag(LS,{1e1,1e5}), grid, title(<年代pan style="color:#A020F0">“目标循环形状”)
请注意,我们选择了双固有、双稳定的实现,以避免边际稳定极点和不适当逆的技术困难。为了调优<年代pan class="inlineequation">
而且<年代pan class="inlineequation">
与hinfstruct
时,我们必须将这个目标环路形状转化为对闭环增益的约束。要做到这一点,一个系统的方法是将反馈循环仪器如下:
添加一个测量噪声信号n
使用目标循环形状LS
和它的倒数来滤波误差信号e
还有白噪声源西北
.
图2:闭环公式
如果<年代pan class="inlineequation">
的闭环传递函数(r,西北)
来电子战(y)
,增益约束
确保以下理想的属性:
在低频(w
在高频(w>wc),开环增益保持在所指定的增益以下LS
闭环系统具有足够的稳定裕度
闭环阶跃响应超调量小。
因此,我们可以专注于调优<年代pan class="inlineequation"> 而且<年代pan class="inlineequation"> 执行<年代pan class="inlineequation"> .
在MATLAB中,你可以使用连接
建模命令<年代pan class="inlineequation">
将固定组件和可调组件按图2框图连接:
%标记块I/ oWn = 1/LS;Wn。u =<年代pan style="color:#A020F0">“西北”;Wn。y =<年代pan style="color:#A020F0">“n”;We = 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 = connect(G,Wn,We,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">
.该模型依赖于可调块C
而且一个
:
T0。块
ans =<年代pan class="emphasis">带字段的结构:C: [1x1 tunablePID] a: [1x1 realp]
请注意,T0
获取图2中可调组件所在的框图的以下“标准形式”<年代pan class="inlineequation">
都是从固定动力中分离出来的。
图3:磁盘驱动器环整形的标准表格
我们现在可以使用了hinfstruct
调优PI控制器<年代pan class="inlineequation">
和过滤<年代pan class="inlineequation">
为图1的控制体系结构。为了降低局部极小值的风险,运行三个优化,其中两个从随机的初始值开始C0
而且F0
:
rng (<年代pan style="color:#A020F0">“默认”) opt = hinfstructOptions(<年代pan style="color:#A020F0">“显示”,<年代pan style="color:#A020F0">“最后一次”,<年代pan style="color:#A020F0">“RandomStart”5);T = hinfstruct(T0,opt);
最终:峰值增益= 3.88,迭代= 67最终:峰值增益= 597,迭代= 191一些闭环极点是边缘稳定的(衰减率接近1e-07)最终:峰值增益= 108,迭代= 49一些闭环极点是边缘稳定的(衰减率接近1e-07)最终:峰值增益= 1.91,迭代= 91最终:峰值增益= 1.56,迭代= 97最终:峰值增益= 1.56,迭代= 94
最佳闭环增益为1.56,因此约束<年代pan class="inlineequation">
几乎满足了。的hinfstruct
命令返回调优后的闭环传输<年代pan class="inlineequation">
.使用showTunable
的调优值<年代pan class="inlineequation">
还有滤波系数<年代pan class="inlineequation">
:
showTunable (T)
C = 1 Kp + Ki *——s with Kp = 0.000846, Ki = 0.0103名称:C并行形式的连续时间PI控制器。----------------------------------- a = 5.49e+03
使用getBlockValue
的调优值<年代pan class="inlineequation">
和使用getValue
计算过滤器<年代pan class="inlineequation">
的调优值<年代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”,{1e1,1e6}), grid, title(<年代pan style="color:#A020F0">的开环反应),传说(<年代pan style="color:#A020F0">“目标”,<年代pan style="color:#A020F0">“实际”)
0dB交叉频率和整体环路形状符合预期。稳定裕度可以通过右击并选择<年代trong class="emphasis bold">特征菜单。该设计具有24dB增益裕度和81度相位裕度。根据参考图绘制闭环阶跃响应图r
定位y
:
step(feedback(G*C,F)), grid, title(<年代pan style="color:#A020F0">“闭环反应”)
虽然响应没有超调,但由于第一个共振峰在G
.您可以考虑在正向路径中添加陷波滤波器,以消除这些模式的影响。
假设你用这个<一个href="matlab:open_system('rct_diskdrive')" target="_blank">金宝app仿真软件模型来表示控制结构。如果您已安装了Simul金宝appink Control Design,则可以按以下方式调整此Simulink模型的控制器增益。首先标记信号r, e, y, n
作为Simulink模型中的线性分析点。金宝app
对象的实例slTuner
接口并标记Simulink块金宝appC
而且F
可调:
ST0 = slTuner(<年代pan style="color:#A020F0">“rct_diskdrive”, {<年代pan style="color:#A020F0">“C”,<年代pan style="color:#A020F0">“F”});
因为过滤器<年代pan class="inlineequation">
具有特殊结构,显式指定如何参数化F
布洛克:
A = realp(<年代pan style="color:#A020F0">“一个”1);<年代pan style="color:#228B22">%过滤系数setBlockParam (ST0<年代pan style="color:#A020F0">“F”特遣部队([1]));
最后,使用getIOTransfer
导出闭环传递函数的可调模型<年代pan class="inlineequation">
(见图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,1/LS);
现在您已经准备好调优控制器增益hinfstruct
:
rng(0) opt = hinfstructOptions(<年代pan style="color:#A020F0">“显示”,<年代pan style="color:#A020F0">“最后一次”,<年代pan style="color:#A020F0">“RandomStart”5);T = hinfstruct(T0,opt);
最终:峰值增益= 3.88,迭代= 67最终:峰值增益= 597,迭代= 189一些闭环极点是边缘稳定的(衰减率接近1e-07)最终:峰值增益= 596,迭代= 170一些闭环极点是边缘稳定的(衰减率接近1e-07)最终:峰值增益= 3.88,迭代= 69最终:峰值增益= 1.56,迭代= 102最终:峰值增益= 1.56,迭代= 108
验证您获得与MATLAB方法相同的调优值:
showTunable (T)
C = 1 Kp + Ki *——s with Kp = 0.000846, Ki = 0.0103名称:C并行形式的连续时间PI控制器。----------------------------------- a = 5.49e+03