第一篇:基于MATLAB的PID_控制器设计
基于MATLAB的PID 控制器设计
基于MATLAB的PID 控制器设计
一、PID控制简介
PID控制是最早发展起来的经典控制策略, 是用于过程控制最有效的策略之一。由于其原理简单、技术成,在实际应用中较易于整定, 在工业控制中得到了广泛的应用。它最大的优点是不需了解被控对象精确的数学模型,只需在线根据系统误差及误差的变化率等简单参数, 经过经验进行调节器参数在线整定, 即可取得满意的结果, 具有很大的适应性和灵活性。
积分作用:可以减少稳态误差, 但另一方面也容易导致积分饱和, 使系统的超调量增大。
微分作用:可提高系统的响应速度, 但其对高频干扰特别敏感, 甚至会导致系统失稳。
所以, 正确计算控制器的参数, 有效合理地实现 PID控制器的设计,对于PID 控制器在过程控制中的广泛应用具有重要的理论和现实意义。
在PID控制系统中, PID控制器分别对误差信号e(t)进行比例、积分与微分运算, 其结果的加权和构成系统的控制信号u(t),送给对象模型加以控制。PID控制器的数学描述为
其传递函数可表示为:
从根本上讲, 设计PID控制器也就是确定其比例系数Kp、积分系数T i 和微分系数T d , 这三个系数取值的不同, 决定了比例、积分和微分作用的强弱。控制系统的整定就是在控制系统的结构已经确定、控制仪表和控制对象等处在正常状态的情况下, 适当选择控制器参数使控制仪表的特性和控制对象的特性相配合, 从而使控制系统的运行达到最佳状态, 取得最好的控制效果。
二、MATLAB的 Ziegler-Nichols算法PID控制器设计。
1、PID控制器的Ziegler-Nichols参数整定
在实际的过程控制系统中, 有大量的对象模型可以近似地由一阶模型
K-sLG(s)e来表示。这个对象模型可以表示为
1sT如果不能建立起系统的物理模型, 可通过试验测取对象模型的阶跃响应, 从而得到模型参数。当然, 我们也可在已知对象模型的情况下, 利用MATLAB,通过使用step()函数得到对象模型的开环阶跃响应曲线。在被控对象的阶跃响应中, 可获取K、L 和 T参数, 也可在MATLAB中由 dcgain()函数求取 K值。
2.在 MATLAB下实现PID 控制器的设计与仿真
已知被控对象的K、L 和T 值后, 我们可以根据Ziegler — Nichols整定公式编写一 个MATLAB函数ziegler_std()用以设计PID控制器。该函数程序如下:
function [num,den,Kp,Ti,Td,H]=Ziegler_std(key,vars)Ti=[ ];Td=[ ];H=[ ];K=vars(1);L=vars(2);T=vars(3);a=K*L/T;if key==1
num=1/a;
%判断设计P 控制器
elseif key==2
Kp=0.9/a;Ti=3.33*L;
%判断设计PI 控制器
elseif key==3,Kp=1.2/a;Ti=2*L;Td=L/2;
%判断设计PID控制器 end
switch key
case 1 num=Kp;den=1;
% P控制器
case 2 num=Kp*[Ti,1];den=[Ti,0];
% PI控制器
case 3
% PID控制器 p0=[Ti*Td,0,0];p1=[0,Ti,1];p2=[0,0,1];p3=p0+p1+p2;p4=Kp*p3;num=p4/Ti;den=[1,0];
end
由图可知L和T 令KL。在求得L 和α参数的情况下, 我们可通过表1中给出的Ziegler T— Nichols经验公式确定 P、PI 和PID控制器的参数。
三、对某传递函数G(s)1(s1)3的控制
未加控制器的仿真: Simulink下的系统图
仿真输出图形如下:
第一次测量
KLT=3.28 L=1.38 K=1 =0.42
TP控制
Kp=1=2.38 Simulink下的系统图
仿真输出图形如下:
峰值时间tp=4.15s,峰值为0.9518 上升时间td=2.953s 调节时间ts=14.4s
PI控制
Kp=0.9=2.14
Ti=3.33L=4.60
Simulink下的系统图:
仿真后的输出曲线为:
峰值时间tp=4.48s,峰值1.019s 上升时间td=3.783s 调节时间ts=25.486s PID控制
LKp==2.85 Ti=2L=2.76 Td==0.69 2Simulink下的系统图 1.2
仿真后的输出曲线为:
峰值时间tp=4.028s峰值1.077 上升时间td=3.565s 调节时间ts=28.50s
第二次测量
KLT=3.51 L=1.23 k=1 =0.35
TP控制, Kp=1=2.86 Simulink下的系统图:
仿真后的输出曲线为:
峰值时间tp=3.685s峰值1.025 上升时间td=2.834s 调节时间ts=25.70s PI控制图如下:
Kp=0.9=2.57
Ti=3.33L=4.10
Simulink下的系统图:
仿真后的输出曲线为:
峰值时间tp=4.197s峰值1.104 上升时间td=3.324s 调节时间ts=27.06s PID控制
Kp=1.2=2.757
Ti=2L=0.262 Td=L=0.0655 2Simulink下的系统图
仿真后的输出曲线为:
峰值时间tp=4.002s峰值1.169 上升时间td=3.023s 调节时间ts=22.26s
四、控制方案的选择:对于开环传递函数为G(s)1(s1)3的系统,经过两次测量,并分别进行P,PI,PID控制发现比例P控制有较好的动态和稳态性能指标。取两次测量平均值K=1,L=1.305,T=3.40,则KL=0.383 T
五、由实验过程和仿真结果对P、PI、PID控制的优劣性比较 比例(P)控制
单独的比例控制也称“有差控制”,输出的变化与输入控制器的偏差成比例关系,偏差越大输出越大。实际应用中,比例度的大小应视具体情况而定,比例度太大,控制作用太弱,不利于系统克服扰动,余差太大,控制质量差,也没有什么控制作用;比例度太小,控制作用太强,容易导致系统的稳定性变差,引发振荡。
对于反应灵敏、放大能力强的被控对象,为提高系统的稳定性,应当使比例度稍大些;而对于反应迟钝,放大能力又较弱的被控对象,比例度可选小一些,以提高整个系统的灵敏度,也可以相应减小余差。
单纯的比例控制适用于扰动不大,滞后较小,负荷变化小,要求不高,允许有一定余差存在的场合。工业生产中比例控制规律使用较为普遍。比例积分(PI)控制
比例控制规律是基本控制规律中最基本的、应用最普遍的一种,其最大优点就是控制及时、迅速。只要有偏差产生,控制器立即产生控制作用。但是,不能最终消除余差的缺点限制了它的单独使用。克服余差的办法是在比例控制的基础上加上积分控制作用。
积分控制器的输出与输入偏差对时间的积分成正比。这里的“积分”指的是“积累”的意思。积分控制器的输出不仅与输入偏差的大小有关,而且还与偏差存在的时间有关。只要偏差存在,输出就会不断累积(输出值越来越大或越来越小),一直到偏差为零,累积才会停止。所以,积分控制可以消除余差。积分控制规律又称无差控制规律。
积分时间的大小表征了积分控制作用的强弱。积分时间越小,控制作用越强;反之,控制作用越弱。
积分控制虽然能消除余差,但它存在着控制不及时的缺点。因为积分输出的累积是渐进的,其产生的控制作用总是落后于偏差的变化,不能及时有效地克服干扰的影响,难以使控制系统稳定下来。所以,实用中一般不单独使用积分控制,而是和比例控制作用结合起来,构成比例积分控制。这样取二者之长,互相弥补,既有比例控制作用的迅速及时,又有积分控制作用消除余差的能力。因此,比例积分控制可以实现较为理想的过程控制。
比例积分控制器是目前应用最为广泛的一种控制器,多用于工业生产中液位、压力、流量等控制系统。由于引入积分作用能消除余差,弥补了纯比例控制的缺陷,获得较好的控制质量。但是积分作用的引入,会使系统稳定性变差。对于有较大惯性滞后的控制系统,要尽量避免使用。比例积分微分(PID)控制
最为理想的控制当属比例-积分-微分控制规律。它集三者之长:既有比例作用的及时迅速,又有积分作用的消除余差能力,还有微分作用的超前控制功能。
当偏差阶跃出现时,微分立即大幅度动作,抑制偏差的这种跃变;比例也同时起消除偏差的作用,使偏差幅度减小,由于比例作用是持久和起主要作用的控制规律,因此可使系统比较稳定;而积分作用慢慢把余差克服掉。只要三个作用的控制参数选择得当,便可充分发挥三种控制规律的优点,得到较为理想的控制效果。
PID控制中的积分作用可以减少稳态误差, 但另一方面也容易导致积分饱和, 使系统的超调量增大。
六、参考文献
张德丰编著、MATLAB控制系统设计与仿真、电子工业出版社、2009.6 胡寿松主编、自动控制原理(第五版)、科学出版社、2007
七、心得体会
我觉得学习MATLAB是不容易的,这是一件需要持之以恒的事,必须要坚持不懈的学习,还需要敢于开口向别人请教,更需要我们勤于思考,勤于动手,勤于记忆。程序设计是实践性很强的事情,需要我们亲自动手实际操作设计程序,熟悉MATLAB的操作环境,这对提高我们操作能力非常有效。
在这几天时间里,我仅仅学了一些皮毛,在编程过程中遇见许多问题,例如对工具栏了解不够,导致一些操作很混乱,对程序的运行,修改,添加往往是繁琐的,后来经过看书查阅资料有了基本了解,但是还是没有熟练掌握。虽然有的题目对我们来说还是有些难度的,但是在经过坎坎坷坷之后下我还是编出程序的,当我看到自己编的程序运行正确时,总是会万分的兴奋,充满成就感。虽然不能十分熟悉和运用MATLAB的所有程序,但是我们却打下了一定的基础,想要进一步学习,还需要我在以后的实际应用里不断学习,改进自己不足之处,让自己有所进步,有所成长。
第二篇:基于传递函数的控制器设计
【实验名称】
基于传递函数的控制器设计
【实验目的】
1.熟练掌握用MATLAB语句绘制频域曲线。2.掌握控制系统频域范围内的分析校正方法。
3.掌握用频率特性法进行串联校正设计的思路和步骤。【实验原理】
控制系统设计的思路之一就是在原系统特性的基础上,对原特性加以校正,使之达到要求的性能指标。最常用的经典校正方法有根轨迹法和频域法。而常用的串联校正装置有超前校正、滞后校正和超前滞后校正装置。本实验主要讨论在MATLAB环境下进行串联校正设计。
1.基于频率法的串联超前校正
超前校正装置的主要作用是通过其相位超前效应来改变频率响应曲线的形状,产生足够大的相位超前角,以补偿原来系统中元件造成的过大的相位滞后。因此校正时应使校正装置的最大超前相位角出现在校正后系统的开环截止频率c处。
例9-1:单位反馈系统的开环传递函数为G(s)K,试确定串联校正
s(s1)装置的特性,使系统满足在斜坡函数作用下系统的稳态误差小于0.1,相角裕度r450。
解:根据系统静态精度的要求,选择开环增益
1s2k1s(s1)essLimsE(s)Limss0s00.1K10
取K12,求原系统的相角裕度。>>num0=12;
den0=[2,1,0];
w=0.1:1000;[gm1,pm1,wcg1,wcp1]=margin(num0,den0);
[mag1,phase1]=bode(num0,den0,w);[gm1,pm1,wcg1,wcp1] margin(num0,den0)
%计算系统的相角裕度和幅值裕度,并绘制出Bode图
grid;ans =
Inf
11.6548
Inf
2.4240 由结果可知,原系统相角裕度r11.6,c2.4rad/s,不满足指标要求,系
0统的Bode图如图9-1所示。考虑采用串联超前校正装置,以增加系统的相角裕度。
确定串联装置所需要增加的超前相位角及求得的校正装置参数。
c0(450,0为原系统的相角裕度,取50,令mc)
1sinm
1sinme=5;r=45;r0=pm1;phic=(r-r0+e)*pi/180;alpha=(1+sin(phic))/(1-sin(phic));将校正装置的最大超前角处的频率m作为校正后系统的剪切频率c。则有:
20lgGc(jc)G0(jc)0G0(jc)图9-1 原系统的Bode图
1
即原系统幅频特性幅值等于20lg时的频率,选为c。
根据m=c,求出校正装置的参数T。即T [il,ii]=min(abs(mag1-1/sqrt(alpha)));wc=w(ii);T=1/(wc*sqrt(alpha));numc=[alpha*T,1];denc=[T,1];[num,den]=series(num0,den0,numc,denc);
%原系统与校正装置串联
1c。[gm,pm,wcg,wcp]=margin(num,den);%返回系统新的相角裕度和幅值裕度
printsys(numc,denc)
%显示校正装置的传递函数
disp(’校正之后的系统开环传递函数为:’);printsys(num,den)
%显示系统新的传递函数
[mag2,phase2]=bode(numc,denc,w);%计算指定频率内校正装置的相角范围和幅值范围
[mag,phase]=bode(num,den,w);%计算指定频率内系统新的相角范围和幅值范围
subplot(2,1,1);semilogx(w,20*log10(mag),w,20*log10(mag1),’--’,w,20*log10(mag2),’-.’);grid;
ylabel(’幅值(db)’);
title(’--Go,-Gc,GoGc’);subplot(2,1,2);
semilogx(w,phase,w,phase1,’--’,w,phase2,’-’,w,(w-180-w),’:’);grid;
ylabel(’相位(0)’);xlabel(’频率(rad/sec)’);title([‘校正前:幅值裕量=’,num2str(20*log10(gm1)),’db’,’相位裕量=’,num2str(pm1),’0’;’校正后:幅值裕量=’,num2str(20*log10(gm)),’db’,’相位裕量=’,num2str(pm),’0’]);
图9-2 系统校正前后的传递函数及Bode图 2.基于频率法的串联滞后校正
滞后校正装置将给系统带来滞后相角。引入滞后装置的真正目的不是为了提供一个滞后相角,而是要使系统增益适当衰减,以便提高系统的稳态精度。
滞后校正的设计主要是利用它的高频衰减作用,降低系统的截止频率,以便能使得系统获得充分的相位裕量。
例5-2:单位反馈系统的开环传递函数为,G(s)K
s(0.1s1)(0.2s1)试确定串联校正装置的特性,使校正后系统的静态速度误差系数等于30/s,相角裕度r400,幅值裕量不小于10dB,截止频率不小于2.3rad/s。
解:根据系统静态精度的要求,选择开环增益
KvLimsG(s)Limss0s0K30K30
s(0.1s1)(0.2s1)利用MATLAB绘制原系统的bode图和相应的稳定裕度。
>>num0=30;
den0=conv([1,0],conv([0.1,1],[0.2,1]));
w=logspace(-1,1.2);[gm1,pm1,wcg1,wcp1]=margin(num0,den0);[mag1,phase1]=bode(num0,den0,w);[gm1,pm1,wcg1,wcp1] margin(num0,den0)
grid;
ans =
0.5000-17.2390 7.0711
9.7714 由结果可知,原系统不稳定,且截止频率远大于要求值。系统的Bode图如图5-3所示,考虑采用串联超前校正无法满足要求,故选用滞后校正装置。
根据对相位裕量的要求,选择相角为1800(50~100,400)处的频率作为校正后系统的截止频率c。确定原系统在新c处的幅值衰减到0dB时所需的衰减量为20lg。一般取校正装置的转折频率分别为
图9-3 原系统的Bode图
1111(~)c和。T510Te=10;r=40;r0=pm1;phi=(-180+r+e);[il,ii]=min(abs(phase1-phi));
wc=w(ii);beit=mag1(ii);T=10/wc;
numc=[ T,1];denc=[ beit*T,1];
[num,den]=series(num0,den0,numc,denc);%原系统与校正装置串联
[gm,pm,wcg,wcp]=margin(num,den);%返回系统新的相角裕度和幅值裕度
printsys(numc,denc)
%显示校正装置的传递函数
disp(’校正之后的系统开环传递函数为:’);
printsys(num,den)
%显示系统新的传递函数
[mag2,phase2]=bode(numc,denc,w);%计算指定频率内校正装置的相角范围和幅值范围
[mag,phase]=bode(num,den,w);%计算指定频率内系统新的相角范围和幅值范围
subplot(2,1,1);semilogx(w,20*log10(mag),w,20*log10(mag1),’--’,w,20*log10(mag2),’-.’);grid;
ylabel(’幅值(db)’);
title(’--Go,-Gc,GoGc’);subplot(2,1,2);
semilogx(w,phase,w,phase1,’--’,w,phase2,’-’,w,(w-180-w),’:’);grid;
ylabel(’相位(0)’);xlabel(’频率(rad/sec)’);title([‘校正前:幅值裕量=’,num2str(20*log10(gm1)),’db’,’相位裕量=’,num2str(pm1),’0’;’校正后:幅值裕量=’,num2str(20*log10(gm)),’db’,’相位裕量=’,num2str(pm),’0’]);
图9-4 系统校正前后的传递函数及Bode图
3.基于频率法的串联滞后-超前校正
滞后-超前校正装置综合了超前校正和滞后校正的优点,从而改善了系统的性能。
例9-3:单位反馈系统的开环传递函数为G(s)K,若要求
s(s1)(0.4s1)相角裕度r450,幅值裕量大于10dB,Kv10(1/s),试确定串联校正装置的特性。
解:根据系统静态精度的要求,选择开环增益
KvLimsG(s)K10
s0利用MATLAB绘制原系统的bode图和相应的稳定裕度,如图5-5所示。>>num0=10;
den0=conv([1,0],conv([1,1],[0.4,1]));w=logspace(-1,1.2);[gm1,pm1,wcg1,wcp1]=margin(num0,den0);[mag1,phase1]=bode(num0,den0,w);[gm1,pm1,wcg1,wcp1] margin(num0,den0)
grid;
ans = 0.3500-24.1918 1.5811 2.5520
图9-5 原系统的Bode图
由结果可以看出,单级超前装置难以满足要求,故设计一个串联滞后-超前装置。
选择原系统1800的频率为新的截止频率c,则可以确定滞后部分的T2和。其中
111,10。由原系统,c1.58rad/s,此时的幅值为cT2T2100.1c9.12dB。
根据校正后系统在新的幅值交接频率处的幅值必须为0dB,确定超前校正部分的T1。在原系统(c,20lgG0(jc)),即(1.58,-9.12)处画一条斜率为20dB/dec的直线,此直线与0dB线及-20dB线的交点分别为超前校正部分的两个转折频率。
wc=1.58;beit=10;T2=10/wc;lw=20*log10(w/1.58)-9.12;[il,ii]=min(abs(lw+20));
w1=w(ii);numc1=[1/w1,1];denc1=[1/(beit*w1),1];numc2=[ T2,1];denc2=[ beit*T2,1];[numc,denc]=series(numc1,denc1,numc2,denc2);[num,den]=series(num0,den0,numc,denc);printsys(numc,denc)
disp(’校正之后的系统开环传递函数为:’);printsys(num,den)
[mag2,phase2]=bode(numc,denc,w);[mag,phase]=bode(num,den,w);
[gm,pm,wcg,wcp]=margin(num,den);
subplot(2,1,1);semilogx(w,20*log10(mag),w,20*log10(mag1),’--’,w,20*log10(mag2),’-.’);grid;
ylabel(’幅值(db)’);
title(’--Go,-Gc,GoGc’);subplot(2,1,2);semilogx(w,phase,w,phase1,’--’,w,phase2,’-’,w,(w-180-w),’:’);
grid;
ylabel(’相位(0)’);xlabel(’频率(rad/sec)’);title([‘校正后:幅值裕量=’,num2str(20*log10(gm)),’db’,’相位裕量=’,num2str(pm),’0’]);
图9-6 系统校正前后的传递函数及Bode图
三、实验内容
1.某单位负反馈控制系统的开环传递函数为G(s)4,试设计一超前
s(s1)校正装置,使校正后系统的静态速度误差系数Kv20s1,相位裕量500,增益裕量20lgKg10dB。
解:根据系统静态精度的要求,选择开环增益
KvLimsG(s)4K20K5
s0利用MATLAB绘制原系统的bode图和相应的稳定裕度,如下图所示。>>num0=[20];
den0=[1 1 0];w=logspace(-1,1.2);[gm1,pm1,wcg1,wcp1]=margin(num0,den0);[mag1,phase1]=bode(num0,den0,w);[gm1,pm1,wcg1,wcp1] margin(num0,den0)
ans =
Inf
12.7580
Inf
4.4165
0由结果可知,原系统相角裕度r12.758,c4.4165rad/s,不满足指标要求,系统的Bode图如下图所示。考虑采用串联超前校正装置,以增加系统的相角裕度。
确定串联装置所需要增加的超前相位角及求得的校正装置参数。
c0(450,0为原系统的相角裕度,取100,令mc)
1sinm
1sinme=10;r=50;r0=pm1;phic=(r-r0+e)*pi/180;alpha=(1+sin(phic))/(1-sin(phic));将校正装置的最大超前角处的频率m作为校正后系统的剪切频率c。则有:
20lgGc(jc)G0(jc)0G0(jc)1
即原系统幅频特性幅值等于20lg时的频率,选为c。
根据m=c,求出校正装置的参数T。即T1c。
[il,ii]=min(abs(mag1-1/sqrt(alpha)));wc=w(ii);T=1/(wc*sqrt(alpha));numc=[alpha*T,1];denc=[T,1];[num,den]=series(num0,den0,numc,denc);
%原系统与校正装置串联
[gm,pm,wcg,wcp]=margin(num,den);%返回系统新的相角裕度和幅值裕度
printsys(numc,denc)
%显示校正装置的传递函数
disp('校正之后的系统开环传递函数为:');printsys(num,den)
%显示系统新的传递函数
[mag2,phase2]=bode(numc,denc,w);%计算指定频率内校正装置的相角范围和幅值范围
[mag,phase]=bode(num,den,w);%计算指定频率内系统新的相角范围和幅值范围
subplot(2,1,1);semilogx(w,20*log10(mag),w,20*log10(mag1),’--’,w,20*log10(mag2),’-.’);grid;
ylabel(’幅值(db)’);
title(’--Go,-Gc,GoGc’);subplot(2,1,2);
semilogx(w,phase,w,phase1,’--’,w,phase2,’-’,w,(w-180-w),’:’);grid;
ylabel(’相位(0)’);xlabel(’频率(rad/sec)’);title([‘校正前:幅值裕量=’,num2str(20*log10(gm1)),’db’,’相位裕量=’,num2str(pm1),’0’;’校正后:幅值裕量=’,num2str(20*log10(gm)),’db’,’相位裕量=’,num2str(pm),’0’]);
num/den =
0.32589 s + 1
----------------
0.06387 s + 1 校正之后的系统开环传递函数为:
num/den =
6.5178 s + 20
-----
0.06387 s^3 + 1.0639 s^2 + s
2.某单位负反馈控制系统的开环传递函数为G(s)k,试设计一个合3(s1)适的滞后校正网络,使系统阶跃响应的稳态误差约为0.04,相角裕量约为450。
解:根据系统静态精度的要求,选择开环增益
1sk1(s1)3essLimsE(s)Limss0s00.04K24
利用MATLAB绘制原系统的bode图和相应的稳定裕度,如图下所示。>>num0=24;
den0=conv([1,1],conv([1,1],[1,1]));w=logspace(-1,1.2);[gm1,pm1,wcg1,wcp1]=margin(num0,den0);[mag1,phase1]=bode(num0,den0,w);[gm1,pm1,wcg1,wcp1] margin(num0,den0)
grid;
由结果可知,原系统不稳定。系统的Bode图如图所示,考虑采用串联超前校正无法满足要求,故选用滞后校正装置。
根据对相位裕量的要求,选择相角为1800(50~100,400)处的频率作为校正后系统的截止频率c。确定原系统在新c处的幅值衰减到0dB时所需的衰减量为20lg。一般取校正装置的转折频率分别为1111(~)c和。T510Te=10;r=45;r0=pm1;phi=(-180+r+e);[il,ii]=min(abs(phase1-phi));wc=w(ii);beit=mag1(ii);T=10/wc;numc=[ T,1];denc=[ beit*T,1];[num,den]=series(num0,den0,numc,denc);%原系统与校正装置串联
[gm,pm,wcg,wcp]=margin(num,den);%返回系统新的相角裕度和幅值裕度 printsys(numc,denc)
%显示校正装置的传递函数 disp(’校正之后的系统开环传递函数为:’);printsys(num,den)
%显示系统新的传递函数
[mag2,phase2]=bode(numc,denc,w);%计算指定频率内校正装置的相角范围和幅值范围
[mag,phase]=bode(num,den,w);%计算指定频率内系统新的相角范围和幅值范围
subplot(2,1,1);semilogx(w,20*log10(mag),w,20*log10(mag1),’--’,w,20*log10(mag2),’-.’);grid;
ylabel(’幅值(db)’);
title(’--Go,-Gc,GoGc’);subplot(2,1,2);
semilogx(w,phase,w,phase1,’--’,w,phase2,’-’,w,(w-180-w),’:’);grid;
ylabel(’相位(0)’);xlabel(’频率(rad/sec)’);title([‘校正前:幅值裕量=’,num2str(20*log10(gm1)),’db’,’相位裕量=’,num2str(pm1),’0’;’校正后:幅值裕量=’,num2str(20*log10(gm)),’db’,’相位裕量=’,num2str(pm),’0’]);
第三篇:数字PID控制器设计
数字PID控制器设计
设计任务:
设单位反馈系统的开环传递函数为:
设计数字PID控制器,使系统的稳态误差不大于0.1,超调量不大于20%,调节时间不大于0.5s。采用增量算法实现该PID控制器。
具体要求:
1.采用Matlab完成控制系统的建立、分析和模拟仿真,给出仿真结果。
2.设计报告内容包含数字PID控制器的设计步骤、Matlab仿真的性能曲线、采样周期T的选择、数字控制器脉冲传递函数和差分方程形式。
3.设计工作小结和心得体会。4.列出所查阅的参考资料。
数字PID控制器设计报告
一、设计目的 了解数字PID控制算法的实现;
掌握PID控制器参数对控制系统性能的影响;
能够运用MATLAB/Simulink 软件对控制系统进行正确建模并对模块进行正确的参数设置;
加深对理论知识的理解和掌握; 5 掌握计算机控制系统分析与设计方法。
二、设计要求
1采用增量算法实现该PID控制器。
2熟练掌握PID设计方法及MATLAB设计仿真。
三、设计任务
设单位反馈系统的开环传递函数为:
设计数字PID控制器,使系统的稳态误差不大于0.1,超调量不大于20%,调节时间不大于0.5s。采用增量算法实现该PID控制器。
四、设计原理
1.数字PID原理结构框图
2.增量式PID控制算法
ukKPekKIeiKDekek1i0
=u(k-1)+Kp[e(k)-e(k-1)]+Kie(k)+Kd[e(k)-2e(k-1)+e(k-2)] =u(k-1)+(Kp+Ki+Kd)e(k)-(Kp+2Kd)e(k-1)+Kde(k-2)所以Δu(k)=u(k)-u(k-1)
=Kp[e(k)-e(k-1)]+Kie(k)+Kd[e(k)-2e(k-1)+e(k-2)]
=(Kp+Ki+Kd)e(k)-(Kp+2Kd)e(k-1)+Kde(k-2)整理:
Δu(k)= Ae(k)-Be(k-1)+Ce(k-2)A= Kp+Ki+Kd
B=-(Kp+2Kd)C=Kd
五、Matlab仿真选择数字PID参数
(扩充临界比例度法/扩充响应曲线法 具体整定步骤)
利用扩充临界比例带法选择数字PID参数,扩充临界比例带法是以模拟PID调节器中使用的临界比例带法为基础的一种数字PID参数的整定方法。其整定步骤如下:; 1)选择合适的采样周期T;
2)在纯比例的作用下,给定输入阶跃变化时,逐渐加大比例作用Kp(即减小比例带),直至系统出现等幅震荡,记录比例增益Kc,及振荡周期Tc。Kc成 为临界振荡比例增益(对应的临界比例带),Tc成为临界振荡周期。
=1/150S^3+6/25S^2+37/30S+1 在MATLAB下输入如下程序:
num=[1];
den=[1/150,6/25,37/30,1];sys=tf(num,den);p=[20:2:45];for i=1:length(p)
Gc=feedback(p(i)*sys,1);step(Gc)hold on end;grid
title('Kp变化时系统的阶跃响应曲线')axis([0,3,0,2.3])仿真阶跃响应如下图:
调整参数:p=[35:2:45] 程序如下: num=[1];
den=[1/150,6/25,37/30,1];sys=tf(num,den);p=[35:2:45];for i=1:length(p)
Gc=feedback(p(i)*sys,1);step(Gc)hold on end;grid title('Kp变化时系统的阶跃响应曲线')axis([0,3,0,2.3])仿真阶跃响应如下图:
由图像可知:当Kp在40~45之间时,系统会出现等幅振荡。为进一步得到准确的Kp,调整程序参数p=[40:1:45],程序如下: num=[1];
den=[1/150,6/25,37/30,1];sys=tf(num,den);p=[40:1:45];for i=1:length(p)
Gc=feedback(p(i)*sys,1);step(Gc)hold on end;grid
title('Kp变化时系统的阶跃响应曲线')axis([0,3,0,2.3])仿真阶跃响应如下图:
由图像进一步精确得Kc约为43时,系统出现等幅震荡,震荡周期Tc约为0.5s。
扩充临界比例带法选择数字PID参数的计算公式如下表所示:
3)选择控制度。控制度的定义为数字调节器和模拟调节所对应的过度过程的误差平方积分之比,即控制度=02eDdt0edt2式中,eD为数字调节器的控制误差;e为模拟调节器的控制误差.当控制度为1.05时,数字调节器鱼模拟调节器的控制效果相当;当控制度为2时,数字调节器比模拟调节器的控制效果差一倍;在此选控制度为1.05。按选择的控制度指标及Tc,Kc实验测得值,由查表选择相应的计算公式计算采样周期:T=0.007,Kp=27,Ti=0.245,Td=0.07;KIKiTKPT=0.77,KDKdKPTD=270,Ki=0.23
TITTTc=0.5 则T=Tc*0.014=0.5*0.014=0.007;
Kp=Kc*0.63=43*0.63=27.09;
Ti=Tc*0.49=0.5*0.49=0.245;
Td=Tc*0.14=0.5*0.14=0.07;
Kp=27.09;
Ki=Kp*T/Ti=27.09*0.007/0.245=0.774;
Kd=Kp*Td/T=27.09*0.07/0.007=270.09;
六、Matlab/Simulink 控制系统建模 1.控制器
ΔU(Z)=(Kp+Ki+Kd)E(Z)-(Kp+2Kd)/Z*E(Z)+Kd/Z^2*E(Z)则D(Z)=ΔU(Z)/E(Z)=(Kp+Ki+Kd)-(Kp+2Kd)/Z+Kd/Z^2 =[(Kp+Ki+Kd)Z^2-(Kp+2Kd)Z+Kd]/Z^2 2.仿真模型图
将 Kp=27.09;
Ki=Kp*T/Ti=27.09*0.007/0.245=0.774;
Kd=Kp*Td/T=27.09*0.07/0.007=270.09带入,得:
Kp+Ki+Kd=27.09+0.774+270.09=297.95 Kp+2Kd=27.09+2*270.09=567.27 Kd=270.09
即D(Z)=[297.95*Z^2-567.27*Z+270.09]/Z^2
G0(S)=43/[0.00667S^3+0.24S^2+1.2333S+1] 3.输出阶跃响应曲线
Scope中得到阶跃响应曲线如下所示:
4、试凑法微调参数 由阶跃响应图像可得:
Y(∞)=0.96,则稳态误差Ess=1-0.96=0.04 超调量
=(1.1-0.96)/0.96*100%=14.6% 调整时间Ts=0.27s
系统有少量的稳态误差,则适当增大KI参数,使得KI参数由0.774变为1.774;
Scope中得到阶跃响应曲线如下所示:
由图像可知:此时稳态误差Ess减为1-0.98=0.02,超调量=(1.1-1)/1*100%=10%,调整时间减少为Ts=0.15s,但该曲线不够平滑,调整:Kp=36.08,Ki=2.770,Kd=270.08,降低传递函数的K值为36
Scope中得到阶跃响应曲线如下所示:
此时稳态误差几乎为0,调整时间Ts为0.3s,超调量为(1.05-1)/1*100%=5%,基本符合要求
5.最终PID参数及输出响应曲线 当Kp=36.08 Ki=2.770 Kd=270.08时
最终输出阶跃响应曲线为:
七、设计心得体会
通过这次设计,重新认识了计算机控制系统的数字PID控制,基本掌握了数字PID控制的基本规律,也认识到计算机控制系统的复杂性,检验了我所学的知识,体会了控制系统三大指标“稳,准,快”的意义.加深了我对自动控制系统的了解,同时也对比例、积分、微分控制有了更进一步的认识。
比例系数的加大,将使系统的响应速度加快,在系统稳定的前提下,加大比例系数可以减少稳态误差。但不能消除稳态误差。积分控制通常影响系统的稳定性,有助于消除稳态误差,提高系统的控制精度。而微分作用的增加则可以改善系统的动态特性,但也可能降低系统的抗干扰能力。比例+积分控制器可以使系统进入稳态后无稳态误差。而比例+微分控制器能改善系统在调节过程中的动态特性。
这次设计过程让我们把理论知识付诸于实践,这对以后的学习带来了更大的 帮助!
八、参考文献
1.陈怀琛.MATLAB及在电子信息课程中的应用.北京:电子工业出版社,2009 2.赵广元.MATLAB与控制系统仿真实践.北京:北京航空航天大学出版社,2009
第四篇:路灯控制器设计报告
路灯控制器的设计
一.设计任务和要求
设计要求:
1、自制电路供电的稳压电源;
2、LED采用恒流供电。
3、该控制器具有环境亮度检测和控制功能,当处于暗(亮)环境下能够自动开(关)灯,为了演示方便,在现场演示时,当调光台灯(模拟自然光)较暗(较亮)时相当于暗环境(亮环境),此时另一个白光LED(模拟路灯)将被点亮(熄灭),以此实现光控功能。
二.方案说明
安装在公共场所或道路两旁的路灯,通常是随环境的亮和暗而自动的关断和开启或者自身亮度,同时可以对消耗的电功率进行测量。实验时用1W白光LED(3.3V@300mA)代替路灯,用调光台灯替代环境光线变化。
三.原理电路设计
1.单元电路设计.本光控路灯包括
(1)光敏采样部分,当光敏三极管处于不同光照强度下,它的阻值变化很大.将光敏三极管串联一个适当的电阻,接入电路中,输出量作为开关值.无光照强度或光照强度很小时,采样值接近VCC.当光照强度增加到一定程度时,采样值为一个较小值,并且随着光照继续增强,采样值也随着减小.(2)电位器调节电压部分.当光照达到一定强度时,通过调节电位器改变它的电压,使之与光敏采样部分的采样值相等即可.(3)集成运放器部分.需要用到集成运放器的开环性能和闭环性能.当集成运放处于开环状态时.它是一个电压比较器,对同相输入端和反相输入端的电压进行比较.若同相输入端的电压高于反相输入端的电压,则输出高电平;若同相输入端的电压低于反相输入端的电压,则输出零(单电源)或低电平(双电源).(4)三极管放大部分.使用三极管对集成运放器的微弱输出电流进行放大,从而使led灯能正常发光.2.元件选择
(1).光敏器件选择
光敏三极管和普通三极管相似,也有电流放大作用,只是它的集电极电流不只是受基极电路和电流控制,同时也受光辐射的控制。通常基极不引出,但一些光敏三极管的基极有引出,用于温度补偿和附加控制等作用。光敏三极管又称光电三极管,它是一种光电转换器件,其基本原理是光照到P-N结上时,吸收光能并转变为电能。当光敏三极管加上反向电压时,管子中的反向电流随着光照强度的改变而改变,光照强度越大,反向电流越大,大多数都工作在这种状态。当具有光敏特性的PN 结受到光辐射时,形成光电流,由此产生的光生电流由基极进入发射极,从而在集电极回路中得到一个放大了相当于β倍的信号电流。不同材料制成的光敏三极管具有不同的光谱特性,与光敏二极管相比,具有很大的光电流放大作用,即很高的灵敏度。
本次设计选择的是3DU33型号光敏三极管.在1000lx,V=10v条件下,电流典型值为10 mA.故可推测在1000lx,V=5A条件下,电路大约为5mA。且在有光条件下,电流最小值为2 mA.电路图如下
(2)电位器选择
本次设计电位器选择通用型3296系列103A电位器,阻值为10k.图如下
(3)集成运算放大器选择。本次选择LM358运算放大器。
LM358里面包括有两个高增益、独立的、内部频率补偿的双运放,适用于电压范围很宽的单电源,而且也适用于双电源工作方式,它的应用范围包括传感放大器、直流增益模块和其他所有可用单电源供电的使用运放的地方使用 电路如下
(4)三极管选择。
本次选用S8050 NPN型三极管。三极管8050是非常常见的NPN型晶体三极管,在各种放大电路中经常看到它,应用范围很广,主要用于功率放大、开关。参数: 耗散功率0.625W(贴片:0.3W)
集电极电流0.5A 集电极--基极电压40V 集电极--发射极击穿电压25V 集电极-发射极饱和电压 0.6V 特征频率fT 最小150MHZ 典型值产家的目录没给出 引脚排列为EBC或ECB 838电子
按三极管后缀号分为 B C D档 贴片为 L H档
放大倍数B85-160 C120-200 D160-300 L100-200 H200-350
3.整体电路
实验原理
光敏采样值输出到前1/2 LM358同相输入端,电位器调节部分电压输出到前1/2 LM358反相输入端。当同相输入端电压值高于反相输入端电压值时,U1A输出高电平,反之输出零。U1B是引入负反馈闭环的运算放大器,可以由理想集成运算放大器虚短,虚端方法来分析电路。当U1A输出为零时,反相输入端电平也为零,U1B输出为0,led灯灭。当U1A输出高电平时,由虚短可判断反相输入端电压也为等值高电平。三极管工作在放大区,放大电流,led灯亮。
四.性能测试与分析
理论数据分析:在有一定光照条件下,光敏三极管的电流为2-5 mA.经计算考量,选取与光敏三极管串联的电阻为800欧。为使调节范围足够大,满足设计要求,选取R3=R6=1k,电位器R4=10k.在同相输入端大于反相输入端的电压值时,集成运算放大器最大输出几mA的电流,理论流过led灯最大电流为300mA。在光照足够强时,同相输入端电压值小于反相输入端,电压比较器输出零,此时三极管be间电压小于开启电压,三极管处于截止状态,流过led灯的电流为零。
仿真数据:无光照条件下,U1A同相输入端输入值即光敏部分采样值为4.993V,反相输入端电压值为2.363V,U1A输出4.023V,输出电流几乎为零。三极管基极电流为0.036A,流过led灯的电流值为0.400A(protues仿真没有S8050三极管和光敏三极管,故分别用TIP41和光敏电阻代替,与理论数据分析有差距)实测数据: 无光时,U1A同相输入端电压为4.91V,反相输入端电压为3.74V,U1A输出端电压为4.01V,电流几乎为零.此时测得led灯两端电压约为3.20V.逐渐增大光照强度,发现某一时刻led灯开始明显变暗,并且随着光强缓慢增加,led灯继续变暗,直至只有微弱灯光.此时测得led灯两端电压为2.43V.整个过程中,U1A同相输入端电压始终小于反相输入端电压值,U1A输出电压为零.U2A同相及反相输入端电压都为零,输出端有0.64V电压.误差分析: 处于临界光照时,运算放大器同相及反相输入端电压差值很小,容易波动.运算放大器均是采用直接耦合的方式,直接耦合式放大电路的各级的Q点是相互影响的,由于各级的放大作用,第一级的微弱变化,会使输出级产生很大的变化。当输入短路时(由于一些原因使输入级的Q点发生微弱变化 象:温度),输出将随时间缓慢变化,这样就形成了零点漂移。产生零漂的原因是:晶体三极管的参数受温度的影响。解决零漂最有效的措施是:采用差动电路
六.实验心得
本次课程实验设计是我们三人组齐心协力,默契的团队配合.从初期方案的确定,到实验室共同焊板子,还有后来共同解决遇到的电路问题,每个人都很积极地去解决困难.通过此次设计,能够一步了解了光敏三极管的原理和特性,把我们所学到的知识应用到了实践,结合模拟电路和数字电路知识,经一步巩固和掌握前面所学的知识,收获很大。
七.参考文献
[1] 华成英,童诗白.模拟电子技术基础[M].北京:高等教育出版社,2006:74-116.[2] 谢自美 电子线路设计[M];华中科技大学出版社;[3] 百度文库,道客巴巴资料以及电子爱好者论坛等
第五篇:交通灯控制器设计实验报告
设计性实验项目名称
交通灯控制器设计
实验项目学时:3学时
实验要求:■ 必修
□ 选修
一、实验目的
1、学习与日常生活相关且较复杂数字系统设计;
2、进一步熟悉EDA实验装置和QuartusⅡ软件的使用方法;
3、学习二进制码到BCD码的转换;
4、学习有限状态机的设计应用。
二、实验原理
交通灯的显示有很多方式,如十字路口、丁字路口等,而对于同一个路口又 有很多不同的显示要求,比如十字路口,车辆如果只要东西和南北方向通行就很 简单,而如果车子可以左右转弯的通行就比较复杂,本实验仅针对最简单的南北 和东西直行的情况。
要完成本实验,首先必须了解交通路灯的燃灭规律。本实验需要用到实验箱上交通灯模块中的发光二极管,即红、黄、绿各三个。依人们的交通常规,“红灯停,绿灯行,黄灯提醒”。其交通灯的燃灭规律为:初始态是两个路口的红灯全亮之后,主干道的绿灯亮,乡间道路的红灯亮,主干道方向通车,延时一段时间后,乡间公路来车,主干道绿灯灭,黄灯开始闪烁。闪烁若干次后,主干道红灯亮,而同时乡间公路的绿灯亮,延时一段时间后,乡间公路的绿灯灭,黄灯开始闪烁。闪烁若干次后,再切换到主干道方向,重复上述过程。
三、设计要求
完成设计、仿真、调试、下载、硬件测试等环节,在型EDA实验装置上实现一个由一条主干道和一条乡间公路的汇合点形成的十字交叉路口的交通灯控制器功能,具体要求如下:
1、有MR(主红)、MY(主黄)、MG(主绿)、CR(乡红)、CY(乡黄)、CG(乡绿)六盏交通灯需要控制;
2、交通灯由绿转红前有4秒亮黄灯的间隔时间,由红转绿没有间隔时间;
3、乡间公路右侧各埋有一个串连传感器,当有车辆准备通过乡间公路时,发出请求信号S=1,其余时间S=0;
4、平时系统停留在主干道通行(MGCR)状态,一旦S信号有效,经主道黄灯4秒(MYCR)状态后转入乡间公路通行(MRCG)状态,但要保证主干道通行大于一分钟后才能转换;
5、一旦S信号消失,系统脱离MRCG状态,即经乡道黄灯4秒(MRCY)状态进入MGCR状态,即使S信号一直有效,MRCG状态也不得长于20秒钟;
6、控制对象除红绿灯之外,还包括分别在主干道和乡间公路各有一个两位十进制倒计时数码管显示。
四、主要仪器设备
1、微机
1台
1套 1套
2、QuartusII集成开发软件
3、EDA实验装置
五、实验步骤
源程序:
0module traffic1(clk,s,rst,light,sel,SG);input clk,s,rst;output[5:0] light;
output [2:0]sel;output [7:0]SG;reg [5:0] light;reg clk1;reg [3:0] sc;
reg [7:0] count;reg [7:0] cnt,SG;reg [2:0] sel;reg [3:0]a;parameter s0=0,s1=1,s2=2,s3=3,s4=4;initial
begin
count<=8'b01100000;
light<=6'b001100;
sc=s0;
end
always @(posedge clk)begin
begin cnt=cnt+1;
if(cnt==100)begin clk1=1'b1;cnt=0;end
else clk1=1'b0;//100分频,CLK为数码管扫描频率,CLK1为计数频率
if(sel<7)sel=sel+1;else sel=6;
end //sel为数码管选择
begin
case(sel)
7: a=count[3:0];//0数码管为个位
6: a=count[7:4];//1数码管为十位
default: a=0;
endcase
case(a)
0:SG<=8'b00111111;1:SG<=8'b00000110;
2:SG<=8'b01011011;3:SG<=8'b01001111;
4:SG<=8'b01100110;5:SG<=8'b01101101;
6:SG<=8'b01111101;7:SG<=8'b00000111;
8:SG<=8'b01111111;9:SG<=8'b01101111;//8段译码值
default: SG=8'b11111111;
endcase
end end
always @(posedge clk1 or negedge rst)
begin
if(!rst)begin count = 0;sc=s3;end // count set nothing but else 0
else if(count == 0)
begin
case(sc)
s0: begin if(s)begin sc=s1;count = 8'b00000100;light=6'b010100;end else begin sc=s4;count = 8'b01100000;end end
s1: begin count = 8'b00100000;sc=s2;light=6'b100001;end
s2: begin count = 8'b00000100;sc=s3;light=6'b100010;end
s3: begin count = 8'b01100000;sc=s0;light=6'b001100;end
s4: begin if(s)begin sc=s1;count = 8'b00000100;light=6'b010100;end else begin sc = s4;count = 8'b01100000;light<=6'b001100;end end
default begin sc=s0;count =8'h60;end
endcase
end
else
if((sc==s2)&(s==0))begin sc=s3;count = 8'b00000100;light=6'b100010;end
else
if((sc==s4)&(s==1))begin sc=s1;count = 8'b00000100;light=6'b010100;end
else if(count[3:0] == 4'b0000)
begin count = count-7;end
else
begin count = count-1;end
end endmodule
管脚锁定
六、波形仿真
主干道60s倒计时
s信号为1时
七、实验心得
通过本次实验,让我进一步掌握了软件quartus的使用流程,一开始实验时波形仿真是正确的,但在电路上实现时主干道亮黄灯时,乡间道路亮的是绿灯,这显然是不对的,后面发现是管脚锁定时出现了问题,改回来之后就没问题了。管脚锁定时不能粗心,不然很容易出现问题。
曹军
生医121班