主要内容

优化多回路控制系统

属性共同调优级联体系结构的内部和外部循环systune命令。

级联PID回路

串级控制通常用于实现平滑跟踪和快速干扰抑制。最简单的级联架构包括两个控制循环(内部和外部),如下面的框图所示。内环通常比外环更快地在干扰传播到外环之前拒绝干扰。(MATLAB®Online不支持Simulink®)

open_system (“rct_cascade”

工厂模型和带宽要求

在本例中,是内环植物G2

$$ G_2(s) = \frac{3}{s+2} $$

还有外环植物G1

$$ G_1(s) = \frac{10}{(s+1)^3} $$

G2 = zpk([],-2,3);G1 = zpk([],[-1 -1 -1],10);

内环采用PI控制器,外环采用PID控制器。外环的带宽必须至少为0.2 rad/s,而内环的带宽应为足够的干扰抑制的十倍。

整定PID控制器与SYSTUNE

在Simulink中对控制系统建模时,使用slTuner接口在Simulink控制设计™中设置调优任务。列出可调块,标记信号r而且d2作为感兴趣的输入,并标记信号日元而且y2作为测量开环传输和指定环形状的位置。

ST0 = slTuner(“rct_cascade”, {“C1”C2的});addPoint (ST0, {“r”“d2”“日元”“日元”})

的当前值C1而且C2在Simulink模型中使用showTunable.通过Simulink模型的仿真,证实了控制系统在这些初始值下是不稳定的。

showTunable (ST0)
Block 1: rct_cascade/C1 = 1 Kp + Ki *——s with Kp = 0.1, Ki = 0.1名称:C1并行形式的连续时间PI控制器。----------------------------------- 块2:rct_cascade / C2 = 1 + Ki *——年代Kp = 0.1, Ki = 0.1名称:C2连续时间比例积分控制器并联形式。

接下来使用“LoopShape”要求为内外循环指定所需的带宽。使用/ s $ 0.2美元作为外环的目标环路形状,以0.2 rad/s的增益交叉频率强制积分动作:

%外环带宽= 0.2S = tf(“年代”);Req1 = TuningGoal。LoopShape (“日元”, 0.2 / s);%环传输测量在y1Req1。Name =“外循环”

使用2美元/ s $对于内环,使其比外环快十倍(更高的带宽)。若要约束内部循环传输,请确保通过指定打开外部循环日元作为循环开口:

%内环带宽= 2Req2 = TuningGoal。LoopShape (“日元”2 / s);%环转移测量在y2Req2。机会=“日元”%,外层环在y1打开Req2。Name =“内循环”

你现在可以调整PID增益C1而且C2systune

ST = systune(ST0,[Req1,Req2]);
最终:软= 0.859,硬= -Inf,迭代= 67

使用showTunable以查看调整后的PID增益。

showTunable (ST)
Block 1: rct_cascade/C1 = 1 s Kp + Ki *——+ Kd * -------- s Tf*s+1 with Kp = 0.0521, Ki = 0.0186, Kd = 0.0473, Tf = 0.00696名称:C1并行形式的连续时间PIDF控制器。----------------------------------- 块2:rct_cascade / C2 = 1 + Ki *——年代Kp = 0.721, Ki = 1.23名称:C2连续时间比例积分控制器并联形式。

验证设计

最终值小于1,这意味着systune成功满足两个环的形状要求。通过检查调优的控制系统来确认这一点viewGoal

viewGoal ([Req1, Req2],圣)

请注意,内圈和外圈具有所需的增益交叉频率。为了进一步验证设计,绘制阶跃命令r和阶跃扰动d2的调优响应:

对步骤命令的响应H = getIOTransfer(ST,“r”“日元”);clf, step(H,30), title(“命令”

%对阶跃干扰的响应H = getIOTransfer(ST,“d2”“日元”);步骤(H, 30)、标题(“扰动步”

一旦你对线性分析结果感到满意,就可以使用writeBlockValue将调整后的PID增益写回Simulink块。然后您可以在Simulink中进行更彻底的验证。

writeBlockValue (ST)

MATLAB等效工作流

如果您没有控制系统的Simulink模型,您可以使用设备和控制设计块的LTI模型来对可调元素建模,从而执行相同的步骤。

图1:级联架构

首先创建可调PI和PID控制器的参数模型。

C1 =可调谐pid (“C1”“pid”);C2 =可调谐pid (C2的“π”);

然后使用“分析点”块来标记环路开口位置日元而且y2

LS1 =分析点(“日元”);LS2 =分析点(“日元”);

最后,创建一个闭环模型T0通过关闭每个反馈回路来控制整个控制系统。结果是一个依赖于可调元素的广义状态空间模型C1而且C2

InnerCL =反馈(LS2*G2*C2,1);T0 =反馈(G1*InnerCL*C1,LS1);T0。InputName =“r”;T0。OutputName =“日元”

你现在可以调整PID增益C1而且C2systune

T = systune(T0,[Req1,Req2]);
最终:软= 0.859,硬= -Inf,迭代= 118

和以前一样,使用getIOTransfer计算并绘制对阶跃命令r和进入该位置的阶跃扰动的调优响应y2

对步骤命令的响应H = getIOTransfer(T,“r”“日元”);clf, step(H,30), title(“命令”

%对阶跃干扰的响应H = getIOTransfer(T,“日元”“日元”);步骤(H, 30)、标题(“扰动步”

您还可以绘制内部和外部循环的开环增益,以验证带宽需求。注意-1符号用于计算负反馈开环传输:

L1 = getLoopTransfer(T,“日元”1);%交叉点应该是。2L2 = getLoopTransfer(T,“日元”, 1“日元”);%交叉应该是2bodemag(L2,L1,{1e-2,1e2}),网格图例(“内循环”“外循环”

另请参阅

|

相关的话题

Baidu
map