《计算机控制课程设计--串联校正控制器设计》由会员分享,可在线阅读,更多相关《计算机控制课程设计--串联校正控制器设计(14页珍藏版)》请在金锄头文库上搜索。
1、4计算机控制计算机控制课程设计报告课程设计报告题目: 串联校正控制器设计 姓名: 学号: 2013 年 12 月 2 日计算机控制课程设计任务书学 号班 级学 生指导教师题 目串联校正控制器设计设计时间2013 年 11 月 25 日 至 2013 年 12 月 2 日 共 1 周设计要求设计任务:(按照所选题目内容填写)设单位反馈系统的开环传递函数为,用根轨迹法设计( )(1)(4)KG ss ss串联校正控制器,并采用模拟法设计数字控制器,使校正后的系统满足:系统 阻尼比为 0.5,无阻尼自然振荡频率 2rad/s。方案设计: 1. 完成控制系统的分析、设计; 2. 选择元器件,完成电路设
2、计,控制器采用 MCS-51 系列单片机(传感器、 功率接口以及人机接口等可以暂不涉及),使用 Protel 绘制原理图; 3. 编程实现单片机上的控制算法。报告内容: 1. 控制系统仿真和设计步骤,应包含性能曲线、采样周期的选择、数字 控制器的脉冲传递函数和差分方程; 2. 元器件选型,电路设计,以及绘制的 Protel 原理图; 3. 软件流程图,以及含有详细注释的源程序; 4. 设计工作总结及心得体会; 5. 列出所查阅的参考资料。指导教师签字: 系(教研室)主任签字:2013 年 11 月 25 日1、 模拟控制器的设计模拟控制器的设计原系统的开环传递函数为,单位负反馈。(1)(4)K
3、 s ss根据题目要求,系统阻尼比为 0.5,无阻尼自然振荡频率 2rad/s。因此期望主导极点为2113dnnsjj 用 Matlab 绘制其根轨迹如下图所示:-15-10-50510-15-10-5051015R oot LocusR eal Axi s (seconds- 1)I m agi nary Axi s (seconds- 1)图 1 校正前系统的根轨迹由上图可知,期望闭环极点位于根轨迹左侧,可以采用相位超前校正,使根轨迹左移。由图可见,开环几点之一,正好位于期望闭环极点垂线下的负实1s ds轴上,如果令校正装置的零点设在紧靠这个开环极点的左侧,另1s ,这样做往往能增大成为闭
4、环主导极点的可能性。运用 Matlab 编程1.2cz ds求出对应于零点的极点为,因此校正后系统的开环传递函数为:1.2cz 5cp (1.2)( )(1)(2)(5)K sG ss sss其根轨迹如图 2 所4R oot LocusR eal Axi s (seconds- 1)I m agi nary Axi s (seconds- 1)-25-20-15-10-50510-15-10-5051015Syst em : G G ai n: 29. 5 Pol e: -1 + 1. 71i D am pi ng: 0. 507 O vershoot (% ): 15. 8 Frequenc
5、y (rad/ s): 1. 98图 2 校正后系统根轨迹根据幅值条件,可以求出系统工作于点的值为 30。dsK原系统及校正后系统的阶跃响应如图 3 所示:0246810121416182000. 20. 40. 60. 811. 21. 4St ep R esponseTi m e (seconds)Am pl i t ude图 3 原系统阶跃响应0246810121416182000. 20. 40. 60. 811. 21. 4St ep R esponseTi m e (seconds)Am pl i t ude图 4 校正后系统的阶跃响应可以看出原系统阶跃响应单调递增变化,为过阻尼的
6、情况;校正后系统衰减震荡,为欠阻尼,由其根轨迹曲线可以看出,工作点近似位于期望闭环极点上。至此,模拟控制器设计完毕。2、 器件选取及电路设计器件选取及电路设计(1) 控制器选用 STC89C52 单片机,晶振选取 12MHz。P0 口作为普通I/O 口使用,故需接入上拉电阻。(2) A/D 选用 ADC0804。其分辨率为 8 位,转换时间为 100us,输入电压范围为 05V。芯片内部具有三态输出数据锁存器,可直接连接在数据总线上。(3) D/A 选用 DAC0832。其为 8 位 D/A 转换器,其转换时间为 1us。数据输入可以采用双缓冲、单缓冲、或直通方式,以便适用于各种电路的需要。工
7、作电压为+5V+15V,基准电压为范围为-10V+10V。D/A 转换结果采用电流形式输出,可通过外接运算放大器将其转换成电压。由上述器件可以计算出,完成一次 A/D、D/A 转换所需要的时间为 101us;单片机每执行一条指令所需时间为 0.083us,给定采样时间 0.01s,即 10000us,足够完成程序运算与 A/D、D/A 的转换。原理图如图 5 所示:AD7AD6AD5AD4AD3AD2AD1AD0AD0 AD1 AD2 AD3 AD4 AD5 AD6 AD7AD0AD1AD2AD3AD7AD6AD5AD4P2.0 P2.1XTAL218XTAL119ALE30EA31PSEN2
8、9RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.0/T21P1.1/T2EX2P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C52 1
9、2MHz DBG_TRACE=0X112MHzC120pFC220pFGNDR110kVCCC310UF2 3 4 5 6 7 8 91RP1 10kVREF8GND3VCC20CS1WR12DI34DI25DI16DI07RFB9GND10IOUT111IOUT212DI713DI614DI515DI416XFER17WR218ILE(BY1/BY2)19U3DAC0832VCCVCCVCCGNDGNDVCCVIN+6VIN-7VREF/29CLK IN4A GND8RD2WR3INTR5CS1D GND10DB7(MSB)11DB612DB513DB414DB315DB216DB117DB
10、0(LSB)18CLK R19VCC20U2ADC0804GNDR210kC4150pFGNDA An na al lo og g I In np pu ut tGND P2.0 P2.1GNDVCCGNDGNDGND32 1411A An na al lo og g O Ou ut tp pu ut tVCCVCC GNDGNDVCC 10VVCC -10VP2.2P2.2图 5 数字控制器原理图3、 数字控制器的设计以及被控对象的离散化数字控制器的设计以及被控对象的离散化由模拟控制器到数字控制器的实现有许多方法,比如一阶前向差分、一阶后向差分、双线性变换法、零极点匹配法等等。考虑到双线性变
11、换发使用方便且有一定精度,故选取其作为离散化方法。上一步选取了采样周期为 0.01s,由 Matlab 运算得到离散化之后的控制器脉冲传函为:0.9815 z - 0.9698z - 0( ).9512cG z 求得相应的差分方程为:。( )0.9815 ( )0.9698(1)0.9512 (1)u ke kku k被控对象采用零阶保持器离散化,最终的离散化系统方框图如图 6 所示:控制器被控对象/A D/D A+-图 6 离散系统方框图用 simulink 对系统进行仿真,可得到系统的阶跃响应曲线:图 7 simulink 仿真图图 8 离散系统阶跃响应曲线与原系统相比,相差不大。下面给出
12、离散化前后的 bode 图:图 9 离散化前后 bode 图上图中,实线为离散前系统的 bode 图,点画线为离散化之后的 bode 图,可以看出,两者差别不大,可以满足要求。4、 程序设计程序设计程序设计的总体思路是采用外部中断的方式进行。首先启动 A/D 转换,当转换完成时,触发单片机外部中断,进入中断服务子程序程序。在中断服务程序中,进行控制量的求取,然后再次启动 A/D 转换,中断返回。D/A 采用直通工作方式,即只需要变化数据输入端,其模拟输出就紧跟着变化。由于 D/A 的转换时间为 1us,而 A/D 转换时间为 100us,故 D/A 芯片有足够的时间完成转换。使用 keil 开
13、发环境进行程序编写调试。并且利用 keil 的软件调试模式进行计算中断服务子程序运行一次所需要的时间。进而可以计算出每个周期内采样、转换与计算输出所需的总时间,然后与确定的采样周期相比较,确定采样周期的选取是否符合条件。软件调试界面如图 10 所示:图 10 Keil 软件调试模式分别对进入中断以及中断返回进行计时,即可得到中断服务子程序运行时间,如图 11 所示:图 11 中断服务程序运行时间由上图可以计算中断服务程序运行的时间为:0.00115540.010760.000794sA/D 转换时间为 100us,故每周期总共用时为:0.0007940.0010.001794s故所选取的采样周
14、期 0.01s 完全足够其完成采样与运算。程序流程图如下所示:开始初始化开定时器中断T0While(1)等待 定时器T0中断开始读A/D根据公式计算 u(k)并输出启动A/D转换更新u(k-1)、e(k-1)重装初值等待A/D转换结束中断返回图 12 软件流程图5、 心得体会心得体会本次课程设计持续一周时间,在这一周内,我完成了从系统设计到控制器的具体编程实现等工作,有很大的收获。这次课设将以前学过的很多知识串联起来,形成整体化、系统化的思想,提高了我们综合运用所学知识解决实际问题的能力,也提升了我们有目的地查阅资料解决问题的能力。当然,这次课程设计更多的是让我识到自己的不足。作为一名大学生,
15、掌握的知识确很过时,会用的只是课程中讲过的一些很简单很基本的芯片和控制器,不能与最新的只知识接轨,知识结构的老化,对所学专业认识的浅显,纸上谈兵,缺乏实践经验等等都是我们亟待解决的问题。在以后的学习工程中,我一定会积极拓宽自己的视野,多接触一些新知识,丰富自己,提升自己。我们的路还有很长。6、 参考文献参考文献1 张晋格主编.自动控制原理.哈尔滨:哈尔滨工业大学出版社,2003.2 刘建昌等主编.计算机控制系统.北京:科学出版社,2009.3 张毅刚主编.单片机原理及应用.北京:高等教育出版社,2004.4 张晋格,陈丽兰主编.控制系统 CAD基于 MATLAB 语言.北京:机械工业出版社,2
16、010.5 郭天祥编著.51 单片机 C 语言教程.北京:电子工业出版社,2009.7、 附录附录Matlab 程序:程序一:%校正前根轨迹clc,clear,close all; num=1; den=conv(1 1 0,1 4); G=tf(num,den); figure(1); rlocus(G); T=feedback(G,1); figure(2); step(T,20);程序二:%求取极点位置clc,clear,close all; x=-20:0.001:-1; angs=angle(-1+sqrt(3)*1i-(-1.2)*180/pi-90-angle(-1+sqrt(3)*1i-0)*180/pi- angle(-1+sqrt