滞后超前校正控制器设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《计算机控制》课程设计报告
题目: 滞后-超前校正控制器设计姓名: 胡志峰
学号: 100230105
2013年7月12日
《计算机控制》课程设计任务书
指导教师签字:系(教研室)主任签字:
2013年7 月5 日
一、实验目的
完成滞后 - 超前校正控制器设计
二、实验要求
熟练掌握 MATLAB 设计仿真滞后-超前校正控制器、运用Protel 设计控制器硬件电路图,以及运用MCS-51单片机C 或汇编语言完成控制器软件程序编程。

三、设计任务
设单位反馈系统的开环传递函数为 )160
)(110()(0++=
s
s s K s G ,采用模拟设
计法设计滞后-超前校正数字控制器,使校正后的系统满足如下指标: (1) 当t r = 时,稳态误差不大于1/126; (2) 开环系统截止频率 20≥c ω rad/s ; (3) 相位裕度o 35≥γ 。

四、 实验具体步骤
4.1 相位滞后超前校正控制器的连续设计
校正方案主要有串联校正、并联校正、反馈校正和前馈校正。

确定校正装置的结构和参数的方法主要有两类:分析法和综合法。

分析法是针对被校正系统的性能和给定的性能指标,首先选择合适的校正环节的结构,然后用校正方法确定校正环节的参数。

在用分析法进行串联校正时,校正环节的结构通常采用超前校正、滞后校正和滞后-超前校正这三种类型。

超前校正的作用在于提高系统的相对稳定性和响应的快速性,滞后校正的主要作用是在不影响系统暂态性能的前提下,提高低频段的增益,改善系统的稳态特性,而滞后超前校正环节则可以同时改善系统的暂态特性和稳态特性。

这种校正的实质是综合利用了滞后和超前校正的各自特点,利用其超前部分改善暂态特性,而利用滞后部分改善稳态特性,两者各司其职,相辅相成。

(1)调整开环增益 K,使其满足稳态误差不大于1/126;
00
lim (s)126v s K s G K →=== (1)
按求得的开环增益 K=126 绘制 Bode 图4-1所示:
图4-1 校正前系统Bode 图
图4-2 校正前系统阶跃响应图
由图可知:未校正系统的 剪切频率: 032.5/c rad s ω= 相角裕度:011.4γ=-︒ 幅值裕度: 5.120g K dB =-< 相位裕度:24.5/g rad s ω=
以上计算以及仿真结果可知,系统不稳定,需要进行校正,由于0c ω附近频段内0(s)G 的对数幅频渐近线以 -40dB/dec 穿过 0dB 线,只加一个超前校正网络其相角超前量有可能不足以满足相位裕度的要求 , 可以设想如果让中频段(0c ω附近)衰减,再由超前校正发挥作用,则有可能满足指标要求,而中频段衰减正好可以用滞后校正完成。

因此决定采用滞后超前校正。

(2) 确定校正后的剪切频率 :
选取c ω的原则应兼顾快速性和稳定性,c ω过大会增加超前校正的负担,过
小又会使频带过窄,影响快速性,结合具体情况:
24.5/c g rad s ωω==
(3) 确定滞后校正部分的参数 :
根据22
1
1
1(
)510c
T ωω=
= 2 2.5/rad s ω=,取10β= 则有12
1
=
0.25/rad s T ωβ= 24T β=
故滞后校正的传递函数为 21210.41
(s)141
s c s T s G T s β++=
=
++ (2)
(4)确定超前校正部分的参数 :
过点(24.5rad/s,-5.12dB )做+20dB/dec 斜线与滞后校正部分交于3ω,与0dB
线交于4ω,计算得35/rad s ω=,450/rad s ω=,故110.2,0.02T
T β==,
故超前部分校正的传递函数 12110.21
0.0211s c T s G T s β
++=
=
++ (3) 最后可得滞后超前校正网络的传递函数为 12(0.4s 1)(0.21)
(4s 1)(0.02s 1)
c c c s G G G ++==
++ (4)
(5)检验性能指标
由于校正过程中,多处采用的是近似计算,可能会造成滞后-超前校正后得到的系统的传递函数不满足题目要求的性能指标。

所以需要对滞后-超前校正后的系统进行验证。

下面用MATLAB求已校正系统的相角裕量和幅值裕量。

图4-3校正后系统Bode图
图4-4 校正后系统阶跃响应图
图4-5 校正前后Bode 图比较图
由图上可以读出校正后系统的:
剪切频率:020.45/20/c rad s rad s ω=≥ 相角裕度:054.835γ=︒≥︒ 幅值裕度:13.7g K dB = 相位裕度:57.3/g rad s ω=
假设验证结果不满足指标,重新选择校正后的截止频率,重复上述过程,直到满足性能指标为止。

通过校正后系统的伯德图得到的幅值裕度和相位裕度可以看出此次设计的滞后-超前校正装置在由于超前校正作用在中频段衰减,增大了相位裕度和带宽响应快速提高;同时由于系统的滞后校正改善了系统的稳定性,提高稳态精度,由于超前的作用不致使系统响应速度变缓,故校正器设计符合要求。

由上图可知通过滞后-超前校正器的校正系统达到稳定,且各项指标均达到要求。

事实上,可以充分的利用MATLAB 软件中的控制系统工具箱来解决控制中的一系列问题,可以大大提高分析和设计控制系统的效率。

本文作者创新点:给出了基于MATLAB 软件的滞后-超前校正器的设计过程并通过仿真实例验证了该方法比传统的方法节省了相当大的工作量,实现起来非常的方便。

4.2 Matlab程序
%绘制校正前系统的Bode图和阶跃响应图
K=126;n1=1;
d1=conv([1 0],conv([0.1 1],[0.0167 1]));
s1=tf(K*n1,d1);
figure(1);margin(s1),hold on %绘制系统的Bode图
figure(2);sys=feedback(s1,1);step(sys) %绘制系统的阶跃响应图
%绘制校正后系统的Bode图和阶跃响应图
G0=tf(126,conv([1 0],conv([0.1 1],[0.0167 1])));
Gc1=tf([0.4 1],[4 1]);
Gc2=tf([0.2 1],[0.02 1]);
G=G0*Gc1*Gc2;
figure(3);bode(G) %绘制闭环系统的Bode图
margin(G),hold on
T0=feedback(G0,1)
T=feedback(G,1);
figure(4);
step(T); %绘制闭环系统的阶跃响应图
K=126;n1=1; %将校正前后Bode画在同一张图上d1=conv([1 0],conv([0.1 1],[0.0167 1]));
s1=tf(K*n1,d1);
figure(1);margin(s1),hold on;
G0=tf(126,conv([1 0],conv([0.1 1],[0.0167 1])));
Gc1=tf([0.4 1],[4 1]);
Gc2=tf([0.2 1],[0.02 1]);
G=G0*Gc1*Gc2;
figure(1);bode(G);
margin(G),hold on;
legend('校正前','校正后')
4.3相位滞后-超前校正的离散化
Simulink是可以用于连续、离散以及混合的线性、非线性控制系统建模、仿真和分析的软件包,并为用户提供了用方框图进行建模的图形接口,很适合于控制系统的仿真。

使用MATLAB 对滞后-超前控制器函数和校正后的开环传递函数进行离散化。

采用零极点匹配法, 采样时间为10ms :
图4-6 离散后系统阶跃响应图
Dz
Transfer function:
0.8159 z^2 - 1.572 z + 0.7569
-----------------------------
z^2 - 1.604 z + 0.605
Sampling time (seconds): 0.01
G0z
Transfer function:
0.01353 z^2 + 0.02706 z + 0.01353
---------------------------------
z^3 - 2.454 z^2 + 1.95 z - 0.4966
Sampling time (seconds): 0.01 4.4 Matlab 程序
%绘制离散系统阶跃响应图 s=tf('s');
G0s=126/(s*(s/10+1)*(s/60+1));
Ds=((0.4*s+1)*(0.2*s+1))/((4*s+1)*(0.02*s+1)); G0z=c2d(G0s,0.01,'matched'); Dz=c2d(Ds,0.01,'matched'); Gz=G0z*Dz; sys=feedback(Gz,1); step(sys,10);
G0z=c2d(G0s,0.01,'matched'); Dz=c2d(Ds,0.01,'matched'); sys=feedback(Gz,1); step(sys,10);
4.5 Matlab/Simulink 仿真离散控制器
D(z)零阶保持器W(s)
R(s)
+--
T
图4-7 控制系统结构图
图4-8 Simulink 仿真离散控制器图
离散系统的阶跃响应
图4-9 Simulink 仿真离散控制器系统阶跃响应图
4.6 相位滞后超前校正的控制器差分方程设计
由22(z)0.8159 1.5720.0756(z)(z)0.6040.605
U z z D E z z -+==-+得出差分方程为: (k)0.8159E(k) 1.572E(k 1)0.0756E(k 2)0.604U(k 1)0.605(k 2)
U U =--+-+-+-五.控制器电路设计
5.1控制器的选择与电路设计
AT89C51 提供以下标准功能:4k 字节Flash 闪速存储器,128字节内部
RAM ,32 个I/O 口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。

同时,AT89C51可降至0Hz 的静态逻辑操作,并支持两种软件可选的节电工作模式。

空闲方式停止CPU 的工作,但允许RAM ,定时/计数器,串行通信口及中断系统继续工作。

掉电方式保存RAM 中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。

该器件采用ATMEL 高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。

由于将多功能8位CPU 和闪烁存储器组合在单个芯片中,ATMEL 的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。

AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且
价廉的方案。

图5-1 MCS-51单片机最小系统电路图
5.2 AD/DA转换芯片选择与采样电路的设计
ADC0809是CMOS单片型逐次逼近式A/D转换器,内部结构如图所示,它由8路模拟开关、地址锁存与译码器、比较器、8位开关树型A/D转换器、逐次逼近寄存器、逻辑控制和定时电路组成。

ADC0809是美国国家半导体公司生产的CMOS工艺8通道,8位逐次逼近式A/D模数转换器。

其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。

主要特性:8路输入通道,8位A/D转换器,即分辨率为8位;具有转换起停控制端;转换时间为100μs(时钟为640kHz时),130μs(时钟为500kHz时);单个+5V电源供电;模拟输入电压范围0~+5V,不需零点和满刻度校准;工作温度范围为-40~+85摄氏度;低功耗,约15mW。

由于该AD 内部没有时钟,要外接时钟输入,时钟可以从单片机的ALE 引脚引出,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6即2MHz的频率,经过两个D触发器4分频电路分频,可以得到500KHz 的时钟信号,D触发器选择74HC74,这样AD转换时间为130us,由于本系统采样时
间为10ms,由上述ADC0809特性可知可以满足本设计要求。

图5-2 AD时钟产生电路图
图5-3 AD采样电路图
DAC0832是美国资料公司研制的8位双缓冲器D/A转换器。

芯片内带有资料锁存器,可与数据总线直接相连。

电路有极好的温度跟随性,使用了COMS 电流开关和控制逻辑而获得低功耗、低输出的泄漏电流误差。

芯片采用R-2RT
型电阻网络,对参考电流进行分流完成D/A 转换。

转换结果以一组差动电流IOUT1和IOUT2输出。

D/A 转换器由8位输入锁存器、8位DAC 寄存器、8位D/A 转换电路及转换控制电路构成。

主要参数:分辨率为8位;电流稳定时间1us ;可单缓冲、双缓冲或直接数字输入;只需在满量程下调整其线性度;单一电源供电(+5V ~+15V );低功耗,20mW 。

根据对DAC0832的数据锁存器和DAC 寄存器的不同的控制方式,DAC0832有三种工作方式:直通方式、单缓冲方式和双缓冲方式。

DAC0832引脚功能电路应用原理图DAC0832是采样频率为八位的D/A 转换芯片,集成电路内有两级输入寄存器,使DAC0832芯片具备双缓冲、单缓冲和直通三种输入方式,以便适于各种电路的需要(如要求多路D/A 异步输入、同步转换等)。

所以这个芯片的应用很广泛,关于DAC0832应用的一些重要资料见下图: D/A 转换结果采用电流形式输出。

若需要相应的模拟电压信号,可通过一个高输入阻抗的线性运算放大器实现。

运放的反馈电阻可通过RFB 端引用片内固有电阻,也可外接。

DAC0832逻辑输入满足TTL 电平,可直接与TTL 电路或微机电路连接。

将 CS 、WR1、WR2和XFER 引脚接地,ILE 引脚接+5V ,Vref 选择+5V ,8位数字信号输入端 DI0~DI7 分别接单片机的 P0.0~P0.7 引脚。

此时 DAC0832处于直通工作方式,数字量一旦输入,就直接进入 DAC 寄存器,进行 D/A 转换。

DAC 输出的电压值为:8U 2ref out D V =-
图5-4 DA转换输出电路5.3 程序流程图
图5-5 控制器程序流程图
5.4 控制器程序
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit START=P2^2;
sbit OE=P2^1;
sbit EOC=P2^0;
/****************定时器1初始化**********************/
void Init_Timer1(void) // ADC0809采样时间用T1产生10ms中断{
TMOD = 0x10; //设置T1为工作方式1,16位定时器
TH1 = 0x0D8;
TL1 = 0x0F0; //装载初值,设置定时10ms
EA = 1; //开总中断
ET1 = 1; //允许T1溢出中断
TR1 = 1; //启动T1
}
/***************主函数************************/
void main(void)
{
float uk_1=0.0; //定义变量初值
float uk_2=0.0;
float uk=0.0;
float ek_1=0.0;
float ek_2=0.0;
float ek=0.0;
START=0;
OE=0; //输出数据线呈高阻态
START=1;
START=0; //开始转换数据
Init_Timer1(); //初始化T1
while(1)
{
if(EOC==1) //ADC0809转换一次完成后EOC变为高电平
{
uk_1=uk;
ek_1=ek;
uk_2=uk_1;
ek_2=ek_1;
OE=1; //输出数据转换得到的数据
ek=P1; //读取P1口AD转换后的数据
OE=0; //输出数据线置0成高阻态
}
uk=0.604*uk_1+0.605*uk_2+0.8159*ek-1.572*ek_1+0.0756*ek_2;//转换公式
P0=(uchar)uk; //将uk输出给DA
while(EOC==0); //等待转换结束
}
}
/***************T1中断服务函数************************/
void Timer1_ISR(void) interrupt 3 using 1
{
TH1 = 0x0D8; //再次转载初值
TL1 = 0x0F0;
START=1;
START=0; //开始下次转换
}
六.心得体会
经过为期一周的设计,感触颇深的是解决问题的方法、技巧。

在这七天中,我们遇到许多问题,感觉到对待问题要多方法处理,多角度处理。

通过这几天的设计,我们对运用MA TLAB 进行控制系统数字仿真有了更加深刻的认识,对用Altium Designer 绘制电路图以及运用Keil C编写 C 语言程序更加的熟悉。

此次课程设计的内容对一个单位反馈系统进行滞后-超前校正。

回顾此次实践的整个过程,虽然只有短短的几天,但是真的在这个自己独立学习的过程中学到了好多东西。

课程设计开始阶段比较顺利,但是做到计算校正后系统的时域性能指标这里时,遇到了不小麻烦,不会用MATLAB编程得阶跃响应曲线。

后来,在同学的帮助下,终于看懂了课件了的那段程序,于是就求出了滞后-超前校正后系统的时域性能指标。

七.参考文献
【1】张晋格主编自动控制原理哈尔滨工业大学出版社,2003
【2】李铁桥等主编计算机控制字理论与应用哈尔滨工业大学出版社,2004 【3】张晋格主编控制系统CAD 哈尔滨工业大学出版社,2004
【4】胡寿松主编自动控制原理. 科学出版社. 2007.
【5】黄坚主编自动控制原理及其应用[M]. 高等教育出版社. 2004.
【6】赵景波主编 MATLAB控制系统仿真与设计机械工业出版社 2010。

相关文档
最新文档