计算机控制原理课程规划

发布时间:2022-06-18 14:05:03   来源:党团工作    点击:   
字号:

 《计算机控制技术》课程设计任务书

 一、 课程设计目的 课程设计是课程教学中的一项重要内容,是达到教学目标的重要环节,是综合性较强的实践教学环节,它对帮助学生全面牢固地掌握课堂教学内容、培养学生的实践和实际动手能力、提高学生全面素质具有很重要的意义。

 《计算机控制技术》是一门实用性和实践性都很强的课程,课程设计环节应占有更加重要的地位。计算机控制技术的课程设计是一个综合运用知识的过程,它需要控制理论、程序设计、硬件电路设计等方面的知识融合。通过课程设计,加深对学生控制算法设计的认识,学会控制算法的实际应用,使学生从整体上了解计算机控制系统的实际组成,掌握计算机控制系统的整体设计方法和设计步骤,编程调试,为从事计算机控制系统的理论设计和系统的整定工作打下基础。

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

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

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

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

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

 2. 被控对象:

 8( )(0.2 1)G ss s 3. 控制器设计:

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

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

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

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

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

 五、 进度安排 序号 内容 天数 1 布置任务,查阅资料 0.5 2 总体方案确定,硬件电路设计 1.5 3 熟悉实验箱及 C 语言开发环境,研读范例程序, 1

 4 控制算法设计 1 5 软件编程,调试 1 6 实验 1 7 总结,撰写课程设计报告 1

 六、 课程设计报告内容:

 总结设计过程,写出设计报告,设计报告具体内容要求如下:

 1.课程设计的目和设计的任务。

 2.课程设计的要求。

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

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

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

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

 7.实验结果及其分析。

 8.体会

 七、 参考文献

 (列出你所利用的参考文献。格式参见下。)

 [1] 于海生主编,微型计算机控制技术,北京:清华大学出版社,1999 [2] 张艳兵等编著,计算机控制技术,北京:国防工业出版社,2008 [3] 张毅刚主编,单片机原理及应用,北京:高等教育出版社,2004 [4] 陈涛编著,单片机应用及 C51 程序设计,北京:机械工业出版社,2008 [5] 楼然苗, 李光飞编著, 单片机课程设计指导, 北京: 北京航空航天大学出版社, 2007

 第 二 部 分

  课 程 设 计 报 告

 目录

 1 1 、课题简介

 ................................ ................................ ....

 1 1

 1 1.1 课程设计内容

 ................................ ............................

 1 1

 2 1.2 课程设计要求

 ................................ ............................

 1 1

 2 2 、方案设计

 ................................ ................................ ....

 1 1

 1 2.1 设计步骤

 ................................ ................................

 1 1

 2 2.2 控制系统总框图及系统工作原理

 ................................ ............

 1 1

 3 3 、硬件电路设计

 ................................ ................................

 2 2

 3.1 1 被控对象设计

 ................................ ............................

 2 2

 2 3.2 硬件电路原理图

 ................................ ..........................

 2 2

 4 4 、控制算法设计

 ................................ ................................

 3 3

 5 5 、软件编程设计

 ................................ ................................

 5 5

 1 5.1 流程图设计

 ................................ ..............................

 5 5

 5.2 程序设计

 ................................ ...............................

 5 5

 6 6 、实验结果分析

 ................................ ................................

 8 8

 7 7 、总结

 ................................ ................................ ........

 9 9

 参考书目

 ................................ ................................ .......

 9 9

  1 1 、课题简介

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

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

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

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

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

 2. 被控对象8( )(0.2 1)G ss s 3. 设计无纹波最少拍控制器。被控对象有积分环节的按斜坡输入信号设计控制器,否则按阶跃输入信号设计控制器。

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

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

  2 、方案设计 2.1 设计步骤 先进行硬件设计,根据 Gz 改造被控对象

 进行最少拍控制算法计算 读范例程序,画出流程图,进行修改 调试实验结果

 2.2 控制系统总框图及系统工作原理

 图 2-1 系统总框图 误差 E=R-C 经运放运算得到,并由模数转换器采集。最少拍控制算法由软件程序和单片机实现。输出 U经数模转换器和零阶保持器转换成模拟信号送至被控对象。被控对象由两只运放及阻容元件构成。

 最少拍控制算法 D(z)

 1Tses5(0.8 1) s s  R E C

  2 3 、硬件电路设计

  3.1 被控对象设计 被控对象8(0.2 1) s s 由两只运放及阻容元件构成。

 积分部分 C=4uF,R=250k 惯性部分 R1=25k,R2=200k,C=1uF

 3.2 硬件电路原理图

 图 3-2 系统电路图 图 3-1 被控对象设计

  3 4 、控制算法设计

 被控对象传递函数 8( )(0.2 1)G ss s 根据香农采样定理,选择采样周期 T=0.1s 零阶保持器的传递函数为 h1( )sTeG ss 对被控对象带零阶保持器进行 Z 变换,得: 2-11 11 18(0.2 1)8(0.21( ) [ ]

  (1- ) [ ]0.1704(1 0.846 )(1 )(1 01).606 )TseG z Zszs ssZzzszz  

 由该式可知:

 0, 2, 1, 1, 1;1;2D q v jm Dn v j q          其中 D 为采样周期纯滞后环节的个数, q=2 为单位速度输入, ω为 G(z)中零点的个数, v 为 G(z)中不稳定极点的个数, j 为 G(z)在单位圆上极点的个数 故Φ e (z)和Φ(z)可设为 1 2 1e 111 2 311 11 11( ) (1 ) (1 )=1 ( 2) (1 2 )z z f zf z f z f z           1 1 221 221 2 321 22 21 22( ) (1 0.846 )( )( 0.846 ) 0.846z z f z f zf z f f z f z          

  4 又 ( ) 1 ( )ez z   

 所以有 11 2111 22 2111 222 01 2 0.846 00.846 0f ff f ff f       解得

 1121220.6681.330.79fff  所以 1 2 1( ) (1 ) (1 0.668 )ez z z    

 1 1 2( ) (1 0.846 )(1.33 0.79 ) z z z z     

 1 11 11 ( ) (1.33 0.79 )(1 0.606 )( )( ) ( ) 0.1704(1 )(1 0.688 )ez z zD zG z z z z       

  5 5 、软件编程设计

 5.1 流程图设计

 系统初始化变量初始化等待中断主

 程

 序D/A输出清零变量初始化采样周期变量赋初值同步信号到否?采样周期到否?采样周期变量减一中断返回求误差E(k)计算D(z)模拟延时处理输出控制量U(k)采样周期变量赋初值采样中断服务程序是是否 图 5-1 系统流程图

 5.2 程序设计

  6 #include <reg51.h> #include <absacc.h> #include <math.h> #define uchar unsigned char #define uint

 unsigned int #define ADC_7 XBYTE[0x0600]

  #define DAC_1 XBYTE[0x0640]

 sbit

 str

 = P1^7;

 定义 A/D 启动信号 sbit

 DIN0 = P1^0;

 声明同步信号 uint

 data time;

 声明变量,用于定时 uchar data t0_h,t0_l; 用于存储定时器 0 的初值 int

  TK=10;

  声明采样周期=TK*10ms int

  TC;

 TC 的变量 float KK0=7.8;

  系数 float KK1=-9.366;

  float KK2=2.809;

  float KK3=0;

 float PP1=-0.332;

  float PP2=-0.668; float PP3=0;

 char

 UK;

  当前时刻DA的输出 char

 EK;

  当前时刻的偏差 char

 UK_1,UK_2,UK_3,EK_1,EK_2,EK_3; 前三次采样时刻的控制量和偏差

 void main(void) {

 TMOD = 0x01;

 time = 10;

  定时 10ms

 t0_h

 = (65536-500*time)/256;

 计算定时器 0 初值

 t0_l

 = (65536-500*time)%256;

 t0_l = t0_l+20;

 修正因初值重装而引起的定时误差

 TH0

 = t0_h;

 TL0

 = t0_l;

 IT1

 = 1;

 边沿出发中断

 EX1

 = 1;

  开外部中断 1

 ET0

 = 1;

 开外部中断 0

 TR0

 = 1;

  启动定时器

  TC

  = 1;

 DAC_1= 0x80;

  DA 清零

 UK=UK_1=UK_2=UK_3=0;

  EK=EK_1=EK_2=EK_3=0;

  EA

 = 1;

  开总开关

 while(1); }

 void int1() interrupt 2 using 2 { float i,j;

  DIN0 = 1;

 读取输入前,先输出高电平

  if(DIN0)

 判断同步信号是否到达

 {

 UK=UK_1=UK_2=UK_3=0;

 EK=EK_1=EK_2=EK_3=0;

  7

 DAC_1 =0x80;

 DA 输出零

  TC=1;

 }

  else

  {

  TC--;

 判断采样周期是否到达

 if(TC==0)

 {

  EK

 = ADC_7-128;

  采样当前的偏差值,并计算偏差的变化量

 i=EK*KK0;

  i=i+EK_1*KK1;

 i=i+EK_2*KK2;

 i=i+EK_3*KK3;

 j=UK_1*PP1;

  j=j+UK_2*PP2;

 j=j+UK_3*PP3;

 i=i-j;

  if(i>0)

  判断是否溢出

  {

 if(i>=127)

 UK=127;

 else

  UK=(char)i;

  }

 else

  {

  if(i<-128)

  UK=-128;

 else

 UK=(char)i;

  }

  DAC_1=UK+128;

 DA 输出控制量

  UK_3=UK_2;

  控制量地推

  UK_2=UK_1;

  UK_1=UK;

 EK_3=EK_2;

 偏差递推

  EK_2=EK_1;

  EK_1=EK;

 TC=TK;

  采样周期变量恢复

  }

  } }

 void Timer0() interrupt 1

 using 1 {

 str = !str;

 TH0 = t0_h;

 TL0 = t0_l; }

  8 6 6 、实验结果分析

  首先利用 MATLAB 仿真,仿真图及结果如图 6-1

 图 6-1 MATLAB 仿真图

 图 6-2 仿真结果 使用实验箱做仿真时得到的仿真结果为图 6-3

 图 6-3 实验箱仿真结果及数字控制器输出结果 从仿真结果来看,调节之后的电路可以两拍跟踪斜坡输入信号,MATLAB 仿真结果没有任何纹波,但是在实验箱上仿真时出现了纹波,后期出现了不稳定的偏差,原因是实验箱上的电阻电容原件并不是非常精确的数值,在做 G(s)的参数时有偏差,因此会出现上述结果。

  9 7 7 、总结

  参考书目 [1] 于海生主编,微型计算机控制技术,北京:清华大学出版社,1999 [2] 张艳兵等编著,计算机控制技术,北京:国防工业出版社,2008 [3] 张毅刚主编,单片机原理及应用,北京:高等教育出版社,2004 [4] 陈涛编著,单片机应用及 C51 程序设计,北京:机械工业出版社,2008 [5] 楼然苗, 李光飞编著, 单片机课程设计指导, 北京: 北京航空航天大学出版社, 2007