
控制系统设计
-
2023年3月5日发(作者:受托责任观)武汉理工大学《计算机控制技术》课程设计说明书
课程设计任务书
学生姓名:郑子茗专业班级:自动化1101班
指导教师:周申培工作单位:自动化学院
题目:温度控制系统设计
初始条件:
被控对象为电炉,采用热阻丝加热,利用大功率可控硅控制器控制热阻丝两端所加的
电压大小,来改变流经热阻丝的电流,从而改变电炉炉内的温度。可控硅控制器输入为0~
5伏时对应电炉温度0-300℃,温度传感器测量值对应也为0~5伏,对象的特性为带有纯
滞后环节的一阶系统,惯性时间常数为T1=30秒,滞后时间常数为τ=10秒。
要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)
1.设计温度控制系统的计算机硬件系统,画出框图;
2.编写积分分离PID算法程序,从键盘接受Kp、Ti、Td、T及β的值;
3.计算机仿真被控对象,编写仿真程序;
4.通过数据分析T改变时对系统超调量的影响。
5.撰写设计说明书。课程设计说明书应包括:设计任务及要求;方案比较及认证;
系统滤波原理、硬件原理,电路图,采用器件的功能说明;软件思想,流程,源程序;调
试记录及结果分析;参考资料;附录:芯片资料,程序清单;总结。
时间安排:
6月25日查阅和准备相关技术资料,完成整体方案设计
6月26日—6月27日完成硬件设计
6月30日—7月1日编写调试程序
7月2日—7月3日撰写课程设计说明书
7月4日提交课程设计说明书、图纸、电子文档
指导教师签名:年月日
系主任(或责任教师)签名:年月日
武汉理工大学《计算机控制技术》课程设计说明书
摘要
随着科学技术的迅猛发展,各个领域对温度控制系统的精度、稳定性等要求
越来越高,控制系统也千变万化。电阻炉广泛应用于各行各业,其温度控制通
常采用模拟或数字调节仪表进行调节,但存在着某些固有的缺点。而采用单片机
进行炉温控制,可大大地提高控制质量和自动化水平,具有良好的经济效益和
推广价值。
本设计以89C51单片机为核心控制器件,以ADC0809作为A/D转换器件,
采用闭环直接数字控制算法,通过控制可控硅来控制热电阻,进而控制电炉温度,
最终设计了一个满足要求的电阻炉微型计算机温度控制系统。
关键字:电阻炉89C51单片机温度控制A/D转换
武汉理工大学《计算机控制技术》课程设计说明书
目录
1设计任务及分析....................................................1
2方案设计....................................................................................................................2
3总的设计.....................................................................................................................3
3.1软件流程图......................................................................................................3
3.2总的硬件设计.................................................................................................4
4积分分离PID控制....................................................................................................5
4.1PID控制度的作用...........................................................................................5
4.2积分分离判断..................................................................................................5
4.3PID控制算法................................................................................................7
5系统仿真....................................................................................................................9
5.1仿真程序及图形设计......................................................................................9
5.2仿真结果........................................................................................................10
心得体会......................................................................................................................14
参考文献......................................................................................................................15
程序清单......................................................................................................................16
武汉理工大学《计算机控制技术》课程设计说明书
1
温度控制系统设计
1设计任务及分析
被控对象为电炉,采用热阻丝加热,利用大功率可控硅控制器控制热阻
丝两端所加的电压大小,来改变流经热阻丝的电流,从而改变电炉炉内的温
度。可控硅控制器输入为0-5伏时对应电炉温度0-300℃,温度传感器测量
值对应也为0-5伏,对象的特性为带有纯滞后环节的一阶系统,惯性时间常
数为T1=30秒,滞后时间常数为τ=10秒。
要求完成的任务
1)设计温度控制系统的计算机硬件系统,画出框图;
2)编写积分分离PID算法程序,从键盘接受K
p
、T
i
、T
d
、T及β的值;
3)通过数据分析T改变时对系统超调量的影响。
4)撰写设计说明书。
本次设计是对电炉的温度控制,而电炉的温度是通过放在其中的热阻丝
来控制的,而热阻丝的电流由可控硅控制器控制热阻丝两端所加电压来控
制。对电炉温度的控制是个动态的过程,不可能一下子就达到我们想要的温
度,需要用到一些仪器比如热电偶来测量电路的温度,通过传感器将炉温转
换成电压信号,送入A/D转换器,通过采样和模数转换,所检测到的电压信
号和炉温给定值的电压信号送入计算机程序中作比较,得出给定值与实际值
之间的偏差,单片机对偏差进行运算,将运算结果送给晶闸管调压器来调节
热阻丝的电流,以此来调节电电炉的温度。
武汉理工大学《计算机控制技术》课程设计说明书
2
2方案设计
电炉的温度控制是个动态的控制过程,需要借助计算机,单片机等很多器件
的硬件连接来实现。而电炉温度的直接控制是通过热阻丝的加热来实现的,热阻
丝的加热是由流经热阻丝的电流老控制的,而热阻丝的电流是通过可控硅控制器
控制热阻丝两端所加电压来控制,电压的调节是通过可控制硅控制。需要用到热
电偶时刻监测电炉的温度,通过传感器将温度信号转化为电压信号,而电压信号
通过模数转换送入到计算机进行控制,计算机将转换结果送到晶闸管来控制加到
热阻丝两端的电压,这样达到调节电炉温度的目的。
电炉温度控制的硬件连接图如图2-1所示
图2-1温度控制系统框图
传感器
电炉
显示电路
计算机
键盘控制
D/A转换
A/D转换
数据采集
控制电路
武汉理工大学《计算机控制技术》课程设计说明书
3
3总的设计
3.1软件流程图
软件流程图如图3-1所示
图3-1软件流程图
开始
系统初始化
数据采集
A/D转换器
求温度值
信号比较
PID调节
计算机输出
武汉理工大学《计算机控制技术》课程设计说明书
4
通过一个温度传感器将电炉中的温度转换成电压信号,计算机采集这个电压
信号,经过数模转换器求出温度值,将计算出的温度值与目标温度值进行比较,
求出偏差,将偏差与预先设定的偏差进行比较,选择是用PID控制还是PD控制,
计算机处理的结果输出控制可控硅的调节,又可控硅来调节加在电炉中热阻丝两
端的电压来调节电炉的温度。然后再次测量电炉温度,反复测量,反复调节,最
终达到目标温度。
3.2总的硬件设计
图3-2硬件设计图
武汉理工大学《计算机控制技术》课程设计说明书
5
4积分分离PID控制
4.1PID控制度的作用
比例调节作用(P):是按比例反应系统的偏差,系统一旦出现了偏差,比例
调节立即产生调节作用用以减少偏差。比例作用大,可以加快调节,减少误差,
但是过大的比例,使系统的有比较大的超调,并产生振荡,稳定性下降,甚至造
成系统的不稳定。
积分调节作用(I):是使系统消除稳态误差,它能对稳定后有累积误差的系
统进行误差修整,提高无差度。因为有误差,积分调节就进行,直至无差,积分
调节停止,积分调节输出一常值。积分作用的强弱取决与积分时间常数Ti,Ti越
小,积分作用就越强。反之Ti大则积分作用弱,加入积分调节可使系统稳定性
下降,动态响应变慢。积分作用常与另两种调节规律结合,组成PI调节器或PID
调节器。
微分调节作用(D):微分作用反映系统偏差信号的变化率,具有预见性,能
预见偏差变化的趋势,因此能产生超前的控制作用,在偏差还没有形成之前,已
被微分调节作用消除。因此,可以改善系统的动态性能。在微分时间选择合适情
况下,可以减少超调,减少调节时间。微分作用对噪声干扰有放大作用,因此过
强的加微分调节,对系统抗干扰不利。此外,微分反应的是变化率,而当输入没
有变化时,微分作用输出为零。微分作用不能单独使用,需要与另外两种调节规
律相结合,组成PD或PID控制器。
4.2积分分离判断
在一般的PID控制中,当有较大的扰动或大幅度改变给定值时,由于此时有
较大的偏差,以及系统有惯性和滞后,故在积分项的作用下,往往会产生较大的
超调和长时间的波动。特别对于温度等变化缓慢的过程,这一现象更为严重,为
此,可采用积分分离措施,即偏差)(ke较大时,取消积分作用;当偏差较小时才
将积分作用投入。亦即
武汉理工大学《计算机控制技术》课程设计说明书
6
当)(ke时,采用PD控制;
当)(ke时,采用PID控制。
积分分离阈值
应根据具体对象及控制要求。若
值过大时,则达不到积分
分离的目的;若
值过小,则一旦被控量)(ty无法跳出个积分分离区,只进行
PD控制,将会出现残差,为了实现积分分离,编写程序时必须从数字PID差分
方程式中分离出积分项,进行特殊处理。
积分分离PID控制算法图如图4-1所示
YN
图4-1积分分离PID控制算法图
开始
初始化
数据采集
()ek
PID控制PD控制
控制器输出
更新参数
返回
武汉理工大学《计算机控制技术》课程设计说明书
7
4.3PID控制算法
实际运行的经验和理论的分析都表明,运用这种控制规律对许多工业过程控
制时,都能得到满意的效果。不过用计算机实现PID控制,不是简单得把模拟
PID控制规律数字化,而是进一步与计算机的逻辑判断功能结合,使PID控制更
加灵活,更能满足生产过程提出的要求。
PID算法推倒如下:
0
1()
()[()()]t
pD
I
det
utKetetdtT
Tdt
u:调节器的输出信号;
e:偏差信号;
K:调节器的比例系数;
TI:调节器的积分时间;
TD:调节器的微分时间。
对应的模拟PID调节器的传递函数
()1
()(1)
()
PD
I
Us
DSKTS
EsTS
其中PK为比例增益,PK与比例带成倒数关系即PK=1/,TI为积分时间常数,
TD为微分时间常数,u(t)为控制量,e(t)为偏差。
在计算机控制中,为实现数字控制,必须对式上式进行离散化处理。用数字形式
的差分方程代替连续系统的微分方程。设系统的采样周期为T,在t=kT时刻进
行采样,
k
i
tiTedtte
0
0
)()(
T
keke
dt
de)1)()t(
(
式中e(k):根据本次采样值所得到的偏差;
e
(k-1)
:由上次采样所得到的偏差。
T为采样周期
K为采样序号
由以上可得:
武汉理工大学《计算机控制技术》课程设计说明书
8
T
1keke
kiekeK
]
T
1keke
Tie
T
T
ke[Kku
d
k
0i
p
k
0i
I
p
)()(
)()(
)()(
)()()(
i
D
k
式中,T为采样时间,项为积分项的开关系数
)(
)(
0
1
ke
ke
武汉理工大学《计算机控制技术》课程设计说明书
9
5系统仿真
5.1仿真程序及图形设计
被控对象为:
G(S)=10Se
/(1+30S)
采用simulink仿真,通过simulink模块实现积分分离PID控制算法。
选择合适的Kp,Ki,Kd是系统的仿真效果趋于理想状态。MATLAB编写程序
如下:
clearall;
closeall;
ts=2;%采样时间2s
sys=tf([1],[30,1],'inputdelay',10);
dsys=c2d(sys,ts,'zoh');%将sys离散化
[num,den]=tfdata(dsys,'v');%求sys多项式模型参数
仿真图形设计如图5-1
图5-1simulink仿真图
武汉理工大学《计算机控制技术》课程设计说明书
10
5.2仿真结果
选择不同的采样周期T会得出不同的仿真图形,下面对不同T情况下的仿真
结果简单介绍下。
T=0.1s时仿真图形如图5-2所示
图5-2仿真图
武汉理工大学《计算机控制技术》课程设计说明书
11
T=0.5s时仿真图形如图5-3所示
图5-3仿真图
T=1s时仿真图形如图5-4所示
图5-4仿真图
武汉理工大学《计算机控制技术》课程设计说明书
12
T=2s时仿真图形如图5-5所示
图5-5仿真图
T=3s时仿真图形如图5-6所示
图5-6仿真图
武汉理工大学《计算机控制技术》课程设计说明书
13
T=4s时仿真图形如图5-7所示
图5-7仿真图
T=5s时仿真图形如图5-8所示
图5-8仿真图
武汉理工大学《计算机控制技术》课程设计说明书
14
心得体会
本次计算机课程设计我做的是温度控制系统,是通过计算机,单片机,一些
控制算法,等等的对电炉的温度进行控制,使得电炉的温度达到任何我们想要达
到的温度。
温度的控制是一个很复杂的过程,一开始感觉根本无从下手,不知道究竟是
如何实现温度控制的。于是开始到处查资料,从网上搜索,到图书馆借阅相关的
书籍,同学之间,同组的同学之间相互讨论,慢慢的深入,慢慢的开始有了一点
的认识,有了一定的了解。直到那个时候才发现实现温度控制并不是我们想象的
那么简单,其中包括一些算法,许多检测,判断,传感器的信号转换等很多环节,
不过每部都是我们已经学过的,我们可以用自己学过的知识解决。
我们这组的被控对象是带有滞后的一阶系统,仿真过程中需要借助一定的程
序将系统离散化,通过将信号偏差与给定的偏差比较,选择究竟是用PID控制还
是用PD控制,当偏差较大的时候选择PD控制,因为积分环节会增大系统的超调,
并且产生长时间的波动。特别对于温度,成分等变化缓慢的过程,这一现象更为
严重,会对系统的稳定性产生很大的影响,这不是我们所期望的,我们所需要的
是超调小,波动小的系统,所以此时就要去掉积分环节。当偏差小的时候可以采
用PID控制算法。
通过传感器将温度信号转化成电压信号,电压信号被计算机采集,进行比较
已经控制算法的选择,计算机将控制结果送给可控硅控制器,可控硅控制器通过
调节加在热阻丝两端的电压来改变电流,从而调节电炉的温度。
本次课程设计我学到了很多知识,让我知道了,如何运用我们学过的知识去
解决生活中一些问题,使得一些温度控制等等的不需要人为的参与,由计算机自
动控制,这对我们的生活带来了很大的便利。
武汉理工大学《计算机控制技术》课程设计说明书
15
参考文献
[1]李建忠.单片机原理及应用.西安:西安电子科技大学出版社,2001.
[2]潘新民.王燕芳.微型计算机控制技术.北京:高等教育出版社,2001.
[3]何立民.单片机应用系统设计.北京:北京航空航天大学出版社,2000.
[4]韩志军,沈晋源,王振波.单片机应用系统设计.北京:机械工业出版
社,2005.
[5]周航慈.单片机程序设计基础.北京:北京航空航天大学出版社,2000.
武汉理工大学《计算机控制技术》课程设计说明书
16
程序清单
积分分离PID控制算法子程序:
START:MOV68H,KP;分别将K
P
,T
I
,T
D
,T,β送入指定的存
储单元
MOV54H,TI
MOV55H,TD
MOV56H,T
MOV57H,β
MOVA,68H;计算K
I
=K
P
*T/T
I
MOVB,56H
MULAB
MOVB,54H
DIVAB
MOV69H,A
MOVA,68H;计算K
D
=K
P
*T
D
/T
MOVB,55H
MULAB
MOVB,56H
DIVAB
MOV6AH,A
LOOP0:MOVDPTR#7FF0H;读取预定温度值,送ADC0809的IN0口地
址
MOV@DPTR,A;启动A/D转换
LOOP1JBP3.3,LOOP1;等待转换数据
MOVXA,@DPTR;读取ADC0809的IN0口转换后的数据
MOV5CH,A;将预定值数据放入指定的存储单元
MOVDPTR,#7FF1H;读取采样温度值,送ADC0809的IN1口地
址
武汉理工大学《计算机控制技术》课程设计说明书
17
MOVX@DPTR,A;启动A/D转换
LOOP2:JBP3.3,LOOP2;等待转换数据
MOVXA,@DPTR;读取ADC0809的IN1口转换后的数据
MOV49H,A;将采样值数据放入指定的存储单元
MOVA,5CH;计算ei,先取温度给定值
CLRC
SUBBA,50H;温度给定值-采样值
JNCAA0;判断ei的正负,如果为正,跳至AA0
CPLA;ei为负,下两条指令求补
ADDA,#01H
AA0:MOVR0,57H
SUBBA,57H;|ei|-β
JNCAA1;|ei|>β跳至AA1
SJMPAA2;|ei|<β跳至AA2
AA1:LCALLPD;调用PD算法
AA2:LCALLPID;调用PID算法
MOVA,7CH;将△Ui通过DAC0832输出
MOVDPTR,#7FF2H
MOVX@DPTR,A
INCDPTR
MOVX@DPTR,A
LCALLDELAY;调用延时子程序,等待下一次采样计算
SJMPLOOP0;进入下一次控制计算
DELAYPROCNEAR
DL0:MOVR6,#FFH
DL1:MOVR7,#FFH
DL2:MOVR5,#FFH
DLS:DJNZR5,DLS
武汉理工大学《计算机控制技术》课程设计说明书
18
DJNZR7,DL2
DJNZR6DL1
RET
DELAYENDP
PIDPROCNEAR
PID:MOVA,5CH;计算e
i
,先取温度给定值
CLRC
SUBBA,50H;温度给定值-温度检测值
JNCPID1;判断e
i
正负,如果为正,跳至PID1
CPLA;e
i
为负,下两条指令求补
ADDA,#01H
SETB30H;e
i
为负,符号位置1
SJMPPID2
PID1:CLR30H;e
i
为正,符号位置0
PID2:MOV6BH,A;ei值存放在6BH单位元中
MOVR1,6BH;计算e
i
-e
i-1
,先将e
i
值,送R1
MOVC,30H;将e
i
的符号位值送20H位
MOV20H,C
MOVR2,6CH;将e
i-1
值送R2
MOVC,31H;将e
i-1
的符号位值送21H位
MOV21H,C
LCALLDJF;调用单字节带符号的减法子程序
MOV6EH,R3;将差值e
i
-e
i-1
送6EH单元
MOVC,22H;将差值e
i
-e
i-1
的符号位送33H位
MOV33H,C
MOVR1,6CH;计算e
i-1
-e
i-2
,先将e
i-1
值送R1
MOVC,31H;将e
i-1
符号位送20H位
MOV20H,C
武汉理工大学《计算机控制技术》课程设计说明书
19
MOVR2,6DH;将e
i-2
的值送R2
MOVC,32H;将e
i-2
的符号位值送21H位
MOV21H,C
LCALLDJF;调用单字节带符号的减法子程序
MOV6FH,R3;将差值e
i-1
-e
i-2
送6FH单元
MOVC,22H;将差值e
i-1
-e
i-2
的符号位送34H位
MOV34H,C
MOVR1,6EH;计算(e
i
-e
i-1
)-(e
i-1
-e
i-2
),将e
i
-e
i-1
值送R1
MOVC,33H;将e
i
-e
i-1
符号位送20H位
MOV20H,C
MOVR2,6FH;将e
i-1
-e
i-2
值送R2
MOVC,34H;将e
i-1
-e
i-2
符号位送21H位
MOV21H,C
LCALLDJF;调用单字节带符号的减法子程序
MOV70H,R3;将差值(e
i
-e
i-1
)-(e
i-1
-e
i-2
)送70H
单元
MOVC,22H;将差值(e
i
-e
i-1
)-(e
i-1
-e
i-2
)的符号
位值送35H位
MOV35H,C
MOVA,68H;计算Kp*(e
i
-e
i-1
),将Kp值送A
MOVB,6EH;将e
i
-e
i-1
值送B
MULAB;两数相乘
MOV71H,B;Kp*(e
i
-e
i-1
)值存71H,72H单元
MOV72H.A
MOVA,69H;计算KI*e
i
,将KI值送A
MOVB,6BH;将e
i
值送B
MULAB;两数相乘
MOV73H,B;KI*e
i
值存73H,74H单元
武汉理工大学《计算机控制技术》课程设计说明书
20
MOV74H,A
MOVA,6AH;计算KD*[(e
i
-e
i-1
)-(e
i-1
-e
i-2
)],
将KD送A
MOVB,70H;将(e
i
-e
i-1
)-(e
i-1
-e
i-2
)值送B
MULAB;两数相乘
MOV75H,B;KD*[(e
i
-e
i-1
)-(e
i-1
-e
i-2
)]值存
75H,76H单元
MOV76H,A
MOVR1,71H;计算Kp*(e
i
-e
i-1
)+KI*e
i
,将Kp*
(e
i
-e
i-1
)值送R1,R2
MOVR2,72H
MOVC,33H;将Kp*(e
i
-e
i-1
)的符号位值送23H
位
MOV23H,C
MOVR3,73H;将KI*e
i
值送R3,R4
MOVR4,74H
MOVC,30H;将KI*e
i
值的符号位懂24H位
MOV24H,C
LCALLSJF;调用双字节带符号加法子程序
MOV77H,R5;将Kp*(e
i
-e
i-1
)+KI*e
i
值送77H,78H
MOV78H,R6
MOVC,25H;将Kp*(e
i
-e
i-1
)+KI*e
i
值的符号位送
36H位
MOV36H,C
MOVR1,77H;计算△U
i
,将将Kp*(e
i
-e
i-1
)+KI*e
i
值送R1,R2
MOVR2,78H
MOVC,36H;将Kp*(e
i
-e
i-1
)+KI*e
i
值的符号位送
23H位
武汉理工大学《计算机控制技术》课程设计说明书
21
MOV23H,C
MOVR3,75H;将KD*[(e
i
-e
i-1
)-(e
i-1
-e
i-2
)]的值
送R3,R4
MOVR4,76H
MOVC,35H;将KD*[(e
i
-e
i-1
)-(e
i-1
-e
i-2
)]的符
号位送23H位
MOV24H,C
LCALLSJF;调用双字节带符号加法子程序
MOV79H,R5;将△U
i
值送79H,7AH
MOV7AH,R6
MOVC,25H;将△U
i
值的符号位送37H
MOV37H,C
MOVR1,7DH;计算U
i
,将U
i-1
值送R1,R2
MOVR2,7EH
CLR23H;U
i-1
值的符号位值恒为0
MOVR3,79H;将△U
i
值送R3,R4
MOVR4,7AH
MOVC,37H;将△U
i
值的符号位送24H
MOV24H,C
LCALLSJF;调用双字节带符号加法子程序
JNB25H,PID3;判断计算结果是否为负
MOV7BH,#00H;如果是负数,则输出电压为0
MOV7CH,#00H
SJMPPID4
PID3:MOV7BH,R5;否则,将计算得到的U
i
值置7BH,7CH
MOV7CH,R6
PID4:MOV6DH,6CH;数据迭代,e
i-1
值送e
i-2
存储单元
MOV6CH,6BH;e
i
值送e
i-1
存储单元
MOV7DH,7BH;U
i
值送U
i-1
存储单元
武汉理工大学《计算机控制技术》课程设计说明书
22
MOV7EH,7CH
RET
PIDENDP
PDPROCNEAR
PD:MOVA,5CH;计算e
i
,先取温度给定值
CLRC
SUBBA,50H;温度给定值-温度检测值
JNCPD1;判断e
i
正负,如果为正,跳至PID1
CPLA;e
i
为负,下两条指令求补
ADDA,#01H
SETB30H;e
i
为负,符号位置1
SJMPPD2
PD1:CLR30H;e
i
为正,符号位置0
PD2:MOV6BH,A;ei值存放在6BH单位元中
MOVR1,6BH;计算e
i
-e
i-1
,先将e
i
值,送R1
MOVC,30H;将e
i
的符号位值送20H位
MOV20H,C;
MOVR2,6CH;将e
i-1
值送R2
MOVC,31H;将e
i-1
的符号位值送21H位
MOV21H,C
LCALLDJF;调用单字节带符号的减法子程序
MOV6EH,R3;将差值e
i
-e
i-1
送6EH单元
MOVC,22H;将差值e
i
-e
i-1
的符号位送33H位
MOV33H,C
MOVR1,6CH;计算e
i-1
-e
i-2
,先将e
i-1
值送R1
MOVC,31H;将e
i-1
符号位送20H位
MOV20H,C
MOVR2,6DH;将e
i-2
的值送R2
武汉理工大学《计算机控制技术》课程设计说明书
23
MOVC,32H;将e
i-2
的符号位值送21H位
MOV21H,C
LCALLDJF;调用单字节带符号的减法子程序
MOV6FH,R3;将差值e
i-1
-e
i-2
送6FH单元
MOVC,22H;将差值e
i-1
-e
i-2
的符号位送34H位
MOV34H,C
MOVR1,6EH;计算(e
i
-e
i-1
)-(e
i-1
-e
i-2
),将e
i
-e
i-1
值送R1
MOVC,33H;将e
i
-e
i-1
符号位送20H位
MOV20H,C
MOVR2,6FH;将e
i-1
-e
i-2
值送R2
MOVC,34H;将e
i-1
-e
i-2
符号位送21H位
MOV21H,C
LCALLDJF;调用单字节带符号的减法子程序
MOV70H,R3;将差值(e
i
-e
i-1
)-(e
i-1
-e
i-2
)送70H
单元
MOVC,22H;将差值(e
i
-e
i-1
)-(e
i-1
-e
i-2
)的符
号位值送35H位
MOV35H,C
MOVA,68H;计算Kp*(e
i
-e
i-1
),将Kp值送A
MOVB,6EH;将e
i
-e
i-1
值送B
MULAB;两数相乘
MOV71H,B;Kp*(e
i
-e
i-1
)值存71H,72H单元
MOV72H.A
MOVA,6AH;计算KD*[(e
i
-e
i-1
)-(e
i-1
-e
i-2
)],将KD
送A
MOVB,70H;将(e
i
-e
i-1
)-(e
i-1
-e
i-2
)值送B
MULAB;两数相乘
MOV75H,B;KD*[(e
i
-e
i-1
)-(e
i-1
-e
i-2
)]值存75H,
武汉理工大学《计算机控制技术》课程设计说明书
24
76H单元
MOV76H,A
MOVR1,71H;计算Kp*(e
i
-e
i-1
)+KI*e
i
,将Kp*(e
i
-e
i-1
)
值送R1,R2
MOVR2,72H
MOVC,33H;将Kp*(e
i
-e
i-1
)的符号位值送23H位
MOV23H,C
MOVR3,75H;将KD*[(e
i
-e
i-1
)-(e
i-1
-e
i-2
)]值送R3,
R4
MOVR4,76H
MOVC,35H;将KD*[(e
i
-e
i-1
)-(e
i-1
-e
i-2
)]值的
符号位送24H位
MOV24H,C
LCALLSJF;调用双字节带符号加法子程序
MOV79H,R5;将△U
i
值送79H,7AH
MOV7AH,R6
MOVC,25H;将△U
i
值的符号位送37H
MOV37H,C
MOVR1,7DH;计算U
i
,将U
i-1
值送R1,R2
MOVR2,7EH
CLR23H;U
i-1
值的符号位值恒为0
MOVR3,79H;将△U
i
值送R3,R4
MOVR4,7AH
MOVC,37H;将△U
i
值的符号位送24H
MOV24H,C
LCALLSJF;调用双字节带符号加法子程序
JNB25H,PD3;判断计算结果是否为负
MOV7BH,#00H;如果是负数,则输出电压为0
MOV7CH,#00H
武汉理工大学《计算机控制技术》课程设计说明书
25
SJMPPID4
PD3:MOV7BH,R5;否则,将计算得到的U
i
值置7BH,7CH
MOV7CH,R6
PD4:MOV6DH,6CH;数据迭代,e
i-1
值送e
i-2
存储单元
MOV6CH,6BH;e
i
值送e
i-1
存储单元
MOV7DH,7BH;U
i
值送U
i-1
存储单元
MOV7EH,7CH
RET
PDENDP