当前位置:文档之家› 最少拍控制系统设计

最少拍控制系统设计

能源与动力工程学院课程设计报告题目:最少拍控制系统设计课程:计算机控制技术课程设计专业:班级:姓名:学号:《计算机控制技术》课程设计任务书一、 课程设计目的课程设计是课程教学中的一项重要容,是达到教学目标的重要环节,是综合性较强的实践教学环节,它对帮助学生全面牢固地掌握课堂教学容、培养学生的实践和实际动手能力、提高学生全面素质具有很重要的意义。

《计算机控制技术》是一门实用性和实践性都很强的课程,课程设计环节应占有更加重要的地位。

计算机控制技术的课程设计是一个综合运用知识的过程,它需要控制理论、程序设计、硬件电路设计等方面的知识融合。

通过课程设计,加深对学生控制算法设计的认识,学会控制算法的实际应用,使学生从整体上了解计算机控制系统的实际组成,掌握计算机控制系统的整体设计方法和设计步骤,编程调试,为从事计算机控制系统的理论设计和系统的整定工作打下基础。

二、 课程设计容设计以89C51单片机、ADC 、DAC 等电路和运放电路组成的被控对象构成的单闭环反馈控制系统。

1. 硬件电路设计:89C51最小系统加上模入电路ADC0809和模出电路DAC0832;由运放构成的被控对象。

2. 控制算法:最少拍控制、PID 。

3. 软件设计:主程序、定时中断程序、A/D 转换程序、滤波程序、D/A 输出程序、最少拍控制程序等。

三、 课程设计要求1. 模入电路能接受双极性电压输入(-5V~+5V ),模出电路能输出双极性电压(-5V~+5V )。

2. 被控对象每个同学选择不同:510(),()(1)(0.81)(1)(0.41)G s G s s s s s ==++++45(),()(0.41)(0.81)G s G s s s s s ==++58(),()(1)(0.21)(0.81)(0.21)G s G s s s s s s s ==++++55(),()(0.81)(0.31)(0.81)(0.21)G s G s s s s s ==++++3. 设计无纹波最少拍控制器。

被控对象有积分环节的按斜坡输入信号设计控制器,否则按阶跃输入信号设计控制器。

4. 定时中断间隔可在10-50ms中选取,采样周期取采样中断间隔的整数倍,可取1000-2000ms,由实验结果确定。

5. 滤波方法可选择平均值法,中值法等。

四、课程设计实验结果1. 控制系统能正确运行。

2. 按设计信号下的系统输出响应。

3. 其他典型输入信号下的系统输出响应。

五、进度安排六、课程设计报告容:总结设计过程,写出设计报告,设计报告具体容要求如下:1.课程设计的目和设计的任务。

2.课程设计的要求。

3.控制系统总框图及系统工作原理。

4.控制系统的硬件电路连接图(含被控对象),电路的原理。

5.软件设计流程图及其说明。

6.电路设计,软件编程、调试中遇到的问题及分析解决方法。

7.实验结果及其分析。

8.体会。

七、参考文献(列出你所利用的参考文献。

格式参见下。

)[1] 于海生主编,微型计算机控制技术,:清华大学,1999[2] 艳兵等编著,计算机控制技术,:国防工业,2008[3] 毅刚主编,单片机原理及应用,:高等教育,2004[4] 涛编著,单片机应用及C51程序设计,:机械工业,2008[5] 楼然苗, 光飞编著, 单片机课程设计指导, : 航空航天大学, 2007[6] 控制、电子技术类杂志、报刊第二部分课程设计报告目录1.课题简介1.1 课程设计容 (5)1.2课程设计要求 (5)2.方案设计2.1设计步骤 (5)2.2 控制系统总框图及系统工作原理 (6)3.硬件电路设计3.1 被控对象设计 (8)3.2硬件电路连接图 (9)4.控制算法设计 (10)5.软件编程设计5.1 流程图 (11)5.2 程序设计 (12)6.实验结果与分析 (14)7.心得体会 (14)1 课题简介(宋体4号加粗)1.1 课程设计容设计以89C51单片机、ADC、DAC等电路和运放电路组成的被控对象构成的单闭环反馈控制系统。

1. 硬件电路设计:89C51最小系统加上模入电路ADC0809和模出电路TLC7528;由运放构成的被控对象。

2. 控制算法:最少拍控制。

3. 软件设计:主程序、定时中断程序、A/D转换程序、滤波程序、D/A输出程序、最少拍控制程序等。

1.2课程设计要求1. 模入电路能接受双极性电压输入(-5V~+5V),模出电路能输出双极性电压(-5V~+5V)。

2. 被控对象s 10G=s s+(+1)(0.41)3. 设计无纹波最少拍控制器。

被控对象有积分环节的按斜坡输入信号设计控制器,否则按阶跃输入信号设计控制器。

4. 定时中断间隔可在10-50ms中选取,采样周期取采样中断间隔的整数倍,可取1000-2000ms,由实验结果确定。

5. 滤波方法可选择平均值法,中值法等。

2 方案设计2.1设计步骤先进行硬件设计,根据Gz改造被控对象进行最少拍控制算法计算读例程序,画出流程图,进行修改调试实验结果2.2控制系统总框图及系统工作原理最小拍双通道采样的闭环系统框图如上所示,在该系统中对给定值r(t)进行D/A转换采样,得到离散化的r(z),并且对输出值c(t)也进行D/A转换,得到c(z),然后计算有e(k)=c(k)-r(z)。

D(z)为计算机控制系统的脉冲传递函数,U(z)为输出的控制量,然后经过A/D转换后得到模拟控制量U(t)对包含零阶保持器的被控量进行控值进而达到要求的最小拍控制的目的。

误差E=R-C经运放运算得到,并由模数转换器采集。

最少拍控制算法由软件程序和单片机实现。

输出U 经数模转换器和零阶保持器转换成模拟信号送至被控对象。

被控对象由两只运放及阻容元件构成。

3 硬件电路设计3.1被控对象s 10G=s s+(+1)(0.41)由运放及阻容元件搭建,电路图如下:U33288RT12543U43288RT12543VCC12VVCC12VVCC 12VVCC12VR1200kΩR2200kΩC15uF2uFR3200kΩR420kΩVCC VCCVCCVCC 034123.2硬件电路原理图4 控制算法设计4.1 11112.146(10.5785)()(1)(10.2865)z z G z z z ----+=--被控对象含有一个积分环节,采用单位速度输入信号,q=2 D=0,q=2,v=1,w=1,j=1 m=w+d=1 n=v-j+q=2110()Z[G ][.](1)(0.4s 1)Ts s e G z Z s s --==++110(1)[](1)(0.4s 1)Z Z s -=-++4.2 112()(10.5785)(1.49920.8657)z z zz φ---=++121()(1)(10.5)e z z z φ--=--11110.466(10.2865)(1.49920.8657)()(1)(10.5)z z D z z z ------=-+1212()0.5()0.5()0.466()0.6036(1)0.1156(2)U z z U z z U z E z z E z z E z ----=++--+-()0.5(1)0.5(2)0.466()0.6036(1)0.1156(2)u k u k u k e k e k e k =-+-+--+-5 软件编程设计5.1流程图5.2程序#include <reg51.h>#include <absacc.h>#include <math.h>/*****************************************宏定义*****************************************/#define uchar unsigned char#define uint unsigned int#define ADC_7 XBYTE[0x0600] //定义模数转换IO地址#define DAC_1 XBYTE[0x0640] //定义D/A第一路的IO地址/*****************************************全局变量定义*****************************************/sbit str = P1^7; //定义A/D启动信号sbit DIN0 = P1^0; //声明同步信号uint data time; //声明变量,用于定时uchar data t0_h,t0_l; //用于存储定时器0的初值char TK = 5; //声明采样周期变量,//采样周期=TK*10ms char TC; //TK的变量float kp =1.8; //比例系数uint ti =80; //积分系数char td = 2; //微分系数char IBAND = 120; //积分分离值char EK; //当前采样的偏差值char EK_1; //上一次采样的偏差值char AEK; //偏差的变化量char UK; //当前时刻的D/A输出char AEK_1;char BEK;char CEK;float ZEK;/*****************************************主函数*****************************************/void main(void){TMOD = 0x01;time = 10; //定时10mst0_h = (65536 - 1000 * time) / 256; //计算定时器0初值t0_l = (65536 - 1000 * time) % 256;t0_l = t0_l + 70; //修正因初值重装而引起的定时误差TH0 = t0_h;TL0 = t0_l;IT1 = 1; //边沿触发中断EX1 = 1; //开外部中断1ET0 = 1; //开定时中断0TR0 = 1; //启动定时器TC = 1;DAC_1= 0x80; //D/A清零EK = EK_1 = 0; //变量清零AEK =BEK=AEK_1=CEK= UK = 0;ZEK = 0;str = 1;EA = 1; //开总中断while(1);}/**********************************************函数名:INT1功能:1号外部中断服务程序参数:无*返回值:无************************************************/void int1() interrupt 2 using 2{float P,D,I,TEMP,TEMP1;DIN0 = 1; //读取输入前,先输出高电平if(DIN0) //判同步信号到否{EK = EK_1 = 0; //变量清零UK = AEK = BEK=CEK=AEK_1=0;ZEK = 0;DAC_1 = 0x80; //D/A输出零TC=1;}else{TC--; //判采样周期到否if(TC == 0){EK = ADC_7 - 128; //采样当前的偏差值,并计算偏差的变化量AEK = EK - EK_1;BEK =(EK+EK_1)/2;CEK =AEK-AEK_1;EK_1= EK;AEK_1=AEK;if(abs(EK)> IBAND) I = 0; //判积分分离值else{ZEK=EK+ZEK;I= BEK * TK;I= I / ti;}P =AEK;D = CEK * td; //计算微分项D = D / TK;TEMP = (P + I + D) * kp; //计算比例项TEMP1=(EK_1 + ZEK*TK/ti+AEK_1*td/TK)*kp;TEMP=TEMP+TEMP1;if(TEMP > 0) //判控制量是否溢出,溢出赋极值{if(TEMP >= 127)UK = 127;elseUK = (char)TEMP;}else{if(TEMP <- 128)UK = -128;elseUK = (char)TEMP;}DAC_1 = UK + 128; //D/A输出控制量TC = TK; //采样周期变量恢复}}}/**********************************************函数名:Timer0功能:定时器0中断服务程序参数:无返回值:无***********************************************/void Timer0() interrupt 1 using 1{TH0 = t0_h; //重新装入初值TL0 = t0_l;str = 0;str = 1; //产生A/D启动信号}6 实验结果与分析6.1 示波器图形6.2结果分析经过对PID参数的调节,最终实现的波形较好的实现了控制的要求,使得阶跃超调小于10%,而且相应时间较快,控制算法及程序是可靠的。

相关主题