这个例子使用了据code class="literal">h据/code>调整固定结构控制器的命令据S.pan class="inlineequation"> 约束。据/p>
这据code class="literal">h据/code>命令扩展了经典据S.pan class="inlineequation"> 合成(参见据code class="literal">Hinfsyn.据/code>)到固定结构控制系统。此命令适用于用户已经舒适的用户据code class="literal">Hinfsyn.据/code>工作流。如果你不熟悉据S.pan class="inlineequation"> 合成或查找增强植物和加权功能令人生畏,使用据code class="literal">Systune.据/code>和据code class="literal">loopune.据/code>反而。看据一种href="//www.tatmou.com/help/control/ug/tuning-control-systems-with-systune_btl4p3_.html" class="a">调整控制系统及其过度据/a>为据code class="literal">Systune.据/code>这个例子的对应物。据/p>
此示例在硬盘驱动器中使用头磁盘组件(HDA)的第9个阶模型。此模型捕获HDA中的前几种灵活模式。据/p>
加载据S.pan style="color:#A020F0">hinfstruct_demo.据/span>G据/span>BODE(G),网格据/pre>
我们使用下面显示的反馈循环将头部位于正确的轨道上。该控制结构包括PI控制器和返回路径中的低通滤波器。头部位置据code class="literal">y据/code>应该跟踪一步变化据code class="literal">R.据/code>响应时间约为1毫秒,很少或没有过冲,没有稳态误差。据/p>
图1:控制结构据/strong>
图1的控制结构中有两个可调元素:PI控制器据S.pan class="inlineequation"> 和低通滤波器据/p>
使用据code class="literal">调音据/code>类以参数化PI块并指定过滤器据S.pan class="inlineequation"> 作为传输功能,具体取决于可调性真实参数据S.pan class="inlineequation"> 。据/p>
c0 =调谐(据S.pan style="color:#A020F0">'C'据/span>那据S.pan style="color:#A020F0">'pi'据/span>);据S.pan style="color:#228B22">%调谐pi.据/span>一个= realp (据S.pan style="color:#A020F0">'一种'据/span>,1);据S.pan style="color:#228B22">%滤波器系数据/span>f0 = tf(a,[1 a]);据S.pan style="color:#228B22">%过滤器由a参数化据/span>
环形成形是一种用于对响应速度,控制带宽,滚动和稳态误差的要求执行要求的频域技术。该想法是为开环响应指定目标增益简档或“循环形状”据S.pan class="inlineequation"> 。该应用的合理循环形状应具有整体作用和约1000 rad / s的交叉频率(所需响应时间的倒数0.001秒)。这表明以下循环形状:据/p>
WC = 1000;据S.pan style="color:#228B22">%目标交叉据/span>s = tf(据S.pan style="color:#A020F0">'据/span>);LS = (1 + 0.001 * s / wc) / (0.001 + s / wc);bodemag (LS, {1 e1, 1 e5}),网格,标题(据S.pan style="color:#A020F0">'目标循环形状'据/span>)据/pre>
请注意,我们选择了双重,双稳定的实现,以避免具有较小稳定的极点和不正当的逆端的技术困难。为了调整据S.pan class="inlineequation"> 和据S.pan class="inlineequation"> 和据code class="literal">h据/code>,则必须将目标环路形状化为对闭环增益的约束。有一种系统的方法是测量反馈回路,如下所示:据/p>
添加测量噪声信号据code class="literal">N.据/code>
使用目标循环形状据code class="literal">LS.据/code>及其互换滤波错误信号据code class="literal">E.据/code>和白噪声源据code class="literal">NW.据/code>。据/p>
图2:闭环配方据/strong>
如果据S.pan class="inlineequation"> 表示闭环传输功能据code class="literal">(r,nw)据/code>到据code class="literal">电子战(y)据/code>,增益约束据/p>
确保以下理想的属性:据/p>
在低频(W
在高频(W> WC),开环增益保持低于指定的增益据code class="literal">LS.据/code>
闭环系统具有足够的稳定性边缘据/p>
闭环步骤响应较小。据/p>
因此,我们可以专注于调整据S.pan class="inlineequation"> 和据S.pan class="inlineequation"> 执行据S.pan class="inlineequation"> 。据/p>
在Matlab中,您可以使用据code class="literal">连接据/code>命令模型据S.pan class="inlineequation"> 通过根据图2的框图连接固定和可调组件:据/p>
%标记块I / OS据/span>wn = 1 / ls;wn.u =据S.pan style="color:#A020F0">“西北”据/span>;wn.y =据S.pan style="color:#A020F0">“n”据/span>;我们= ls;we.u =据S.pan style="color:#A020F0">'e'据/span>;我们=据S.pan style="color:#A020F0">'ew'据/span>;c0.u =据S.pan style="color:#A020F0">'e'据/span>;C0.Y =据S.pan style="color:#A020F0">'U'据/span>;f0.u =据S.pan style="color:#A020F0">'yn'据/span>;F0.Y =据S.pan style="color:#A020F0">'yf'据/span>;据S.pan style="color:#228B22">%指定总结结据/span>sum1 = sumblk(据S.pan style="color:#A020F0">'e = r - yf'据/span>);sum2 = sumblk(据S.pan style="color:#A020F0">'yn = y + n'据/span>);据S.pan style="color:#228B22">%将块连接在一起据/span>T0 = Connect(g,wn,we,c0,f0,sum1,sum2,{据S.pan style="color:#A020F0">'r'据/span>那据S.pan style="color:#A020F0">“西北”据/span>},{据S.pan style="color:#A020F0">'是'据/span>那据S.pan style="color:#A020F0">'ew'据/span>});据/pre>
这些命令构造了广义状态空间模型据code class="literal">T0.据/code>的据S.pan class="inlineequation"> 。此模型取决于可调块据code class="literal">C据/code>和据code class="literal">一种据/code>:据/p>
t0.blocks.据/pre>
ans =.据S.pan class="emphasis">结构与字段:据/em>C:[1x1调谐化] A:[1x1 Realp]据/pre>
注意据code class="literal">T0.据/code>捕获可调组件的图2框图的以下“标准表单”据S.pan class="inlineequation"> 与固定动态分开。据/p>
图3:用于磁盘驱动环循环的标准表单据/strong>
我们现在可以使用了据code class="literal">h据/code>调整PI控制器据S.pan class="inlineequation"> 和过滤据S.pan class="inlineequation"> 对于图1的控制架构。为了减轻本地最小值的风险,运行三个优化,其中两个是从随机初始值开始的据code class="literal">C0.据/code>和据code class="literal">F0.据/code>:据/p>
rng (据S.pan style="color:#A020F0">“默认”据/span>)opt = hinfstructions(据S.pan style="color:#A020F0">'展示'据/span>那据S.pan style="color:#A020F0">'最后'据/span>那据S.pan style="color:#A020F0">'OrmyStart'据/span>5);t = hinfstruct(t0,选择);据/pre>
最后:峰值增益= 3.88,最后迭代= 67:峰值增益= 597,迭代= 191一些闭环极点略微稳定(衰变率接近1 e-07)最后:峰值增益= 108,迭代= 49略微有些闭环极点稳定(衰变率接近1 e-07)最后:峰值增益= 1.91,最后迭代= 91:峰值增益= 1.56,最后迭代= 97:峰值增益= 1.56,迭代次数= 94据/pre>
最好的闭环增益为1.56,因此约束据S.pan class="inlineequation"> 几乎满意。这据code class="literal">h据/code>命令返回调谐闭环传输据S.pan class="inlineequation"> 。采用据code class="literal">展示据/code>查看调谐值据S.pan class="inlineequation"> 和过滤器系数据S.pan class="inlineequation"> :据/p>
showTunable (T)据/pre>
C = 1 kp + ki * --- kp = 0.000846,ki = 0.0103名称:C连续时间PI控制器并行形式。------------------------------ a = 5.49e + 03据/pre>
采用据code class="literal">getblockValue.据/code>获得调谐值据S.pan class="inlineequation"> 和使用据code class="literal">GetValue.据/code>评估过滤器据S.pan class="inlineequation"> 对于调谐值据S.pan class="inlineequation"> :据/p>
c = getblockValue(t,据S.pan style="color:#A020F0">'C'据/span>);f = getValue(f0,t.blocks);据S.pan style="color:#228B22">%从t到f传播调谐参数据/span>TF(f)据/pre>
ANS =从输入“YN”输出“YF”:5486 -------- S + 5486连续时间传递函数。据/pre>
要验证设计,请绘制开环响应据code class="literal">l = f * g * c据/code>并与目标循环形状进行比较据code class="literal">LS.据/code>:据/p>
BODE(LS,据S.pan style="color:#A020F0">'r--'据/span>,g * c * f,据S.pan style="color:#A020F0">'B'据/span>,{1e1,1e6}),网格,标题(据S.pan style="color:#A020F0">'开环响应'据/span>), 传奇(据S.pan style="color:#A020F0">'目标'据/span>那据S.pan style="color:#A020F0">'实际的'据/span>)据/pre>
0dB交叉频率和整体循环形状如预期的那样。可以通过右键单击并选择稳定性边距来读取绘图据S.trong class="emphasis bold">特征据/strong>菜单。该设计具有24dB增益裕度和81度相位裕度。根据参考图绘制闭环阶跃响应据code class="literal">R.据/code>到位据code class="literal">y据/code>:据/p>
步骤(反馈(G * C,F)),网格,标题(据S.pan style="color:#A020F0">'闭环响应'据/span>)据/pre>
虽然响应没有过冲,但由于第一个共振峰值,存在一些残留的摆动据code class="literal">G据/code>。您可能会考虑在前向路径中添加陷波滤波器以删除这些模式的影响。据/p>
假设你用了这个据一种href="matlab:open_system('rct_diskdrive')" target="_blank">金宝appSimulink模型据/a>表示控制结构。如果安装了Simulin金宝appk Control Design,则可以如下调整从该Simulink模型的控制器增益。首先标记信号据code class="literal">r,e,y,n据/code>作为Simulink模型中的线性分析点。金宝app据/p>
然后创建一个实例据code class="literal">SLTUNER.据/code>接口和标记的Simulink块金宝app据code class="literal">C据/code>和据code class="literal">F据/code>可调:据/p>
ST0 = slTuner (据S.pan style="color:#A020F0">'rct_diskdrive'据/span>,{据S.pan style="color:#A020F0">'C'据/span>那据S.pan style="color:#A020F0">'F'据/span>});据/pre>
自过滤器以来据S.pan class="inlineequation"> 具有特殊结构,明确指定如何参数化据code class="literal">F据/code>堵塞:据/p>
一个= realp (据S.pan style="color:#A020F0">'一种'据/span>,1);据S.pan style="color:#228B22">%滤波器系数据/span>SetBlockParam(ST0,据S.pan style="color:#A020F0">'F'据/span>,tf(a,[1 a]));据/pre>
最后,使用据code class="literal">getiotransfer据/code>推导出闭环传输功能的可调模型据S.pan class="inlineequation"> (见图2)据/p>
闭环传输(R,N) - >(y,e)的%计算可调式模型据/span>t0 = getiotransfer(st0,{据S.pan style="color:#A020F0">'r'据/span>那据S.pan style="color:#A020F0">“n”据/span>},{据S.pan style="color:#A020F0">'是'据/span>那据S.pan style="color:#A020F0">'e'据/span>});据S.pan style="color:#228B22">%在N和E通道中添加加权函数据/span>t0 = blkdiag(1,ls)* t0 * blkdiag(1,1 / ls);据/pre>
您现在准备好调整控制器获得据code class="literal">h据/code>:据/p>
RNG(0)opt = hinfstructions(据S.pan style="color:#A020F0">'展示'据/span>那据S.pan style="color:#A020F0">'最后'据/span>那据S.pan style="color:#A020F0">'OrmyStart'据/span>5);t = hinfstruct(t0,选择);据/pre>
终点:峰值增益= 3.88,迭代= 67最终:峰值增益= 597,迭代= 189一些闭环磁极略微稳定(衰减率接近1E-07)最终:峰值增益= 596,迭代= 170一些闭环极点稳定(近1E-07附近的衰减率)最终:峰值增益= 3.88,迭代= 69最终:峰值增益= 1.56,迭代= 102最终:峰值增益= 1.56,迭代= 108据/pre>
验证您与MATLAB方法的调整值相同:据/p>
showTunable (T)据/pre>
C = 1 kp + ki * --- kp = 0.000846,ki = 0.0103名称:C连续时间PI控制器并行形式。------------------------------ a = 5.49e + 03据/pre>