《计算机控制系统课程设计.ppt》由会员分享,可在线阅读,更多相关《计算机控制系统课程设计.ppt(92页珍藏版)》请在三一办公上搜索。
1、计算机控制系统课程设计指导书,北京邮电大学自动化学院张秦艳,林雪燕,0.绪论1.计算机控制系统2.温控实验系统构成及建模 3.计算机温控系统的数学模型及大林算法4.PID数字控制器及其参数整定5.温控系统测试电路6.数据处理,绪论,1 课程设计目的2 课程设计任务3 验收内容4 时间安排及分组,课程设计目的,通过设计制作一套电烤箱计算机温度控制系统,全面理解和运用控制理论的基础知识,培养综合处理和解决实际问题的能力。先修课程:高级程序语言设计;微机原理;机械控制工程基础;现代控制论;计算机控制系统设计及现代检测技术等。,课程设计任务(1),0.2.1 电烤箱计算机双路温度控制系统 1)硬件设计
2、包括温度检测通道和控制通道的元件选型(要有适当的参数计算);2)元件测试包括传感器及变送器测试,固态继电器测试,A/D板模拟输入通道和8255各端口测试以及电烤箱参数测试,求得电烤箱的性能参数;3)硬件制作包括整个实验系统的连接;4)软件编程包括各个测试程序模块,控制算法模块,电烤箱上通道、下通道、双通道输入输出模块,测试结果显示、存盘、打印模块;,课程设计任务(2),5)整个系统联调,要求微型计算机温度控制系统应完成:a)两个温区温度的闭环直接数字控制,每个温区的温度在100250范围内连续可控,各温区的温度可自动设定,也可以人工设定。b)两个温区温度的巡回检测、显示、数据存储和打印。c)此
3、外,还要实现系统升温、保温状态指示,超温报警等功能。测出单路原电烤箱温控系统、单路计算机温度控制动静态时域指标(至少有2种算法)和双路温度控制动静态时域指标。,验收内容,0.3.1课程设计报告(打印):封面:课程名称,设备号(烤箱、A/D板、微机),软件开发环境,姓名,指导教师,报告日期;计算机控制系统硬件系统接线图;电烤箱性能测试曲线(对温控系统)及参数计算;采用的控制算法及编程;控制系统调试结果(包括波形,时域性能指标及控制参数);课程设计过程中出现的问题及解决办法,对本次课程设计的意见和建议。,1.3.2电子版:课程设计报告完整的软件原程序和运行程序实验测试数据(*.dat)及曲线(*.
4、jpeg)。1.3.3平时成绩:系统设计,软件编程,实验和出勤率。1.3.4答辩:理论学习的内容和课程设计过程中出现的问题及解决办法。,3.5评分标准:考勤劳动20分软件30分答辩10分控制效果10分报告30分提前一天加5分,晚一天减10分,分组及时间安排,每人必须做一条飞升曲线和一条控制曲线;必须有做PID算法,有做大林算法;必须有做单通道(目标温度100),有做双通道(目标温度150),每套设备中:,1 计算机控制系统,1.1 计算机控制系统概念及应用1.2 计算机控制系统特点1.3 计算机控制系统的组成和分类,1.1 计算机控制系统概念及应用,1.2 计算机控制系统特点,模拟数字混合系统
5、采用的分析方法是z变换和差分方程系统的通用性和灵活性大大增强计算机运算速度非常快,可分时控制便于实现控制与管理一体化。,1.3 计算机控制系统的组成和分类,分类,操作指导系统直接数字控制系统(DDC)监督控制系统(SCC)分级控制系统(HDC)集散型控制系统(DCS)计算机控制网络,控制规律,程序和顺序控制比例积分微分控制(PID)有限拍控制复杂规律的控制智能控制,2 温控实验系统构成及建模,2.1 家用电烤箱工作原理2.2 计算机温控系统原理,2.1 家用电烤箱工作原理,电烤箱一般具有自动恒温、自动定时及选择上、下火的转换开关,通电后,加热器表面温度可达500600,其热量主要以红外辐射形式
6、为主,被箱内食物吸收而产生烘烤作用。其辐射传热约占6070,对流传热约占3040。本系统采用的是长帝牌CK-10B调温定时电烤箱,功率消耗500W+500W,有效容积为12L。电烤箱电气控制装置主要包括调温器、定时器和开关三大部分,插头,定时器,补偿丝,功率选择开关,限流电阻,温控器,指示灯,图2.1.1 CK10A电烤箱线路图,电机,上、加热管,E,N,图2.1.2 TB330电烤箱线路图,L,端子台,微动开关,定时器,电阻,旋转开关,下发热管,上发热管,温控器,指示灯,调温器大多为双金属片调温器,调温器的温度范围一般在100250之间,分成若干档。控制温差大约在30度上下。,a)上通道加热
7、,b)下通道加热,控制温度100度,c)双通道加热,控制温度150度,图2.1.2 纯机械温控器控制特性曲线,2.2 计算机温控系统原理,图2.2.1 双通道计算机温控系统原理图,固态继电器是一种无触点电子开关,开关速度很快,能达到级。,设第k个采样周期中,输出为1(高电平)的时间,采样周期为T,则方波的占空比为:u(k)=/T,电炉的平均功率为:,图2.2.3 固态继电器工作原理,3 计算机温控系统的数学模型及大林算法,3.1 计算机温控系统的数学模型3.2 大林算法,3.1 计算机温控系统的数学模型,设电烤箱中加热的功率为P(t),散热功率为Q(y(t),空气的质量为M,比热为c,空气的温
8、度为y(t),根据传热学定律可知:线性化后其传递函数为,离散后可近似为,图3.1.1 系统一个温区的简化动态结构图,y(t),r(t),3.2 大林算法,令整个系统的闭环传递函数为,则系统的闭环脉冲传递函数为,数字控制器的脉冲传递函数为,,,计算控制量,图3.2.1 温控算法流程图,4 PID数字控制器及其参数整定,4.1 温箱参数的求取4.2 PID控制器参数对系统性能的影响4.3 用扩充响应曲线法选择PID参数4.4 补充算法,4.1 温箱参数的求取已知被控对象温箱为带延迟的一阶惯性系统,其传函为其阶跃响应为对T(t)求导得当t=时,此时,y(t)的变化率最大。,设,当t,时,y0*(t)
9、=0;,时,,当,4.2 PID控制器参数对系统性能的影响,4.3 用扩充响应曲线法选择PID参数,控制度,就是数字控制器和模拟调节器所对应的过渡过程的误差平方的积分比,即 控制度=通常,当控制度为1.05时,数字控制器和模拟控制器的控制效果相当。,注:表中的参数是归一化参数,故实际控制算法中的e(k)应为,步骤:1)用仪表记录下被调参数在阶跃作用下的变化过程曲线。2)在曲线最大斜率km处做切线,求得滞后时间,对象时间常数Tm,以及它们的比值Tm。3)查表3即可求得控制器的采样周期T及Kp、Ti和Td。,4.4 补充算法,4.4.1 防止积分饱和算法4.4.2 部分积分算法,5 温控系统测试电
10、路,5.1 温度检测通道测试5.2 控制通道测试5.3 AC6111板功能测试5.4 电烤箱参数测试5.5 温控系统调试要求及注意事项,5.1 温度检测通道测试,图5.1.3 电流输出型变送器连线示意图,5.2 控制通道测试,220V,上加热开关,1,3,2,4,图,5.2.2,固态继电器测试,上加热管,电烤箱,5.3 AC6111板使用方法及测试,5.3.1 AC6111板功能简介 16路单端/8差分输入,12位A/D,速度:400KHZ。输入电压:5/10/5/10伏。(DB25接头)工作方式:定时器触发、外部时钟触发、外部硬件触发。4K字FIFO,支持连续采集、通道自动扫描。二路12位D
11、/A,输出10/10伏。开关量:8入/8出(输出下拉电流:100毫安)。,5.3.2 A/D板端口,P1:DB25芯D型插头,AIN0-AIN15对应A/D单端输入通道:0-15。差分模式:AIN0-AIN7对应差分“+”输入通道0-7、AIN8-AIN15:对应“-”输入通道0-7号。AMPLOW:伪差分输入,6111不用。DAOUT0、DAOUT1:对应D/A输出通道“0”、“1”。9、22脚:模拟GND13脚:数字地CNT0:计数器输入TRIG:触发输入OCLK:外部时钟输入,P2:数字输出连接器,I0-I15:开关量通道0-15。脚:9,10,19,20:GND,SW1:6位拨码开关,
12、输入差分选择:6位拨码开关“SW1”选择模拟输入方式为差分或单端模式,如下:1、2、3号ON,4、5、6号OFF选择输入为单端模式。1、2、3号OFF,4、5、6号ON选择输入为差分模式。,5.3.3 A/D板地址分配,5.3.4 AC6111PCI采集卡SDK 2.0说明,软硬件结构框图,采集方式,具体的编程方式提供了1普通的查询方式、2定时器中断采集方式共两种方式。当用户需要类似普通查询AD板的采样方式时,可以选取方式1;若用户要求在连续采集的同时,可以进行显示、存盘、计算处理等其他操作时,可以选择方式2。对两种编程方式的具体描述见下:0、无论用户采取哪种方式编程,在程序的开始处都要执行A
13、C6111_CreateDevice()以获得驱动句柄;在整个程序体内AC6111 API函数对设备的识别都要依靠该句柄,如AC6111_DA()等等;一旦需要结束程序的时刻,请用户先调用AC6111_CloseDeivce()释放设备句柄,然后再进行退出应用程序。,1.查询方式,最为普通的采集方式,基本流程如下:a.AC6111_INI设定相关参数;b.AC6111_RUN启动AD采样;c.AC6111_STATE检查采样状态,FIFO非空、半满、溢出等;d.若得到了需要的状态,可根据具体状态读取需要的数据AC6111_READ_HARD_FIFO;若状态为达到要求,可循环执行c,直至得到符
14、合要求的状态。e.AC6111_STOP;停止采样,2.定时器中断采集方式,a.AC6111_INI设定相关参数,启动中断方式;b.启动定时器c.AC6111_RUN启动AD采样;d.AC6111_STATE检查采样状态,缓冲池中的数据数量、是否溢出等;e.当达到需要读取的数据调用AC6111_READ_KFIFO,5.3.5 A/D转换编程,1.数据结构定义:struct AC6111_INI_BYTEunsigned longad_mode;AD采样模式字;见注释1。unsigned longstart_end_chn;采样起止通道、极性选择控制字;见注释2。unsigned longad
15、_timer;采样时钟控制字;见注释3。unsigned longda_mode;DA输出模式控制字;见注释4。unsigned longkFifo_Notify_Length;内核缓冲门限通知控制字;(小于内核缓冲的容量,缓冲的容量2000000)(保留为今后扩展使用)unsigned longIrq_Enable;中断允许控制字;(0-禁止/1-允许)unsigned longEvent_Enable;事件通知允许控制字;(0-禁止,为今后扩展使用)HANDLEEvent;缓冲门限事件句柄;(保留为今后扩展使用)HANDLEEventFifoFull;缓冲溢出事件句柄;(保留为今后扩展使用
16、)ac6111inibyte;,注释1:16位数据定义,D0:TRSL。0:软件触发/1:硬件触发D1:CLKSL。0:转换应用内部时钟/1:外部时钟D2:TRPOL 0:触发上升边沿触发/1:下降边沿触发D3:CLKPOL 0:外部时钟上升边沿触发/1:下降边沿触发D4:SAMMODE 0:采样模式为NORMAL/1:SH模式 SH模式:K个通道的最小转换时间 Tmin=2.5*K(uS),K=(M-N+1)为一次转换的输入通道数量。等效每通道最大采样速度:1000/Tmin(KHz)。NORMAL:每通道最小转换时间:Tmin=2.5uS/通道,等效每通道最大转换速度:400/(转换通道个
17、数)(KHz)。例:ad_mode=10H,即AD模式为软件触发、转换应用内部时钟、触发上升边沿触发、外部时钟上升边沿触发、SH模式。,注释2,PS=PS1,PS0:模拟输入范围00:0-5伏;01:0-10伏;10:5伏;11:10伏ENDCH=ENDCH3-ENDCH0:D8-D5,采样终止通道。STCH=STCH3-STCH0:D3-D0,采样起始通道。例:start_end_chn=41E0H,即输入范围5伏、终止通道为CH15、起始通道为CH0。,注释3:ad_timer范围 10-65536,4M的时基,每个数表示0.25uS的时间长度。例:ad_timer=10,当AD采样模式为
18、NORMAL模式时,每个通道的采样频率=1/(10*0.25)/通道数。注释4:16位数据的D1、D0有效,分别为:DAMODE1、DAMODE0。0:10V/1:10V。,struct AC6111_STATEunsigned long HardwareState;板卡硬件状态字;见注释5。unsigned long Irq_Enable;中断允许状态字;(0-禁止/1-允许)unsigned long Event_Enable;事件通知状态字;(0-禁止/1-允许)unsigned long SoftFifoCapacity;缓冲区容量;(按采样字长)unsigned long SoftF
19、ifoItemForRead;缓冲区中已经存在的数据长度;(按采样字长)unsigned long SoftFifoItemForWrite;缓冲区中的剩余空间。(按采样字长)ac6111state;,注释5:D0:=0,FIFO空D1:=0,FIFO半满D2:=0,FIFO溢出D3:0D4:cntov:=1,计数器溢出例:HardwareState&02H=0,即半满;HardwareState&04H=0,即溢出。,2.驱动操作函数,AC6111_CreateDevice函数功能:获得AC6111采集卡驱动句柄。函数原型:HANDLE AC6111_CreateDevice(DWORD i
20、nstance,PDWORD pError)参数:instance:AC6111板卡的序号,如0、1、2;pError:错误代码;返回值:成功后返回AC6111板卡驱动句柄。备注:一般在用户程序启动后,可获取板卡句柄;其他API的使用都根据句柄来识别AC6111。,AC6111_CloseDevice 函数功能:关闭AC6111驱动句柄。函数原型:int AC6111_CloseDevice(HANDLE hDevice)参数:hDevice:驱动句柄;返回值:如果函数执行成功,则返回0;否则,返回错误代码。备注:当用户程序退出之前,请关闭驱动句柄。,3.模数转换函数(AD),AC6111_I
21、NI 函数功能:初始化板卡,如设置相关参数,设置中断允许、事件通知等等。函数原型:int AC6111_INI(HANDLE hDevice,AC6111_INI_BYTE*IniByte)参数:hDevice:驱动句柄*IniByte:初始化信息,结构内容请参考数据结构定义。返回值:如果函数执行成功,返回0;否则,返回错误代码。备注:所有的参数都是由本函数设定的。,AC6111_STATE 函数功能:查询硬件状态、缓冲状态。函数原型:int AC6111_STATE(HANDLE hDevice,struct AC6111_STATE*state_ac6111)参数:hDevice:驱动句柄
22、*state_ac6111:板卡硬件状态和缓冲信息,结构内容请参考数据结构定义。返回值:如果函数执行成功,返回0;否则,返回错误代码。,AC6111_RUN 函数功能:启动AD采样。函数原型:int AC6111_RUN(HANDLE hDevice)参数:hDevice:驱动句柄。返回值:如果函数执行成功,返回0;否则,返回错误代码。,AC6111_STOP 函数功能:停止AD采样,停止中断。函数原型:int AC6111_STOP(HANDLE hDevice)参数:hDevice:驱动句柄。返回值:如果函数执行成功,返回0;否则,返回错误代码。,AC6111_READ_HARD_FIFO
23、 函数功能:从板载FIFO中读取数据。函数原型:int AC6111_READ_HARD_FIFO(HANDLE hDevice,unsigned long*uspData,unsigned long length)参数:hDevice:驱动句柄;*uspData:指向采样数据的指针;length:读取的长度。长度应小于4096。返回值:如果函数执行成功,返回0;否则,返回错误代码。,AC6111_READ_KFIFO 函数功能:从中内核缓冲中读取数据。函数原型:int AC6111_READ_KFIFO(HANDLE hDevice,unsigned long*uspData,int len
24、gth)参数:hDevice:驱动句柄*uspData:指向采样数据的指针;length:读取的长度。长度应小于缓冲中可以读取的数据长度(该长度由AC6111_STATE函数获得)。返回值:如果函数执行成功,返回0;否则,返回错误代码。,4.数字输出函数(DO),AC6111_IO_MODE 函数功能:设置数字量模式控制字。函数原型:int AC6111_IO_MODE(HANDLE hDevice,unsigned long iomode)参数:hDevice:驱动句柄;iomode:模式字;见注释6。返回值:如果函数执行成功,返回0;否则,返回错误代码。备注:注释6:16位数据的D1、D0
25、分别为:IOMODE1、IOMODE0。IOMODE0:设置低8位DIO,0:输入/1:输出IOMODE1:设置高8位DIO,0:输入/1:输出例:iomode=02H,即低8位DIO输入、高8位DIO输出。,AC6111_DO 函数功能:数字量输出。函数原型:int AC6111_DO(HANDLE hDevice,unsigned short do_data)参数:hDevice:驱动句柄;do_data:数字量输出数据。返回值:如果函数执行成功,返回0;否则,返回错误代码。,5.3.6 模拟输入电压与采集数据的换算关系,由于16位读入数据的高12位为12位采样数据。数据格式如下:,因此,
26、用户必须将16位FIFO数据(fdata)转换为12位采集数据data,方法如下:,VB:Data=(fdata and&hfff0)/16Data=data and&hfffIo1=fdata and&h8Io0=fdata and&h4Trsign=fdata and&h2Chsign=fdata and&h1,VC:Data=(fdata4),设:A/D读入数据为:data(data=0-4095),对应电压为:0-5V输入:V=data*5000.0/4095.0(mV)0-10V输入:V=data*10000.0/4095.0(mV)-5V-+5V输入:V=(data-2048)*5
27、000.0/2048.0(mV)-10V-+10V输入:V=(data-2048)*10000.0/2048.0(mV),注意软硬件设置软件设置:AIN0,AIN1为5 V;A/D转换结束,用查询方式,软件启动。温控实验需要用到的是2路模拟输入及2路数字量输出,因此需对A/D转换通道和8255数字输出接口进行测试。图5.3.1 测试用到的板通道,5.3.7 测试端口及流程图,图5.3.3 IO口 DO0、DO1输出两列1Hz方波程序流程图,5.4 电烤箱参数测试,图5.4.3 A/D板与两路固态继电器的控制端口接线图,2)数字输出通道通过DO0、DO1输出两路数字量信号,与两路固态继电器相连。
28、,1 2 19 20,5.5 温控系统调试要求及注意事项,在改造电烤箱时,尽量不破坏原有的结构和接线。实在需要变更的接线端,悬空的接线端应用绝缘胶布缠上,固定在某处;在固定传感器时,应保证不能与温箱壳接触。否则,可能导致传感器不能用;在布线时,应尽量使强电与弱电离得越远越好;做实验时,因有220V交流电,应加倍小心;温箱加热时,加热管和温箱外壳很热,小心被烫;采样周期T通常小一些较好,有经验公式采样角频率s10c,c为系统的开环截止频率;编程时应分模块调试,尤其是测试模块应及早编好,以免影响实验进度;,电烤箱参数测试时的实验环境应与系统联调时保持一致,否则会影响控制精度;测试电烤箱的温度不应超
29、过250(除烤箱号为980510-14,温度范围是0400度,烤箱号为980510-2,温度范围是0700度,),否则会损坏传感器;测温升曲线时,升温、降温曲线都得测,并且测试环境要相同,尤其降温时不能开玻璃门,否则降温参数将测不准确;存储数据内容应包括时间t,上加热管控制量u1,上传感器温度T1,上加热管控制量u2,下传感器温度T2,平均温度T;飞升曲线要测完整,上下2条,尤其要注意开环增益K的求取,测试过程中不要开烤箱盖。变送器输出的电压值与A/D板采样值有偏差,可调两处:1)变送器上的零与满度旋钮;2)A/D板上零与满度。UZ为满度调节,R23=23.4k;BZ为零度调节,一般不调;AG
30、为增益调节。,6 数据处理,6.系统参数的无量纲化6.2 温度采样值的处理,6.系统参数的无量纲化,6.2.1 曲线拟和:测得的电烤箱的飞升曲线需求取其参数,一种是在线求取,另一种是离线求取。下面介绍在线求取方法。以C语言为例:/=float scalek;/采样周期,单位为s,,这里采样周期为1秒,是全局变量float kmax1,kmax2;/上下通道的全功率加热曲线的最大变化率,是全局变量float tao1,tao2;/上下通道的延迟时间,是全局变量float K,Tm;/K,Tm分别为开环增益和烤箱时间常数,是全局变量void GetPara()/1最大变化率和延迟时间求取 floa
31、t k1,kmax1,k2,kmax2;float starty1,starty2;/上下通道的起始温度int iset1,iset2;/发生最大变化率处的采样次数 kmax1=0;iset1=1;kmax2=0;iset2=1;int n,iK1,iK2;n=0;iK1=iK2=0;register int i;,6.2 温度采样值的处理,for(i=1;i=11)/Begin to caculate the k;/将采样间隔次数相差10次的温度采样值求曲线的实时斜率 k1=(y1i-y1i-10)/10/scalek;k2=(y2i-y2i-10)/10/scalek;if(k1kmax1
32、)kmax1=k1;iset1=i;tao1=iset1*scalek-(y1iset1-starty1)/kmax1;if(k2kmax2)kmax2=k2;iset2=i;tao2=iset2*scalek-(y2iset2-starty2)/kmax2;delay(scalek);/延迟一个采样周期,/2)终值判别及开环增益和烤箱时间常数求取,终值判别算法在求控制曲线性能参数ts时也要用到。if(kmax10.1)/The end of GetK_Tm()/=/3)画拟合曲线,求拟合方差,终值及拟合误差(略),6.2.2 温度控制程序流程根据电烤箱测试参数求得控制参数后,就可做PID及大林温控实验。温度控制程序流程为:1)测得温度采样值y(k)2)求误差值e(i)=y(i)-ygd3)若e(i)0.01,则u(k)=1转步骤7),否则转步骤4)4)用PID或大林算法求控制量u(k)5)若uminumax,则u(k)=umax=17)输出u(k),即端口为高电平,延时u(k)*T;端口为低电平,延时(1-u(k))*T,6.3 控制界面设计举例,界面设计流程图,