《计算机控制系统课程设计(10页).doc》由会员分享,可在线阅读,更多相关《计算机控制系统课程设计(10页).doc(10页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-计算机控制系统课程设计-第 10 页计算机控制课程设计报告题目: 超前滞后矫正控制器设计 姓名: 学号: 10级自动化 2013年12月2日计算机控制课程设计任务书学 号班 级学 生指导教师题 目超前滞后矫正控制器设计设计时间2013年 11 月 25 日 至 2013 年 12 月 2 日 共 1 周设计要求设计任务:(按照所选题目内容填写)13超前滞后校正设计设单位反馈系统的开环传递函数为,采用模拟设计法设计数字控制器,使校正后的系统满足:速度误差系数不小于100,相角裕度不小于40度,截止角频率不小于20。方案设计:1. 完成控制系统的分析、设计;2. 选择元器件,完成电路设计,控制器
2、采用MCS-51系列单片机(传感器、功率接口以及人机接口等可以暂不涉及),使用Protel绘制原理图;3. 编程实现单片机上的控制算法。报告内容:1. 控制系统仿真和设计步骤,应包含性能曲线、采样周期的选择、数字控制器的脉冲传递函数和差分方程;2. 元器件选型,电路设计,以及绘制的Protel原理图;3. 软件流程图,以及含有详细注释的源程序;4. 设计工作总结及心得体会;5. 列出所查阅的参考资料。指导教师签字: 系(教研室)主任签字:2013年 11 月 25 日设单位反馈系统的开环传递函数为,采用模拟设计法设计数字控制器,使校正后的系统满足:速度误差系数不小于100,相角裕度不小于40度
3、,截止角频率不小于20。(1)使系统满足速度误差系数的要求:(2)用MATLAB画出的Bode图为:由图可以得到未校正系统的性能参数为:相角裕度, 幅值裕度,剪切频率为:, 截止频率为(3)未校正系统的阶跃响应曲线可以看出系统产生衰减震荡。(4)性能分析及方法选择系统的幅值裕度和相角裕度都很小,很容易不稳定。在剪切频率处对数幅值特性以-40dB/dec穿过0dB线。如果只加入一个超前校正网络来校正其相角,超前量不足以满足相位裕度的要求,可以先缴入滞后,使中频段衰减,再用超前校正发挥作用,则有可能满足要求。故使用超前滞后校正。(1)确定剪切频率过大会增加超前校正的负担,过小会使带宽过窄,影响响应
4、的快速性。首先求出幅值裕度为零时对应的频率,约为,令。(2)确定滞后校正的参数, ,并且取得则滞后校正的控制器为此时系统的响应曲线为:滞后校正后的性能参数为:相角裕度 , 幅值裕度 ,剪切频率为:, 截止频率为系统仍需要进行超前校正(3)确定超前校正的参数在图中过(,0dB)作-20dB/dec线,与原先的Bode相交,交点的角频率为:超前矫正控制器的传递函数为:(4)超前滞后校正同时作用时系统的Bode图:相角裕度 , 幅值裕度 ,剪切频率为:, 截止频率为校正后的系统性能已经满足了性能指标要求。(5)画出校正后系统的阶跃响应曲线(6)设计好的控制器传递函数为:(1)模拟控制器离散化采用双线
5、性变换法。(2)采样周期选择取采样周期T=0.01s,因为考虑到A/D,D/A转换的时间以及单片机计算的时间,采样时间不能选的太小,但是为了保证离散控制器的控制仍能满足性能指标的要求,采样时间不能取得太大。取采样周期为10ms,给程序运行留下了足够的时间,而且由后面可见控制效果仍满足性能指标要求,所以取采样周期为10ms。(3)将模拟控制器离散化离散化后得脉冲函数为:(4)被控对象离散化离散化的被控对象为:(5)绘制出离散系统的Bode图相角裕度 , 幅值裕度 ,剪切频率为:, 截止频率为离散化的控制器仍旧满足性能指标的要求,设计合理。(6)离散系统的阶跃响应曲线:(6)数字控制器的脉冲传递函
6、数:(1)编排结构的选择如果使用直接型编排结构,如果控制器中任一系数存在误差,则将使控制器所有的零极点产生响应的变化,严重影响系统的性能。在控制器设计时采用了超前滞后校正,所以采用串联型结构比较简单,而且任何一系数有误差,不会使控制器所有的零极点产生相应的变化。因为有复数零点,故可以写成(2)转换为差分方程的形式:0.9715可以通过一个比例环节实现,可以不用考虑。只需在设计好的控制器上加个比例因子即可。21元器件选择(1)控制器选择选择8051单片机,外接晶振为2MHz.(2)A/D选择选择ADC0809,该AD有8路输入通道,8位A/D转换器,分辨率为8位,转换时间为,(时钟为640KHz
7、时),(时钟为500KHz时);单个+5V供电,模拟输入电压范围为0到5V,不需要零点和满课度校准;内部没有时钟,所以需要外接时钟,时钟从单片机的ALE引脚引出。在经过两个D触发器分频,从而达到500KHz的时钟信号。D触发器选择74LS174。A/D转换时间为,应该能满足设计的要求。(3)D/A选择选择DAC0832,分辨率为8位;可单缓冲,双缓冲或者直接数字输入;只需要在满量程下调整线性度;单一电源供电+5V到+15V;可以满足设计的要求。输出电压值为: (1)A/D转换电路的设计将AD转换的ADDA,ADDB,ADDC接地,选择IN0锁存器。EOC接P2.2,转换结束则输出1,否则输出为
8、0;OE接P2.1,选择是否输出数据。OE=0,输出高阻态,OE=1输出数字量;ST接P2.0,转化开始信号。由1变零转换开始;IN0接输入的模拟数据e(t);IN1-IN7悬空;Clock接分频器SUN7474的输出端,输入500HZ时钟信号;Vref(+)接+5V,Vreft(-)接地,VCC接电源,GND接地;ALE地址所存,上跳沿所存,可以接在P2.O口。D0-D7接单片机的P1.0-P1.7;(2)D/A转换电路设计 D0-D7接单片机的P0.0-P0.7,数字量输入;将CS,WR1,WR2,XFER,引脚接地;ILE引脚接+5V,Vref选择+5V,GND接地;此时DAC0832处
9、于直通工作方式,一旦有数字量输入,就直接进入DAC寄存器,进行D/A转换。(3)8051单片机的电路设计: P0.0-P0.7接D/A转换数字输入端; P1.0-P1.7接A/D转化数字输出端; P2.0接A/D转换ST端;P2.1接A/D转换OE端;P2.2接A/D转换EOC端;外接2MHZ的时钟电路输入到时钟端XTAL1,XTAL2;外接复位电路到RET;(2)程序编写#include#define uchar unsigned char#define uint unsigned int sbit ST=P20; sbit OE=P21; sbit EOC=P22; /A/D转换结束标志位
10、void main()float uk_1=0.0; float uk=0.0;float ek=0.0;float ek_1=0.0;/初始化float ek_2;float uk_2; ST=0; OE=0; /输出高阻态 /*定时器中断初始化*/ TMOD|=0XF9;/ 设置T1工作在方式1,16位定时器方式 TH1=0x7E; TL1=0xE0; /装初值,定时10ms EA=1;/开总中断 ET1=1;/开T1中断 TR1=1;/启动定时器1 while(1) if(EOC=1) uk_2=uk_1; ek_2=ek_2; uk_1=uk; ek_1=ek; OE=1;/输出转换数
11、据 ek=P1;/给单片机输入数据 OE=0; /输出高阻态 uk=ek-1.937*ek_1+0.9383*ek_2+1.711*uk_1-0.7119*uk_2;/差分方程 P0=(uchar)uk;/数据输入到D/A转换器 while (EOC=0) ;/等待A/D转换结束 /*定时器中断处理*/ void time(void) interrupt 1 using 1 TH1=0XF9; TL1=0x7E;/重装初值 ST=1; ST=0;/开始下一次转换数据4设计总结与体会4.1设计过程总结:(1) 首先用自动控制原理的知识,设计出满足要求的超前滞后校正控制器。(2) 对模拟控制器进行
12、双线线性变换离散化。(3) 观察bode图,如果不符合性能指标,则调节采样周期或者直接重新设计模拟控制器,直到性能指标满足要求。(4) 选择合适的编排结构,将设计好的控制器分为几个串联或者并联的控制器,并将每个控制器转换为差分方程形式,便于编程序。(5) 选择单片机及A/D,D/A转换芯片,用protel画出实现控制器任务的最小系统硬件图。(6) 绘制控制算法流程图(7) 编程实现控制器的控制算法在这次的设计过程中,我将整个控制器的设计过程都经历了一遍,包括应用自动控制原理的知识来设计超前滞后校正,并用MATLAB绘制Bode图;应用用计算机控制系统的知识对设计好的模拟控制系统双线性变换,编程
13、数字控制器,用protel软件绘制硬件电路图,用visio绘制流程图,用Keil软件编写实现控制算法的程序。对大学期间所学的内容巩固了一边,综合应用了专业课所学的知识,而且熟悉了专业领域常用软件的使用,收获很多,这次课设经验为我们以后的学习工作打下了基础。设计中的不足之处是没有实际的硬件电路来验证自己设计的控制器的正确性,没有显示出来实际的控制效果,希望有机会可以完整的做一套控制系统。5. 参考文献自动控制原理张晋格计算机控制系统设计课件马立勇单片机原路及应用 张毅刚附录num1=100;den1=conv(1 0,conv(0.1 1,0.01 1)G=tf(num1,den1);T=fee
14、dback(G,1);step(T);2.校正后系统的bode图程序:num1=conv(33 100,0.3 1);3 1,conv(3 1,conv(1 0,conv(0.1 1,0.01 1)margin(num1,den1);3.校正后系统的阶跃响应曲线程序:num1=conv(33 100,0.3 1);den1=conv(0.03 1,conv(3 1,conv(1 0,conv(0.1 1,0.01 1)G=tf(num1,den1);T=feedback(G,1);step(T)num1=conv(0.33 1,0.3 1);den1=conv(3 1,0.03 1);GC1=
15、tf(num1,den1);GC1GZ1=c2d(GC1,0.01,tustin);GZ1num0=100;den0=conv(1 0,conv(0.1 1,0.01 1);Gp=tf(num0,den0);GZ2=c2d(Gp,0.01,ZOH)GZ2GZ=GZ1*GZ2;margin(GZ);GC1=tf(num1,den1);GC1GZ1=c2d(GC1,0.01,tustin);GZ1num0=100;den0=conv(1 0,conv(0.1 1,0.01 1);Gp=tf(num0,den0);GZ2=c2d(Gp,0.01,ZOH)GZ2GZ=GZ1*GZ2;margin(GZ);T=feedback(GZ,1);step(T);