✅ 操作成功!

控制系统设计

发布时间:2023-06-11 作者:admin 来源:文学

控制系统设计

控制系统设计

-

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

👁️ 阅读量:0