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. 被控对象Gs=10
(s+1)(0.4s+1)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)对包含零阶保持器的被控量
5
进行控值进而达到要求的最小拍控制的目的。
误差E=R-C经运放运算得到,并由模数转换器采集。最少拍控制算法由软件程序和单片机实现。输出U经数模转换器和零阶保持器转换成模拟信号送至被控对象。被控对象由两只运放及阻容元件构成。
3 硬件电路设计
3.1 被控对象Gs=10由运放及阻容元件搭建,电路图如下:
(s+1)(0.4s+1)1C15uF2R1200kΩVCC5C22uF3R2VCC12VR3323200kΩVCCVCC5U3U412V4R420kΩ0214200kΩ3288RT0143288RTVCCVCCVCCVCC12V12V 3.2硬件电路原理图
6
4 控制算法设计
2.146z?1(1?0.5785z?1)4.1 G(z)? ?1?1(1?z)(1?0.2865z)被控对象含有一个积分环节,采用单位速度输入信号,q=2 D=0,q=2,v=1,w=1,j=1 m=w+d=1 n=v-j+q=2
1?e?Ts10G(z)?Z[Gs]?Z[.]
s(s?1)(0.4s?1) ?(1?Z?1)Z[10]
(s?1)(0.4s?1)
4.2
?(z)?(1?0.5785z?1)(1.4992z?1?0.8657z?2)
?e(z)?(1?z?1)2(1?0.5z?1)
0.466(1?0.2865z?1)(1.4992?0.8657z?1) D(z)??1?1(1?z)(1?0.5z)U(z)?0.5z?1U(z)?0.5z?2U(z)?0.466E(z)?0.6036z?1E(z?1)?0.1156z?2E(z?2)
u(k)?0.5u(k?1)?0.5u(k?2)?0.466e(k)?0.6036e(k?1)?0.1156e(k?2)
7
5 软件编程设计
5.1 流程图
主程序采样中断采样7号通道Cont=(ADC_7-128+M)/2;设定定时器工作状态定时器装入初值设定外中断类型开外中断和定时中断Y同步信号到否DINO=0;开中断EX1=0;采样6号通道Set=(ADC_7-128+N)/2;控制UK的输出满足8位转换的要求ND/A输出清零采样周期变量减一TC--;保存采样值M=ADC_7-128;输出控制量ADC_1=bb+128;选中6号通道DEFI=0;保存采样值N=ADC_7-128;控制量递推变量初始化Y采样周期到否TC==0;启动转换STR=0;STR=1;关中断EX1=0;等待转换结束k=200;While(k>0) k--;选中7号通道DEFI=1;计算偏差EK=Cont-Set;偏差值递推启动定时器ND/A清零采样周期变量赋初值采样周期变量恢复TC=TK;计算UK值变量清零等待中断中断返回 5.2 程序
#include
/***************************************** 宏定义
*****************************************/ #define uchar unsigned char #define uint unsigned int
8
#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; //定时10ms t0_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; //开外部中断1 ET0 = 1; //开定时中断0 TR0 = 1; //启动定时器 TC = 1;
9
搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新资格考试认证最少拍控制系统设计 (2)全文阅读和word下载服务。
相关推荐: