计算机控制技术课程配套教材习题解答(第6、7、8章)

版权声明:本文为zhangrelay原创文章,有错请轻拍,转载请注明,谢谢... https://blog.csdn.net/ZhangRelay/article/details/52647778

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字节指令第一个字节为操作码,后两个字节为操作数。CPU取指令过程是先取操作码,后取操作数。如何区别某个数据是操作码还是操作数呢?这完全由取指令顺序决定。CPU复位后,首先取指令的操作码,而后顺序取出操作数。当一条完整指令执行完后,紧接着取下一条指令的操作码、操作数。这些操作时序完全由程序计数器PC控制。因此,一旦PC因干扰而出现错误,程序便脱离正常运行轨道,出现“乱飞”,出现操作数数值改变以及将操作数当作操作码的错误。当程序“乱飞”到某个单字节指令上时,便自己自动纳入正轨;当“乱飞”到某双字节指令上时,若恰恰在取指令时刻落到其操作数上,从而将操作数当作操作码,程序仍将出错;当程序“乱飞”到某个3字节指令上时,因为它们有两个操作数,误将其操作数当作操作码的出错机率更大。

为了使“乱飞”程序在程序区迅速纳入正轨,应该多用单字节指令,并在关键地方人为地插入一些单字节指令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-19是重复检测法的程序框图。图中为重复检测次数,为时间间隔,将相邻的两次结果进行比较,相等时对计数,不等时对计数。当重复次之后,对、结果进行判别,以确定输入信号的真伪。

图7-19  重复检测法流程

⑵重复输出法

开关量输出软件抗干扰设计,主要是采取重复输出的办法,这是一种提高输出接口抗干扰性能的有效措施。对于那些用锁存器输出的控制信号,这些措施很有必要。在允许的情况下,输出重复周期尽可能短些。当输出端口受到某种干扰而输出错误信号后,外部执行设备还来不及作出有效反应,正确的信息又输出了,这就可以及时地防止错误动作的发生。

在执行重复输出功能时,对于可编程接口芯片,工作方式控制字与输出状态字一并重复设置,使输出模块可靠地工作。

⑶指令复执技术

这种技术是重复执行已发现错误的指令,如故障是瞬时的,在指令复执期间,有可能不再出现,程序可继续执行。

所谓复执,就是程序中的每条指令都是一个重新启动点,一旦发现错误,就重新执行被错误破坏的现行指令。指令复执既可用编制程序来实现,也可用硬件控制来实现,基本的实现方法是:

①当发现错误时,能准确保留现行指令的地址,以便重新取出执行;

②现行指令使用的数据必须保留,以便重新取出执行时使用。

指令复执类似于程序中断,但又有所区别。类似的是二者都要保护现场;不同的是,程序中断时,机器一般没有故障,执行完当前指令后保留现场;但指令复执,不能让当前指令执行完,否则会保留错误结果,因此,在传送执行结果之前就停止执行现行指令,以保存上一条指令执行的结果,且程序计数器要后退一步。

指令复执的次数通常采用次数控制和时间控制两种方式,如在规定的复执次数或时间之内故障没有消失,称之复执失败。

⑷程序卷回技术

程序卷回不是某一条指令的重复执行,而是一小段程序的重复执行。为了实现卷回,也要保留现场。程序卷回的要点是:

①将程序分成一些小段,卷回时也要卷回一小段,不是卷回到程序起点。

②在第段之末,将当时各寄存器、程序计数器及其他有关内容移入内存,并将内存中被第段所更改的单元又在内存中另开辟一块区域保存起来。如在第段中不出问题,则将第段现场存档,并撤消第段所存内容。

③如在第段出现错误,就把第段的现场送给机器的有关部分,然后从第段起点开始重复执行第程序。

这种卷回方法可卷回若干次,直到故障排除或显示故障为止。

⑸延时避开法

在工业中,实际应用的计算机测控系统,有很多强干扰主要来自系统本身。例如,大型感性负载的通断,特别容易引起电源过电压、欠压、浪涌、下陷以及产生尖峰干扰等。这些干扰可通过电源耦合窜入计算机电路。虽然这些干扰危害严重,但往往是可预知的,在软件设计时可采取适当措施避开。当系统要接通或断开大功率负载时,使CPU暂停工作,待干扰过去以后再恢复工作,这比单纯在硬件上采取抗干扰措施要方便许多。

 

7-10     何谓软件陷阱?软件陷阱一般设置在程序的什么地方?

软件陷阱技术

当乱飞程序进入非程序区(如EPROM未使用的空间)或表格区时,采用冗余指令使程序入轨条件不满足,此时可以设计软件陷阱,拦截乱飞程序,将其迅速引向一个指定位置,在那里有一段专门对程序运行出错进行处理的程序。

⒈     软件陷阱

软件陷阱:就是用引导指令强行将捕获到的乱飞程序引向复位入口地址0000H,在此处将程序转向专门对程序出错进行处理的程序,使程序纳入正轨。软件陷阱可采用两种形式,如表7-1所列。

表7-1  软件陷阱形式

形式

软件陷阱形式

对应入口形式

形式之一

NOP

NOP

LJMP 0000H

0000H:LJMP  MAIN ;运行程序

形式之二

LJMP  0202H

LJMP  0000H

0000H:LJMP  MAIN ;运行程序

0202H::LJMP 0000H

形式之一的机器码为:0000020000;

形式之二的机器码为:020202020000。

根据乱飞程序落入陷阱区的位置不同,可选择执行空操作,转到0000H和直转0202H单元的形式之一,使程序纳入正轨,指定运动到预定位置。

⒉     软件陷阱的安排

   ⑴未使用的中断区

当未使用的中断因干扰而开放时,在对应的中断服务程序中设置软件陷阱,就能及时捕捉到错误的中断。在中断服务程序中要注意:返回指令用RETI,也可用LJMP。中断服务程序如下所列。

NOP

NOP

POP   direct1           ;将断点弹出堆栈区

POP   direct2     

LJMP  0000H           ;转到0000H处

中断服务程序也可为下列形式:

NOP

NOP

POP   direct1           ;将原先断点弹出

POP   direct2      

PUSH  00H            ;断点地址改为0000H

PUSH  00H

RETI

中断程序中direct1、direct2为主程序中非使用单元。

⑵未使用的EPROM空间

现在使用的EPROM一般为2764、27128等芯片,很少全部用完。这些非程序用区可用0000020000或020202020000数据填满。注意,最后一条填入数据应为020000。当乱飞程序进入此区后,便会迅速自动入轨。

⑶非EPROM芯片空间

单片机系统地址空间为64KB。一般说来,系统中除了EPROM芯片占用的地址空间外,还会余下大量空间。如系统仅选用了一片2764,其地址空间为8KB,那么将有56KB地址空间闲置。当程序计数器乱飞而落入这些空间时,读入数据将为FFH,这是“MOV R7,A”指令的机器码,将修改R7的内容。因此,当程序乱飞入非ERPOM芯片区后,不仅无法迅速入轨,而且破坏R7的内容。

图7-20中74LS08为四正与门。EPROM芯片地址空间为0000H~1FFFH,译码器74LS138中的Y0为其片选信号。空间2000H~FFFFH为非应用空间。当程序计数器落入2000H~FFFFH空间时,定有Y0为高电平。当取指令操作时,为低,从而引出中断。在中断服务程序中设置软件陷阱,可将乱飞的程序计数器迅速拉入正轨。

图7-20非EPROM区程序陷阱之一

在图7-21中,当程序计数器乱飞落入2000H~FFFFH空间时,74LS244选通,读入数据为020202H,这是一条转移指令,使程序计数器转入0202H入口,在主程序0202H设有出错处理程序。

图7-21  非EPROM区程序陷阱之一

⑷运行程序区

前面曾指出,乱飞的程序在用户程序内部跳转时可用指令冗余技术加以解决,也可以设置一些软件陷阱,更有效地抑制程序乱飞,使程序运行更加可靠。程序设计时常采用模块化设计,按照程序的要求一个模块、一个模块地执行。可以将陷阱指令组分散放置在用户程序各模块之间空余的单元里。在正常程序中不执行这些陷阱指令,保证用户程序运行。但当程序乱飞一旦落入这些陷阱区,马上将乱飞的程序拉到正确轨道。这个方法很有效,陷阱的多少一般依据用户程序大小而定,一般每1K字节有几个陷阱就够了。

⑸中断服务程序区

设用户主程序运行区间为ADD1~ADD2,并设定时器T0产生10ms定时中断。当程序乱飞落入ADD1~ADD2区间外,若在此用户程序区外发生了定时中断,可在中断服务程序中判定中断断点地址ADDX。若ADDX<ADD1或ADDX>ADD2,说明发生了程序乱飞,则应使程序返回到复位入口地址0000H,使乱飞程序纳入正轨。假设ADD1=0100H,ADD2=1000H,2FH为断点地址高字节暂存单元,2EH为断点地址低字节暂存单元。编写中断服务程序为:

POP

2FH

;断点地址弹入2FH,2EH

POP

2EH

 

PUSH

2EH

;恢复断点

PUSH

2FH

 

CLR

C

;断点地下与下限地址0100H比较

MOV

A,2EH

 

SUBB

A,#00H

 

MOV

A,2FH

 

SUBB

A,#01H

 

JC

LOPN

;断点小于0100H则转

MOV

A,#00H

;断点地址与上限地址1000H比较

SUBB

A,2EH

 

MOV

A,#10H

 

SUBB

A,2FH

 

JC

LOPN

;断点大于1000H则转

 

;中断处理内容

RET1

 

;正常返回

LOPN: POP

2FH

;修改断点地址

POP

2EH

 

PUSH

00H

;故障断点地址为0000H

PUSH

00H

 

RETI

 

;故障返回

⑹RAM数据保护的条件陷阱

单片机外RAM保存大量数据,这些数据的写入是使用“MOVX@DPTR,A”指令来完成的。当CPU受到干扰而非法执行该指令时,就写改写RAM中的数据,导致RAM中数据丢失。为了减小RAM中数据丢失的可能性,可在RAM写操作之前加入条件陷阱,不满足条件时不允许写操作,并进入陷阱,形成死循环,具体形式是:

 

MOV

A,#NNH

 

 

MOV

DPTR,#××××H

 

 

MOV

6EH,#55H

 

 

MOV

6FH,#0AAH

 

 

LCALL

WRDP

 

 

RET

 

 

WROP:

NOP

 

 

 

NOP

 

 

 

NOP

 

 

 

CJNE

6EH,#55H,XJ

;6EG中不为55H则落入死循环

 

CJNE

6FH,#0AAH,XJ

;6FH中不为AAH则落入死循环

 

MOVX

@DPTR,A

;A中数据写入RAM××××H中

 

NOP

 

 

 

NOP

 

 

 

NOP

 

 

 

MOV

6EH,#00H

 

 

MOV

6FH,#00H

 

 

RET

 

 

XJ:

NOP

 

;死循环

 

NOP

 

 

 

SJMP

XJ

 

落入死循环之后,可以通过下面讲述的“看门狗”技术使其摆脱困境。

 

7-11     何谓“看门狗”技术?有哪些实现方法?

“看门狗”技术

程序计数器PC受到干扰而失控,引起程序乱飞,也可能使程序陷入“死循环”。指令冗余技术、软件陷阱技术不能使失控的程序摆脱“死循环”的困境,通常采用程序监视技术,又称“看门狗”技术(watchdog),使程序脱离“死循环”。测控系统的应用程序往往采用循环运行方式,每一次循环的时间基本固定。“看门狗”技术就是不断监视程序循环运行时间,若发现时间超过已知的循环设定时间,则认为系统陷入了“死循环”,然后强迫程序返回到0000H入口,在0000H处安排一段出错处理程序,使系统运行纳入正规。

“看门狗”技术既可由硬件实现,也可由软件实现,还可由两者结合来实现。为了便于软、硬件“看门狗”技术比较,本节先介绍硬件电路实现“看门狗”功能。

⒈     硬件“看门狗”电路

图7-22  单稳态“看门狗”电路

⑴单稳态型“看门狗”电路

图7-22是采用74LS123(或74HC123)双可再触发单稳态多谐振荡器设计的“看门狗”电路。74LS123的引脚与功能表如图7-23所示。

从功能表可以看出,在清除端为高电平,B端为高电平的情况下,若A输入负跳变,则单稳态触发器脱离原来的稳态(Q为低电平)进入暂态,即Q端变为高电平。在经过一段延时后,Q端重新回到稳定状态。这就使Q端输出一个正脉冲,其脉冲宽度由定时元件R、C决定。当C>1000pF时,输出脉冲宽度计算式为

式中,R的单位为Ω,C的单位为F,的单位为s。

 

图7-23  74LS123管脚排列与功能

第一个单稳态电路的工作状态由单片机的P1.0口控制。在系统开始工作时,P1.0口向1A端输入一个负脉冲,使1Q端产生正跳变,但并不能触发单稳2#动作,2Q仍为低电平。P1.0口负触发脉冲的时间间隔取决于系统控制主程序运行周期的大小。考虑系统参数的变化及中断、干扰等因素,必须留有足够的余量。本系统最大运动周期为0.3s。74LS123-I的输出脉冲宽度为450ms,若此期间内1A端再有负脉冲输入,则1Q端高电平就会在此刻重新实现450ms的延时。因此只要在1A端连续地输入间隔小于450ms的负脉冲,则1Q输出将始终维持在高电平上。这时2A保持高电平,74LS123-Ⅱ单稳不动作,2Q端始终维持在低电平。在单片机应用系统中可用任意I/O引脚为1A端输出负脉冲,本电路用P1.0引脚。

在实际应用系统中,软件流程都是设计成循环结构的,在应用软件设计中使“看门狗”电路负脉冲处理语句含在主程序环中,并且使扫描周期远远小于单稳态74LS123-Ⅰ的定时时间,如图7-24所示。

在系统实际运行中,只要程序在正常工作循环中就能保证单稳态74LS123-Ⅰ始终处于暂稳态,1Q输出高电平,2Q输出低电平。一旦程序由于干扰而“乱飞”或进入“死循环”,“看门狗”脉冲不能正常触发,经过450ms后单稳态74LS123-Ⅰ脱离暂态,1Q端回到低电平,并触发单稳态74LS123-Ⅱ翻转到暂态,在2Q端产生足够宽的正脉冲(0.9ms),使单片机可靠复位。一旦系统复位后,程序就可重新进入正常的工作循环中,使系统的运行可靠性大大提高了。

图7-24  单稳态“看门狗”程序框图

 

⑵计数器型“看门狗”电路

图7-25为计数器构成的“看门狗”电路,计数器CD4020为14位二进制串行计数器。计数器计数在时钟下沿进行;将RST输出置于高电平或正脉冲,可使计数器的输出全部为“0”电平。

若单片机晶振为6MHZ,则ALE信号周期为1μs。1#CD4020的Q14脚定时时间为214×1μs=16.384ms。应用主程序在循环过程中,P1.0脚定时发出清0脉冲(假定周期小于262.144ms)就能保证2#计数器Q4端输出为零,不影响程序正常运行。当“死循环”超过262.144ms时,Q14为高电平,RESET为高电平,系统复位。通过1#CD4020输出端与2#CD4020的的连接方式,可获得不同的延时时间,如表7-2所列。

 

图7-25  计数器型“看门狗”电路

 

表7-2 计数器串联延时时间

连接方式

延时时间(Q4输)/ms

1#Q14-2#

262.144

1#Q13-2#

131.072

1#Q12-2#

65.536

1#Q11-2#

32.768

1#Q10-2#

16.384

⑶采用微处理器监控器实现“看门狗”功能

近几年来,芯片制造商开发了许多微处理器监控芯片,它们具有“看门狗”功能,如MAX690A、MAX692A、MAX705/706/813L等。

在计算机控制系统中,为了保证微处理器稳定而可靠地运行,须配置电压监控电路;为了实现掉电数据保证,需备用电池及切换电路;为了使计算机处理器尽快摆脱因干扰而陷入的死循环,需要配置watchdog电路(俗称“看门狗”电路)。将完成这些功能的电路集成在一个芯片当中,称为微处理器监控器。这些芯片集成化程度高,功能齐全,具有广阔的应用前景。

图7-26为MAX813L框图。WDI为看门狗输入端,该端的作用是启动watchdog定时器开始计数。有效或WDI输入为高阻态时,watchdog定时器被清零且不计数。当复位信号变为高电平,且WDI发生电平变化(即发生上升沿或下降沿变化)时,定时器开始计数,可检测的驱动脉宽短至50ns。

图7-26  MAX813L框图

若WDI悬空,则watchdog不起作用。当watchdog一旦被驱动之后,若在1.6s内不再重新触发WDI,或WDI也不呈高阻态,也不发生复位信号时,则会使定时器发生计数溢出,变为低电平。通常watchdog可使CPU摆脱死循环的困境,因为陷入死循环后不可能再发WDI的触发脉冲了,最后经过1.6s后,发出信号。信号可与单片机或连接,单片机在中断服务程序中,将程序引到0000H,系统重新进行正常运行。当Vcc降至复位门限之下时,不管watchdog定时器是否完成计数,均为低电平。

当为低电平时,欲使其恢复高电平的条件是在Vcc高于复位门的情况下:

(1)采取手动复位,有一低脉冲,发出复位信号,在复位信号的前沿,变为高电平,但watchdog被清零,且不计数。

(2)若WDI电平发生变化,watchdog被清零,且开始计数,同时变为高电平。

若使WDI悬空,则watchdog失效,可用做低压标志输出。当Vcc降至复位门限以下时,为低电平,表示电压已降低。与不同,没有其最小脉宽。

图7-27为MAX705/706/813L看门狗定时器的时序图。

图7-27  看门狗定时器时序图

⒉     软件“看门狗”技术

由硬件电路实现的“看门狗”技术,可以有效地克服主程序或中断服务程序由于陷入死循环而带来的不良后果。但在工业应用中,严重的干扰有时会破坏中断方式控制字,导致中断关闭,这时前述的硬件“看门狗”电路的功能将不能实现,依靠软件进行双重监视,可以弥补上述不足。

软件“看门狗”技术的基本思路是:在主程序中对T0中断服务程序进行监视;在T1中断服务程序中对主程序进行监视;T0中断监视TI中断。从概率观点,这种相互依存 、相互制约的抗干扰措施将使系统运行的可靠性大大提高。

系统软件包括主程序、高级中断子程序和低级中断子程序三部分。假设将定时器T0设计成高级中断,定时器T1设计成低级中断,从而形成中断嵌套。现分析如下:

主程序流程图如图7-28所示。主程序完成系统测控功能的同时,还要监视T0中断因干扰而引起的中断关闭故障。A0为T0中断服务程序运行状态观测单元,T0中断运行时,每中断一次,A0便自动如1。在测控功能模块运行程序(主程序的主体)入口处,先将A0之值暂存于E0单元。由于测控功能模块程序一般运行时间较长,设定在此期间T0产生定时中断(设T0定时溢出时间小于测控功能模块运行时间),从而引起A0的变化。在测控功能模块的出口处,将A0的即时值与先前的暂存单元E0的值相比较,观察A0值是否发生变化。若A0之值发生了变化,说明T0中断运行正常;若A0之值没变化,说明T0中断关闭,则转到0000H处,进行出错处理。

T1中断程序流程图如图7-29所示。T1中断服务程序完成系统特定测控功能的同时,还监视主程序运行状态。在中断服务程序中设置一个主程序运行计时器M,T1每中断一次,M便自动如1。M中的数值T1定时溢出时间之积表示时间值。若M表示的时间值大于主程序运行时间T(为可靠起见,T要留有一定余量),说明主程序陷入死循环,T1中断服务程序便修改断点地址,返回0000H,进行出错处理。若M小于T,则中断正常返回。M在主程序入口处循环清0,如图7-28所示。

图7-28主程序流程图

T0中断程序流程图如图7-30所示。T0中断服务程序的功能是监视T1中断服务程序的运行状态。该程序较短,因而受干扰破坏的机率很小。A1、B1为T1中断运行状态检测单元。A1的初始值为00H,T1每发生一次中断,A1便自动加1。T0中断服务程序中若检测A1>0,说明T1中断正常;若A1=0,则B1单元加1(B1的初始值为00H),若B1的累加值大于Q,说明T1中断失效,失效时间为T0定时溢出时间与Q值之积。Q值的选取取决于T1、T0定时溢出时间。例如,T0定时溢出时间为10ms,T1定时溢出时间为20ms,当Q=4时,说明T1的允许失效时间为40ms,在这样长的时间内,T1没有发生中断,说明T1中断发生了故障。由于T0中断级别高于T1中断,所以,T1的任何中断故障(死循环,故障关闭)都会因T0的中断而被检测出来。

   

图7-29T1中断程序流程图            图7-30  T0中断服务程序

当系统受到干扰后,主程序可能发生死循环,而中断服务程序也可能陷入死

循环或因中断方式字的破坏而关闭中断。主程序的死循环可由T1中断服务程序进行监视;T0中断的故障关闭可由主程序进行监视;T1中断服务程序的死循环和故障关闭可由T0的中断服务程序进行监视,由于采用了多重软件监测方法,大大提高了系统运行的可靠性。

值得指出,T0中断服务程序若因干扰而陷入死循环,应用主程序和T1中断服务程序无法检测出来。因此,编程时应尽量缩短T0中断服务程序的长度,使发生死循环的机率大大降低。

⒊     软硬件结合的“看门狗”技术

硬件“看门狗”技术能有效监视程序陷入死循环故障,但对中断关闭故障无能为力;软件“看门狗”技术对高级中断服务程序陷入死循环无能为力,但能监视全部中断关闭的故障。若将硬件“看门狗”和软件“看门狗”结合起来,可以互相取长补短,获得优良的抗干扰效果。

图7-31 主程序流程图

图7-31为软硬件“看门狗”主程序流程图,其硬件配置与图7-22相同。图中的A0、A1为T0、T1中断运行状态观测器。每当T0、T1中断一次,A0、A1分别加1。E0、E1为A0、A1的暂存单元,在主程序观测测控功能模块的入口处暂存A0、A1于E0、E1单元。由于测控模块程序一般很长,在执行一次测控模块程序时间内,T0、T1必发生定时中断。在测控功能模块的出口处,将A0、A1分别同E0、E1暂存值比较,以判断A0、A1是否变化,从而也就观测出T0、T1的中断是否正常执行。若中断因干扰而关闭,则A0、A1值不会变化,与暂存单元E0、E1中的值完全相同,这时程序转向0000H,进行出错处理。T0、T1中断服务程序流程图如图7-32,7-3-15所示。

若测控功能模块程序较短,执行一次时间内不足以使T0、T1发生定时中断,这时可采用图7-34所示的方案。图中N为循环次数,N次循环时间内确保T0、T1发生定时中断(每执行一次测控模块程序,N自动减1)。硬件“看门狗”电路的清除脉冲由P1.0口发出,发出周期为一次测控功能模块程序执行时间。因此,单稳态电路输出高电平单稳信号脉宽要大于P1.0L输出脉冲周期。

       

图7-32  T0中断流程图        图7-33  T1中断流程图

图7-34  主程序流程图

 


 

第八章

8-1   设计计算机控制系统的基本步骤有哪些?

计算机控制系统的设计是一个综合应用所学知识的过程,它不仅涉及微机控制方面的相关知识,而且还应对生产工艺方面的知识有所了解,是多学科知识和相关知识的综合应用。其设计方法应根据被控对象、设计种类、控制方式和规范的不同而有所差异。但基本的设计步骤大致相同。首先应确定系统的技术指标,然后选择合适的机型,进行系统的功能分析、可靠性设计、对系统软、硬件功能进行划分。在上述这些工作完成之后,对软、硬件部分分别进行设计、功能调试及系统联调等。设计流程可用图8-1来描述。

图8-1   单片机应用系统设计流程

总体方案设计时首先要确定系统的技术指标,这是系统设计的出发点;要对技术进行可行性分析,对系统的性能、成本、可靠性、可操作性、经济效益进行综合考虑,使系统的设计在满足技术指标和实际应用的前提下具有较强的竞争力。

①在满足系统基本性能指标的前提下,对控制所采用的机型进行选择。市面上可用于控制的微处理器很多,性能也都比较好,应考虑的问题是:货源是否充足,开发装置是否完备,相关资料是否齐全等。就我国的情况看,MCS-51系列及其系列兼容机、衍生产品机市场占有率相当高,且具有完备的开发装置,应为首选机型。

②为了获得较高的性价比,不能盲目追求高指标。在满足基本性能要求的前提下,应考虑经济成本。要使所研制的产品价廉物美,在市场上有较强的竞争力。

③要对系统进行可靠性设计。从系统总体设计、外形结构、硬件设计和软件设计等每一个环节,采取一切措施来提高系统的可靠性,以保证系统能够长期稳定、可靠地工作。可以说没有可靠性,产品就没有生命力。因为一个系统无论在功能上如何全面、精度如何高,如果不能正常运行,故障频繁,可靠性差,就没有使用价值,更谈不上经济效益。

④要考虑系统操作的方便性,要尽量降低对操作人员专业知识的要求,使操作者无须经过专门训练,便能掌握系统的使用方法。还应考虑系统的可维护性,便于拆卸和维修。

总之,系统的硬件结构要规范化,软件要模块化,以便于产品的推广应用。

 

8-2   计算机控制系统的硬件设计有哪些方案?需要考虑的因素是什么?

当微机系统选定后,其他的硬件有两种可选方案:

一种方案是购置现成的板卡,如A/D转换接口板、D/A转换接口板、I/D接口板等,这类板卡是厂家精心研究和设计的,已考虑了各种因素,因此设计者只要将其功能及使用说明弄清楚就可以直接使用。这类板卡,种类繁多,货源充足,可选择余地大,但价格昂贵,主要适用于STD总线及工业PC,对某些系统未必适用。

另一种方案就是根据系统的实际需求,选择合适的芯片,自行设计。此时除应考虑上述系统设计的要求外,还应考虑如下几个方面的问题:①模拟量输入/输出通道中,各器件速度和精度的选择,原则是在满足系统要求的前提下,尽量选择低速及低精度器件以降低成本。②I/O接口,尽量选用CPU本身的接口,当其不能满足要求时,再扩展。③存储器容量应以满足系统软件及数据存储为基本出发点,并留有余地。其品种很多,有RAM芯片、EPROM芯片、E2ROM芯片及Flash RAM等。选择时,以方便编程,降低成本为首选。④各类总线负荷能力的匹配及各类器件的电平匹配及转换,其原则是以系统能稳定可靠地工作为最佳。

 

8-3   在计算机控制系统的软件设计中应注意哪些问题?

软件设计是系统设计中最关键的工作。在进行总体设计时,应考虑系统硬件和软件之间的关系,使软件能很好地服务于硬件。在进行软件设计时,必须把软件应承担的任务明确表达出来,并用文字或图表的形式将其细化:首先,要确定整个系统的输入/输出要求,CPU与外界交换信息的方式,确定输入信息状态和输入数据的类型;其次,要确定对输入/输出信息的处理方式,输入数据是开关量还是模拟量,如何将信息送入CPU;其三,应分析对输入数据采用的处理算法,包括数据处理及控制算法的选择。

在总体方案中,明确对软件的基本要求之后,通常可独立进行软件编写。编好的程序有些可以脱离硬件独立运行调试,有些必须在硬件支持下完成调试。在程序编写完成后,应认真校对,纠正语法错误和逻辑错误。软件编写和调试过程中,以下几个问题必须认真对待。

①隐蔽的软件故障的处理。软件不同于硬件,当产生错误的条件发生之前,成百上千次的运行也不一定会发生问题,而当软件与硬件潜在的故障混合在一起时,就很难查找和判断。因此,软件正常运行并不能说明软件不存在缺陷。在进行设计时,除在结构上采取相应措施外,还应抓住那些偶然出现的异常现象,反复运行和测试,尽量把故障排除在样机试制阶段。

②保证计算程序的精度。应用软件大多都包含各种各样的计算程序,为了确保一定的精度要求,必须认真考虑软件算法的精度。这一方面要从设计技术指标入手,由硬件给予一定的保证。另一方面,对软件采取的算法也应精心选择,以使在计算后所产生数据的精度满足设计要求,例如对A/D转换后的输入数据,可以采取双字节或浮点运算等,保证不丢失精度。

③实时性。一般的测控系统,对程序运行周期都有严格要求,它希望在信号的采样、滤波、控制算法运算等整个过程中应不错过输出控制的实时性。否则,控制系统的存在就失去了意义。为了保证系统的实时性,优化软件设计很重要。

程序的设计可采用模块化或结构化的方法,另外对程序的质量也应提出要求,如可读性、灵活性、可扩展性及可操作性等都是软件设计中应考虑的。

近年来,各类计算机应用软件也逐渐走向模块化和商品化。市面上有通用软件程序包出售,如定、浮点运算程序软件包;常用控制程序软件包、PID运算软件包等。此外,如第1章所述,像组态王等一类更高级的软件包,用户只要根据自己所设计系统的需要;填些一些表格,即可构成可用的目标程序,使用起来非常方便。

 

8-4   计算机控制系统的控制算法应如何选择?

当控制系统的总体方案确定以后,应根据被控对象的变化规律,建立系统的数学模型,反映系统输入、输出及内部状态之间的数量和逻辑关系,在此基础上,再将数学模型变换为计算机能执行运算的离散控制算法。在选择控制算法时应考虑控制速度、控制精度及系统稳定性等的要求。

当控制系统比较复杂,无法建立精确的数学模型时,应考虑采用智能控制。它可以利用计算机在处理图像、符合逻辑、模糊信息、知识和经验方面的功能,基本上承担起熟练操作人员、技术人员和专家的责任,对被控对象进行操作与控制,而不再借助数学模型。

当被控对象的数学模型不可求时,可考虑采用数字PID的控制算法,一般以位置式及增量式基本控制算法为基础,针对系统的具体要求,对算法进行必要的改进,以求得圆满的控制效果。前已述及PID算法适用的各种场合。

 

8-5   计算机控制系统的调试阶段需要综合考虑哪些方面?

当被控系统软、硬件设计工作完成后,最主要的工作是完成系统调试。系统调试工作一般包括硬件调试、软件调试及系统联调。

硬件调试的任务是排除故障,包括设计错误及工艺故障。首先脱机检查所制造电路及系统是否有接线错误、断路及短路,各器件的电源及引脚逻辑关系是否正常等。当确定无误时,再在相应的开发工具上进行逻辑及性能调试,直至符合设计要求,工作正常。

软件调试工作可通过设置断点、跟踪、模拟程序、逻辑分析及仿真等手段进行。软件调试工作十分繁琐,但又十分重要,必须认真做好,不漏过任何细节,这样才能保证系统联调时不致发生大错,不损坏设备。系统联调是要解决软、硬件之间的不协调、不匹配的地方。这是一个综合性的系统工程,必须反复进行,直至最佳。

系统联调成功,应进行试运行。试运行可分两个阶段进行。第一阶段,只运行控制系统,不带被控对象,或带模拟控制对象,此阶段应把系统投入正常使用时可能发生的故障尽量都考虑到,使软、硬件存在的隐患尽量都暴露出来,并进行适当的修改,保证正常投产后不出故障或少出故障。第二阶段,投入正常试用,进一步考虑控制系统的各项性能,直至投入批量生产。

 

8-6   请研究粮仓温度检测系统实例,补充程序流程图。

百度“51 粮仓温度检测系统”

 

8-7   请研究自动剪板机的顺序控制系统实例,根据程序流程图编写程序。

百度“51 自动剪板机”

 

8-8   请研究退火炉温度控制系统实例,根据程序流程图和提供的汇编语言程序,重新用C语言编

写程序。

百度“51 退火炉温度控制系统”

 

 


阅读更多
换一批

没有更多推荐了,返回首页