实验一:连续系统的模拟PID仿真
1.实验要求:
设被控对象为:,其中A为班号(2),B为学号(14),C 为所在微机号(1)。输入信号为单位阶跃信号,选用PID控制器,应用MATLAB软件的SIMULINK模块搭建控制系统,获得控制响应曲线。
2.实现过程:调节PID控制器的参数为以下5组数值:
观察控制结果的变化情况,并记录参数响应曲线。
3.实验运行结果:
① Kp=10,Ki=0,Kd=0:
② Kp=100,Ki=0,Kd=0:
③ Kp=1000,Ki=0,Kd=0:
④ Kp=1000,Ki=1000,Kd=0:
⑤ Kp=1000,Ki=1000,Kd=100:
分析5组控制器参数状态下的输出情况,及对实验结果的分析:
比例作用是按比例反应系统的偏差,系统一旦出现了偏差,比例调节立即产生调节作用用以减少偏差。比例作用大,可以加快调节,减少误差,但是过大的比例,使系统的稳定性下降,甚至造成系统的不稳定。
积分作用是使系统消除稳态误差,提高无差度。因为有误差,积分调节就进行,直至无差,积分调节停止,积分调节输出一常值。积分作用的强弱取决与积分时间常数Ti,Ti越小,积分作用就越强。反之Ti大则积分作用弱,加入积分调节可使系统稳定性下降,动态响应变慢。
微分作用反映系统偏差信号的变化率,具有预见性,能预见偏差变化的趋势,因此可以改善系统的动态性能。在微分时间选择合适情况下,可以减少超调,减少调节时间。
Kp=10,Ki=0,Kd=0时,输出没有超调,上升时间长,存在较大稳态误差,比例作用太小,同时缺少积分作用的控制;Kp=100,Ki=0,Kd=0: 调节时间相对减少,但仍然存在稳态误差,同样缺少积分作用的控制;Kp=1000,Ki=0,Kd=0:比例作用相对较大,输出存
在较长时间震荡;Kp=1000,Ki=1000,Kd=0:图像相对Kp=1000,Ki=0,Kd=0没有较大变化,积分用于调节稳态误差,而仅使用比例控制Kp=1000时已基本没有稳态误差;
Kp=1000,Ki=1000,Kd=100:PID综合控制,从调节时间、超调量、稳态误差等各方面进行控制。
实验二:离散系统的数字PID仿真
1.实验要求:
设被控对象形式为:,采样时间为0.1s,采用Z变换进行离散化,离散化对象为:
应用以下程序实现对离散系统的数字PID仿真控制,得到响应曲线。
2.实现程序:(要求将主要程序语句的功能标注清楚)
%PID Controller
clear all; %清除所有变量
close all; %关闭所有打开文件
ts=0.1; %采样时间间隔
sys=tf(1,[1,2,14,1]); %被控对象模型
dsys=c2d(sys,ts,'z'); %离散化被控模型
[num,den]=tfdata(dsys,'v'); %提取分子分母系数
u_1=0.0;u_2=0.0;u_3=0.0; %分子参数
y_1=0.0;y_2=0.0;y_3=0.0; %分母参数
x=[0,0,0]'; %用于存储PID各项项数
error_1=0; %用于存储上一次的偏差
for k=1:1:1500 %从1到1500步长为1的循环
time(k)=k*ts; %提取运行时间
kp=100;ki=10;kd=100; %调整PID参数
rin(k)=1; %Step Signal
u(k)=kp*x(1)+kd*x(2)+ki*x(3); %PID Controller
%Restricting the output of controller
if u(k)>=10 %输出最大限制
u(k)=10;
end
if u(k)<=-10 %输出最小限制
u(k)=-10;
end
%Linear model
yout(k)=-den(2)*y_1-den(3)*y_2-den(4)*y_3+num(2)*u_1+num(3)*u_2+num(4)*u_3;
%计算当前PID调整后的时域输出值yout(k)
error(k)=rin(k)-yout(k); %计算偏差e(k)
%Return of parameters
u_3=u_2;u_2=u_1;u_1=u(k);
y_3=y_2;y_2=y_1;y_1=yout(k);
x(1)=error(k); %Calculating P
x(2)=(error(k)-error_1)/ts; %Calculating D
x(3)=x(3)+error(k)*ts; %Calculating I
error_1=error(k); %转存当前e(k)
end
figure(1); %新建图形
plot(time,rin,'k',time,yout,'r'); %描绘输出图形
xlabel('time(s)'),ylabel('rin,yout'); %描绘坐标轴
3.实验运行结果:
实验结果分析:经过综合调节PID,使得kp=3.5;ki=0.45;kd=12便得到如图所示结果,调节时间大约在50s左右,超调量为0.2,不存在稳态误差。
实验三:串级系统的仿真控制
1. 实验要求:
假设一串级控制系统的结构框图为:
其中:
注意:参数a为每人学号的后两位(14),需要根据情况修改.
要求:在给定阶跃信号输入作用下,获得输出响应曲线,并计算超调量,峰值时间,调节时间(Δ=0.05)。
2. 实现步骤:
1)将传递函数带入并绘制串级控制系统的Simulink结构图
2)程序实现:(要求将主要程序语句的功能标注清楚)
clc; %清屏
clear all; %清除所有变量
[a,b,c,d]=linmod('qqy'); %根据模块名称写
sys=ss(a,b,c,d); %模型转换
figure(1); %新建图像窗口
step(sys); %显示阶跃响应
hold on %等待
[y,t]=step(sys); %取模型的阶跃响应
[mp,tf]=max(y); %取最大值给mp,对应时间单元给tf
cs=length(t); %取时间数组总和
yss=y(cs); %取最终为稳定值给yss
sigma=100*(mp-yss)/yss;%计算超调量
tp=t(tf); %计算峰值时间
%计算调节时间
i=cs+1;
n=0;
while n==0,
i=i-1;
if i==1
n=1;
elseif y(i)>1.05*yss
n=1;
end
end
t1=t(i);
cs=length(t);
j=cs+1;
n=0;
while n==0,
j=j-1;
if j==1
n=1;
elseif y(i)<0.95*yss
n=1;
end
end
t2=t(j);
if t2<tp,
if t1>t2,
ts=t1;
end
elseif t2>tp,
if t2<t1,
ts=t2;
else
ts=t1;
end
end
sigma=sigma(:,:,1)
tp=tp(:,:,1)
ts
3. 实验结果及性能分析(要求得到实验仿真曲线,应用程序计算性能指标)
实验四:专家PID仿真控制
1. 实验要求:
假设一专家控制系统的传递函数为:
G(s)=
注意:参数a为每人学号的后两位(14)
采用专家系统PID控制,输入信号为阶跃信号,取采样时间为1ms,用MATLAB仿真模拟此模型的阶跃响应过程。
2. 专家PID控制原理:
专家控制的实质是基于受控对象和控制规律的各种知识,并以智能的方式利用这些知识来设计控制器。利用专家经验来设计PID参数便构成了专家PID控制。
(1)首先通过传递函数离散取样,采样时间间隔为1ms。
(2)然后取PID初始值:kp=0.6; ki=0.03; kd=0.01;(需要根据传递函数调整)
(3)二阶系统阶跃过程分析如下,取阶跃信号:
令e(k)表示离散化的当前采样时刻的误差值,e(k-1)、e(k-2)、分别表示前一个和前两个采样时刻的误差值,则有
根据误差及其变化,可设计专家PID控制器,该控制器可分为5种情况设计:
Ⅰ:时,实施开环控制。
Ⅱ:当时由控制器实施较强控制作用,其输出可以为
当时控制器实施一般的控制作用,其输出为
Ⅲ:当时,控制器输出不变。
Ⅳ:当时,实施较强控制作用,
当时,实施较小控制作用,
Ⅴ:当时,此时加入积分,减小稳态误差。
式中,—————误差e的第k个极值;
—-分别为第k次和第k-1次控制器输出;
=2——————增益放大系数,;
=0.6—————增益抑制系数,;
——设定的误差界限,,
其中可取0.8,0.4,0.2,0.01四值;
=0.001—————任意小正实数。
(4)最后写出线性模型及当前采样时刻的误差值:
(5)循环以上(3)—(4)步,循环次数为1000次。
(6)画出专家PID控制阶跃响应曲线图(a)和误差响应曲线(b)。
3. 实现程序:(要求将主要程序语句的功能标注清楚)
%Expert PID Controller
clear all;
close all;
ts=0.001; %设定采样时间
sys=tf(523500,[1,87.35,10470,4]); %初始化传递函数
dsys=c2d(sys,ts,'z'); %Z变换
[num,den]=tfdata(dsys,'v'); %取分子、分母
u_1=0.0;u_2=0.0;u_3=0.0;
y_1=0.0;y_2=0.0;y_3=0.0;
x=[0,0,0]; %x(1)=e(k),x(2)=de(k),x(3)=^e(k)
x2_1=0; %de(k-1)
kp=0.6; ki=0.15; kd=0.03; %PID参数设定
k1=2;
k2=0.6;
e=0.001; %误差epsilon
M2=0.05;
error_1=0; %e(k-1)
for k=1:1000; %运行时长
time(k)=k*ts; %计算当前时间
rin(k)=1.0; %输入阶跃信号
u(k)=kp*x(1)+kd*x(2)+ki*x(3); %计算输出值
% 以下为专家控制器的规则
if abs(x(1))>0.8 %开环控制规则|e(k)|>M1
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
if (x(1)*x(2)>0)|(x(2)==0) %e(k)*de(k)>0|de(k)=0
if abs(x(1))>=M2 %|e(k)|>M2
u(k)=u_1+k1*kp*x(1);
else %|e(k)|<M2
u(k)=u_1+0.4*kp*x(1);
end
end
if(x(1)*x(2)<0&x(2)*x2_1>0)|(x(1)==0) %((e(k)*de(k)<0)&(de(k)*de(k-1)))|(e(k)=0)
u(k)=u(k); %不变
end
if (x(1)*x(2)<0)&(x(2)*x2_1<0) %(e(k)*de(k)<0)&(de(k)*de(k-1))
if abs(x(1))>M2 %|e(k)>=M2|
u(k)=u_1+k1*kp*error_1;
else %|e(k)|<M2
u(k)=u_1+k2*kp*error_1;
end
end
if abs(x(1))<=e %|e(k)|<epsilon
u(k)=0.5*x(1)+0.01*x(3);
end
if u(k)>=10 %输出最大值限制
u(k)=10;
end
if u(k)<=-10 %输出最小值限制
u(k)=-10;
end
% Linear model
yout(k)=-den(2)*y_1-den(3)*y_2-den(4)*y_3+num(1)*u(k)+num(2)*u_1+num(3)*u_2+num(4)*u_3;
%计算线性模型
error(k)=rin(k)-yout(k); %计算误差
% ------return of PID paramters---------
u_3=u_2;u_2=u_1;u_1=u(k);
y_3=y_2;y_2=y_1;y_1=yout(k);
x(1)=error(k); %计算P项数
x2_1=x(2); %de(k-1)=de(k)
x(2)=(error(k)-error_1)/ts; %计算D项数
x(3)=x(3)+error(k)*ts; %计算I项数
error_1=error(k); %e(k-1)=e(k)
end
figure(1); %新建图形窗口1
plot(time,rin,'b',time,yout,'r'); %描绘响应图形
xlabel('time(s)'); %描绘横坐标
ylabel('rin,yout'); %描绘纵坐标
figure(2); %新建图形窗口2
plot(time,rin-yout,'r'); %描绘误差图形
xlabel('time(s)'); %描绘横坐标
ylabel('error'); %描绘纵坐标
4. 实验结果分析:
(a)专家PID控制阶跃响应曲线图:
(b)误差响应曲线图:
实验五:认识学习SMPT-1000
一、SMPT-1000简介
SMPT-1000新一代高级过程控制实验装置,运用高精度动态仿真技术,将实际工业装置的各种对象特性用数字化手段完整地在小型化半实物实验装置上得到再现。由于实验对象特性与工业装置完全一致,多种信号与通讯方式、数十个监测点与十多个执行机构可以允许学生自由地设计、探索各种控制算法与方案,真正实现教育部提出的四个更高水平的培养目标,同时也满足了行业对人才培养的需求,实目前工程控制较为理想的实验装置。
目前SMPT-1000模型有:储罐模型,热力除氧器模型,减温室模型,蒸馏塔模型,65T/h自然循环锅炉模型等。
SMPT-1000可以通过AI/AO、DI/DO、Profibus、OPC与各种PLC、DCS或工业控制计算机等控制器相连,同时配备有操作与连锁停车控制
其中,SMPT-1000通过Profibus与控制器相连,是通过ProfibusDP Agent从站通讯和监视软件相连的。
二、SMPT-1000简单应用
控制要求:加热炉正常运行时,确保热物料A出口温度和出口流量均维持在工艺要求范围内。同时,确保加热炉处在安全、稳定的生产工况。
(1)组态控制图:
(2)趋势图:
三、实验总结
PID调节依据:
比例调节作用:是按比例反应系统的偏差,系统一旦出现了偏差,比例调节立即产生调节作用用以减少偏差。比例作用大,可以加快调节,减少误差,但是过大的比例,使系统的稳定性下降,甚至造成系统的不稳定。
积分调节作用:是使系统消除稳态误差,提高无差度。因为有误差,积分调节就进行,直至无差,积分调节停止,积分调节输出一常值。积分作用的强弱取决与积分时间常数Ti,Ti越小,积分作用就越强。反之Ti大则积分作用弱,加入积分调节可使系统稳定性下降,动态响应变慢。积分作用常与另两种调节规律结合,组成PI调节器或PID调节器。
微分调节作用:微分作用反映系统偏差信号的变化率,具有预见性,能预见偏差变化的趋势,因此能产生超前的控制作用,在偏差还没有形成之前,已被微分调节作用消除。因此,可以改善系统的动态性能。在微分时间选择合适情况下,可以减少超调,减少调节时间。微分作用对噪声干扰有放大作用,因此过强 的加微分调节,对系统抗干扰不利。此外,微分反应的是变化率,而当输入没有变化时,微分作用输出为零。微分作用不能单独使用,需要与另外两种调节规律相结合,组成PD或PID控制器。
此次实验是一次将理论知识应用于实践的实验。通过此次实验,我体会到了过程控制本门课程在现实生活中应用的广泛性,初步了解了控制器组态的构建,掌握了串级控制、前馈控制、反馈控制的原理,并学会了PID参数的简单调节。