软件中的抗干扰措施
提高系统可靠性的方法有排错设计和容错设计。前面提到的排错设计并不能将干扰完全解决。而容错就是允许系统发生故障,借助冗余技术使其自动抵消,在故障存在的情况下也能使系统正常运行。下面介绍一下常用的几种软件容错方法。
1.数据采集误差的软件对策
对于实时数据采集系统,为了消除传感通器中的干扰信号,在硬件上常采取模拟滤波器对信号实现频率滤波,也可以用CPU的运算控制功能也可以实现频率滤波,这就是数字滤波(软件滤波)。对一点数据连续采样多次,计算其平均值,以平均值作为点的采样结果,这样可以减少系统的随机干扰对采集结果的影响。根据干扰造成采样数据偏大或偏小的情况,对一个采样点连续采集多个信号,对采样值进行比较,取中值作为该点的采集结果。还可利用软件完成RC低通滤波器的算法,实现用软件方法代替硬件RC滤波器。一阶递推数字滤波公式为
Yn=QXn+(1-Q)Yn-1
式中Q为数字滤波器时间常数;Yn为第n次采样时的滤波输出;Xn为第n次采样时的滤波输入。
2.时间冗余在程序的适当位置设置若干检查点,在每一个检查点保存程序在该检查点之前正确运行而得到的全部信息及标志。如果故障是暂时性的,则程序卷回到上一检查点开始重新执行,这样可以完全消除错误。但它只能检出而不能消除永久性故障,用时间换取可靠性。
3.N版本程序设计
N版本程序设计,是为某一个确定功能而独立编制的几个程序同时运行,其结果是通过这些独立程序的运行结果经多数表决而得到的。N版本程序设计中,特别强调N版本,因为如果各程序采用了相同的结构、相同的算法,就有可能产生相同的错误而使多数表决失败。
N版本程序设计中包含了程序设计上的冗余,用效率换取可靠性,能容忍设计错误的能力,还能屏蔽某些类型的暂时性硬件故障。数据的冗余保护也是N版本程序设计思想的应用。将重要数据同时存入几个不相邻的存储单元,由于不相邻存储单元因干扰而被同时改写的可能性很小,即使有一两个存储单元出错也能得到正确的数据。
4.弃权规则
弃权规则就是当程序运行或继续运行的某些必要条件未能具备时,放弃对这些条件的要求,不是产生等待、中断、出错或停机,而是采用跳过、转移、N-1、默认等方式保证程序继续运行,这些方法只适用于屏蔽暂时故障,所以要求同时产生报警输出,以便确定是否需要人为干预来消除永久故障。弃权规则首先要不影响程序的正确性和适应用性。
(1)跳过
指在不影响控制系统正常运行的前提下,跳过条件不具备而导致故障的模块向下执行,这是软件失效运行的形式之一。所谓软件失效运行就是在故障发生时先把故障模块从系统中断开,再对系统的其余模块进行重构,使系统能继续运行,但功能降低,即降级运行。可靠性的提高是以某些功能的损失为代价的。
(2)N-1方式
N-1方式是基于控制程序的循环执行特性,即采用上一次循环(第N-1次)的数据代替本次循环(第N次)所需的却未出现或未具备的数据。这址椒ㄌ乇鹗视糜诨罕涞谋豢囟韵蟆@缒炒慰刂剖涑霰慌卸衔缓侠?则利用上次循环的输出来代替它。
(3)默认
默认也是弃权规则形式之一,与跳过不同的是采用预先置入的合理条件代替未具备的条件,即默认条件存在。例如将非法输入的操作指令默认的无输入,继续原操作。
总之,弃权规则的目的是使工作在实时方式的控制系统保证连续运行,以确保被控系统长期稳定工作,虽然系统的功能有可能降低。
控制系统常用的软件容错方法很多,还有非正常性规则、失效保险设计等,在此就不不一一介绍。排错设计和容错设计的方法也很多,要根据现场情况选择适当的方法