PID控制器的整定——基于临界比例度法的PID整定

关键字:Matalb;PID;临界比例度;参数整定

系列文章目录

PID控制器的整定——基于响应曲线法的PID整定



前言

  PID控制作为工业常用控制方法,其控制效果与三个参数比例系数积分系数微分系数息息相关,通过一定的方法,对其进行整定就成为PID控制中较为重要的一环。


提示:本文对一些复杂的流程与概念进行了简化与省略,如果想详细了解的小伙伴可以参考刘金琨老师的《先进PID控制MATLAB仿真 -第4版》的第2章(需要电子版请私戳)

一、应用PID控制的SISO系统

  在应用PID控制的SISO(单输入单输出)系统如图1.1:
Alt

图1.1 应用PID控制器的单输入单输出系统结构图

其中 K p K_p Kp K i K_i Ki K d K_d Kd分别是比例系数、积分系数和微分系数。

二、临界比例度法

1.整定公式

  临界比例度法是一种经验公式,在本博文中将直接使用该公式:
Alt

图2.1 临界比例度法

其中 δ τ \delta_\tau δτ T τ T_\tau Tτ分别是比例度、等幅振荡的周期。
Alt

图2.2 等幅振荡输出

2.整定步骤

  1. 在P控制器的情况下开始
    u ( k ) = 1 δ τ e ( k ) = 1 δ τ [ r ( k ) − c ( k ) ] (1) u\left( k \right)=\frac{1}{\delta_\tau}e\left( k \right)=\frac{1}{\delta_\tau}\left[r\left( k \right)-c\left( k \right)\right] \tag{1} u(k)=δτ1e(k)=δτ1[r(k)c(k)](1)其中 u ( k ) u\left( k \right) u(k) e ( k ) e\left( k \right) e(k) r ( k ) r\left( k \right) r(k) c ( k ) c\left( k \right) c(k)分别表示当前采样时刻的控制器输出、误差、输入和输出;
  2. K p K_p Kp较小的情况下,即比例度值较大开始调整,逐步减小其值;
  3. 当系统输出达到临界震荡时,此刻的比例度即为 δ τ \delta_\tau δτ,此时的震荡周期即为 T τ T_\tau Tτ

注意:只有自平衡对象才能使用此方法。自平衡对象如:水缸液位——经过进水与出水阀,水缸液位总能稳定在一个新的或原来的稳态。非自平衡对象如:单轴倒立摆小车——不增加控制器,从平衡状态下,一旦有电机动作倒立摆将不再平衡。

三、MATLAB实现

  考虑被控对象的传递函数:
G ( s ) = 5 e − 2 s 1.5 s 2 + 2.5 s + 1 (2) G\left( s \right)=\frac{5e^{-2s}}{1.5s^2+2.5s+1} \tag{2} G(s)=1.5s2+2.5s+15e2s(2)实现对上述传递函数的PID控制器参数整定,代码如下:

% Critical proportionality method for PID parameter
clc;
clear;
close all;
%% 
N=500;                                                                      %采样点个数
delta_tau=2.8;                                                              %δτ
T_tau=9;                                                                    %Tτ
num_c=5;                                                                    %传递函数分子系数
den_c=[1.5 2.5 1];                                                          %传递函数分母系数
tol=2;                                                                      %纯滞后参数
Ts=1;                                                                       %采样时间
sys_c=tf(num_c,den_c,'inputdelay',tol);                                     %连续系统
sys_d=c2d(sys_c,Ts,'zoh');                                                  %离散系统(Z变换)
[num_d,den_d]=tfdata(sys_d,'v');                                            %Z变换后传递函数的分子、分母系数
time=ones(1,N);
r=ones(1,N);
c=ones(1,N);
e=ones(1,N);
de=ones(1,N);
u=ones(1,N);
u_1=0.0;u_2=0.0;u_3=0.0;u_4=0.0;                                            %u_1=u(k-1)、u_2=u(k-2)、u_3=u(k-3)、u_4=u(k-4)
e_1=0;                                                                      %e_1=e(k-1)
ei=0;                                                                       
c_1=0.0;c_2=0.0;                                                            %c_1=c(k-1)、c_2=c(k-2)
%% 
for k=1:1:N
    time(k)=k*Ts;                                                           %时间向量
    r(k)=1.0;                                                               %系统输入
    c(k)=-den_d(2)*c_1-den_d(3)*c_2+num_d(2)*u_3+num_d(3)*u_4;              %系统输出
    e(k)=r(k)-c(k);                                                         %系统误差
    de(k)=(e(k)-e_1)/Ts;                                                    %误差微分
    ei=ei+Ts*e(k);                                                          %误差积分
    % 通过控制参数M的改变控制器类型
    M=1;
    % 整定比例度参数     
    if M==1
        delta=delta_tau;
        u(k)=1/delta*e(k);
    % P控制器下的系统输出
    elseif M==2
        delta=2*delta_tau;
        u(k)=1/delta*e(k);
    % PI控制器下的系统输出
    elseif M==3
        delta=2.2*delta_tau;
        Ti=0.85*T_tau;
        u(k)=1/delta*(e(k)+1/Ti*ei);
    % PID控制器下的系统输出
    elseif M==4
        delta=1.7*delta_tau;
        Ti=0.5*T_tau;
        Td=0.13*T_tau;
        u(k)=1/delta*(e(k)+1/Ti*ei+Td*de(k));
    end
    %更新系统参数
    e_1=e(k);
    u_4=u_3;u_3=u_2;u_2=u_1;u_1=u(k);
    c_2=c_1;c_1=c(k);
end
%% 
%画图
plot(time,r,'r-',time,c,'k:','linewidth',2);
xlabel('time(s)');ylabel('Position tracking');
legend('Ideal position signal','Position tracking','loaction','NorthEast');

在上述代码中有几个问题需要注意:
①离散输出的形式需要根据Z变换后的传递函数确定:
U C = n u m ( 2 ) z − 3 + n u m ( 3 ) z − 4 d e n ( 1 ) + d e n ( 2 ) z − 1 + d e n ( 3 ) z − 2 (3) \frac{U}{C}=\frac{num \left( 2 \right)z^{-3}+num\left( 3 \right)z^{-4}}{den \left( 1 \right)+den \left( 2 \right)z^{-1}+den\left( 3 \right)z^{-2}} \tag{3} CU=den(1)+den(2)z1+den(3)z2num(2)z3+num(3)z4(3)以上的公式可以根据图3.1推得:
Alt

图3.1 离散传递函数

②纯滞后环节的Z变换:如图3.1中单独的 z − 2 z^{-2} z2这一项,就是由纯滞后环节 e − 2 × T s e^{-2\times T_s} e2×Ts变换的得来,注意如果 T s = 0.1 T_s=0.1 Ts=0.1,则纯滞后环节的Z变换则变为 z − 20 z^{-20} z20
Alt

图3.2 纯滞后环节的Z变换

③整定流程
M = 1 M=1 M=1情况下调节 δ τ = 5 \delta_\tau=5 δτ=5
Alt

图3.3 M=1 δτ=5

减小到一半 δ τ = 2.5 \delta_\tau=2.5 δτ=2.5
Alt

图3.4 M=1 δτ=2.5

现在可以断定的是临界稳定的大概范围为 ( 2.5 , 5 ) \left(2.5,5\right) (2.5,5),在多次实验后可得 δ τ = 2.8 \delta_\tau=2.8 δτ=2.8时系统输出为临界稳定:
Alt

图3.5 M=1 δτ=2.8

并且在此时震荡的周期 T τ = 9 T_\tau=9 Tτ=9
Alt

图3.6 M=1 δτ=2.8时的震荡周期

随后分别令M=2、3、4即可得到P、PI、PID控制下的系统输出:
Alt

图3.7 M=2 δτ=2.8

Alt

图3.8 M=3 δτ=2.8

Alt

图3.9 M=4 δτ=2.8

总结

  总结什么的不想写了,就放一段文字在这里😉。

参考文献

[1]刘金琨. 先进PID控制MATLAB仿真.第4版[M]. 电子工业出版社, 2016.

  • 16
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

hvp

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

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

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

打赏作者

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

抵扣说明:

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

余额充值