控制算法(1)–PID专家控制
最近在学习无人驾驶以及机器人,先从自己的一点一滴记录起吧,不奢望能火,但求在和大家交流或者记录的过程中,学到点东西。
PID专家控制的实质就是基于受控对象和控制规律等知识,利用专家的经验来设计PID参数。
典型的二阶系统单位阶跃响应误差曲线如图所示。对于典型的二阶系统阶跃响应过程作如下分析。
I、Ⅲ、Ⅴ、Ⅶ、…区域,误差朝绝对值减小的方向变化。此时,可采取保持等待措施,相当于实施开环控制;Ⅱ、Ⅳ、Ⅵ、Ⅷ、…区域,误差绝对值朝增大的方向变化。此时,可根据误差的大小分别实施较强或一般的控制作用,以抑制动态误差。
令e(k)表示离散化的当前采样时刻的误差值,e(k-1)和e(k-2)分别表示前一个和前两个采样时刻的误差值,则有:
根据误差及其变化,可设计专家PID控制器,该控制器可分为以下五种情况进行设计:
(1)当|e(k)|>M1 时,说明误差的绝对值已经很大。不论误差变化趋势如何,都应考虑控制器的输出应按最大(或最小)输出,以达到迅速调整误差,使误差绝对值以最大速度减小。此时,它相当于实施开环控制。
(2)当e(k)Δe(k)>0或 Δe(k)=0时,说明误差在朝误差绝对值增大方向变化,或误差为某一常值,未发生变化。
此时,如果|e(k)|≥M2,说明误差也较大,可考虑由控制器实施较强的控制作用,以达到扭转误差绝对值朝减小方向变化,并迅速减小误差的绝对值,控制器输出为:
如果 |e(k)|<M2,说明尽管误差朝绝对值增大方向变化,但误差绝对值本身并不很大,可考虑控制器实施一般的控制作用,只要扭转误差的变化趋势,使其朝误差绝对值减小方向变化,控制器输出为
(3)当e(k)Δe(k)<0、Δe(k)Δe(k-1)>0或者e(k)=0 时,说明误差的绝对值朝减小的方向变化,或者已经达到平衡状态。此时,可考虑采取保持控制器输出不变。
(4)当e(k)Δe(k)<0、Δe(k)Δe(k-1)<0时,说明误差处于极值状态。如果此时误差的绝对值较大,即|e(k)|≥M2 ,可考虑实施较强的控制作用。
如果此时误差的绝对值较小,即|e(k)|<M2,可考虑实施较弱的控制作用
(5)当e(k)<ε时,说明误差的绝对值很小,此时加入积分,减少稳态误差。
以上各式中:
em(k)为误差e的第k个极值;
u(k)为第k次控制器的输出;
k1为增益放大系数,k1>1;
k2为抑制系数,0<k2<1;
M1,M2为设定的误差界限,M1>M2>0
k为控制周期
e为任意小的正实数
实例:
%专家PID控制
clc% 清屏
clear all;%删除workplace变量
close all;%关掉显示图形窗口
ts=0.001; % 采样时间
sys=tf(5.235e005,[1,87.35,1.047e004,0]); % 传递函数
dsys=c2d(sys,ts,'z'); % 连续模型离散化
[num,den]=tfdata(dsys,'v');% 获得分子分母
u_1=0;u_2=0;u_3=0;
y_1=0;y_2=0;y_3=0;
x=[0,0,0]'