专家PID控制matlab程序
1 专家PID控制
专家PID控制的实质是:基于受控对象和控制规律的各种知识,无须知道被控对象的精确模型,利用专家经验来设计PID参数。专家PID控制是一种直接型专家控制器。
典型的二阶系统单位阶跃响应误差曲线如图2一5所示。
令e(k)表示离散化的当前采样时刻的误差值,e(k-1),e(k-2)分别表示前一个和前两个采样时刻的误差值,则有
施,相当于实施开环控制;II,IV,VI,…区域,误差绝对值朝增大的方向变化,此时,可根据误差的大小分别实施较强或一般的控制作用,以抑制动态误差。
2 实例状态
求三阶传递函数的阶跃响应
其中采样时间间隔为1ms。
3 仿真结果
1)轨迹跟踪
2)实时误差
4 matlab程序
%% 专家PID控制
clc
clear
close all;
ts=0.001;
sys=tf(5.235e005,[1,87.35,1.047e004,0]); %Plant
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]';
x2_1=0;
kp=0.6;
ki=0.03;
kd=0.01;
error_1=0;
for k=1:1:500
time(k)=k*ts;
r(k)=1.0; %目标轨迹
u(k)=kp*x(1)+kd*x(2)+ki*x(3); %PID 控制器
%专家控制规则
%规则1
if abs(x(1))>0.8 %Rule1:Unclosed control rule
u(k)=0.45;
elseif abs(x(1))>0.40
u(k)=0.40;
elseif abs(x(1))>0.20
u(k)=0.12;
elseif abs(x(1))>0.01
u(k)=0.10;
end
。。。。。。略