欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

第6、7、8章计算机控制技术课程习题详解及答案手册

最编程 2024-02-03 16:04:08
...

ROS机器人操作系统在线练习课程正在逐步完善中,目前以ROS官网中文资料制作,

可参考:https://www.shiyanlou.com/courses/854  邀请码 U23ERF8H

pdf版下载地址:http://pan.baidu.com/s/1hrKoza8

文件名:ccsa6_8

第六章

6-1 试推导出数值PID控制的位置式算法和增量式算法,比较它们的优缺点。

⒊位置型PID控制算法

式(6-6)所示的PID控制算式是一种连续的形式,包括积分和微分运算。但是计算机控制是一种采样控制,它只能根据采样时刻的偏差来计算控制量。因此,在计算机控制系统中,必须首选对式(6-7)进行离散化处理。其基本思路是:当采样周期足够短(采样频率足够高),连续形式的积分运算可以用数字形式的求和运算近似,微分运算可以差分运算近似。此时积分项和微分项表示为:

                   (6-9)

             (6-10)

将式(6-9)和式(6-10)代入式(6-7),则可得到离散的PID表达式:

    (6-11)

其中:Ts为采样周期,要使上述推导过程成立,Ts必须足够小;e(k)=y(k)-r(k)为第k个采样时刻系统的偏差值;e(k-1)为第k-1次采样时刻的系统偏差值;u(k)为K时刻控制器控制量输出,以控制执行机构动作。

如果执行机构是一个调节阀,则式(6-11)所计算的输出量u(k)与调节阀的开度即阀门位置对应,因此,式(6-11)称为位置型PID控制算式。位置型PID控制系统的结构如图6-5所示。

图6-5  位置型PID控制器系统结构

由式(6-11)可以看出,要想计算时刻k的控制量输出u(k),不仅需要本次偏差信号e(k)和上次的偏差信号e(k-1),而且还要在积分项中把历次的偏差信号e(j)进行累加,即计算。这样,不仅计算烦琐,而且为保存e(j)还要占用很多内存。因此,用式(6-11)直接进行控制很不方便,实际的计算机控制系统中一般不使用。

为了减少内存空间使用,提高计算速度,根据递推原理可以得到PID算法的实用计算式。比照式(6-11),可写出k-1次的PID控制量输出表达式

    (6-12)

用式(6-11)减去式(6-12),可得

                         (6-13)

式中:称为积分系数;称为微分系数。由式(6-13)可知,要计算第k时刻的控制量输出值u(k),只需要保存前一个时刻的控制量输出值u(k-1)以及前两个时刻的偏差信号e(k-1)和e(k-2),需要的内存量大大减少。另外,式(6-13)的计算比式(6-12)要简单得多。

4.增量型PID控制算法

在一些计算机控制系统中,采用步进电机或多圈电位器作为控制执行机构,这些执行机构本身具有累加效应,不需要给出控制量的具体数值,给出一个增量信号就可以了。将式(6-13)稍作变换,得到:

=(6-14)

式(6-14)给出了第时刻输出的控制量增量,即在第时刻的控制量基础上增加(或减少)的量,所以式(6-14)叫做增量型PID控制算式。增量型PID控制系统的结构如图6-6所示。

图6-6  增量型PID控制器系统结构

与位置型PID算法相比,增量型PID控制算法具有很多优点:

①在位置型PID控制算式中,计算机的故障可能会引起控制量的误动作,产生大幅度变化,对生产造成破坏性的影响。在增量型PID控制算式中,由于计算机输出是增量,误动作影响小。

②在位置型PID控制算法中,由手动到自动切换时,必须首先使计算机的输出值等于阀门的原始开度,才能保证手动/自动的无忧动切换。增量型PID控制算法的输出与原始值无关,易于实现手动到自动的无冲击切换。

③在位置型PID控制算法中特别是积分项要用到过去偏差的累加值,容易产生积分饱和问题。增量型PID控制的累加通过步进电机或多圈电位器等硬件电路实现,当输出达到最大值或最小值后,输出的增量实际并没有累积,也就不会产生积分饱和问题。

增量型PID控制算法也有不足之处:

①积分截断效应大,有静态误差。

②溢出的影响大。

到底采用位置型还是采用增量型PID算式,应该根据被控对象的实际情况加以选择。一般认为,在以晶闸管或伺服电机作为执行器件,或对控制精度要求较高的系统中,应当采用位置型PID算法;而在以步进电机或多圈电位作为执行器件的系统中,一般应该采用增量型PID算法。

⒌ PID控制程序设计

在计算机控制系统中,不同的控制手段,其PID控制实现方式也各不相同。对于大型的DCS系统或组态软件中,一般为用户提供了PID模块,控制系统的使用者只需要对这些模块进行组态就可以实现一个PID控制器的设计。对于微型机控制系统,一般需要自己设计PID控制程序,编程语言一般为汇编语言或C语言。

下面分别讲一下位置型和增量型两种PID程序的设计方法。

⑴位置型PID算法程序的设计

由式(6-12)可知,第k个采样时刻位置型PID控制的输出表示为

           (6-15)

其中:比例项输出为;积分项输出为;微分项输出为。其中积分项输出为可以做如下变换

  (6-16)

位置型PID控制输出

                               (6-17)

其算法流程图如图6-7所示

⑵增量型PID算法的程序设计

由式(6-14),增量型PID控制算式可以表示为

若记比例项输出为,积分项输出为,微分项输出为,则增量型PID控制输出可以表示为

                  (6-18)

其算法流程图如图6-8所示。

图6-7  位置型PID算法流程图      图6-8  增量型PID算法流程图

6-2 请说明PID控制器中比例、积分和微分环节的作用。

在实际应用中,根据被控对象的特性和控制要求,可以灵活地改变PID的结构,取其中的一部分环节构成控制规律,如:

①比例(P)控制。比例控制是一种最简单的控制方式,其控制器的输出与输入误差信号成比例关系。比例控制中,偏差一旦产生,控制器立即就发生作用即调节控制输出,使被控量朝着减小偏差的方向变化,偏差减小的速度取决于比例系数KP,KP越大偏差减小得越快,但是很容易引起振荡; KP减小,发生振荡的可能性减小但是调节速度变慢。当仅有比例控制时,一般系统输出存在稳态误差。

②积分(I)控制。在积分控制中,控制器的输出与输入误差信号的积分成正比例关系。如果系统存在稳态误差,即便误差很小,积分项也会随着时间的增加而加大,它推动控制器的输出增大使稳态误差进一步减小,实质上就是对偏差累积进行控制,直到等于零,因此积分控制是一种无差调节。由于积分控制存在滞后作用,它会恶化系统的动态性能。

③比例积分(PI)控制。由于比例控制和积分控制具有互补的性能特点,在实际控制系统中经常将两者结合,构成比例积分控制。在比例积分控制中,通过积分作用消除系统的稳态误差;在存在积分作用时,可以适当减少比例系数,以保持系统的稳定性。

④微分(D)控制。在微分控制中,控制器的输出与输入误差信号的微分(即误差的变化率)成正比例关系。自动控制系统在克服误差的调节过程中可能会出现振荡甚至失稳。其原因是由于存在有较大惯性环节或有纯滞后环节,具有抑制误差的作用,其变化总是落后于误差的变化。微分作用使抑制误差作用的变化“超前”,预测误差变化的趋势,能够提前施加控制作用,从而避免了被控量的严重超调。微分控制一般不单独使用,而是采用比例微分或比例微分积分形式。微分控制点的缺点是容易放大高频噪声,降低系统的信噪比,从而使系统抑制干扰的能力下降。

在PID控制的各种形式中,使用最多的是P控制、PI控制和PID控制。P控制适用于对控制对象比较容易控制且对性能要求不高的场合;当对控制要求较高,且系统的纯滞后不是很严重,可以采用PI控制;当被控系统具有比较大的纯滞后时,一般需要增加微分环节;当被控对象的纯滞后非常严重,与其时间常数相近时,常规的PID算法已经无能为力,这时需要使用智能控制等更为先进的算法。

尽管PID控制器在控制非线性、时变、耦合及参数和结构不确定的复杂过程时,性能不是太好,但是其具有简单易懂、使用中不需精确的系统模型、参数整定方便等优点,70多年以来,它一直是应用最广泛的工业控制器,也是控制系统设计中的首选控制器。

6-3 何谓积分饱和?它是怎样引起的?具体说明防止积分饱和的方法。

⑴积分饱和问题的产生

在自动控制系统中,在一些情况下会发生偏差突然增大的情况,如负载的突变、给定值得突变等都会引起偏差突变。在这种情况下,根据位置型PID计算公式(6-11)计算出的偏差将激剧增大或减小,以致将会大大超过的限制范围umax(或umin)。.但是此时的实际控制量只能限制在umax(或umin)。

图6-9 位置型PID算法的积分饱和

以输出达到最大限制条件umax下的情况为例,根据PID计算公式计算出的控制量输出如图6-9中曲线a所示,已经超过umax的限制范围,实际实施的控制量只能如曲线b所示保持在umax。此时,在控制量作用下系统输出y(k)虽然不断上升,但由于控制量受到限制,其增加速度减慢,偏差e(k)将比正常情况下持续更长的时间保持在正值,致使式(6-11)中的积分项有较大的积累值。

⑵遇限消弱积分法

遇限消弱积分法的基本思想是:一旦控制量进入饱和区,将只执行消弱积分的运算而不执行增大积分的运算。具体地说,在计算控制量u(k)值时,首先判断前一采样时刻的控制量u(k-1)是否已超过限制范围,如果已超过,那么将根据偏差的符号,判断系统的输出是否已进入超调区域,由此决定是否将相应偏差计入积分项,如图6-10所示。其算法程序流程图如图6-11所示。

图6-10  遇限消弱积分法克服积分饱和示意图图6-11遇限消弱积分法程序流程图

⑶有效偏差法

积分饱和现象产生问题的原因是当控制量进入饱和区后,按照实际偏差计算得到的控制量与实际施加的控制量不一致。当用式(6-11)的位置型PID算式算出的控制量超出限制范围时,控制量实际上只能取边界值,即u(k)=umax   或 u(k)=umin。

有效偏差法是将相当于这一控制量的偏差值作为有效偏差值进行积分,而不是按照实际偏差进行积分,因为按照实际偏差计算出来的控制量并没有得到执行。如果实际的控制量为u(k)=u(umax或umin),那么有效偏差可由式(6-15)逆推得到

                            (6-19)

算法程序流程图如图6-12所示。

图6-12 有效偏差法程序流程图

⑷积分分离法

解决积分饱和问题的关键是不能使积分项累积过大。前面介绍的遇限消弱积分法在一开始进行积分,当控制量输出进入限制范围之内停止积分,以防止积分项累积过大。积分分离法采用了另外的思路,积分与否不是由控制量输出决定的,而是由偏差大小决定的。当偏差比较大时为了防止产生过大的积分项不进行积分,当偏差小于某个阈值时才进行积分来消除稳态偏差。这样,当偏差较大时,算法变成PD控制;偏差较小时,算法为PID控制。

如果系统输入设定值为r(k),被控量输出为y(k),偏差阈值为em,则积分分离法的控制的算式为

       (6-20)

积分分离法程序流程图如图6-13所示

如图6-14所示为采用和不采用积分分离法的控制曲线。比较两条曲线的控制效果可知,使用积分分离方法后,既保持了积分的作用,又显著地降低了被控变量的超调量和过渡过程时间,使控制系统的性能得到了较大的改善。

图6-13  积分分离法程序流程图    图 6-14  积分分离法控制过程

⑸变速积分法

解决积分饱和的另外一个思路是采用变速积分法。在理想的PID调节算式中,积分系数是常数,所以在整个调节过程中,积分速度保持不变。通过前面的学习已经知道,在位置型PID控制算法中之所以会产生积分饱和,其根本原因是在系统偏差比较大的时候的积分项的过分积累。从防止积分饱和的角度来看,降低积分速度,削弱积分作用是有利的;消除静态偏差的角度来看,提高积分速度,增强积分作用是有利的。

从消除静态偏差和防止积分饱和两方面来考虑,根据偏差大小来改变积分速度是一种可行的选择。当系统偏差比较大时,逐渐降低积分速度,防止出现积分饱和;当系统偏差比较小时,加强积分作用以消除静态偏差。这就是变速积分的基本思想。

变速积分将式(6-11)中的乘以与偏差相关的系数,当增大时,减小,反之则增大。当得到某个时刻的偏差数据后,用乘以作为累加的误差项,即将式(6-11)变为

                                       (6-21)

实用中,经常将取为如图6-15所示的关于的线性函数

             (6-22)

图6-15  变速积分系数与偏差的关系

从式(6-22)中可以看出,的数值在0~1之间变化,当偏差的绝对值大于a+b后,=0,积分项不再进行累加;当偏差的绝对值介于a和a+b之间,随偏差的减小而增大,即积分项累加速度随偏差的减小而加快;当偏差小于a以后,累加速度达到最大值1,此时算法变为普通的PID算式。

从式(6-22)可以看出,如果将a点和a+b点合为一点,则变速积分法变为积分分离法,因此可以将积分分离法看作变速积分法的一个特例。积分分离法对积分项采用“开关”控制,而变速积分则根据误差的大小改变积分项速度。因而,后者调节品质大为提高,是一种新型的PID控制。

6-4 什么是不完全微分的PID控制?有何作用?

在PID控制中,微分作用能够起到超前控制的作用,有利于提高闭环系统的稳定性。前面所讨论的PID控制中,微分环节都是采用理想微分。但是,理想微分容易引入高频干扰,过大的微分作用会产生高频振荡,另外理想微分环节是物理上一个不可实现的环节,实际的PID控制器都不是采用理想微分。

虽然在数字PID控制中,微分项的实现是没有问题的,但是如果采用式(6-15)标准PID控制算式,当有阶跃信号输入时,在阶跃信号加入的下一时刻,由于微分项输出急剧增加,会引起输出产生很大的变化,可能会超过调节器件的饱和值,这种现象有时被称为“微分饱和”。微分饱和的存在,使微分项的实际输出不能达到其期望输出。而在阶跃信号加入的下一时刻,由于此时偏差突变消失,微分项输出几乎为零,导致调节品质下降。为了解决这一问题,人们提出了许多解决方法,如不完全微分的PID算法、微分先行PID算法等。

⑴不完全微分的PID算法

在实际的PID控制器中,都是采用式(6-23)所示的不完全微分或其他类似的传递函数的形式

                      (6-23)

式中:E(s)为偏差信号的拉氏变换形式;U(s)是控制量输出信号的拉氏变换形式;、和分别为实际PID控制器的比例系数、积分时间和微分时间;为微分增益,一般取值为5~20之间。

为了得到式(6-23)所对应的数字PID形式,将其分成比例积分和微分两部分

其中,,

不难得出,UPI(s)的离散化算式为

                        (6-24)

UD(s)的离散化算式较复杂,首先将其整理为

                        (6-25)

对式(6-25)进行拉氏反变换,得到微分方程式

                      (6-26)

设采样周期为T,用差分代替微分,将式(6-26)所示的微分方程离散化

整理,得

              (6-27)

其中,

将式(6-24)和式(6-27)合并,得到不完全微分的算式,即

  (6-28)

与理想的PID算式相比,式(6-27)多出一项(k-1)采样时刻的微分项的输出。与普通PID控制算法一样,不完全微分PID控制也有增量式算法,即根据式(6-28)递推得到(k-1)采样时刻的控制量的输出,然后与式(6-28)相减得到。具体公式读者可自行推导出。

图6-16所示为在单位阶跃信号作用下,理想微分PID控制算法与不完全微分PID控制算法的输出特性。可以看出,完全微分算法对于阶跃信号只是在采样的第一个周期产生很大的微分输出信号,在下一个时刻急剧下降为零,微分作用的调节效果大打折扣。另外,控制量的急剧变化也很容易引起系统振荡。在不完全微分算法中,控制算法输出的微分作用能在各个周期里按照偏差变化的趋势,均匀地输出,调节器的输出十分近似于理想的微分调节器,真正起到了微分作用,改善了系统的性能。

尽管不完全微分PID较之普通PID的算法复杂,但是,由于其良好的控制特性,因此使用越来越广泛,越来越受到重视。

6-5 什么是微分先行的PID控制?有何作用?

⑵微分先行PID算法

微分先行的PID调节器是另一种解决微分饱和问题的思路,其实质是将测量值先行进行微分计算,它可以减少测量信号的滞后,有利于提高调节品质。微分先行调节器结构如图6-17所示,前向通道采用PI控制规律,而将微分作用移到反馈回路上去。

在微分先行的PID控制器中,微分作用直接对被控量进行微分,对被控量的变化速度进行运算。由于对给定值无微分作用,它以避免升降给定值时所引起的超调量过大,阀门动作过分剧烈振荡。因此,在给定值变化频繁的情况下,优先选择微分先行控制方案。

(a)完全微分式  (b)不完全微分式

图6-16  完全微分与不完全微分PID控制算法的输出特性

图6-17  微分先行PID控制器结构

6-6 什么是带不灵敏区的PID控制?有何作用?

⒊带不灵敏区的PID控制

在一些计算机控制系统中,不希望控制机构动作过于频繁,一方面是由于频繁动作可能会引起振荡,另一方面是频繁动作会缩短控制机构的使用寿命。在这种情况下,可以采用带不灵敏区的PID控制算式。

带不灵敏区的PID控制算式为

                              (6-29)

式中:B为不灵敏区,当偏差小于B时削弱控制作用;K为不灵敏区增益,其数值可为0,0.25,0.5,1等,当K为0时,在不灵敏区完全不动作,当K为1时,算法变成了普通的PID控制。带不灵敏区的PID控制系统实际上是一个非线性控制系统,即当偏差绝对值取时,其控制信号输出为,当时,则控制信号以普通的PID运算结果输出。

图6-18所示为带不灵敏区的PID控制动作特性。不灵敏区的宽度B是一个可调的参数,其具体数值可根据实际控制对象的要求确定,如果B值太小,使调节动作过于频繁,不能够达到不灵敏区的目的,如果B值取得太大,则系统控制增益太小,会使系统的控制性能恶化。

带不灵敏区的PID控制计算程序流程如图6-19所示。

图6-18  带不灵敏区的PID控制动作特性         图6-19  带不灵敏区的PID算法流程图

6-7 说明消除积分不灵敏区的PID控制算法。

⒋消除积分不灵敏区的PID控制算法

在数字PID控制算法增量式中的积分项输出为

             (6-30)

当计算机的运算字长较短时,如果采样周期T比较小,而积分时间比较长,则会使的值小于计算机字长精度,此时就会被看成“零”而丢掉,积分控制作用就会消失,把这种情况称为积分不灵敏区,将影响积分消除静差的作用。

例如,某温度控制系统的温度范围时0~1275℃,采样8位的A/D转换器,计算机计算字长为8位定点数。采用数字PID控制算法,设,,。当偏差值e(k)=50℃时,按照式(3-29)可得PID增量式的积分作用为

这说明当偏差值小于50℃时,积分作用小于1,计算机会把它当作“0”丢掉,此时控制器就没有积分作用。只有偏差值达到50℃时,控制器中的积分项才会起作用,这样势必会使系统产生残差。

为了消除这种积分不灵敏区,除了增加A/D转换器的位数,加长计算机字长,提高运算精度外,还可以将小于输出精度的积分项累加起来,而不将其丢掉。即

                   (6-31)

当累加值大于输出精度时,才输出,同时对累加单元进行清零。

6-8 对PID控制器参数整定的目的是什么?

生产过程控制系统大多数是定值控制系统,对一个控制品质较好的系统来说,一般要求控制过程具有较大的衰减比、超调量小、过渡时间越短越好、没有静差、振荡小。这样的过渡过程为典型最佳调节过程,但是实际上难以同时满足上述诸方面的要求,因此在确定最佳调节过程时,通常以照顾主要矛盾为主而兼顾其他指标。

为了使PID控制系统达到最佳调节过程,就要选择适当的控制规律并选择合适的比例、积分、微分参数。控制质量的好坏主要取决于选择的参数是否合理。参数的选择过程通常称为参数的整定。数字PID调节器与模拟PID调节器相比,除了要选择比例系数KP、积分时间TI和微分时间TD之外,还有一个重要的参数——采样周期T需要很好的选择。合理的选择采样周期T,也是数字控制系统的关键问题之一。一般来讲,在数字PID控制中采样周期比对象的时间常数小得多,所以是一个准连续控制,一般仍袭用连续调节器的参数整定方法,并作适当调整。

在选择数字PID参数之前,必须首先应该确定控制器结构。对允许有静差的系统,可以适当选择P或PD控制器,使稳态误差在允许的范围内。对必须消除稳态误差的系统,应选择包含积分控制的PI或PID控制器。一般来说,PI、PID和P控制器应用较多。对于有滞后的对象,往往都加入微分控制。

6-9 简述确定PID控制器采样周期的方法。

⒈确定采样周期T

采样周期T是计算机控制系统设计者要精心选择的重要参数,系统的性能与采样周期的选择有密切关系。由香农(Shannon)采样定理可知,只要采样频率大于被测量信号频谱的上限两倍,系统可真实地恢复出原来的连续信号。

从理论上讲,采样周期越短,采样频率越高,采样信号相对于原始信号失真越小,数字PID调节器更接近于模拟PID调节器。但从控制器本身而言,则并不是采样周期越短越好。一方面,采样周期越短,对控制器的工作速度要求越高,增加了控制器的成本;另一方面,PID运算依靠偏差进行计算,当采样周期太小时,偏差信号也会过小,在一些定点运算的控制器中,当偏差小于字长时可能会丢失,此时计算机将会失去调节作用;从执行元件的要求来看,有时要求输入控制信号保持一定的宽度,采样周期也不能过小。因此,在选择采样周期T时必须对各方面问题综合考虑,应在满足控制系统的性能要求的条件下,尽可能地选择低的采样速率。

采样周期的选择方法有两种,一种是计算法,一种是经验法。计算法是根据被控对象的数学模型确定计算采样周期,由于计算比较复杂,特别是被控对象各环节的时间常数难以确定,所以即使计算出来也是非常近似的,因此工程上很少使用。

工程上应用较多的是经验法。所谓经验法实际上是一种试凑法。首先,根据人们在工作实践中积累的经验以及被控对象的特点、参数,先粗选一个采样周期T;然后,将采样周期T送入计算机控制系统进行试验,根据对被控对象的实际控制效果,反复修改T,直到满意为止。对常用对象,推荐使用的采样周期T如表6-1所示。注意:表中所列的采样周期T仅供参考,实际的采样周期需要经过现场调试后确定。与采样周期密切相关的一个概念是控制度。数字PID控制算法与模拟PID控制器相比,有不少优点,如:数字PID算法中比例、积分和微分作用是相互独立的,可以分别整定,没有模拟控制器中参数间的关联问题;用计算机实施时,积分时间和微分时间可以在更大的范围内选择,没有模拟控制器中的元件限制;微分作用和积分作用的改进灵活多变。

表6-1 采样周期的经验数据

被测参数

采样周期(s)

备   注

流量

1~5

优先选用1~2s

压力

3~10

优先选用6~8s

液位

6~8

温度

15~20

或纯滞后时间,串级系统:T副环=~T主环

成分

15~20

但是,人们在实践中也发现,如果采用等效的PID参数,数字PID控制器的控制品质往往比不上模拟PID控制器。其原因分析如图6-20所示。曲线1所示为模拟PID控制时控制器的输出,曲线2所示的折线为同样偏差和等效PID参数条件下数字PID控制器的输出。将曲线2用通过各线段中点的连线近似,可以看出,它比模拟PID控制的输出要延时一段时间。也就是说,当

采用数字式PID控制算法时,等效于在控制回路中串联了一个的时滞环节,这自然会使系统的控制品质变差。

图6-20  模拟与数字PID控制输出比较

所谓控制度,就是以模拟调节器为基准,将数字调节器的控制效果与模拟调节器的控制效果相比较,其评价函数通常采用(误差平方积分)表示。

控制度=            (6-32)

式(6-32)中的下标DDC和ANA分别表示数字和模拟控制器,min表示经过

参数最优整定而达到的误差平方积分值。一般应使控制度不大于1.2,为此通常选择

式中:Tp为控制系统的工作周期,一般取Ts≈0.1 Tp

确定好PID控制器的结构以后,就要选择控制器的参数,也就是进行PID控制器的参数整定。PID控制器参数整定是指在控制器的形式已经确定的情况下,通过调整控制器参数,达到要求的控制目标。模拟PID控制器的参数整定是按照控制性能指标要求,决定调节器的参数KP、Ti、Td;而数字PID调节器参数的整定,除了需要确定KP、Ti、Td外,还需要确定系统的采样周期T。

6-10简述PID控制器参数整定的方法。

⒉PID参数整定方法

PID参数整定方法可以分为理论计算法和工程整定法两种。理论计算法要求必须知道各个环节的传递函数,计算比较复杂,实际系统很难满足要求,工程上一般不采用此方法。工程整定法是基于实验和经验的方法,简单易行,是工程实际经常采用的方法。

⑴扩充临界比例度法

比例度δ和比例系数KP有如下关系:

表6-2给出了参数整定的方法

表6-2  PID参数的整定

控制度

控制算法

T

δK

TI

TD

1.05

PI

0.03 TK

0.53δK

0.88TK

-

PID

0.014 TK

0.63δK

0.49TK

0.14TK

1.2

PI

0.05 TK

0.49δK

0.91TK

-

PID

0.043 TK

0.47δK

0.47TK

0.16TK

①选择一个足够短的采样周期Tmin,具体地说就是采样周期选择为对象纯滞后时间的1/10以下。

②将上述的采样周期Tmin输入到微机,并只用比例控制,使系统闭环工作。逐渐缩小比例度,即逐渐加大比例系数,直到系统产生等幅振荡。记下使系统发生振荡的临界比例度δK及系统的临界振荡周期TK如图6-21所示。

图6-21扩充临界比例度试验曲线

③选择控制度。所谓控制度,就是以模拟调节器为基准,将DDC控制效果与模拟调节器的控制效果相比较,控制效果的评价函数通常用表示。

控制度=

④选择一定的控制度(通常认为控制度为1~1.05时数字控制与模拟控制效果相当)以后,查表6-2,就求得了T、KP、TI、TD的值。

⑵扩充响应曲线法

在模拟控制系统中,可用响应曲线法代替临界比例度法,在DDC中也可以用扩充响应曲线法代替扩充临界比例度法。用扩充响应曲线法整定T和KP、TI、TD的步骤如下:

①数字调节器不接入控制系统,让系统处于手动操作状态,将被调量调节到给定值附近,并使之稳定下来,此时,突然改变手动值,给对象一个阶跃输入信号值;

②用仪表记录被调量在阶跃输入下的整个变化过程曲线,如图6-22所示。

图6-22 被控对象飞升曲线

③在曲线最大斜率处作切线,求得滞后时间θ,对象时间常数,以及它们的比值。

④由求得的θ和以及,查表6-3即可得数字调节器KP、TI、TD以及采样周期T。

⑶归一参数整定法

Roberts,P.D.在1974年提出了一种简化扩充临界比例度整定法。由于该方法只需整定一个参数即可,故称其为归一参数整定法。

表6-3  扩充响应曲线法整定参数表

控制度

控制规律

T

KP

TI

TD

1.05

PI

0.1θ

0.84τ/θ

0.34θ

-

PID

0.05θ

1.15τ/θ

2.0θ

0.45θ

1.2

PI

0.2θ

0.78τ/θ

3.6θ

-

PID

0.16θ

1.0τ/θ

1.0θ

0.55θ

已知增量型PID控制的公式为

如令T=0.1 TK;TI=0.5TK,TD=0.125TK。

式中TK——纯比例作用下的临界振荡周期。

这样,整个问题便简化为只要整定一个参数KP。改变KP,观察控制效果,直到满意为止。该法为实现简易的自整定控制带来方便。

⑷优选法

由于实际生产过程错综复杂,参数千变万化,因此,如何确定被控对象的动态特性并非容易之事。有时即使能找出来,不仅计算麻烦,工作量大,而且结果与实际相差较远。因此,目前应用最多的还是经验法。即根据具体的调节规律,不同调节对象的特征,经过闭环试验,反复凑试,找出最佳调节参数。这里介绍的也是经验法的一种,即用优选法对自动调节参数进行整定的方法。

其具体做法是根据经验,先把其它参数固定,然后用0.618法对其中某一参数进行优选,待选出最佳参数后,再换另一个参数进行优选,直到把所有的参数优选完毕为止。最后,根据T、KP、TI、TD诸参数优选的结果选取一组最佳值即可。

⑸凑试法

增大比例系数KP一般将加快系统的响应,在有静差的情况下有利于减小静差。但过大的比例系数会使系统有较大的超调,并产生振荡,使稳定性变坏。

增大积分时间参数TI有利于减小超调,减小振荡,使系统更加稳定,但系统静差的消除将随之减慢。

增大微分时间参数TD也有利于加快系统响应,使超调量减少,稳定性增加,但系统对扰动的抑制能力减弱,对扰动有敏感的响应。

在凑试时,可参考以上参数对控制过程的影响趋势,对参数实行“先比例,后积分,再微分”的整定步骤。

①首先只整定比例部分。即将比例系数由小到大,并观察相应的系统响应,直到得到反应快,超调小的响应曲线。若系统没有静差或者静差已小到允许的范围,并且响应曲线已属满意,则只需用比例调节器即可,最优比例系数可由此确定。

②若在比例调节的基础上系统的静差不能满足要求,则须加入积分环节。整定时首先置积分时间TI为一较大值,并将经第一步整定得到的比例系数略为缩小(如缩小为原值的0.8倍),然后减小积分时间,使在保持系统良好动态性能的情况下,静差得到消除。在此过程中,可根据响应曲线的好坏反复改变比例系数与积分时间以期得到满意的控制过程与整定参数。

③若使用比例积分调节器消除了静差,但动态过程经反复调整仍不能满意,则可加入微分环节,构成比例积分微分调节器。在整定时,可先置微分时间TD为零。在前两步整定的基础上,增大TD,同时相应地改变比例系数和积分时间,逐步凑试,以获得满意的调节效果和控制参数。

试凑法整定PID参数的步骤可总结如下:

参数整定找最佳,从小到大顺序查。

先是比例后积分,最后再把微分加。

曲线振荡很频繁,比例度盘要放大。

曲线漂浮绕大湾,比例度盘往小扳。

曲线偏离回复慢,积分时间往下降。

曲线波动周期长,积分时间再加长。

曲线振荡频率快,先把微分降下来。

动差大来波动慢,微分时间应加长。

理想曲线两个波,前高后低4比1。

一看二调多分析,调节质量不会低。

⑹PID参数自整定方法

前面给出了实际工程中几种常用的PID控制器参数整定的方法,可以看出,参数整定工作是一件比较繁琐的工作。另外,控制器的参数与系统所处的稳态工况有关,当被控对象因某种原因发生变化时,原来整定好的参数就不能满足控制系统的要求。因此,需要根据变化的工况及时重新整定参数。随着计算机在工业过程控制中的广泛应用,人们希望在计算机控制系统中尽量减少人工参与,实现PID参数的自整定。

对于PID参数自整定方法,按工作机理划分,可以分为基于模型的自整定方法和基于规则的自整定方法。按自动程度划分,可以分为全自动和半自动整定。按其他的标准也可以分为常规方法和智能方法、线性和非线性方法、单变量和多变量方法等。

基于模型的自整定方法包括非参数模型方法和参数模型方法。基于参数模型的自整定方法是利用辨识算法得出对象的数学模型,在此基础上用整定算法对控制器参数进行整定。参数模型辨识方法首先将过程假定为一种模型结构,再确定模型的参数。如果模型结构无法完全确定,则需要使用一些结构辨识方法首先确定模型结构(如模型的阶次)。参数模型辨识使用的方法有最小二乘法、梯度法、极大似然法。非参数模型辨识方法通过简单的调节试验获得过程的阶跃响应或频率响应曲线,再由响应曲线的特征辨识过程的非参数模型。这种自整定方法需要复杂的试验,并且对被控过程的模型有较强的限制,因而对不能或难以用精确数学模型描述的复杂过程难以奏效。

基于规则的自整定方法相当于非模型方法,无需获得过程模型,整定的规则类似有经验的操作者的手动整定。基于规则的自整定过程与基于模型的方法一样,使用阶跃响应、设定值响应或负载扰动等信息,观测被控过程的特性,若被控量偏离设定值,则基于规则整定控制器参数。为了获得一个基于规则的自整定过程,需对响应特性进行量化。通常使用的量是描述控制系统稳定性的超调量和衰减比,以及用来描述控制回路响应速度的时间常数和振荡频率。获得决定不同控制器参数应该减少或增加的相应的规则较容易,但确定相应的量较困难。因此,基于规则的整定方法更适于连续自适应控制。与基于模型的整定方法相比,基于规则的整定方法对于处理负载扰动和处理设定值变化的方法相同,而前者比较适于设定值变化。

随着PID控制技术的不断发展,人们提出了各种各样的参数自整定方法,这里只作简单介绍,详细内容可查阅相关文献。

第七章

7-1    计算机控制系统为何会受到干扰?干扰的来源有哪些?

计算机控制系统一般都安装在现场,与之相连的被控对象及待测参数往往遍布整个控制区域。这就使得各种强烈的干扰源直接或间接地影响计算机控制系统的工作。由计算机组成的工业控制系统,虽具有较强的抗干扰能力,但环境干扰对它的影响仍然是值得重视的问题。

干扰的主要来源是:电网的波动、大型用电设备(如天车、电炉、大电动机、电焊机等)的启停,高压设备和开关的电磁辐射、传输电缆等。

7-2    说明干扰的危害和抗干扰的途径。

所有这些干扰都会给计算机控制系统的正常工作带来危害如图7-1所示。这些干扰轻则给系统检测数据带来误差,重则将使整个系统无法工作。因此,工业过程控制系统的抗干扰问题一直是计算机控制系统设计的重要课题,也是一个令人头痛的问题。由于干扰源种类繁多,而且难于测试和判断,给计算机控制系统的现场工作带来极大的麻烦。因此,如何找出每个系统的干扰源,并对症下药地解决,确实不是一件容易的事。

图7-1  计算机控制系统的干扰源

解决计算机控制系统的抗干扰问题应从两方面考虑,一是提高计算机控制系统本身的抗干扰能力,这一点在进行系统设计时就应给予足够的重视。二是找出强干扰源,采取相应的对策,使其不能串入系统,这主要是在现场调试中进行。抗干扰的具体措施主要从硬件、软件两方面进行。在这一节里先讲硬件抗干扰措施,再讲软件抗干扰措施。

7-3    电源为何需要抗干扰?应采用哪些具体措施?

1.电源抗干扰措施

控制设备中很多干扰都来自电源系统。现在的计算机控制系统,大都使用市电(220V,50Hz)。在工业现场中,由于生产负荷的变化,如大电动机的启、停,强电继电器的通、断等,往往造成电源电压的波动,严重时可直接影响计算机的正常工作。因此,必须对交流供电采取一些措施,以抑制由电源引起的干扰。

抑制交流电源的干扰,除了与大的用电设备分开供电外,还经常采用稳压、隔离、滤波和屏蔽等措施,可根据电网的质量及设备要求,采用适当的措施。

①图7-2所示为采用滤波和屏蔽的供电电源,其具体做法为,在交流220V进线处,设置一个低通滤波器,它对50Hz的市电影响很小,而对于频率很高的干扰波具有很强的抑制力。滤波器要加屏蔽外壳,并使其接地良好;进线端与出线端要求严格分开,以防止感应和辐射耦合。电源变压器的初级绕组和次级绕组需分别加屏蔽层,初、次级间再加屏蔽层,且初级的屏蔽层接交流电网的零线,次级屏蔽层和初、次级间的屏蔽层接至直流地端。

图7-2  对交流电源的滤波和屏蔽

②对于要求较高的系统,可在滤波和屏蔽之前,采取交流稳压及隔离措施,将交流电网的地与设备地隔离开来,如图7-3所示。

图7-3  对交流电源的稳压、隔离、滤波和屏蔽

③采用串联开关式稳压电源。串联型开关式稳压电源是使电路中的串联调整管工作于开关状态,即调整管主要工作在饱和导通和截止两种状态。由于管子饱和导通时的管压降和截止时流经管子的电流都很小,管耗主要发生在状态转换过程中,所以,效率可高达(80~90)%。因此,这种电源具有体积小、重量轻、隔离性好,以及抗干扰能力强的优点,常被计算机控制系统采用。另外还有一种开关型电源,它是先把直流电压经过调制、整流、而后再稳压,因而具有很强的抗干扰的能力,在智能化仪器和计算机控制系统中得到广泛的应用。

④采用集成电路块单独供电。近年来出现的各种规格的三端集成稳压电路块,如7805、7812、7824、7820、7905等,比起单一的稳压方式电路有许多优点。它实际上是一种多级稳压电路,即把稳压器造成的故障分散,不致由于稳压器造成的故障使整个系统遭到破坏。同时,它加大了稳压器的散热面积,有利于系统的散热,从而使系统更加稳定、可靠。

⑤采用高抗干扰电压电源和干扰抑制器等,如利用反激变换器的开关稳压电源,采用频谱均衡法制成的抗干扰抑制器等,目前已有成品出售。

⑥对于要求更高的控制系统,如大型计算机控制系统,可以考虑采用不间断电断(UPS)进行供电。但由于UPS电源造价比较高,所以在一般中小型系统中不宜采用。

7-4    计算机控制系统中的接地种类有哪些?接地需要考虑的原则是什么?

2、接地问题

在计算机控制系统中,接地问题是一个非常重要的问题,接地问题处理得正确与否,将直接影响系统的正常工作。这里包含两方面的内容,一个是接地点正确与否,另一个是接地是否牢固。前者用来防止控制系统各部分的串扰,后者尽量使各接地点处于零阻抗,以防止接地线上的电压降。

在计算机控制系统及智能化仪器中,地线的种类繁多,归纳起来大致有如下几种:

①数字地,也叫逻辑地。它是计算机控制系统和智能化仪器中数字电路的零电位。

②模拟地,它是放大器。采样/保持器以及A/D转换器输入信号的零电位。

③信号地,传感器的地。

④功率地,指大电流网络部件的零电位。

⑤交流地,交流50Hz电源的地线。这种地是噪声地。

⑥直流地,作为直线电源的地线。

⑦屏蔽地,为防止静电感应和磁电感应而设计的,有时也称机壳地。

不同的地线有不同的处理方法,设计安装时一定要特别注意,接地的原则是:

(1)一点接地和多点接地的应用   从电子技术常识中可知,在低频电路中,布线和元件间的寄生电感影响不大,因而常采用一点接地,以减少地线造成的地环路。

在高频电路中布线和元件间的寄生电感及分布电容将造成各接地线间的耦合,影响比较突出,故采用多点接地。当频率处于(1~10)MHz时,如采用一点接地,其地线长度不应超过波长的1/20;否则,应采用多点接地。

(2)数字地和模拟地的连接原则  数字地主要指TTL或CMOS芯片、I/O接口芯片、CPU芯片等数字逻辑电路的地端以及A/D、D/A、转换器的数字地。而模拟地则是指放大器、采样/保持器和A/D、D/A中模拟信号的接地端。在计算机控制系统中,数字地和模拟地必须分别接地。即使是一个芯片有两种地(如A/D、D/A或S/H)也要分别进行接地,然后仅在一点处把两种地连起来,否则,数字回路通过模拟电路的地线在返回到数字电源,将会对模拟信号产生影响。其连接线路如图7-4所示。

图7-4  计算机数据采集系统的接地

图7-4中A/D转换器ADC80芯片上的端子15、10之间的连线,即为模拟地和数字地之间的连线。

(3)印刷电路板的地线分布问题   为防止系统内部地线的干扰问题,在制作印制电路板时应遵循下述原则:

①TTL、CMOS器件的地线要呈辐射网状,避免环形;

②印制电路板上的地线要根据通过电流的情况决定其宽度,最好不小于3mm;

③旁路电容的地线不要太长;

④功率地通过电流较大,地线应较宽,且必须与小线号地线分开。

(4)信号地的连接 这种信号地一般不浮空,接地电阻应小于4Ω,在一点接大地。

(a)来自信号源内部      (b)来自外部引线

图7-5  串模干扰示意图

7-5    模拟量输入通道主要会受到何种干扰?应采用哪些抑制方法?

3.模拟量输入通道的抗干扰措施

模拟量输入通道的干扰主要有串模干扰和共模干扰两种,下边分别介绍两种干扰的抑制方法。

(1)串模干扰的抑制  所谓串模干扰是指叠加到测量信号上的干扰噪声,这种干扰信号一般均为变化较快的杂乱交变信号。干扰可能来自传感器信号源的内部,如图7-5(a)所示,也可能产生于外部引线,如图7-5(b)所示。

消除串模干扰的方法有如下几种。

①在输入回路中接入模拟滤波器。如果干扰信号频率比被测信号频率高,可采用低通滤波器;如果干扰频率比被测信号频率低,则采用高通滤波器。当串模干扰信号落在被测信号频率的两侧时,需采用带通滤波器。

②当尖锋型串模干扰为主要干扰时,使用双积分式A/D转换器,或在软件上采用判断滤波的方法加以消除。

③若串模干扰和被测信号的频率相当,则很难用滤波的办法消除。此时,必须采用其它措施,消除干扰源。通常可在信号源到计算机之间选用带屏蔽层的双绞线或同轴电缆,并确保接地正确、可靠。

④当传感器距离控制室较远时,可采用(4~20)mA的电流传输代替电压传输。在进入A/D转换器时,再并联一个250Ω的电阻,使电流转换成(1~5)V的直流电压,如图7-6所示。

图7-6  电流传输线路原理图

(2)共模干扰的抑制  所谓共模干扰是指A/D转换器的两个输入端上公有的干扰电压,它可以是直流,也可以是交流。共模电压主要是由于被测信号端与主机的地线之间存在着一定的电位差。如图7-7所示。

图7-7  共模干扰示意图

消除共模干扰的方法有如下几种。

①采用具有高共模抑制比的差动放大器、仪器用放大器、可编程放大器作为输入放大器。特别是后面两种放大器,由于它们具有输入阻抗高、零漂低、增益可调等优点,对抑制共模干扰有良好的效果,详见有关参考文献。

②传感器的输出信号不可避免地混杂着各种干扰信号,而这些干扰信号大都通过地回路、静电耦合以及电磁耦合进来的。为了消除这些干扰,在检测系统中除了将模拟信号先经过低通滤波器滤掉部分高频干扰外,还必须合理地处理接地问题,将放大器加上静电和电磁屏蔽并浮置起来。

能够完成上述任务的放大器叫隔离放大器,或叫隔离器,其输入和输出电路与电源没有直接的电路耦合。目前国外已经生产许多专用的隔离放大器,如227、288、289等。

典型的隔离放大电路,如图7-8所示。

图7-8  典型隔离放大器原理

从图7-8中可以看出,模拟量从V1端输入,通过电磁隔离器,把输出Vo和输入Vi隔离开(一般为隔离变压器),这样有较强的抗干扰能力。

③为了使共模电压减至最低,可以采用三线采样双层屏蔽浮空技术,如图7-9所示。

图7-9  采用三线采样双层屏蔽技术接线图

图中,利用双层屏蔽方法使输入信号的模拟地浮空。除此之外,再利用一个屏蔽盒将模拟量输入部分屏蔽起来。所谓三线采样,实际上就是将信号线与地线一同采样。实践证明,这种双层屏蔽浮空技术,可以很好地抑制共模干扰。由于传感器和机壳之间会引起共模干扰,因此A/D转换器的模拟地一般都采用浮空接地方式。

④以上介绍的三种方法都是从抑制模拟信号干扰出发的。由于计算机控制系统是一个模拟-数字混合系统,所以也可以采用数字隔离技术,它比图7-8所示的采用隔离放大器的方法既简单又便宜。由于光电耦合器具有很高的输入阻抗和输出绝缘电阻,抗干扰能力强,因此在计算机控制系统中得到了广泛的应用。采用这种隔离技术,不但可以使主机与输入通道进行隔离,而且还可以使主机与输出通道进行隔离,即构成所谓全浮空系统,如图7-10所示。

图7-10  模拟通道的数字隔离技术

图7-11  采用V/F变换器的光电隔离技术

⑤在图7-10所示的光电隔离技术中,由于每一位数字量都需要一个光电耦合器,因此使线路复杂,同时也增加了设备成本,特别是A/D转换位数多时尤其是这样。为此,可以利用V/F变换器将模拟量电压转换成频率信号,然后再经光电耦合器送到计算机的定时/计数器,这样只需要一个光电耦合器,从而大大简化了电路。其原理电路如图7-11所示。

⑥对于周围电磁干扰比较大的系统可以采用光导纤维进行传送,如图7-12所示。

图7-12  光导纤维传送系统

在图7-12中,用光导纤维作介质传送数字脉冲,传输过程中可以不受任何形式的电磁干扰。此外,光纤还具有很高的绝缘强度(200kV/m)和极低的损耗。因此,只要根据隔离电压和传输距离的需要,适当选用光纤长度就能达到令人满意的隔离效果。

7-6    传输线主要会受到何种干扰?应采用哪些具体措施?

4.传输线的抗干扰措施

在计算机控制系统中,要将现场被测参数的信号引到*处理机作相应处理,经计算机处理后的信号又要送到现场的执行机构中。另外,变送器及执行机构上都有电源,而且它们到主机的距离都比较长,如何布置这些信号线、逻辑控制线以及动力电源线,将是计算机控制系统安装调试中应当注意的问题。否则,由于电磁场的干扰,将会给系统造成严重的影响。下边介绍几种布线方法及应注意的问题。

(a)终端并联匹配                  (b)始端串联匹配

(c)终端并联隔直阻抗匹配             (d)终端按钳位二极管匹配

图7-13  传输线的阻抗匹配

①一定要把模拟信号线、数字线,以及电源线分开。尽量避免并行敷设,若无法分开时,要保持一定的距离(如20~30cm)。

②信号线尽量使用双绞线和屏蔽线,而且屏蔽线一定要把屏蔽层良好接地。

③信号线的敷设要尽量远离干扰源(如大动力设备,以及大变压器等),以防止电磁干扰。有条件的要单独穿管配线。

④对于长传输线,为了减少信号失真,要注意阻抗匹配。阻抗匹配常用的方法有:终端并联阻抗匹配,如图7-13(a)所示;始端串联匹配,如图7-13(b)所示;终端并联隔直特性阻抗匹配,如图7-13(c)所示;终端接钳位二极管匹配,如图7-13(d)所示。

在用长线传送信号时应注意:

(a)在输出端接长线后,近处不应再接其他负载,如图7-14所示;

图7-14  A门输出端不准接负载

(b)触发器输出需要加隔离门,如图7-15所示。

图7-15  带隔离门的传输系统

⑤在总线传输系统中,为了抑制干扰和把主机与现场隔离开,也可以采用光电隔离技术,把*处理机与较远的现场隔离开,两边不共地,抑制由于地环路所产生的干扰,如图7-16所示。

7-7    什么是软件抗干扰技术?采用软件抗干扰的前提条件是什么?

为了提高测控系统的可靠性,仅靠硬件抗干扰措施是不够的,需要进一步借助于软件措施来克服某些干扰。

软件抗干扰技术是当系统受干扰后使系统恢复正常运行或输入信号受干扰后去伪存真的一种辅助方法。因此,软件抗干扰是被动措施,而硬件抗干扰是主动措施。但由于软件设计灵活,节省硬件资源,所以,软件抗干扰技术越来越引起人们的重视。在计算机控制系统中,只要认真分析系统所处环境的干扰来源以及传播途径,采用硬件、软件相结合的抗干扰措施,就能保证测控系统长期稳定、可靠地运行。

采用软件抗干扰的最根本的前提条件是:系统中抗干扰软件不会因干扰而损坏。在单片机测控系统中,由于程序有一些重要常数都放置在ROM中,这就为软件抗干扰创造了良好的前提条件。因此,软件抗干扰的设置前提条件概括为:

(1)  在干扰作用下,计算机控制系统硬件部分不会受到任何损坏,或易损坏部分设置有监测状态可供查询。

(2)  程序区不会受干扰侵害。系统的程序及重要常数不会因干扰侵入而变化。对于单片机系统,程序及表格、常数均固化在ROM中,这一条件自然满足:而对于一些在RAM中运行用户应用程序的计算机控制系统,无法满足这一条件。当这种系统因干扰造成运行失常时,只能在干扰过后,重新向RAM区调入应用程序。

(3)  RAM区中的重要数据不被破坏,或虽被破坏可以重新建立。通过重新建立的数据,系统的重新运行不会出现不可允许的状态。例如,在一些控制系统中,RAM中的大部分内容是为了进行分析、比较而临时寄存的,即使有一些不允许丢失的数据也只占极少部分。这些数据被破坏后,往往只引起控制系统一个短期波动,在闭环反馈环节的迅速纠正下,控制系统能很快恢复正常,这种系统都能采用软件恢复。

软件抗干扰技术所研究的主要内容是:其一是采取软件的方法抑制叠加在模拟输入信号上噪声对数据采集结果的影响,如数字滤波器技术;其二是由于干扰而使运行程序发生混乱,导致程序乱飞或陷入死循环时,采取使程序纳入正规的措施,如软件冗余、软件陷阱、“看门狗”技术。这些方法可以用软件实现,也可以采用软件硬件相结合的方法实现。

7-8    在软件抗干扰中有哪几种对付程序“乱飞”的措施?各有何特点?

为了使“乱飞”程序在程序区迅速纳入正轨,应该多用单字节指令,并在关键地方人为地插入一些单字节指令NOP,或将有效单字节指令重写,称之为指令冗余。

⑴NOP的使用

可在双字节指令和3字节指令之后插入两个单字节NOP指令,这可保证其后的指令不被拆散。因为“乱飞”程序即使落到操作数上,由于两个空操作指令NOP的存在,不会将其后的指令当操作数执行,从而使程序纳入正轨。

对程序流向起决定作用的指令(如RET、RETI、ACALL、LCALL、LJMP、JZ、JNZ、JC、JNC、DJNZ等)和某些对系统工作状态有重要作用的指令(如SETB、EA等)之前插入两条NOP指令,可保证乱飞程序迅速纳入轨道,确保这些指令正确执行。

⑵重要指令冗余

对于程序流向起决定作用的指令(如RET、RETI 、ACALL、LCALL、LJMP、JZ、JNZ、JC、JNC等)和某些对系统工作状态有重要作用的指令(如SETB、EA等)的后面,可重复军事上这些指令,以确保这些指令的正确执行。

由以上可看出,采用冗余技术使程序计数器纳入正确轨道的条件是,跑飞的程序计数器必须指向程序运行区,并且必须执行到冗余指令。

7-9    何谓软件冗余技术?它包括哪些方法?

软件冗余技术

⒈指令冗余技术

MCS-51所有指令均不超过3个字节,且多为单字节指令。指令由操作码和操作数两部分组成,操作码指明CPU完成什么样的操作(如传送、算术运算、转移等),操作数是操作码的操作对象(如立即数、寄存器、存储器等)。单字节指令仅有操作码,隐含操作数;双字节指令第一个字节是操作码,第二个字节是操作数;3