课程设计-大林算法控制系统设计.doc_第1页
课程设计-大林算法控制系统设计.doc_第2页
课程设计-大林算法控制系统设计.doc_第3页
课程设计-大林算法控制系统设计.doc_第4页
课程设计-大林算法控制系统设计.doc_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

扬州大学能源与动力工程学院课程设计报告题 目: 大林算法控制系统设计 课 程: 计算机控制技术课程设计 专 业: 电气工程及其自动化 班 级: 姓 名: 学 号: 第 一 部 分任务书计算机控制技术课程设计任务书一、课题名称大林算法控制系统设计二、课程设计目的课程设计是课程教学中的一项重要内容,是达到教学目标的重要环节,是综合性较强的实践教学环节,它对帮助学生全面牢固地掌握课堂教学内容、培养学生的实践和实际动手能力、提高学生全面素质具有很重要的意义。计算机控制技术是一门理论性、实用性和实践性都很强的课程,课程设计环节应占有更加重要的地位。计算机控制技术的课程设计是一个综合运用知识的过程,它需要控制理论、程序设计、硬件电路设计等方面的知识融合。通过课程设计,加深对学生控制算法设计的认识,学会控制算法的实际应用,使学生从整体上了解计算机控制系统的实际组成,掌握计算机控制系统的整体设计方法和设计步骤,编程调试,为从事计算机控制系统的理论设计和系统的调试工作打下基础。三、课程设计内容设计以89C51单片机和ADC、DAC等电路、由运放电路实现的被控对象构成的计算机单闭环反馈控制系统。1. 硬件电路设计:89C51最小系统加上模入电路(用ADC0809等)和模出电路(用TLC7528和运放等);由运放实现的被控对象。2. 控制算法:大林控制算法。3. 软件设计:主程序、中断程序、A/D转换程序、滤波程序、大林算法控制程序、D/A输出程序等。四、课程设计要求1. 模入电路能接受双极性电压输入(-5V+5V),模出电路能输出双极性电压(-5V+5V)。2. 模入电路用两个通道分别采集被控对象的输出和给定信号。3. 每个同学选择不同的被控对象:4. 对象的纯延迟环节用软件通过数组单元移位实现。5. 定时中断间隔选取50ms,采样周期T要求既是采样中断间隔的整数倍,又满足。6. 闭环系统时间常数按的被控对象最大时间常数选择。有关的设计资料可参考计算机控制实验指导书的相关内容。五、课程设计实验结果1. 控制系统能正确运行。2. 有振铃和消除振铃的系统阶跃输出和控制器。六、进度安排序号内容天数1布置任务,熟悉课题要求0.52总体方案确定,硬件电路设计1.53熟悉实验箱及C语言开发环境,研读范例程序,14控制算法设计15软件编程,调试16实验17总结,撰写课程设计报告1七、课程设计报告内容:总结设计过程,写出设计报告,设计报告具体内容要求如下:1课程设计的目和设计的任务。2课程设计的要求。3控制系统总框图及系统工作原理。4控制系统的硬件电路连接图(含被控对象),电路的原理。 5软件设计流程图及其说明。6电路设计,软件编程、调试中遇到的问题及分析解决方法。7实验结果及其分析。8体会。第 二 部 分课程设计报告 目 录1 课程简介.71.1程设计目的. 71. 2程设计内容. 71.3程设计要求.72 方案设计. .8 2.1控制系统整体方案.82.2控制系统闭环工作原理.8 3 大林算法硬件电路设计. .83.1 A/D采样电路.8 3.2 D/A输出电路. . . . . . .103.3 给定对象硬件电路设计.10 3.4译码电路. . .11 3.5总硬件图. . .124 控制算法设计.124.1控制算法的原理.12 4.2采样周期.125 软件编程设计.12 5.1 主程序与中断流程图.125.2 部分控制程序代码.133. 全局变量定义的源代码:.166 实验结果与分析.177 小结与体会. .17参考文献.18附录 . .191、 课题简介1.1 课题目的课程设计是课程教学中的一项重要内容,是达到教学目标的重要环节,是综合性较强的实践教学环节,它对帮助学生全面牢固地掌握课堂教学内容、培养学生的实践和实际动手能力、提高学生全面素质具有很重要的意义。计算机控制技术是一门理论性、实用性和实践性都很强的课程,课程设计环节应占有更加重要的地位。计算机控制技术的课程设计是一个综合运用知识的过程,它需要控制理论、程序设计、硬件电路设计等方面的知识融合。通过课程设计,加深对学生控制算法设计的认识,学会控制算法的实际应用,使学生从整体上了解计算机控制系统的实际组成,掌握计算机控制系统的整体设计方法和设计步骤,编程调试,为从事计算机控制系统的理论设计和系统的调试工作打下基础。1.2 课题内容设计以89C51单片机和ADC、DAC等电路、由运放电路实现的被控对象构成的计算机单闭环反馈控制系统。1. 硬件电路设计:89C51最小系统加上模入电路(用ADC0809等)和模出电路(用TLC7528和运放等);由运放实现的被控对象。2. 控制算法:大林控制算法。3. 软件设计:主程序、中断程序、A/D转换程序、大林算法控制程序、D/A输出程序等。1.3 课题要求1. 模入电路能接受双极性电压输入(-5V+5V),模出电路能输出双极性电压(-5V+5V)。2. 模入电路用两个通道分别采集被控对象的输出和给定信号。3. 选择被控对象: 4. 对象的纯延迟环节用软件通过数组单元移位实现。5. 定时中断间隔选取50ms,采样周期T要求既是采样中断间隔的整数倍,又满足。6. 闭环系统时间常数按的被控对象最大时间常数选择。2.大林算法控制系统方案设计 2.1控制系统总体介绍图2.1-1大林算法设计的闭环控制系统方框图大多数工业对象具有较大的纯滞后时间,可以近似用一阶或二阶惯性环节加纯滞后环节来表示,其传递函数为一阶对象:,二阶对象:,大林算法的设计目标是使整个闭环系统所期望的传递函数 (s)相当于一个纯滞后环节和一个惯性环节相串联,即,并希望整个闭环系统的纯滞后时间和被控对象的纯滞后时间相同。其中为闭环系统的时间常数,纯滞后时间与采样周期T有整数倍关系,(N=1,2)。2.2控制系统闭环工作原理在本次大林算法控制系统中,系统先进行A/D采样,将给定值采样值取到单片机内,之后单片机会选择另外一路通道,进行输出值即反馈值的采样。将输出值采样到单片机内后,在单片机中进行差值E(k)计算,再通过单片机中的算法程序得到输出量U(k),再经过D/A变换器,将输出结果作用于被控对象。经被控对象的输出值又将作为反馈值被采样到单片机内。3.大林算法控制系统硬件电路设计3.1 A/D采样电路 该实验的A/D采样硬件电路如图3-1所示 图3-1 A/D采样硬件电路图 上图所示的是ADC0809与8051连接的硬件电路图,其中在ADC0809中,IN-6、IN-7分别采样给定信号和反馈信号,AD转换器的引脚A接单片机的P16,用于选择采样通道。控制计算机的定时器作为基准时钟(初始化为50ms),在第一次启动A/D转换时,此时P16=0,选择的IN-6,采样的是给定信号,当采样周期到时,此时P16=1,同时在定时器中启动A/D转换,此时采样的是反馈信号,给定信号和反馈信号的采样值分别存储在程序的RK和UK1中。 模数单元采用ADC0809芯片,主要包括多路模拟开关和A/D转换器两部分。其主要特点为:单电源供电、工作始终CLOCK最高可达1200KHz、8位分辨率、8个单端模拟输入端(IN0IN7)、TTL电平兼容等,可以很方便地和微处理器接口。 通过三端地址译码A、B、C多路开关可选通8路模拟输入的任何一路进行A/D变换。其中IN1IN5的模拟量输入允许范围:0V4.98V,对应数字量为00HFFH,2.5V对应80H;IN6和IN7两路由于接了上拉电阻,所以模拟量输入允许范围:-5V+4.98V,对应数字量00HFFH,0V对应80H。在设计过程中使用的TD-ACC+教学系统中的ADC0809芯片,其输出八位数据线以及CLOCK线已连到控制计算机的数据线及系统应用时钟1MCLK(1MHz)上。其它控制线根据实验要求可另外连接(A、B、C、STR、/OE、EOC、IN0IN7)。 其中IN6和IN7可以测量-5V+5V的量,主要是因为加了外部电路。如图所示,在IN6和IN7的实际输入端其输入范围为05V,在外围电路中,采用两个相同电阻分压的方式,因为给了一个5V的电压,当输入端为-5V时,0809的实际输入端为两者相加之和的一半,为0V,在0809采样电压的范围以内。但将该采样值取进单片机内后,其表示范围为-128127,对应为05V的电压,所以我们需要在程序里将采样值减去128以使采样值与设定值相对应。因此加了外部电路,0809就可以采集-5+5V的电压了。3.2 D/A输出电路 数模转换单元采用TLC7528芯片,它是8位、并行、两路、电压型输出模数转换器。其主要参数如下:转换时间100ns,满量程误差1/2LBS,参考电压-10V+10V,供电电压+5V+15V,输入逻辑电平与TTL兼容。输入数字范围为00HFFH,80H对应于0V,输出电压为-5V+4、96V。在课程设计过程中采用的TD-ACC+教学系统中的TLC7528,其输入数字量得八位数据线、写线和通道选择控制线已经接至控制计算机的总线上。片选线预留出待实验中连接到相应的I/O片选上,如图3-2。图3-2 D/A输出电路 该芯片TLC7528可以双极性输出,但须在单片机中将D/A的输出值加128后再交给TLC7528芯片进行D/A输出。3.3给定对象硬件电路设计 图3-3 给定对象硬件电路图如图3-3所示,为被控对象的硬件电路的设计图,在本次的课程设计中的被控对象传递函数: ,其中比例部分由两个运算放大器组合实现,即,第一个运算放大器的积分部分为42001000=0.8,实现被控对象的第一部分,第二个运算放大器的积分部分为42501000=1,实现被控对象的第二部分。 延迟通过数组来实现,滞后环节使信号延迟,为此,在内存中专门设定N个单元作为存放信号m(k)的历史数据,每采样一次,把m(k)记入0单元,同时0单元原来存放的数据移到1单元,单元N输出的信号,就是滞后N个采样周期的m(k-N)信号。 3.4 译码电路 图3-4 译码电路3.5总硬件图见附录图 总硬件图4.大林算法控制系统算法设计4.1 控制算法的原理 实验算法中,用脉冲传递函数近似法求得对应的闭环脉冲传递函数: ,将代入,并进行Z变换:式中 , 经计算 ,无振铃时,有,于是对应的递推公式为 u(k)=-0.4981u(k-1)+0.9409u(k-2)+0.5573u(k-3)+1.4967e(k)-1.7089e(k-1)+0.4859e(k-2)则程序中 KK0=1.4967,KK1=-1.7089,KK2=0.4859,PP1=-0.4981,PP2=0.9409,PP3=0.55734.2 采样周期的选择在本实验中,定时中断间隔选取50ms,采样周期T要求既是采样中断间隔的整数倍,又要满足,而由被控对象的表达式可知,所以取N=1,。 因为,因为采样周期T=500ms=0.5s,定时中断为0.5s,就是说1个定时中断后进行采样。5.大林算法控制系统软件编程设计5.1 主程序与中断流程图主程序流程图: 设定时器工作状态 定时器装入初值 设定外中断类型 开外中断和定时器中断 启动定时器 D/A清零 变量清零 图5.1-1采样中断服务程序流程图: 图5.1-25.2 部分控制程序代码1.主程序部分源码:void main(void) TMOD = 0x01;t0_h = (65536-15536)/256;/计算定时器0初值t0_l = (65536-15536)%256;t0_l = t0_l+20;/修正因初值重装而引起的定时误差TH0 = t0_h;TL0 = t0_l;IT1 = 1;/边沿触发中断EX1 = 1;/开外部中断1ET0 = 1;/开定时中断0TR0 = 1;/启动定时器TC = 1;DAC_1= 0x80;/D/A清零UK = UK_1 = UK_2 = UK_3 = 0;/变量清零EK = EK_1 = EK_2 = EK_3 = 0; RK = RK_1 = RK_2 = RK_3 = 0;bb = 0;EA = 1;/开总中断FLG = 0;DOUT0 = 0;while(1);主程序的功能主要是:对定时器的赋值、开外中断、初始各变量,其中while(1)是使主程序进入死循环,等待中断到来。 2. 采样中断程序的部分源码: (1)判断同步信号程序:DIN0 = 1;/读取输入前,先输出高电平 if(DIN0)/判同步信号到否 UK = UK_1 = UK_2 = UK_3 = 0; EK = EK_1 = EK_2 = EK_3 = 0;RK = RK_1 = RK_2 = RK_3 = 0; DAC_1 = 0x80;/D/A输出零TC = 1; (2)双通道采样: TC-;/判采样周期到否 if(TC=0) if(FLG=0) RK=ADC_7-128;/采样当前的给定值DOUT0 = 1; FLG = 1; TC = TK; else FLG = 0;UK = ADC_7-128;/采样当前的输出值,并计算偏差的变化量 DOUT0 = 0;EK = RK-UK;EK_1 = RK_1-UK_1;EK_2 = RK_2-UK_2;EK_3 = RK_3-UK_3; i=KK*0EK*+KK1*EK_1+EK_2*KK2j = PP1*UK_1 + PP2*UK_2 + PP3*UK_3;UK = G*i + j; if(UK0)/判控制量是否溢出,溢出赋极值 if(UK127) aa = 127; else aa = (char)UK; else if(UK-128) aa = -128; else aa = (char)UK; DAC_1 = bb+128;/D/A输出控制量 bb =aa ;UK_3 = UK_2;/控制量递推 UK_2 = UK_1; UK_1 = UK; EK_3 = EK_2;/偏差递推 EK_2 = EK_1; EK_1 = EK;TC = TK;/采样周期变量恢复 双通道采样原理说明:由于在主程序中,将DOUT2置“0”,已经选择了采样通道IN6,第一次进行A/D转换时,对给定信号进行采样,并将采样值存储在RK中,同时将DOUT2置“1”,这时将A/D通道IN7选中,等待采样周期到时,则采样反馈信号,并将采样值存储在UK1中,在变量定义中,已经将P1.6定义为DOUT2,故改变DOUT2值就改变了P1.6。 中断程序实现的功能:对给定信号进行采样,并将采样值存储在RK中,同时将DOUT2置“1”,将A/D通道IN7选中,待采样周期到时,则采样反馈信号,并将采样值存储在UK1中,接下来便是计算偏差E(k),计算U(k),将值通过端口DAC_1在下一周期到来时输出;再次在该中断程序中,增加一个变量bb1,用于存储前一周期的输出值,这样使得输出量能够延迟1秒输出;最后就是通过递推公式,计算实现输出信号的不断优化。该程序实现的功能是对定时器的重新装值,同时,当采样周期到时,启动A/D,用于对转换反馈信号进行A/D转换。 3. 全局变量定义的源代码:sbit str = P17; /定义A/D启动信号sbit DIN0 = P10;/声明同步信号sbit DOUT0= P14; /用于控制采保产生纯滞后一拍sbit DOUT1= P15;uint data time; /声明变量,用于定时uchar data t0_h,t0_l; /用于存储定时器0的初值int TK=100;/声明采样周期变量,/采样周期TK*10msint TC;/TK的变量float KK0=1.4967 ; /系数kk0Float KK1 = -1.7089;/系数kk1float KK2=0.4859;/系数kk2Float PP1= -0.4981 ;/系数pp1float PP2=0.9409;/系数pp2float PP3 = 0.5573 ; /系数pp3 float G = 1; /增益调整float UK;RK;/当前时刻的D/A输出int j,i,a2;/当前时刻的偏差int EK,EK_1,EK_2,EK_3;/前3次采样时刻的控制量和偏差float UK_1,UK_2,UK_3;RK_1,RK_2,RK_3;6.实验结果7. 小结与体会 为期一周半的机控课程设计已然结束,在我们小组的团结合作下,我们圆满完成了课程设计的任务。实验的前两天,我们在实验室中每个对课程设计的任务和要求做了详细的阅读和分析,并且到网上和图书馆查阅了相关的资料和文献,对此次课程设计有了一个大概的了解和掌握。紧接着,我们开始利用软件进行一些初步的摸索和试验,部分同学开始进行程序的编写,此时,我们便遇到了第一个困难,在老师的指点和同学的帮助下,我们静下心来仔细分析冗长和

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论