温度控制系统的软件设计与仿真
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
补偿器转化图
] D τ ( z ) = Z [ D τ (s) * H ( S) = Z [ K (1 − e ) −τ s (1 − e )] s (1 + T S )
− TS
= (1 −
−T
z
−L
)[
b z 1− c z
1 1
−1 −1
]
式中 C 1 = e
− T / T1
l ≈
τ
= 0 . 9048
预估器子程序 流程图
计算C1*m(K-1) 计算b1*U(K-1) 计算C1*m(K-1) +b1*U(K-1)给m(K) m(K)-m(K-L)给Q(K) 数据迭代
由流程图可以编写程序,其中 的小数运算转换为整数运算来 处理,例如0.9048*m(K-1)可 以等效为9048*m(K-1)/1000。 程序中其他地方用到小数的地 方,处理同上。
致谢
谨向指导老师牛勇博士, 谨向指导老师牛勇博士,答辩委员会 组长刘芳博士和各位委员以及电气与信息 工程学院给予我帮助和关心的老师们表示 衷心的感谢! 衷心的感谢!
2012-5-21
北方民族大学毕业论文答辩
∆
PID算法子程序 算法子程序
计算E(K)=给定值-SMITH(QK) 计算E(K)-E(K-1),E(K-1)-E(K-2),[E(K)-E(K-1)] –[E(K-1)-E(K-2)] 计算KP[E(K)-E(K-1)]
计算KD{[E(K)-E(K-1)] –[E(K-1)-E(K-2)]}
计算KP[E(K)-E(K-1)]+KIE(K)
计算PWM的Ton和Toff并计算对应的定时器所装入的初值
数据迭代
外部中断0 键盘) 外部中断0子程序(键盘)
保护现场
逐行扫描判键位置 送位置码
为RESET键? N
N 为ENTER键?
键值存储单元移位,空出KEYBUF1 Y KEYBUF1 送对应键数值给KEYBUF1 转BCD码(显示用) 转HEX(PID的设定值) KEYBUF全部置0
U=计算KP[E(K)-E(K-1)]+ KD{[E(K)-E(K-1)] ]+KIE(K)+[E(K-1)-E(K-2)]}
计算输出U(K)
对偏差进行PID算法处 理,并输出控制脉冲信号, 脉冲宽度由T0定时器中断 决定。在本程序计算中, 例如在PID运算中由于KP 、 KI、 KD、 CI、 BI都为 小数,要用到浮点小数的 运算,浮点小数的运算比 较复杂,并且存放大量的 浮点数需要很大的内存空 间,势必会影响CPU的运 算速度,故在此,不用浮 点运算,对需要用浮点运 算的地方做一定处理。如 KI*EK,KI=0.15,这里可 以用15*EK/100来处理, 文中需要用到浮点运算的 地方都作此处理。
T1中断子程序: 中断子程序: 中断子程序
保护现场 N 1S到没? Y
AD采样
数字滤波
调SMITH
调PID 温度标度转换 注:每50MS产 生中断
温度显示
定时器赋50MS定时
温度标度变换子程序:控制 系统在读入被测模拟信号并 转换成数字量后,往往要转 换成操作人员所熟悉的物理 量。这是因为被测对象的各 种数据的量纲与A/D转换的输 入值不一样。被测对象的参 数经传感器和A/D转换后得到 一系列的数码。这些数码值 并不等于原来带有量纲的参 数值,仅仅对应于参数的大 小,故必须把它转换成带有 量纲的数值才能显示或打印 输出。这种转换就是标度转 换。
m ( k ) = c 1 m ( k − 1 ) + b1 u ( k − 1)= 0 . 9048 m ( k − 1)+ 0 . 095 u ( k − 1)
c (k ) = m (k ) − m (k − 4 )
在程序中,可以用下列方法得到m(k-l):再内存中专门设置L个单元存放m(k)的 历史数据,每采样一次,把m(k)存于低零号单元前,先把第0号单元的数据后移到 1号单元,同时1号单元内的数据到2号单元,依次类推,这样从L单元得到m(k-l)。 数字PID控制器的输入信号为: ec(k) = e(k)- c(k)、ec(k)、ec(k-1) 、ec(k-2)分别代 替e(k)、e(k-1) 、e(k-2),就可得到带smith预估器的PID控制算式
基于单片机的温度控制 系统的软件设计与仿真
指导老师 : 牛 勇 答辩人 : 王 雪 萍
2009年5月20日
北方民族大学毕业论文答辩
提纲
• • • • • • 总体设计方案 温度控制器的设计 各部分的软件设计 仿真结果 设计结论 致谢
总体设计方案
• 系统控制软件包含主程序 、 显示子程序 、 A/D转换子程序、键盘子程序、PID数字控制 转换子程序、 转换子程序 键盘子程序、 数字控制 器子程序及纯滞后的smith预估补偿子程序 、 预估补偿子程序、 器子程序及纯滞后的 预估补偿子程序 定时中断子程序( 采样周期 采样周期) 定时中断子程序 ( 5S采样周期 ) 、 PWM子 子 程序、中间值滤波、温度标度的转换、 采 程序、中间值滤波、温度标度的转换、AD采 样子程序以及显示程序等几个模块。 样子程序以及显示程序等几个模块。 对于纯 滞后系统的smith预估器的数字运算原理在 滞后系统的 预估器的数字运算原理在 后面会详细介绍。 后面会详细介绍。
MOV PKK,#0FFH MOV A,PKK CLR C SUBB A,PKK+4 MOV DPTR,A MOV R7, DPH MOV R6,DPL MOV R5, #03H MOV R4, #0E8H LCALL DIV1 MOV A, R6 MOV QSMITH,A MOV 2EH,C MOV R2,#4H MOV R0,#PKK+4 MOV R1,#PKK+5 MOV A,@R0 MOV @R1,A DEC R0 DEC R1 DJNZ R2,SS5 RET
延时
的100次即为5S。因为采样可 能会因为偶然因素产生误差,
A/D完 成?
为了采样值的精确我们采样 三次,然后用中间值滤波对
Y
N
三次采样数据处理,从而可 以求得较为精确一点的采样 值。定时与滤波在这里不详 细叙述。
所有采样 结束?
N
返回
Y
=
数字PID算法 数字 算法
PID调节即比例(proportional)、积分(integral)、微分(derivative)调节是 连续控制系统中技术最成熟、应用最广泛的一种调节控制方式。在模拟控制系统中, PID算法的表达式为: 1 T de ( t ) u ( t ) = k p [e ( t ) + ] ∫0 e ( t ) + T D dt TI 将上式离散化,用离散的PID表达式如下: T K T D [e ( k ) − e ( k − 1)] u ( k ) = k p e ( k ) + ∑ e ( j) + T j= 0 TI 增量式PID表达式如下所示: T u(k)= u(k-1)+ KPe(k) −e(k −1) + e(k) + TD [e(k) −2e k −1) +e(k −2)] ( T TI u(k) = u(k -1) + KP [e(k ) − e(k −1)] + K I e(k ) + K D {[e(k ) − e(k −1)] − [e(k −1) − e(k − 2)]} 通过上述推导,似乎PID控制算法的程序设计并不复杂,只要将给定值与每次所得到 的温度检测值相减,得到偏差e(k),在与上次偏差e(k-1) (设初始值为0)相减,得到 e(k)-e(k-1),又通过上次偏差e(k-1)与前次偏差e(k-2)(初始值也设为0)相减,得 到e(k-1)-e(k-2).有了e(k),e(k)-e(k-1) ,e(k-1)-e(k-2)及 、 、 三个常数,通过 计算可得到U(K),然而,事实上,运算并非那么简单,这是由于e(k),e(k) -e(k-1) ,e(k-1)-e(k-2)均可能为正或负。
键盘
AD转换 变送器 传感器
显示
单 片 机
PWM
电 阻 炉
功率元件
电源
用MATLAB仿真来验证控制器的正确性 仿真来验证控制器的正确性
大林算法的离散系统的仿Leabharlann Baidu的方框图如下:
用示波器观察其输出波形如下:
PID控制系统的方框图如下所示:
加有预估器的输出波形:
未加预估器的输出波形:
史密斯预估器的原理如图所示:
Y
调键盘设定值的显示子程序
中断返回
用外部中断INT0 来控制键盘。当 有键按下时,产 生中断,然后 CPU去处理中断 程序,找到键码, 输入设定温度, 另外送显示。键 盘上设定有0-9的 数字键,以及清 零键,同时有回 车键,在设置数 字键时,让LED 显示BCD数,故 需要将键值转换 为BCD数。
b 1 = K (1 − e
T 1 ) = 0 . 095
T
取整数、T为采样周期。本系统采样周期T为5S, 延时时间 为20s,所以l=4
smith预估器的数字化设计 预估器的数字化设计
m(k) U(k) GP(S) C(k)
−τs
e
m(k-l)
smith预估器方框图
有了纯滞后补偿器的Z传递函数,便可以得到差分方程在计算机上实现
中断返回
AD采样子程序: 采样子程序: 采样子程序
采样值始址送R0 采样次数送R2
使用T0定时器产生5S定时中 断,作为本系统的采样周期。 在中断服务程序中启动A/D转 换,读入采样数据。由前面
选通IN0 启动ADC
章节中所讲的,采样周期选 5S控制效果最好。定时器T0 采用方式1,定时50ms,50ms
本系统设计结论
通过本系统的软件与硬件系统进行联调仿真可以看出,本系统 可以实现对锅炉温度的控制,用键盘给定某一温度时,在一定的时间 内锅炉的实际温度与给定温度基本一致。 论文中存在的问题:程序基本可以实现所需要的控制功能,但 由于在数据的处理问题上,小数部分的舍去,以及除法运算的余数的 舍去,可能会使系统的控制功能存在一定得误差。由仿真结果可知, 虽然有误差存在,基本上还是可用的。 同时本系统采用的是基于smith预估补偿的PID控制算法,它的 被控对象(这里的加热炉)的模型必须是可知的,而在PROTEUS仿 真时,软件中的烤箱的传递函数目前还不知道怎么设置,故本系统不 益在PROTEUS软件中检验其功能。当然了对于模型不可知的系统, 可以改用自适应的PID控制,或者是参数自整定的PID控制。而本系 统的设计是针对模型已知的系统。
XIANFU1: SMITH: MOV R2,UK_1 SS4: MOV R3,UK_1+1 MOV R6,B1H MOV R7,B1L LCALL NMUL22 MOV B1U_1,R3 MOV B1U_1+1,R4 MOV R2,#00H MOV R3,PKK+1 MOV R6,C1H MOV R7,C1L LCALL NMUL22 MOV C1P_1,R3 MOV C1P_1+1,R4 MOV A,B1U_1+1 CLR C ADD A,C1P_1+1 SS5: MOV PKK,A MOV A,B1U_1 ADDC A,C1P_1 ANL A,#0FFH CJNE A,#00H,XIANFU1 SJMP SS4