这个例子用途过度
探讨整定PID控制器时设定值跟踪和抗干扰之间的权衡。
在整定1-DOF PID控制器时,通常不可能同时实现良好的跟踪和快速的抗干扰。在控制带宽固定的情况下,越快的抗扰要求带宽内的增益越大,这只能通过增加交叉频率附近的斜率来实现。因为较大的斜率意味着较小的相位裕度,这通常是以对设定值变化响应的更多超调为代价的。
图1:1-DOF PID调谐中的折衷。
这个例子用途过度
探索此权衡并找到您的申请的正确妥协。也可以看看Pidtool.
为了更直接的方式来制定这种权衡(参见控制器选项下的“设计焦点”)。
考虑图2的PID环路,在工厂输入处具有负载干扰。
图2:PID控制循环。
对于这个例子,我们使用工厂模型
目标控制带宽为10 rad/s。创建一个可调PID控制器,并将其微分滤波器的时间常数固定为(10倍带宽),因此只有三种增益可调(比例增益、积分增益和导数增益)。
g = ZPK(-5,[ - 1 -2 -10],10);c =调谐('C'那'PID');C.Tf.Value = 0.01;C.Tf.Free = false;%修复Tf = 0.01
构建可调型号T0.
闭环传输的R.
到y
。使用“分析点”块标记位置你
扰动进入的地方。
LS = AnalysisPoint ('U');T0 =反馈(G * LS * C, 1);T0。u ='r';t0.y =“y”;
开环响应的增益是反馈回路行为的关键指标。开环增益在控制带宽内应该是高的(大于1),以确保良好的干扰抑制,而在控制带宽外应该是低的(小于1),以对测量噪声和未建模的植物动态不敏感。因此,用三个要求来表达控制目标:
“跟踪”要求指定大约0.2秒的响应时间来进行步进更改R.
“MaxLoopGain”要求强制- 20db / 10年以上的交叉频率10 rad/s
“MinLoopGain”要求在低于0.1 rad/s的频率下调整积分增益。
s = tf(s);WC = 10;%目标交叉频率% 追踪R1 = TuningGoal。跟踪('r'那“y”,2 / wc);%带宽和滚动r2 = tuninggoal.maxloopgain('U'、wc / s);%干扰拒绝R3 = TuningGoal。MinLoopGain ('U'、wc / s);R3。焦点= [0 0.1];
使用过度
调整PID增益以满足这些要求。将带宽和干扰抑制目标作为硬约束,并在这些约束下优化跟踪。
T1 = SYSTUNE(T0,R1,[R2 R3]);
Final:Soft = 1.12,硬= 0.9998,迭代= 157
验证几乎满足了所有三种要求。蓝色曲线是实现的值,黄色贴片突出显示所要求的区域。
数字(“位置”,[100,100,560,580])视图目标([R1 R2 R3],T1)
要进入跟踪和干扰拒绝之间的权衡探讨,通过一个因素增加频段[0,0.1] RAD的最小环路增益。重新调整值的PID增益。
%回路增益增加2倍alpha = 2;r3.mingain = alpha * wc / s;T2 = SYSTUNE(T0,R1,[R2 R3]);
最终:Soft = 1.17,硬= 0.99954,迭代= 115
%回路增益增加4倍alpha = 4;r3.mingain = alpha * wc / s;T3 = SYSTUNE(T0,R1,[R2 R3]);
Final:Soft = 1.25,硬= 0.99994,迭代= 166
将响应与步骤命令进行比较R.
并对一步的骚扰D.
在工厂输入处输入你
。
图,步骤(T1,T2,T3,3)标题(“定位点跟踪”) 传奇(“\α= 1”那“\α= 2”那“\α= 4”的)
%计算闭环从y到yD1 = getIOTransfer (T1,'U'那“y”);d2 = getiotransfer(t2,'U'那“y”);D3 = getIOTransfer (T3,'U'那“y”);步骤(d1,d2,d3,10)标题(“干扰拒绝”) 传奇(“\α= 1”那“\α= 2”那“\α= 4”的)
注意干扰抑制是如何改进的α
增加,但以设置点跟踪中增加的超调为代价。绘制三种设计的开环响应,并注意交叉前的斜率(0dB)随α
。
L1 = getLoopTransfer (T1,'U');l2 = getLooptransfer(t2,'U');L3 = getLoopTransfer (T3,'U');bodemag (L1, L2, L3,{1飞行,1 e2}),网格标题('开环响应') 传奇(“\α= 1”那“\α= 2”那“\α= 4”的)
哪种设计最适合取决于您正在调整的反馈循环的主要目的。
如果你不能利用跟踪来提高抗干扰能力,可以考虑使用2-DOF架构。二自由度PID控制器能够快速抑制扰动,而不增加设定值跟踪的超调量。
图3:二自由度PID控制回路。
使用TunablePid2.
对象以参数化2-DOF PID控制器并构建可调型号T0.
闭环系统在图3中。
C = tunablePID2 ('C'那'PID');C.Tf.Value = 0.01;C.Tf.Free = false;%修复Tf = 0.01T0 =反馈(G * LS * C, 1、2、1,+ 1);T0 = T0 (: 1);T0。u ='r';t0.y =“y”;
下一个调整2-DOF PI控制器,以提前尝试过最大的循环增益()。
百分比带宽内的最小环路增益(用于干扰抑制)alpha = 4;r3.mingain = alpha * wc / s;%曲调2-DOF PI控制器T4 = SYSTUNE(T0,R1,[R2 R3]);
最终:Soft = 1.09,硬= 0.91898,迭代= 70
比较1-DOF和2-DOF设计的设定点跟踪和干扰抑制特性。
clf、步骤(T3,'B',t4,“g——”,4)标题(“定位点跟踪”) 传奇('1-DOF'那'2-DOF'的)
d4 = getiotransfer(t4,'U'那“y”);步骤(D3,'B',d4,“g——”,4)标题(“干扰拒绝”) 传奇('1-DOF'那'2-DOF'的)
对阶跃扰动的响应是相似的,但二自由度控制器消除了响应中对设定值变化的超调。您可以使用展示
比较1-DOF和2-DOF控制器的调谐增益。
展示(T3)% 1-DOFπ
C = 1 S KP + KI * --- + KD * -------- S TF * S + 1带KP = 9.51,KI = 14.9,KD = 0.89,TF = 0.01名称:C连续时间PIDF控制器以并行形式。
展示(T4)%2-DOF PI
C = 1 s u = Kp (b*r-y) + Ki --- (r-y) + Kd -------- (c*r-y) s Tf*s+1 with Kp = 6.18, Ki = 21.3, Kd = 0.897, Tf = 0.01, b = 0.688, c = 1.23 Name: C Continuous-time 2-DOF PIDF controller in parallel form.