过控Matlab-串级控制系统的参数整定(二)

太原理工大学过程控制实验之串级控制系统的参数整定

实验内容

构成以锅炉温度为主变量,锅炉夹套温度为副变量的串级控制系统,假设主、副对象传递函数分别为
在这里插入图片描述

1.根据动态特性参数法对简单控制系统的控制器参数整定

1)建立被控系统的Simulink结构图,或利用程序建模。
在这里插入图片描述 在这里插入图片描述根据系统单位阶跃响应,采用作图法或计算法建立原系统的近似模型
在这里插入图片描述
求得系统的增益 K、时间常数 T 和纯迟延时间τ。
在这里插入图片描述2)Z-N工程整定方法

根据Z-N工程整定方法,可得
①P控制时:Kc=1/δ=T/(τK);
②PI控制时:Kc=1/δ=T/(1.1
τK);Ti=3.3τ;
③PID控制时:Kc=1/δ=T/(0.85τK);
Ti=2τ;Td=0.5τ;Z

利用系统的Simulink方框图,将仿真时间设置为 200,设置相应的控制器参数后,启动仿真,便可在示波器中看到系统在P、PI和PID 控制时的单位阶跃响应曲线。
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
3)C-C工程整定方法
根据C-C工程整定方法的计算公式,
①P控制时:Kc=(T/τ+0.333)/K;
②PI控制时:Kc=(0.9T/τ+0.082)/K;
Ti=(3.33
τ/T+0.3*(τ/T)^2)/(1+2.2τ/T)T
③PID控制时:Kc=(1.35
T/τ+0.27)/K;
Ti=(2.5
τ/T+0.5*(τ/T)^2)/(1+0.6τ/T)T
Td=(0.37
τ/T)/(1+0.2
τ/T)*T;

在这里插入图片描述保存系统在P、PI和PID控制时的单位阶跃响应曲线。
记录单闭环控制系统单位阶跃响应的性能指标于表2.1。
在这里插入图片描述在这里插入图片描述在这里插入图片描述

2.根据稳定边界方法对简单控制系统的控制器参数整定利用稳定边界法,分别计算系统采用P、PI、PID调节规律时的PID控制器参数,并保存

整定后系统的单位阶跃响应曲线,记录单闭环控制系统单位阶跃响应的性能指标于表2.1。
(1) 建立如图3所示的 Simulink 系统仿真框图。
(2) 首先在 MATLAB 工作窗口中,利用以下命令将图 2.2 中PID 控制器的积分时间设置为无穷大、微分时间设置为零、比例增益 Kc 设置较小的值。然后在图 2.2 中,将仿真时间设置为 200,启动仿真,便可在示波器中看到系统的单位阶跃响应曲线。
>>Ti=inf;Td=0;Kc=0.1
(3)逐渐增大比例系数 Kc,直到系统出现如图10所示的等幅振荡,即所谓临界振荡过
程。此时的比例系数被称为临界比例系数Kcr,两个波峰间的时间被称为临界振荡周期Tcr。
由上可知,临界比例带δcr =1/Kcr;临界振荡周期Tcr。

在这里插入图片描述得到 Kc=10.4, Tcr=40
(4)利用δcr和Tcr值,根据稳定边界法相应的计算公式,求控制器各整定参数 Kc、Ti和Td 的数值。

①P控制时:Kc =1/(2δcr )=Kcr/2
②PI控制时:Kc =1/(2.2δcr )=Kcr/2.2 ;
Ti=0.85Tcr
③PID控制时:Kc =1/(1.67δcr )=Kc /1.67 ;
Ti =0.50
Tcr ;Td =0.125*Tcr;

在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述

3.利用Simulink对简单控制系统PID控制器参数自整定

(1) 利用NCD Outport 模块(适用于 MATLAB6.5)或 Signal Constraint 模块(适用于MATLAB7.5),建立如图14所示 PID 控制系统Simulink参数优化模型。
在这里插入图片描述(2)在系统模型窗口中,首先打开阶跃信号(Step)模块的参数对话框,并将初始时间改为0;然后执行Simulation parameters命令,将仿真的停止时间设置为100,其余参数采用默认值。
(3) 在MATLAB 窗口中利用以下命令对PID 控制器的初始值进行任意设置 ,
如 >>Kc=2.5;Ti=26;Td=13;
或者>>Kc=1;Ti=1;Td=1;
(4)根据系统给定的时域性能指标设置阶跃响应特性参数。
在系统模型窗口中,用鼠标双击NCD Outport 模块,即打开一个 NCD Outport 模块的时域性能约束窗口,如图15所示。

在这里插入图片描述
在 NCD Outport 模块的时域性能约束窗口中,执行 Options Step response 命令,打开设置阶跃响应特性约束参数的设置窗口。在该窗口中,设置阶跃响应曲线的调整时间(SettlingTime)为 25、上升时间(Rise Time)为15、超调量(Percent over shoot)为 12 和阶跃响应的优化终止时间(Final time)为 100,其余参数采用默认值。

在这里插入图片描述(5)设置优化参数
在本例中为进行 PID 控制器的优化设计,将PID 控制器的参数 Kc、Ti 和 Td 作为 NCD Outport 模块的优化参数,故首先利用 Optimization Parameters 命令,打开设置优化参数(Optimization Parameters)的窗口。然后在该窗口中的优化变量名称(Tunable Varables)对话框中填写:Kc,Ti,Td(各变量间用西文逗号或空格分开),其余参数采用默认值,如图 2.6 所示。最后单击该窗口中的【Done】按钮接收以上数据。

(7)优化结束后,再次启动仿真,在示波器中便可得到如图17所示的单位阶跃响应曲线
在这里插入图片描述
该曲线应该就是优化结束后的最优曲线。由此可见,PID控制器参数进行优化后,系统的动态性能指标完全满足设计要求。在MATLAB窗口中利用以下命令,便可得到PID控制器的优化参数,如 Kc=10.3813; Ti=81.6846; Td=6.9227。

在这里插入图片描述在这里插入图片描述在这里插入图片描述

4.利用MATLAB/Simulink 对串级控制系统进行参数整定

(1)设定控制系统所用主、副控制器的传递函数分别为:
在这里插入图片描述
(2) 利用NCD Outport模块,建立如图所示的串级控制系统的 Simulink 结构图。
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述
整定主、副控制器的参数,并绘制整定后系统的单位阶跃响应曲线,记录串级控制系统单位阶跃响应的性能指标。
在这里插入图片描述

5.利用MATLAB/Simulink分析串级控制系统的抗干扰能力

对于串级控制系统,对于进入副回路的扰动,串级控制系统具有很强的抗干扰能力。并与单闭环控制系统对比。
在这里插入图片描述
在这里插入图片描述如果将同样的扰动项加在主回路中,对比串级控制系统的抗干扰能力和单闭环控制系统的抗干扰能力。

在这里插入图片描述在这里插入图片描述

6. 双容水箱液位串级控制系统实验

本实验以水箱1的液位为副调节器调节对象,水箱2的液位为主调节器调节对象,构成水箱液位串级控制系统,系统框图如图29所示。
在这里插入图片描述启动 ForceControl 运行系统,建立“串级双容水箱液位控制”工程文件,如图30所示。连通阀 CV1 的开度为 100%,出水阀 CV2 至某一开度。主、副调节器置手动,采用手动操作使液位达到某一平衡状态。采用逐步逼近法进行主、副调节器参数整定。在主对象水箱 2 上施加扰动信号,观察液位响应曲线。在副对象水箱 1 上施加扰动信号,观察液位响应曲线。
在这里插入图片描述在这里插入图片描述

思考题

1. 对比 Z-N 整定和 C-C 整定的控制器的控制效果。
由所得曲线知,Z-N 整定和 C-C 整定的P控制器的效果都较好,两三次振荡后就趋于稳定了,C-C整定的PI控制器的输出效果不佳,有频繁的振荡,两者整定的PID控制器都是一次振荡后就趋于稳定了,效果都十分好。

2. 比较等效简单控制系统和串级控制系统的抗干扰能力,并分析对一次和二次干扰的克服能力。
等效简单控制系统和串级控制系统的对一次干扰的抗干扰能力差不多,但串级控制系统对二次干扰的抗干扰能力比等效简单控制系统强很多。

  • 12
    点赞
  • 154
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
以下是一个基于DMC-PID串级控制的Matlab代码示例: ```matlab % 系统模型 s = tf('s'); G1 = 1/(s*(s+1)); G2 = 1/(0.5*s+1); % 控制器参数 N = 50; % 预测步数 Nu = 20; % 控制步数 lambda = 1; % 控制器惩罚因子 M = 2; % 串级控制器个数 % DMC-PID串级控制器 for i = 1:M if i == 1 Gc = dmc_pid(G1,N,Nu,lambda); else Gc = dmc_pid(G2,N,Nu,lambda); end if i == 1 G = G1; else G = G2; end Gcl{i} = feedback(G*Gc,1); end % 绘图比较 t = 0:0.01:10; u = sin(t); [y1,t] = lsim(Gcl{1},u,t); [y2,t] = lsim(Gcl{2},y1,t); plot(t,u,'b',t,y1,'r',t,y2,'g'); legend('输入信号','一级控制输出','级控制输出'); % DMC-PID控制器函数 function Gc = dmc_pid(G,N,Nu,lambda) % 系统阶数 [n,m] = size(G); % 计算K、Ku和Ke D = zeros(N,Nu); for i = 1:N for j = 1:Nu if (i >= j) D(i,j) = G(i-j+1); end end end K = inv(D'*D+lambda*eye(Nu))*D'; Ku = K(1,:)*D; Ke = sum(K(1,:)); % 控制器参数计算 deltau = zeros(Nu,1); y = zeros(n,1); yp = zeros(n,N); ym = zeros(n,Nu); du = zeros(Nu,1); % 控制器函数 function u = controller(yd,y) % 计算deltau e = yd-y; deltau(2:Nu) = deltau(1:Nu-1); deltau(1) = Ku*e-Ke*du; % 计算u du = deltau(1)+K(2:end,:)*deltau; u = du(1); end % 控制器输出函数 function [y,t] = output(u,t) for k = 1:length(t) y(k) = G*[u(k);y(k-1:-1:max(k-N+1,1))]; ym(:,2:Nu) = ym(:,1:Nu-1); ym(:,1) = y-yd(k); deltau = K*ym(:); du = deltau(1)+K(2:end,:)*deltau; u(k) = u(k-1)+du(1); end end % 输出控制器函数 Gc = @controller; Gc.output = @output; end ``` 需要注意的是,DMC-PID串级控制器需要对每个控制器单独进行参数计算,然后将其级联起来形成串级控制器。在控制器函数中,需要计算deltau和u两个变量,并在每个采样周期内更新控制器输出。在控制器输出函数中,需要计算系统输出和误差,并根据误差计算deltau和du,最终得到控制器输出u。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿健也会编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值