计算机控制系统可靠性设计.docx
《计算机控制系统可靠性设计.docx》由会员分享,可在线阅读,更多相关《计算机控制系统可靠性设计.docx(16页珍藏版)》请在冰豆网上搜索。
计算机控制系统可靠性设计
计算机控制系统可靠性设计
班级:
机制1202班姓名:
杨鹤青学号:
U201210570
摘要:
随着计算机控制系统广泛、深入地渗透到人们的生活中,因其可靠性题
而潜在的巨大危害日益凸显。
因此,设计具有高可靠性能的计算机控制系统成为必然。
目前,针对复杂环境中计算机控制系统的可靠性研究设计已经获得了某些研究成果,且其具有广泛的应用前景。
本文就提高计算机控制系统可靠性理论进行了分析,阐述了一些通用的可靠性设计方法。
关键词:
计算机控制系统;高可靠性;系统设计
1研究背景和意义
地球上第一台由多达一万八千只电子管构成的电子计算机ENIAC,因其可
靠性不能满足实际应用的需要,应用不是很广泛。
然而,随着半导体技术的突飞猛进,计算机很快在银行存取款、座位预定、交通管制、生产及库存管理、医疗设备、通讯以及军事武器的应用等方面得到广泛应用。
在现阶段,伴随着互联网应用的普及的及控制技术发展的进步,人类已经进入新的物联网时代。
由此必然使计算机控制系统的应用更加深入的渗透到人们生活的各个领域,给我们的生活带来革命性的变化使人们生活更加舒适。
在物联网时代计算机控制系统已经深入的渗透到人们的生活中,例如:
可以通过计算机控制系统实现如交通管理、远程视频监控、远程医疗等等。
目前,计算机控制系统在人们的生产活动、经济活动和社会活动中已无处不在。
在人们在享受到了计算机控制系统给我们带来的快捷舒适的同时也最大程度的整合了社会资源节约了人力财力,从而有效节约了成本。
因而,计算机控制系统的普及应用已成为社会发展的必然趋势。
在享受到计算机控制系统的普及应用所带来的巨大进步的同时也面临着由此带来的新挑战,即计算机控制系统的不可靠。
由于计算机控制系统的不可靠性所带来的危害使其潜在巨大威胁,由此带来的担忧是正常的。
例如:
在被国际航天界称为“黑色96”的1996年,俄罗斯质子号火箭、美国哥伦比亚航天飞机、法国阿里安火箭均在发射中遭到重创。
2008年6月22日(星期三)当地时间下午5:
08,位于瑞士中部的连接瑞士东北部楚格州的罗特克罗伊茨和乌里州的阿姆施泰格之间的输电网发生短路,并造成连锁反应,使整个铁路网供电失衡。
由此可见,由于计算机控制系统的不可靠而带来的灾难是十分巨大的。
因此,设计具有高可靠性的计算机控制系统是计算机控制系统设计的必然趋势。
2当前研究现状
在容错理论的研究上,冯.诺伊曼早在20世纪50年代中期,在其文章《概率逻辑及用不可靠元件设计可靠的结构》中曾对容错技术中关于复合容错方案进行了论述。
他用概率论证可以用不太可靠的器件组成一个可靠的具有相同功能的组件,同期又出现了莫尔一香农冗余方法,这些研究奠定了容错系统理论的基础。
此后,世界上第一台容错计算机SAPOS捷克斯洛伐克建造成功。
伴随着故障诊断和自动恢复机制的发展,出现了很有效的测试组合电路算法,其中最著名的是D算法。
此时开始采用微程序设计,一般采用徽码进行诊断程序设计,对内部逻辑可进行更有效的测试和诊断。
目前在硬件冗余设计,及其隔离、故障定位等方面均有了一定的发展。
在容错计算机系统方面出现了许多有重要意义的研究性系统和实用系统。
在NASA的支持下,美国斯坦福研究所(SRD)和麻省理工学院的Draper实验室,按同样的技术条件,分别开发了非常先进的研究性机器:
FTM[容错多处理器和SIFT(软件实现容错)。
目前伴随着VLSI技术的发展,使计算机硬件成本大大降低这就使得商用容错计算机系统应运而生,容错计算机从军事航天等部门,逐步扩大到工业控制、实时系统和联机事务处理(主要是银行、交通部门)等领域。
在新型计算机结构中采用硬件冗余越来越容易,未来容错技术将成为新一代计算机的特征。
关于冗余容错的应用研究主要集中于容错的VLSI技术、基于人工智能的容错计算机故障随机诊断专家系统、基于神经网络容错技术。
当前的主处理器一般采用的都是通用处理器,和通用处理器相关的容错技术研究已经比较成熟,从软件到硬件都已经有了很多理论与应用。
主处理器和可重构逻辑器件间根本上就是彼此间互相通信的问题,也已经有了很多成熟的技术。
因此,当前在可重构系统的容错研究中,最关键的就是研究可重构逻辑器件的容错技术。
然而,当前最
佳冗余容错方案是尽量走硬件冗余和软件冗余相结合的道路。
硬件冗余时间开销小,技术相对成熟;软件冗余较硬件冗余更灵活,且具有动态特性。
然而,在计算机控制系统的研究领域系统级的研究还比较少,只是少量理论基于控制系统中某个单元模块的研究。
3计算机控制系统可靠性的主要影响因素与应对策略
0K
3.1计算机控制系统可靠性分析
0K
正常运行
故障(发生错试)
均无故障时间1MTTF)-
图3.1MTTF、MTTRMTBF关系
参照图3.1,为精确描述计算机控制系统的可靠性,采用如下参数进行分
析:
平均无故障时间MTF(MeanTimeToFailure)指系统发生故障前运行的平均时间,表征系统可靠性(Readability);平均修复时间MTTR(MeariTimeTo
Repair)指用于修复系统和在修复后将它恢复到正常工作状态所用的平均时间,表征系统可维护性(Maintainability);平均故障间隔时间MTBF(MeanTime
BetweenFailure)指两次故障时间间隔的平均时间。
实践表明,在一个系统的整个寿命周期中,系统的失效率随时间的变化规律可以用著名的浴盆曲线来描述,如图3.2所示。
图3.2浴盆曲线
在图3.2中是描述的系统故障出现的概率入(t)与系统运行时间t之间的
关系。
如图所示,系统的寿命周期可以分为三个阶段:
第一阶段是早期故障期
“1”,通常又称为调试期。
随着调试的进行,早期故障不断排除,接着进入第二阶段随机故障期“2”,这一时期是正常工作的时期,系统的失效率不随时间的变化而变化。
随着系统运行时间的越来越长,失效率不断增大,系统进入耗损故障期“3”,此时系统同出现故障的概率会随着时间的延长有明显的增长。
计算机控制系统中随机故障期可以看做是实际使用期,该阶段是系统可靠性建模和分析最值得关注的。
前人经验证明该阶段的失效率大多数满足如下关系:
R(t)二応
由上式可见,系统的可靠度函数服从指数分布规律,这是系统可靠性建模和分析中很重要的一个特性。
功能的时效性是指系统功能满足要求,并且其实时性能也在可以接受的范围内。
计算机控制系统一旦某功能模块失常,可能造成无法挽救的灾难性后果。
因此,要求做到确保计算机控制系统具有高可靠性。
即使出现故障,也应有多种手段在短期内对数据处理并进行故障恢复,保证计算机控制系统的正常运行。
对于计算机控制系统而言,可用性主要是指系统的稳定性和功能的时效性等。
稳定性指供用户使用的计算机控制系统能够提供持续不间断服务的能力,即在客户需要的任何时间都能满足客户的设计要求。
一般来说计算机控制系统出现偶尔的故障是不可避免的。
这种故障可能来自工作环境的干扰、自然灾害、人工操作失误等,也有可能由于操作系统、应用程序等软件故障,因而稳定性指标具体就是当设备发生故障时用户在合理的时间内将其重新恢复运行的能力。
定义系统的可用性(Availability)为一个系统可以为用户所正常使用时间
的百分比,即正常运行时间的百分比,见下式:
从可用性的定义可以看出,提高系统的可性,即提高系统可用性的方法有
两类:
增加MTTF或减少MTTR增加MTTF要求提高系统的稳定靠性好;减小
MTTR即力求故障恢复时间缩短。
例如,采用多控制器或计算机的集群结构可实现通过减少系统的MTTR来提高可用性。
3.2提高系统各单元的MTBF根据可靠性设计的有关理论,单元越简单,可靠性就越高。
因此,计算机
控制系统最好设计成集散控制系统,即将整个系统分解为多个独立单元,在不影响系统性能的前提下将每一单元都设计成简单的模块,可有效保障系统的可靠性。
如此可以满足在系统运行过程中不会出现由于其中一个单元的异常导致整个系统不能正常工作。
与此同时,将系统整体设计为非集成的单元有利于实现非集中的控制和独立的供电以及将系统负荷和干扰分散处理。
显然该方法可以有效的减小外部干扰对系统的影响并且有利于系统调试,由此可以有效的减小系统出现故障后的修复时间,显著提高系统正常工作时的可靠性。
设计案例:
在当前电梯通讯控制系统中,BITBUS总线常常被用在实际的方案中。
其通过RS-485总线实现通讯。
然而,由于在该系统实际运行中,当某个控制节点出现异常时将会导致整个系统不能正常工作。
为此,在实际方案设计中考虑对其进行改进,选用具有多主结构的CANBUS总线来克服上述缺点。
在改进方案中,系统中各节点工作不分主从,任何时刻任意节点之间可以互相发送信息,由此可以构成互相冗余的系统。
在CAN总线的通讯过程中,设置信息校验(CRC校验等)用于保证系统通讯系统的可靠性。
同时当有严重异常发生时,故障节点可以及时自动关闭其余系统总线间的通讯,从而保证了整个电梯控制系统的可靠性。
显然利用CANBUS总线取代BITBUS总线可以很容易的构成“集中管理、分散控制”的复杂的计算机控制系统。
可以预见在不远的将来,CANBUS各逐渐取代BITBUS,成为电梯串行通讯系统中的主流产品,并且将以其显著增强的可靠性优势占领市场。
3.3降低各单元的MTTR
为有效降低系统各单元的NTTR,在计算机控制系统中采用模块化设计,使系统中各个模块具有单一的功能。
如此以来,当故障出现时可以迅速定位,进行及时维护,从而可以有效缩短系统的MTTR有效的提高系统可正常使用的时间,使系统可靠性提高。
同时,还可通过将系统设计成具有在线诊断故障功能的方法,采用硬件自诊断技术与故障部件的自动隔离、自动恢复和热插拨技术
相结合。
在系统运行过程中出现异常后,硬件自诊断机和测试机能检到出错故障,并进行快速的故障处理。
若不能使系统恢复正常工作,则迅速报警。
该设计方案很显然可以有效降低系统的MTTR从而使系统可靠性得以显著提高。
3.4提高系统自身可靠性
1元件可靠性。
设计具有高可靠性的计算机控制系统,必须从源头抓起。
因为,只有系统内各个元器件都具有较高的可靠性才有可能保证整个系统的可靠性。
在元器件选型时,既要关注主要器件的精度要求和价格,同时还要密切关心元器件的正常工作环境条件是否满足设计方案总体要求。
为此采购元件前,要对厂家的产品质量有深入的了解,厂家的信誉度要高。
同时,要对元器件的性能做实验加以检验,在同一系统的设计中尽量参考以前的成熟方案;在同一系统中尽量使用同一厂家的同一型号的元器件。
在元器件选型时要努力做到以下几点:
进口元器件虽然整体质量较高,但是,进口渠道和质量等级难以控制,特别是高等级电路还受到美国的禁运。
从长远角度考虑,还应以立足国内电子元器件为主(在海湾战争期间,实施“沙漠风暴”行动之前,为对付伊军的战略指挥系统,美军派出特种作战小组成功启动某种“芯片”,使伊军战略指挥系统不仅工作不正常,而且不断泄漏出大量的信息资料。
);为了保证电子元器件的装机质量,要努力研究元器件的固有可靠性、使用可靠性、贮存可靠性等;不断完善技术手段,提高试验能力,更好发挥质量对可靠性的技术支撑作用;新产品在研制过程中不要过分依赖计算机模拟和仿真,增加对实际硬件测试等。
2系统可靠性。
在项目开发初期,必须针对系统运行环境和性能要求等参数进行细心的分析。
必须针对系统在各功能模块进行可靠性分析,并且针对系统可能的外部扰扰和异常进行综合考虑,为系统后期升级留有设计余量。
可靠性问题要做的工作包括可靠性建模、可靠性要求制定与分配、可靠性预计、故障模式影响和危害性分析、故障树分析、事件树分析等内容。
然后,针对系统同可靠性模型进行模块级和系统级仿真验证。
3生产与调试与性能试验。
传统观念上对于生产调试而言,一般是从管理角度来思考。
传统管理一般从管理好生产者、机器设备、生产材料、生产调试规范等角度进行管理。
然而,实际中经常会出现这样的情况:
不同的调试人员或同一调试人员负责调试的同种类型的产品设备其实际性能和可靠性有时存在很大的不同,有的的用户使用中还出现非常大的故障率或出现产品预期性能不能满足、产品精度不符合要求等。
出现这种情况的原因是针对生产调试过程中可能存在的隐患没有深入的研究、缺乏科学高效的管理。
在系统的生产调试初期会逐项发现系统设计中的不足,针对系统中发现的bug要认真分析逐项优化,研讨解决方案。
为保证系统可靠性,针对生产调试和性能试验主要从以下方面进行研究:
制定详细的调试文件并依此执行;调试现场环境应尽可能满足项目任务书有关要求;每个调试人员都应参加专业培训;在完成试验后,要对记录结果进行分析,还要尽快写出实验报告。
4提高计算机控制系统可靠性的设计方法
4.1诊断技术
诊断技术实质上是一种检测技术。
所谓诊断,就是判断待测信号是否正常,或者在系统可接受的正常范围内。
可以利用系统中确定的事故征兆对应系统相应的故障,由此可以完成系统故障的快速定位,缩短了系统修复时间使其可靠性得以提高。
在设计方案中,考虑到系统由于可能受外界干扰时产生程序跑飞这一问题,可以设置监视跟踪定时器来监视程序运行状态。
定时器的定时时间稍大于主程序正常运行1个循环周期的时间,而在主程序正常运行过程中执行1次定时器时间常数刷新操作。
因此,只要程序正常运行,定时器就不会出现定时中断;而当程序跑飞或失常时,则因无法按时刷新定时器时间常数而导致定时中断,利用定时中断服务程序将系统复位。
避错(FaultAvoidance):
设计避错时,考虑如何采取措施使系统发生故障的概率降低。
避错一般是通过增加系统中单个模块设备的可靠性来实现。
随着技术的进步,进一步提高系统中单个设备的可靠性将花费较高的成本,而且该技术的可行性空间有不断缩小的趋势。
除错(ErrorRemoval):
利用校验算法(可以硬件或者软件实现),在故障出现后主动纠正错误。
在该方式中系统会产生一些校验码,在错误发生后可以通过校验码纠正错误。
其缺点是系统需要产生冗余码,冗余码的处理在一定程度上可能会对系统性能有所影响,因此采用此方法增加系统可靠性必须整体考虑系统的实时性能是否满足。
差错预测(ErrorForecasting):
利用评估方式,预测运行后的结果是否满足系统要求,确认该预测点满足系统要求后才使其正常工作,从而有效避免系统将错误扩大带来不可预测的后果。
其缺点是每执行一步都要进行计算和判断,极大的消耗了CPU及其他系统资源。
容错(FaultToleranee):
增加冗余,当某模块故障出现后,控制系统仍能正常工作。
容错增加了冗余的硬件部件,在故障发生后取代故障部件使系统保持正常的工作。
其缺点是必须花费更多的硬件来作为冗余部件。
但是如果设计满足冗余部件不仅作为备份使用,而是与主设备同时工作,这样可以大大提高系统的性能。
例如:
容错技术主要是采用功能相同的冗余模块并行的连接到系统中,此时系统中只要并行模块中有一个能正常工作,系统中该模块的功能就是正常的,从而有效保障了整个系统的可靠性。
该设计方案的就是并联可靠性系统模型,如图4.1所示。
图4.1冗余可靠性模型
假定整个系统由n个部件组成,第i个部件的可靠度为R(t),则系统可
靠度Rs(t)为:
n
Rs(t)=1-叮1-R(t)】
i=1
因t0,0:
R(t):
:
1(i=1,2,…n),则
□[0-R(t)]-Rs(t)
1
n
-R(t)I|丨1-R(t)1其中F-1—R(t)l
i二
n
=Fi■I]F
iJ
00即Rs(t)>R(t)
从上式可知,系统的可靠度高于各部件的可靠度,因此,这样的系统具有容错能力,提高了系统可靠性。
考虑到一种特殊情况,当n个部件的可靠度相等时,即
R(t)=R2(t)=...=R(t)=..R(t)=Ro(t)=e左
MTBF厂MTBF2=•••MTBFi二…MTBFn二MTBF。
Rs(t)=1_1—&(t)]n=1_,_e去七T
有:
二二tnn1
MTBFs=Rs(t)dt=1-1-e—0tdt=(、JMTBF。
00J1i=1i
n1
即系统的平均故障间隔时间MTBF比各部件提高&丄)倍。
yi
由于1-R(t)是小于1的数值,所以并联模块越多,它的连乘积就越小,因
而Rs(t)越来越大。
所以并联模块越多,系统可靠度越高。
当n趋于无穷大时,
Rs(t)趋于1。
但是,当n增加到一定数量时,Rs(t)的增加就慢了。
图4.2表
示,系统可靠度Rs(t)与冗余部件数n的关系曲线。
图4.2Rs-n关系曲线
Rs表示系统可靠度,n表示设计的冗余模块数量。
由图示可以看出,随之冗余部件数量的增多,系统可靠性能够有明显的提升。
当冗余部件的数量接近5时,系统可靠度已经开始接近于1。
此时,表明系统已完全可靠。
由此,很容易看到冗余模块的设计对于提高系统可靠性效果十分显著。
4.2冗余与容错设计容错设计是在承认系统可能发生故障的前提下,当故障发生后仍能使系统
保持正常工作。
为使系统具有容错能力,在可能发生故障的单元增加冗余设计,当故障出现后使冗余单元接替故障单元的工作使系统仍能保持正常工作。
此后的故障单元进行自我修复(有的故障部件不能进行自我修复需人工更换修复)作为现有单元的冗余单元,如此可以大大增强系统的可靠性。
所以,容错与冗余是同时使用的技术。
前文设计的具有多主结构CANBUS网络电梯串行通讯计算机控制系统,所设计的各单元之间相对独立同时也具备了简化条件,因而能够更方便的实现冗余容错。
其相对于采用主从结构的BITBUS总线的控制系统的容错冗余设计来说可以使成本得到明显降低,而且设计难度也明显降低了。
在恶劣的环境下一般的计算机很难保证长时间无故障的正常工作,为保障系统能稳定可靠的运行一般要选择具有特殊设计的工业控制计算机。
与此同时,某些可靠性要求极高的系统常常需要设计2台控制柜主电脑,互为备用地执行系统的任务,使其构成双机冗余系统。
改方案可能在单计算机控制系统中为增加成本,然而在多计算机控制系统中可以不增加任何硬件成本就能完成上述目标,保证了多计算机控制系统的可靠性。
4.3计算机控制系统软件、硬件可靠性设计计算机控制系统在设计时为了提高系统可靠性在软件设计和硬件设计方面
都要慎重考虑,因此系统的可靠性也分硬件可靠性和软件可靠性两个方面。
因此在考虑提升硬件可靠性的同时,也要利用软件设计来进一步提高系统的可靠性。
(一)软件可靠性设计方案
1软件容错策略
软件冗余容错能力是指在出现有限数目的软件故障的情况下,系统仍可提供连续正确执行的内在能力。
软件冗余容错技术在某些情况下可以有效处理计算机控制系统中出现的异常现象,从而可以有效的提高系统的可靠性。
在当前软件容错方面N版本程序设计和恢复块技术得到了最广泛的应用,尤其是恢复块技术已经在许多实际的计算机控制系统中得到应用。
然而对于N版本程序设计,由于其需要N各小组独立的开发N个版本的程序,其无疑会使开发成本成N倍的增强。
由此会使该方案失去市场竞争力,因而其在高可靠性计算机控制系统的应用领域内不是很广泛。
N版本程序设计方案在具体实施时需要将不同版本的模块或者子系统在系统中并行运行,将他们的运行结果发送到表决模块由表决模块确定该单元或模块的处理结果,和原来的单一模块相比可以显著提高系统的可靠性。
恢复块技术和N版本程序设计相比他不能通过表决机制避免系统进入异常。
采用恢复块技术当系统出现异常时并不能及时的得到纠正,系统将会继续运行,直到系统运行到程序中所设置的是否可接受模块检测模块后,依据检测结果对系统故障进行处理。
然而,该方案由于开发成本低和实现容易等优势在可靠性计算机控制系统的应用中得到了更广范的应用。
2软件编程规范
⑴设置自检程序系统开机运行时首先运行硬件自检程序,当发现有硬件异常时则终止系统的运行并且报警输出。
在控制系统中设置内部状态标志位,当计算机控制系统在运行过程中不断轮询所设置的参量是否有异常发生(也可以设置成中断形式)当有异常发生时立刻终止异常系统的运行进行错误纠正或者终止系统运行。
上述两种设计方案可以保证系统在预设置值异常的情况下有效避免错误提高系统的可靠性。
但是其在某种程度上占用了系统资源,牺牲了部分系统性能。
⑵指令冗余法微处理器受干扰或者执行异常指令后,经常会把操作数当做操作码来执行并且使后边的操作指令全部进入错误的轨道上很难再次回到正确的指令上来,即出现程序跑飞现象。
如果程序跑飞的指令地址恰巧是单字节指令,系统可以进入正确的控制轨道;如果程序进入双字节指令的第二个字节的位置则是错误
继续进行下去;如果程序跑飞到三字节指令上使系统继续错误指令的可能性更大。
基于以上分析在编程开发时应尽量多采用单字节指令,而且需要在一些关键的部位键入几个单字节指令;也可以在不影响系统性能的前提下将有效的单字节指令重复写,这便是指令冗余设计。
指令冗余必然会使微处理器执行几条冗余的指令,从而使其工作效率受到一些影响。
但是随着IC工艺的提高和晶振频率的提升不会由于多几条指令降低系统性能。
⑶设置软件陷阱软件陷阱即在指令空间的非程序区设置陷阱程序,当系统运行无异常时不进入该代码段,如果出现处理器跑飞现象就有可能落入该代码段。
如果在陷阱区的代码段设置复位指令则可以有效的使系统复位重新运行,因而可以有效的避免使系统进入死循环,即在某种程度上避免了死机现象的发生。
⑷看门狗定时复位技术(WATCHDOG)看门狗技术有两种实现方式,硬件实现或者软件实现,但是其工作机理是一样的。
看门狗独立工作,在工作时不依赖于CPU,CPU在某个固定的时间内与看门狗做一次数据交换,即喂狗操作。
喂狗操作表明系统工作正常。
如果微处理器进入死循环,即喂狗操作不能执行会通知看门狗执行复位动作。
⑸输入输出信号的抗干扰技术
分析计算机控制系统中的输入干扰具有以下特点,一般输入干扰主要是由于控制系统和与其通讯的设备接口或者是系统工作环境的复杂噪声源叠加到了系统的信号输入端。
输入信号的干扰噪声一般是在某种特定条件下的时间不长的不稳定脉冲,针对这类噪声设计软件采样时,需要延时一定时间(保证延时时间足够长且不会使系统性能受到影响),这样便可以有效地抑制输入干扰。
输出干扰信号具有随机性,为有效抑制输出干扰提高系统的可靠性,要将输出信号进行多次输出设计。
即在数据或控制信号输出后将需要输出的数据以尽快的时间再次输出,如此以来即使当某个信号的输出受到干扰输出了错误的数据,在错误数据没有得到有效执行时错误的数据值即可得到修正,显然该方案可以有效地提高控制系统的可靠性。
显然,当对计算机控制系统中的所有输出信号都进行重复输出的话,必然使系统性能受到明显的影响。
因此,在软件编程时只是考虑对一些关键的输出进行重复输出设计,如起飞、点火、刹车、分离、
关门等等输出指令,考虑进行重复输出设计可以显著提高控制系统的可靠性。
⑹提高软件编程的可靠性
显然利用软件设计可