计控实验报告.docx
《计控实验报告.docx》由会员分享,可在线阅读,更多相关《计控实验报告.docx(22页珍藏版)》请在冰豆网上搜索。
计控实验报告
数字PID控制器的设计
——直流闭环调速实验
一、实验目的:
1.理解晶闸管直流单闭环调速系统的数学模型和工作原理;
2.掌握PID控制器参数对控制系统性能的影响;
3.能够运用MATLAB/Simulink软件对控制系统进行正确建模并对模块进行正确的参数设置;
4.掌握计算机控制仿真结果的分析方法。
二、实验工具:
MATLAB软件(7.0版本)。
三、实验内容:
已知晶闸管直流单闭环调速系统的转速控制器为PID控制器,如图1所示。
试运用MATLAB软件对调速系统的P、I、D控制作用进行分析。
四、实验步骤:
(一)模拟PID控制作用分析:
运用MATLAB软件对调速系统的P、I、D控制作用进行分析。
(1)比例控制作用分析
为分析纯比例控制的作用,考察当Td=0,Ti=∞,Kp=1~5时对系统阶跃响应的影响。
1)MATLAB实验程序如下:
G1=tf(1,[0.0171]);
G2=tf(1,[0.0750]);
G12=feedback(G1*G2,1);
G3=tf(44,[0.001671]);
G4=tf(1,0.1925);
G=G12*G3*G4;
Kp=[1:
1:
5];
fori=1:
length(Kp)
Gc=feedback(Kp(i)*G,0.01178);
step(Gc),holdon
end
axis([00.20130]);
legend('kp=1','kp=2','kp=3','kp=4','kp=5');
2)实验结果如图2
图2P控制阶跃响应曲线
3)结果分析
观察比例控制作用的阶跃响应曲线知,在比例控制作用下,系统的响应速度与比例系数成正比,比例系数越大,比例作用越强,响应速度越快;同时,可以看出比例系数越大系统的稳态误差越小;但是,比例作用会加大超调量,比例系数越大,系统的超调量越大。
(2)积分控制作用分析
保持Kp=1不变,考察Ti=0.03~0.07时对系统阶跃响应的影响。
1)MATLAB程序如下:
G1=tf(1,[0.0171]);
G2=tf(1,[0.0750]);
G12=feedback(G1*G2,1);
G3=tf(44,[0.001671]);
G4=tf(1,0.1925);
G=G12*G3*G4;
Kp=1;
Ti=[0.03:
0.01:
0.07];
fori=1:
length(Ti)
Gc=tf(Kp*[Ti(i)1],[Ti(i)0]);
Gcc=feedback(G*Gc,0.01178);
step(Gcc),holdon
end
legend('Ti=0.03','Ti=0.04','Ti=0.05','Ti=0.06','Ti=0.07')
2)实验结果如图3
图3I控制阶跃响应曲线
3)结果分析
比例积分控制作用下的单位阶跃响应可以看出,在开环比例系数不变的情况下,积分作用提高了系统的型别,积分系数变大,系统的响应速度变慢。
(3)微分控制作用分析
为分析微分控制的作用,保持Kp=0.01,Ti=0.01,考察Td=12~84时对系统阶跃响应的影响。
1)Matlab程序
G1=tf(1,[0.0171]);
G2=tf(1,[0.0750]);
G12=feedback(G1*G2,1);
G3=tf(44,[0.001671]);
G4=tf(1,0.1925);
G=G12*G3*G4;
Kp=0.01;
Ti=0.01;
Td=[12:
36:
84];
fori=1:
length(Td)
Gc=tf(Kp*[Ti*Td(i)Ti1],[Ti0])
Gcc=feedback(G*Gc,0.01178);
step(Gcc),holdon
end
legend('Td=12','Td=48','Td=84');
2)仿真结果如图4
图4D控制阶跃响应曲线
3)结果分析
又系统单位阶跃响应曲线可知,在微分作用下,微分系数越小,系统的响应速度越快,同时系统的振荡减小,更有利于系统的动态性能的改善。
(二)数字PID控制作用分析:
仿照上述过程,独立完成PID离散化仿真程序编写及结果分析。
(1)比例控制作用下,取采样时间0.001秒。
ts=0.001;
G1=tf(1,[0.0171]);
G2=tf(1,[0.0750]);
G12=feedback(G1*G2,1);
G3=tf(44,[0.001671]);
G4=tf(1,0.1925);
G=G12*G3*G4;
Kp=[1:
1:
5];
fori=1:
length(Kp)
Gc=feedback(Kp(i)*G,0.01178);
dsys=c2d(Gc,ts,'z');
step(dsys),holdon
end
axis([00.20130]);
legend('kp=1','kp=2','kp=3','kp=4','kp=5');
仿真结果如图5
图5数字P控制阶跃响应曲线
(2)比例积分控制作用下,取采样时间0.001秒。
ts=0.001;
G1=tf(1,[0.0171]);
G2=tf(1,[0.0750]);
G12=feedback(G1*G2,1);
G3=tf(44,[0.001671]);
G4=tf(1,0.1925);
G=G12*G3*G4;
Kp=1;
Ti=[0.03:
0.01:
0.07];
fori=1:
length(Ti)
Gc=tf(Kp*[Ti(i)1],[Ti(i)0]);
Gcc=feedback(G*Gc,0.01178);
dsys=c2d(Gcc,ts,'z');
step(Gcc),holdon
end
legend('Ti=0.03','Ti=0.04','Ti=0.05','Ti=0.06','Ti=0.07')
仿真结果如图6
图6数字I控制阶跃响应曲线
(3)比例积分微分控制作用下,取采样时间0.05秒。
clc
clear
figure
(1);
gridon
holdon
color=['r','g','b','y','m']
ts=0.001;
G1=tf(1,[0.0171]);
G2=tf(1,[0.0750]);
G12=feedback(G1*G2,1);
G3=tf(44,[0.001671]);
G4=tf(1,0.1925);
G=G12*G3*G4;
Ti=0.01;Td=0.084;
kp1=1:
1:
5
fori=1:
length(kp1)
kp=kp1(i);
dsys=c2d(G,ts,'z');
[num,den]=tfdata(dsys,'v');
u1=0.0;u2=0.0;u3=0.0;
y1=0;y2=0;y3=0;
x=[000]';
error1=0;
fork=1:
1:
400
time(k)=k*ts;
rin(k)=1;
u(k)=kp*x
(1);%+ts/Ti*kp*x(3)+Td*kp*x
(2)/ts;
yout(k)=-den
(2)*y1-den(3)*y2-den(4)*y3+num
(2)*u1+num(3)*u2+num(4)*u3;
error(k)=rin(k)-yout(k)*0.01178;
u3=u2;u2=u1;u1=u(k);
y3=y2;y2=y1;y1=yout(k);
x
(1)=error(k);
x
(2)=(error(k)-error1);
x(3)=x(3)+error(k);
error1=error(k);
end
plot(time,yout,color(i));
end
legend('kp=1','kp=2','kp=3','kp=4','kp=5');
仿真结果如图7
图7数字PID控制作用仿真结果图
结果分析:
数字PID与模拟PID的性能相同。
在PID控制作用下,在微分系数和积分系数不变的情况下,比例系数越大,系统的响应速度越快,同时系统稳态误差越小,但可以看出,比例系数增大会使系统的振荡加剧。
实验三复杂规律数字控制器的设计
----DALIN算法用于温度控制实验
一、实验目的:
1.理解具有纯滞后的温度控制系统的数学模型和工作特点;
2.理解DALIN(大林)算法工作原理并掌握控制器参数对系统性能的影响;
3.能够运用MATLAB/Simulink软件对控制系统进行正确建模并对模块进行正确的参数设置;
4.掌握计算机控制仿真结果的分析方法。
二、实验工具:
MATLAB软件(7.0版本)。
三、实验内容:
1.实验原理
图1单回路温度控制系统
图1中:
D(z)为数字调节器传递函数;A/D环节近似为一采样开关;H0(s)为D/A环节传递函数,采用零阶保持器;G0(s)为温度被控对象函数,次环节可近似认为是一个纯滞后一阶惯性环节,所以系统是一个具有零阶保持器的单变量调节系统。
根据大林算法的控制原理,将期望的闭环响应设计成一阶惯性加纯迟延,然后反过来得到能满足这种闭环响应的控制器。
设图1所示单回路温度控制系统中,G0(s)为被控对象,D(z)为大林控制器,闭环控制系统传递函数为
则有:
由此我们可以知道,如果能事先设定系统的闭环相应
,则可得控制D(z)。
2.实验设计
假定被控对象为:
采样时间为0.5s,期望的系统闭环传递函数为:
,其中0.15s为校正后闭环系统的时间常数。
为便于比较,运用MATLAB软件使用大林算法及PID(KP=1.0,KI=0.50,KD=0.10)算法分别对一阶惯性纯滞后温度系统进行控制,并分析两种算法的优缺点。
四、实验步骤:
运用MATLAB软件使用大林算法及PID算法分别对温度控制系统进行控制,并且分析各自的优缺点。
MATLAB程序设计具体步骤如下
1.被控对象离散化:
num=[1]
den=[0.41]
G=tf(num,den)%被控对象传递函数
G.iodelay=0.76;
dsys1=c2d(G,ts,'z');%广义被控对象脉冲传递函数2.期望闭环系统离散化:
2.期望闭环系统离散化:
%整个闭环离散化
num1,den1]=tfdata(dsys1,'v');%期望闭环传递函数
sys2=tf([1],[0.151],'inputdelay',0.76)
dsys2=c2d(sys2,ts,'z');%期望闭环脉冲传递函数
3.设计DALIN控制算法:
%由公式
,设计大林控制器,得
[num1,den1]=tfdata(dsys1,'v');%期望闭环传递函数
sys2=tf([1],[0.151],'inputdelay',0.76)
dsys2=c2d(sys2,ts,'z');%期望闭环脉冲传递函数
dsys=1/dsys1*dsys2/(1-dsys2);%大林算法控制器脉冲传递函数
[num,den]=tfdata(dsys,'v');
得
Num=[0.7981-0.0909-0.04540.00170000];
Den=[00.45120.2301-0.3782-0.2712-0.03350.00160];
4.与普通PID控制进行比较:
%使用大林算法,由den和num的值与公式
经计算推出u(k)的表达式
yout(k)=-den1
(2)*y1+num1
(2)*u2+num1(3)*u3;%被控对象输出
%返回大林算法中的参数
Num=[0.7981-0.0909-0.04540.00170000];
Den=[00.45120.2301-0.3782-0.2712-0.03350.00160];
%使用普通PID算法,位置式数字PID控制算法公式并KP=1.0,KI=0.50,KD=0.10
5、程序
达林算法程序:
ts=0.5;
num=[1]
den=[0.41]
G=tf(num,den)%被控对象传递函数
G.iodelay=0.76;
dsys1=c2d(G,ts,'z');%广义被控对象脉冲传递函数
[num1,den1]=tfdata(dsys1,'v');%期望闭环传递函数
sys2=tf([1],[0.151],'inputdelay',0.76)
dsys2=c2d(sys2,ts,'z');%期望闭环脉冲传递函数
dsys=1/dsys1*dsys2/(1-dsys2);%大林算法控制器脉冲传递函数
[num,den]=tfdata(dsys,'v');
u1=0.0;u2=0.0;u3=0.0;u4=0;u5=0;
y1=0;
error1=0;error2=0;error3=0;
fork=1:
1:
50
time(k)=k*ts;
rin(k)=1.0;
yout(k)=-den1
(2)*y1+num1
(2)*u2+num1(3)*u3;%被控对象输出
error(k)=rin(k)-yout(k);
u(k)=(num
(1)*error(k)+num
(2)*error1+num(3)*error2+num(4)*error3...%控制器输出
-den(3)*u1-den(4)*u2-den(5)*u3-den(6)*u4-den(7)*u5)/den
(2);
u5=u4;u4=u3;u3=u2;u2=u1;u1=u(k);
y1=yout(k);
error3=error2;error2=error1;error1=error(k);
end
subplot(2,1,1);
plot(time,rin,'b',time,yout,'r');
xlabel('time(s)');ylabel('rin,yout');
title('DALINmethod');
gridon
%######################PID控制器输出#################################
PID程序:
u1=0.0;u2=0.0;u3=0.0;u4=0;u5=0;
y1=0;
error1=0;error2=0;error3=0;
ei=0;
fork=1:
1:
50
time(k)=k*ts;
rin(k)=1.0;
yout(k)=-den1
(2)*y1+num1
(2)*u2+num1(3)*u3;
error(k)=rin(k)-yout(k);
ei=ei+error(k)*ts;
u(k)=1.0*error(k)+0.1*(error(k)-error1)/ts+0.50*ei;%PID控制器输出
y1=yout(k);
error3=error2;error2=error1;error1=error(k);
u3=u2;u2=u1;u1=u(k);
y1=yout(k);
error3=error2;error2=error1;error1=error(k);
end
subplot(2,1,2)
plot(time,rin,'b',time,yout,'g');
xlabel('time(s)');ylabel('rin,yout');
title('PIDmethod');
gridon
六、实验结果及分析:
1.采用大林控制算法,画出阶跃响应曲线,仿真曲线如图上2。
2.采用普通PID控制算法,画出阶跃响应曲线仿真曲线如图2下。
图2达林算法和PID算法系统输出曲线
3.分析采用大林控制算法与PID控制算法相比较的控制效果。
从系统的响应曲线可知,采用大林算法控制器的系统响应速度比采用PID控制器的系统的响应速度快,而且系统输出无振荡。
由此可见,大林算法比PID的控制效果更好。
最少拍计算机控制系统的设计
一、实验目的:
1.学习并掌握有纹波最少拍控制器的设计和Simulink实现方法;
2.研究最少拍控制系统对三种典型输入的适应性及输出采样点间的纹波;
3.学习并掌握最少拍无纹波控制器的设计和Simulink实现方法;
4.研究输出采样点间的纹波消除方法以及最少拍无纹波控制系统对三种典型输入的适应性。
二、实验工具:
MATLAB软件(7.0版本)。
三、实验内容:
1.实验原理
最少拍设计,是指系统在典型输入信号(如阶跃信号、速度信号、加速度信号等)作用下,经过最少拍(有限拍)使系统输出的系统稳态误差为零。
因此,最少拍控制系统也称最少拍无差系统或最少拍随动系统,它实质上是时间最优控制系统,系统的性能指标就是系统调节时间最短或尽可能短,即对闭环Z传递函数要求快速性和准确性。
下面以一个具体实例介绍最少拍系统的设计和仿真。
考虑图1所示的采样数字控制系统,被控对象的脉冲传递函数为
图1最少拍采样数字控制系统
设采样周期T=1s,首先求取广义被控对象的脉冲传递函数:
广义被控对象
我们知道,最少拍系统是按照指定的输入形式设计的,输入形式不同,数字控制器也不同。
因此,对三种不同的输入信号分别进行考虑:
1单位阶跃信号:
计算可得到最少拍数字控制器为
检验误差序列:
由误差的变换函数得知,所设计的系统当k>1后,e(k)=0就是说,一拍以后,系统输出等于输入,设计正确。
②单位速度信号:
原理同上,我们可以得到:
检验误差:
从E(z)看出,按单位速度输入设计的系统,当k大于等于2之后,即二拍之后,误差e(k)=0,满足题目要求。
2单位加速度信号:
可知,按加速度输入信号设计的系统当k大于等于,即三拍之后,误差e(k)=0。
2.实验设计
将所得结果分别用Matlab中的Simulink工具箱进行仿真,并将输入、输出和误差三条曲线放置在同一图像内,比较三种情况下的跟随特性。
四、实验步骤:
在三种输入(单位阶跃/速度/加速度)分别作用下,运用Simulink对其控制结果进行仿真。
①单位阶跃信号:
系统Simulink仿真模型框图如图2所示:
可得输入、输出和误差三条曲线结果图如下所示:
将其数据存为矩阵形式,命名为y,在Matlab命令窗口输入:
>>plot(y(:
1),y(:
2:
4))
>>gridon,legend('输入','误差','输出')
可得更加清晰的仿真结果如图3所示:
图2单位阶跃信号输入时最少拍控制系统
图3单位阶跃信号输入时系统的仿真结果
②单位速度信号:
控制系统Simulink框图如图4所示:
图4单位速度信号输入时最少拍控制系统
在Matlab命令窗口输入
>>plot(tout(:
1),y2(:
2:
4))
>>gridon,legend('输入','误差','输出')
仿真结果为
图5单位速度信号输入时系统的仿真结果
③单位加速度信号:
控制系统Simulink框图如图6所示:
图6单位加速度信号输入时最少拍控制系统
在Matlab命令窗口输入
>>plot(tout(:
1),y2(:
2:
4))
>>gridon,legend('输入','误差','输出')
仿真结果图如图7所示。
五、实验结果分析:
由上面的仿真结果图可知,按最少拍控制系统设计出来的闭环系统,在有限拍后进入稳态,这时闭环系统输出在采样时间精确的跟踪输入信号。
如单位阶跃信号在一拍后,单位速度信号在两拍后,单位加速度信号则在三拍之后。
图7单位加速度信号输入时系统的仿真结果
然而,进一步研究可以发现虽然在采样时刻系统输出与所跟踪的参考输入一致,但在两个采样时刻之间,系统的输出存在着纹波或振荡。
例如单位阶跃信号在一拍后的稳态响应仍有许多振荡。
这种纹波不仅影响系统的控制性能,产生过大的超调和持续振荡,而且还增加了系统功率损耗和机械磨损。
因此我们需要设计无纹波最少拍计算机控制系统。