学过的单片机实验内容及程序
计算机控制技术综合性实验指导书-电气(单片机实验)
编写:蒙志强
重庆交通大学机电与汽车工程学院
机电与自动化控制实验室
2017年3月1日
目录
项目一、凑试法整定PID参数
项目二、带死区PID算法
项目三、扩充临界比例度法PID参数
项目四、扩充响应曲线法整定PID参数
项目1 凑试法整定PID参数
一、实验目的
1.了解PID参数对系统性能的影响。
2.学习凑试法整定PID参数。
3.掌握积分分离法PID控制规律
二、实验设备
PC机一台,TD-ACC+实验系统一套,i386EX系统板一块
三、实验原理和内容
图3.2-1 图3.2-1是一个典型的PID闭环控制系统方框图,其硬件电路原理及接线图可设计如下,图中画“○”的线需用户在实验中自行接好,对象需用户在运放单元搭接。 上图中,控制计算机的“OUT1”表示386EX内部1#定时器的输出端,定时器输出的方波周期=定时器时常,“IRQ7”表示386EX 内部主片8259的7号中断,用作采样中断,“DIN0”表示386EX的I/O管脚P1.0,在这里作为输入管脚用来检测信号是否同步。 这里,系统误差信号E通过模数转换单元“IN7”端输入,控制机的定时器作为基准时钟 (初始化为10ms),定时采集“IN7”端的信号,并通过采样中断读入信号E的数字量,并进行PID计算,得到相应的控制量,再把控制量送到数模转换单元,由“OUT1”端输出相应的模拟信号,来控制对象系统。 本实验中,采用位置式PID算式。在一般的PID控制中,当有较大的扰动或大幅度改变给定值时,会有较大的误差,以及系统有惯性和滞后,因此在积分项的作用下,往往会使系统超调变大、过渡时间变长。为此,可采用积分分离法PID控制算法,即:当误差e ( k ) 较大时,取消积分作用;当误差e ( k ) 较小时才将积分作用加入。 讨论PID参数对系统性能的影响: (1) 增大比例系数KP一般将加快系统的响应,在有静差的情况下有利于减小静差。但过大的比例系数会使系统有较大的超调,并产生振荡,使系统稳定性变坏。 (2) 增大积分时间参数TI有利于消除静差、减小超调、减小振荡,使系统更加稳定,但系统静差的消除将随之减慢。 (3) 增大微分时间参数TD有利于加快系统响应,使超调量减小,系统稳定性增加,但系统对扰动的抑制能力减弱,对扰动有较敏感的响应。 在调整参数时,可以使用凑试法。参考以上参数对控制过程的影响趋势,对参数实行“先比例,后积分,再微分”的步骤。 (1) 首先整定比例部分。将比例系数KP由小变大,并观察相应的系统响应,直到响应曲线超调小、反应快。如果系统没有静差,或者静差小到允许的范围内,那么只需比例调节器即可。 (2) 如果在比例调节的基础上系统的静差不能满足要求,则须加入积分作用。整定时首先置积分时间TI为一较大值,并将第一步整定得到的比例系数KP缩小 (如80%),然后减小积分时间,使静差得到消除。如果动态性能 (过渡时间短) 也满意,则需PI调节器即可。 (3) 若动态性能不好,则需加入微分作用。整定时,使微分时间TD从0变大,并相应的改变比例系数和积分时间,逐步凑试,直到满意结果 由于PID三个参数有互补作用,减小一个往往可由几个增大来补偿,因此参数的整定值不唯一,不同的参数组合完全有可能得到同样的效果。 四、实验步骤 1.参考流程图3.2-3编写实验程序,检查无误后编译、链接。 2.按照实验线路图3.2-2接线,检查无误后开启设备电源。 3.调节信号源中的电位器及拨动开关,使信号源输出幅值为2V,周期6S的方波。确定系统的采样周期以及积分分离值。 4.装载程序,将全局变量TK (采样周期)、EI (积分分离值)、KP (比例系数)、TI (积分系数)和TD (微分系数) 加入变量监视,以便实验过程中观察和修改。 5.运行程序,将积分分离值设为最大值7FH (相当于没有引入积分分离),用示波器分别观测输入端R和输出端C。 6.如果系统性能不满意,用凑试法修改PID参数,直到响应曲线满意,并记录响应曲线的超调量和过渡时间。 7.修改积分分离值为20H,记录此时响应曲线的超调量和过渡时间,并和未引入积分分离值时的响应曲线进行比较。 8.将6和7中的较满意的响应曲线分别保存,在画板、PHOTOSHOP中处理后粘贴到WORD中,方便形成实验报告。 五、实验代码: 功能描述:实现数字PID调节器的功能。 - *****************************************/
- #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=0.20; //比例系数
- char ti=30; //积分系数
- char td=1; //微分系数
- char IBAND=32; //积分分离值
- char EK; //当前采样的偏差值
- char EK_1; //上一次采样的偏差值
- char AEK; //偏差的变化量
- char UK; //当前时刻的D/A输出
- int ZEK;
- /*****************************************
- 主函数
- *****************************************/
- 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; //D/A清零
- EK=EK_1=0; //变量清零
- AEK=UK=0;
- ZEK=0;
-
- EA = 1; //开总中断
- while(1);
- }
-
- /**********************************************
- 函数名:INT1
- 功能 :1号外部中断服务程序
- 参数 :无*
- 返回值:无 *
- ***********************************************/
- void int1() interrupt 2 using 2
- { float P,D,I,TEMP;
-
- DIN0 = 1; //读取输入前,先输出高电平
- if(DIN0) //判同步信号到否
- {
- EK=EK_1=0; //变量清零
- UK=AEK=0;
- ZEK=0;
- DAC_1 =0x80; //D/A输出零
- TC=1;
- }
- else
- {
- TC--; //判采样周期到否
- if(TC==0)
- {
- EK = ADC_7-128; //采样当前的偏差值,并计算偏差的变化量
- AEK =EK-EK_1;
- EK_1=EK;
-
-
- if(abs(EK)> IBAND) I=0; //判积分分离值
- else
- …………
- …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
六、实验结果及分析
项目2 带死区PID控制一、实验目的 掌握带死区的PID控制规律 二、实验设备 PC机一台,TD-ACC+实验系统一套,i386EX系统板一块 三、实验原理及内容 1.在计算机控制系统中,某些系统为了避免过于频繁的控制动作,为了消除由于频繁动作所引起的振荡,通常采用带死区的PID控制系统,该系统实际上是一个非线性控制系统。其基本思想是:可以按实际需要设置死区B,当误差的绝对值B时,P (K)为0,U (K)也为常值,实际应用中,常值是由经验值来确定的;当>B时,P (K)= , U (K)以PID运算的结果输出。 图3.3-1 2.图3.3-1所示的方框图,其硬件电路原理及接线图见图3.3-3。 图3.3-3 四、实验步骤 1.参照图3.3-2的流程图编写实验程序,检查无误后编译、链接。 2.按照实验线路图3.3-3接线,检查无误后开启设备电源。调节信号源中的电位器和拨动开关,使信号源输出幅值为4V,周期6S的方波。 3.装载程序,将全局变量TK (采样周期)、EI (积分分离值)、KP (比例系数)、TI (积分系数)、TD (微分系数)、PT(死区变量值) 和 CONST(常值)加入变量监视,以便实验过程中观察和修改。 4.运行程序,将死区宽度B (PT) 设为最小值00H (相当于没有引入死区控制),用示波器分别观测控制量输出端U (即数模转换单元的“OUT1”端) 和对象输出端C。 5.如果系统性能不满意,用凑试法修改PID参数,直到响应曲线满意。 6.修改死区宽度B (PT)为02H,用示波器分别观测控制量输出端U (即数模转换单元的“OUT1”端) 和对象输出端C,记录并和积分分离时的响应曲线进行比较
五、实验代码
功能描述:实现死区PID数字调节器,死区宽度和常值可根据实际情况进行修改
(源码见附件)
六、实验结果分析
项目3 扩充临界比例度法整定PID参数一、实验目的 1.学习并掌握扩充临界比例度法整定PID参数。 二、实验设备 PC机一台,TD-ACC+实验系统一套,i386EX系统板一块 三、实验原理及内容 1、实验原理 扩充临界比例度法是对模拟调节器中的临界比例度法的推广,在工程实践中最常用,其参数整定步骤如下: (1) 选择一个足够小的采样周期T,一般取系统纯滞后时间的1/10以下。 (2) 使系统闭环工作,只用比例控制,增大比例系数KP直到系统等幅振荡,记下此时的临界比例系数KPU和临界振荡周期TU (见图3.4-1)。 图3.4-1 (3) 选择控制度 (1.05~2.0)。控制度指数字调节器和模拟调节器控制效果之比。 (4) 根据控制度,查表3.4-1计算出采样周期T和KP、TI、TD。 表3.4-1
2) 实验设计 图3.4-2是一个PID闭环控制系统的实验电路原理及接线图,图中画“○”的线需用户在实验中自行接好,对象需用户在运放单元搭接。其相应的程序流程图和3.2节中的图3.2-3是一样的,实验中的参数取值范围规定为:
图3.4-2 上图中,控制计算机的“OUT1”表示386EX内部1#定时器的输出端,定时器输出的方波周期=定时器时常,“IRQ7”表示386EX 内部主片8259的7号中断,用作采样中断,“DIN0”表示386EX的I/O管脚P1.0,在这里作为输入管脚用来检测信号是否同步。 本实验中,将针对该闭环系统应用临界比例度法来整定PID参数。 四、实验步骤 (1) 编写程序,检查无误后编译、链接并装载程序。 (2) 按照实验线路图3.4-2接线,调节信号源使其输出幅值为3V,周期6S的方波。 (3) 由于模拟对象的惯性时常约为250ms,取采样周期T=10ms。 (4) 装载程序,将全局变量TK (采样周期)、EI (积分分离值)、KP (比例系数)、TI (积分系数)和TD (微分系数)加入变量监视,以便实验过程中观察和修改。 (5) 运行程序且只用比例控制 (EI = 0,TD = 0),KP由小变大,使系统等幅振荡,记下此时的临界比例系数KPU和临界振荡周期TU。 (6) 查表3.4-1,选择控制度2.0,计算出采样周期T和KP、TI、TD。 (7) 将参数重新写入PID控制程序,运行程序并用示波器观测输入和输出,如果控制效果不太满意,可适当结合凑试法调整参数,直到满意为止。 五、实验代码 功能描述:利用此程序可以实现临界比例度法整定PID参数。
(源码见附件)
六、实验结果
项目4 扩充响应曲线法整定PID参数一、实验目的 1.学习并掌握扩充响应曲线法整定PID参数。 二、实验设备 PC机一台,TD-ACC+实验系统一套,i386EX系统板一块 三、实验原理及内容 1 实验原理 扩充响应曲线法是模拟调节器的响应曲线法的一种扩充,也是一种常用的工程整定方法。其参数整定步骤如下: (1) 使数字调节器不接入系统,让系统处于手动操作状态,当系统稳定在某一值处后,给对象一个阶跃输入。 (2) 用仪表记录下被调量在阶跃输入下的整个响应曲线,见图3.4-3。 图3.4-3 图中“”表示对象的时间常数;“”表示对象的纯滞后时常 (4) 根据所得的、,查表3.4-2计算出采样周期T和KP、TI、TD 表3.4-2 | | | | | | 0.05 | 1.15 | 2.00 | 0.45 | | 0.16 | 1.0 | 1.90 | 0.55 | | 0.34 | 0.85 | 1.62 | 0.65 | | 0.60 | 0.60 | 1.50 | 0.82 |
2) 实验设计 同样,图3.4-4也是一个PID闭环控制系统的实验电路原理及接线图,图中画“○”的线需用户在实验中自行接好,对象需用户在运放单元搭接。其相应的程序流程图和3.2节中的图3.2-3是一样的。本实验中,将针对该闭环系统应用扩充响应曲线法来整定PID参数。 图3.4-4中,控制计算机的“OUT1”表示386EX内部1#定时器的输出端,定时器输出的方波周期=定时器时常,“IRQ7”表示386EX 内部主片8259的7号中断,用作采样中断,“DIN0”表示386EX的I/O管脚P1.0,在这里作为输入管脚用来检测信号是否同步。 实验中,参考程序中的参数取值范围规定为:
图3.4-4 四、实验步骤 (1) 参照图3.4-5接线,调节器先不接入系统中。图中画“○”的线需用户在实验中自行接好,对象需用户在运放单元搭接。 图3.4-5 (2) 调节信号源使其“OUT”输出幅值为2V,周期12S的方波。 (3) 用示波器测量系统输出“C”,并记录下波形。在响应曲线最大斜率处作切线,用游标测量,作图求得滞后时间和对象时常。计算出/,查表3.4-2,控制度选择2.0时可求得数字调节器的KP、TI、TD以及采样周期T的初始值。 - 按照图3.4-4接线,将数字调节器接入系统,将以上得到的参数KP、TI、TD和T重新写入程序中,然后编译、链接。
(5) 装载程序,将全局变量TK (采样周期)、EI (积分分离值)、KP (比例系数)、TI (积分系数)和TD (微分系数)加入变量监视,以便实验过程中观察和修改。 (6) 运行程序,用示波器测量系统输出“C”,观察数字调节器在这组参数下的控制效果,若不理想,可适当调整参数,直到控制效果满意为止。 五、实验代码 功能描述:此程序可以作为扩充响应曲线法整定PID参数的验证程序,可把整定后的PID参数写入程序中。 (源码见附件)
六、实验结果分析
全部资料51hei下载地址:
计算机控制技术综合性实验指导书-电气(新设备).docx
(404.12 KB, 下载次数: 25)
程序:
example51_c.rar
(382.72 KB, 下载次数: 29)
|