中国航天的系统工程
2020-01-02栾恩杰中国工程院院士国际宇航科学院院士
栾恩杰 /中国工程院院士、国际宇航科学院院士
随着我国现代化进程的发展,重大工程和复杂工程系统的实施,特别是“十二五”之前的16 项重大科技专项、“十三五”的165 项重大工程项目的进行,使得工程系统与系统工程成为科技界、经济界和社会学界广泛关注的问题。2018年是钱学森院士的《组织管理的技术——系统工程》一文发表40 周年,所以在2018 年的“系统工程研讨会”上,专家、学者们呼吁将“系统工程”设为一级学科。
一、工程、系统工程和运筹学
“工程”这个词最早出现在18 世纪的欧洲,是指作战兵器的制造和执行服务于军事目的的工作,即“制造兵器和服务军事”2个内容。在我国,“工程”的说法可能更早,华夏先民给我们留下的四川都江堰、陕西郑国渠和广西桂林兴安县灵渠是世界上最完整、最精彩的古代大型水利工程,可以称为古代科技工程的辉煌杰作。灵渠建于秦始皇33 年(公元前214 年),都江堰建于秦昭襄王51 年(公元前256 年),所以我国科技史的工程概念是在2000 多年前提出的。
钱学森院士对“工程”的定义是:“把服务于特定目的的各项工作的总体称为工程。如水利工程、机械工程、土木工程、电力工程……”,那么这个特定系统的“组织建立或者是系统管理,就可以统统看成是系统工程”,而“国外所谓管理科学、系统分析、系统研究以及费效分析等工程内容之数学理论和算法可以统一看成是运筹学”。
在谈到工程的系统性概念时,钱学森说:“我们把极其复杂的研究对象称为‘系统’,即由相互作用和相互依赖的若干组成部分结合的具有特定功能的有机整体,而且这个‘系统’本身又是它所属的一个更大系统的组成部分”,而“导弹武器系统是现代最复杂的工程系统之一”。钱老的这段论述包含有工程系统、系统工程和运筹学3 个概念。以航天而言,载人航天工程、探月工程、“两弹一星”工程,这些复杂的工程都像导弹武器系统一样是一个复杂的工程系统,而实现其工程目标的组织管理是与这个工程系统伴生的系统工程,所以钱学森说,“系统工程是组织管理系统的技术”。
“系统工程的概念并不神秘,这是人类自有生产活动以来,已经干了几千年的事。”我国2000多年前的水利工程,“按今天系统工程的观点是一项杰出的大型工程建设”,也是杰出的系统工程的实践。
近代将系统工程概念提出并以相应的理论进行分析、规划、决策和运行,以最佳路径、最可靠保证和最小消耗达到工程系统所追求最优目标的首次实现,是在20 世纪60 年代末美国“阿波罗”登月计划上体现的。我国开始研究系统工程,或集中力量建设研究队伍是1979 年7 月中国自动化学会在芜湖召开的“系统工程学术讨论会”,同年10 月相关单位在北京举办“系统工程学术讨论会”,提议成立中国系统工程学会,并在西安交通大学、清华大学、天津大学、哈尔滨工业大学、国防科技大学等高等院校成立系统工程研究室、研究所。“我国科技工作者已经认识到,系统工程同现代化建设各个领域的组织管理工作是紧密联系在一起的”“系统工程师,它的理科是培养从事基础理论研究工作的组织管理科学家”“我们需要的组织管理科学家和系统工程师,其数量和质量都绝不会少于或次于自然科学家和一般工程技术的工程师”。
任何一门学科的成熟性表达是其概念的描述和逻辑推理的数学形式,系统工程的数学支撑是运筹学,在现代数学理论和电子计算机技术的支持下,各种定量描述、模型方法、模拟实验和优化设计,以及大数据和计算机能力的提高构成的人工智能正在促进现代系统工程的科学与技术基础发展。经典的线性规划、非线性规划、博弈论、排队论、搜索论、库存论、决策论、可靠性以及大系统理论、算法论等都可以纳入运筹学之中。
二、从失利中成熟起来的中国航天系统工程
23 年前(1996 年),中国航天遇到新技术、新型号、新任务的挑战,在市场、改革、队伍建设等各种新环境下,航天工业遇到了从未有过的困难,导弹试验、火箭发射相继失利。党中央、国务院、中央军委领导十分关注,明确指示要抓质量、抓管理、保成功。
当时是“技术问题”与“管理问题”并存,细究起来很多技术问题并非只能到发射时间才出现,它是可以通过管理使薄弱环节得以早期暴露并得到解决的,所以技术问题的背后仍然存在管理问题。而管理正是系统工程的核心任务,所以必须从上到下,全面反思。从理性认识层面看,就是重塑中国航天的系统工程理论,重振中国航天传统,续写“两弹一星”伟业。
根据出现问题的属性及其被潜延至发射场的各路关口入手,中国航天提出了几十项系统工程措施,最著名的是质量管理72条、28 条、“双五条”(实际上是包含在72 条之内的)。但在故障出现后,彻底解决问题的“技术问题归零”的五条准则是早于总纲性的72 条提出的。这五条准则是指对研制中出现问题时必须执行的处置程序及充分必要技术要求,所谓“归零”就是“问题销账”,将问题解决到底,不留任何隐患。
第一条是定位问题。在故障出现后首先要分析清楚,从理性思考而言,任何一个问题的产生必有其原因,或者反过来讲,有某个原因的存在必然会有产生某种问题的可能。在这样的思考逻辑下,可以形成内含的原因集和外部的显现集2 个集合,在分析故障原因的时候,大多是从获取的现象(光侧(含目视)、雷测)和数据(遥测)作为外面显现集反推寻找内部原因。以(A B C,a b c)三元素的简单例子说明其定位逻辑,A(a b)表示A 因可以引起(a b)两种表现,B(a c)和C(b c)表示A因和B因的显现,如图1 所示。
图1 原因集和显现集逻辑映射关系
如果故障的“显现集”出现(a b)则它必为A 因所为,如果出现(a c),则A、C 皆有可能是其“原因”。如果这个故障只是一个原因引起,则说明按目前获取的“显现集”尚不能准确定位,必然再构造出充分的显现集。这就是“故障定位”工作,其要求是“定位准确”。原因集和显现集的映射关系是可逆的,如果将显现集作为原因,也能找到它内部的显现。
第二条是机理问题。在准确定位之后,根据系统工程运行要求,要将这个部位产生问题的机理弄清楚,即以已经准确定位的事件为顶事件,产生这个顶事件的所有可能的事件作为底事件,将其故障的传递链梳理清楚,如图2 所示。
这就是系统工程里的故障树分析方法(FTA),这项工作的要求是弄清故障的传递关系。根据F1,F2,…,Fn 各个底事件实际存在的状态,或根据充分的旁证将不可能项Fi 去掉,则可以获得比较充分的故障传递过程和比较清楚的机理认识。
第三条是问题复现。上述2项工作完成后,要分析结果是否真实和验证工作的准确性,在各种模拟、仿真状态下对定位和机理的“复现”性进行检验。
图2 故障树分析方法
此处的复现不是让这种“故障”在实际系统再进行一次“重复”,而是“问题”的复现,这个“复现”是从验证定位和机理分析的准确性出发的(见图3)。在五条准则贯彻之前,曾发生过一个型号因为同一个原因连续几发相继失利的案例,其教训是十分沉痛的。就是因为缺少这个复现的环节,使有些故障并没有彻底解决而反复出现。
这一步的要求是“问题得到复现”,得不到复现说明因果集缺项或故障树不完整。
图3 问题复现图
第四条是措施有效。在定位准确、机理清楚、问题复现后,就可以提出针对问题的解决办法。在措施方法的设计和实施中,必须按照工程设计程序的要求进行,需经过部分实物验证、系统试验验证以及各环节的技术评审。
第五条是“举一反三”。对已发生的故障,本系统、本型号要进行举一反三思考,对类似环节、同批次产品(元器件)要进行相应的处置。其他型号也要以该故障为案例,完成相应的复查和复核,有些重大的典型案例举一反三的范围还要扩大。同时,对国外航天领域出现的故障也要进行举一反三的思考,比如国外某型号的双星发射软件问题,其释放程序是先释放双星中的甲星,并以甲星已发射为条件再释放乙星。但在发射单星时,采用的软件却是双星状态,由于没有甲星,以至始终建立不起来甲星已发射的条件,使得任务失利。对类似的问题也要像自己出现问题一样进行举一反三思考,全面检查软件版本与实际状态的匹配性。“举一反三”是将经验和教训逐步扩展的过程,是使多方受益、多领域提高的过程。
“定位准确、机理清楚、问题复现、措施有效、举一反三”这五条准则的严格贯彻,在改变被动局面和保持高可靠发射中起到了重要作用。其解决故障问题的程序和要求全面、合理且具工程实践性,已作为中国航天系统工程的重要成果被国际宇航界认可和采用,现在已成为“国际标准”(2015 年,ISO 18238《航天质量问题归零管理》)。
需要特别说明的是,这五条准则是出现故障之后的技术处理的规定,而更重要的是在故障没有发生前的工作,是从源头处防止和杜绝问题的发生,这更是系统工程要研究的内容,这类前期性工作更值得深入思考和总结提炼。
三、系统工程不可缺少的几项工作
系统工程的内容极其丰富,特别是航天系统工程包括从规划—设计—制造—交付—服务—退役全生命周期的活动。在此,笔者仅就几点不可缺少的系统工程要求进行介绍。
1. 规划
此处规划应包括计划和筹划。而在英语语境下,规划和计划(plan)是同一个词,这里的规划则是广义的。现代系统工程的起步是从需求分析开始,而且将工程系统立项前的论证工作纳入到工程的前期准备。从系统的规模和学科形态而言,现代工程已不具备单一行业性质,它往往是跨行业、跨学科的工程行为,且其科学性、技术性、专业性交叉在一起;它已非某一专业人员的独立行为,是一个大协同的系统性行为,这就使得系统的规划成为系统工程的重要前提。
以工程立项为目标的工程规划的内容要比工程设计所涉及的内容和领域更广泛,需要相关的领域专家参与研究,甚至还需要社会科学领域的专家参加。做任何一件事,事先都要进行筹划,从工程而言,则都属于“规划”的内容,从系统运行的可靠性和适应性而言,有些工程系统还设置有“任务规划系统”,比如战术导弹的最安全路径或最短路径、最快路径、最经济路径选择,则是这类系统要完成的工作。可以说,没有规划的研究是没有站在全局的观点分析工程系统的存在及运行,没有规划指导下的大力协同则不是系统工程。
2. 程序
我们用“系统工程”这一名词来定义工程的实现与管理,它一定具有系统性。钱学森是这样定义“系统”的:“所谓系统是指由一些相互关联、相互作用、相互影响的组成部分构成并具有某些功能的整体”。
整体的运行必须是有序的,是不能随机随意、杂乱无章、各行其事的运行,它的互相关联、作用和影响都要为实现某种功能而贡献。“从20 世纪40 年代末形成控制论科学,50 年代诞生了工程控制论和生物控制论,60 年代现代控制论发展形成了大系统理论”以及当代的“人工智能控制”,都是人类按着他们的意图创造的系统,它不是自然物,而是一个人造物,所以其系统实现的功能性、各分系统的支持性和整体的协同性就是这个人造物在自然物环境下运行的基本条件。
所以,程序化工作和程序性管理则是使系统工程得以运行的基本要求,上下环节的无缝连接、左右部分的匹配相容、各分系统子功能对系统总目标的贡献是系统工程运行的核心任务。
导弹武器系统是现代最复杂的工程系统之一,实现这个武器系统功能的系统工程必须有极其严密、充分正确的程序保证。一个没有程序设计的工程管理,不称其为系统工程。而一个优秀的系统工程师,他的工程实现就像一个乐队的指挥在演奏一曲优美的乐章一样,节奏混乱将破坏动人的乐曲,而程序的混乱必定会造成一个工程系统的失败,所以没有“程序”设计就不是系统工程。
3. 风险
任何工程皆有风险,差异只是风险出现可能性的大小,风险引起的危害和损失的多少,风险规避的难易、程度之高低。根据这3 点的不同,一般要进行比较统一的风险分级管理,以避免不同组织、不同项目因自建格式标准而引起同行或异域的困惑和误解。美国NASA 与其他政府组织、工业部门共同确定了广泛应用的低、中、高3 级风险的定义。
其中,低风险是指不影响性能降低、进程中断、费用增长的可控、可接受的风险;中等风险是可能引起性能降低、进程中断、费用增长,需采取特殊行动的风险;高风险是指性能大幅降低、进程停止、费用极大超支,需采取重大的附加行动和优先管理的风险。
NASA 将这3 种风险表征在“风险矩阵”中,如图4 所示。
该矩阵大多为5×5,是为了方便风险讨论时使用,它兼具或然性和后果的定性、定量度量方法,它的不足是没办法处理聚集的风险(总风险),这个二维矩阵反映不出风险对工程环境的敏感性。风险与任务目标共生,所以风险是人造工程必然存在的;正因为是人造物,所以风险也是可以通过人们的努力去规避的。
系统工程对风险的处置主要体现在2 个方面:一个是风险的分析,即风险源的筛选,根据本系统的技术特点确定可能产生风险的源头(或称为“风险因素”),特别是对相似系统已经出现问题的先验性经验与教训、历史文献和故障文档的启示和启发。另一个是预案设计。预案设计的产生是设计者根据“系统各阶段所经历的过程和事件”中可能出现的非期望状态及其后果;假定该状态已经发生,为保证系统正常运行(或可接受的条件下运行)应采取的措施。这是在系统及相关环节设计时就进行的预先设计方案,所以称为“预案”。这个概念和过程在各类系统运行中都是相同的,要把预案按其非期望状态出现和应当采取的处置方案都纳入到正常运行程序之中,不应把预案和正案分开单独设置。所以“预案”就成为“根据运行状态决定是否运行的正案”,预案设计程序如图5 所示。
图4 NASA“风险矩阵”图
在预案设计中常用的方法是:“故障报告、分析和纠正措施系统(FRACA)”和“失效模式影响与危害性分析(FMECA)”。在1996年质量整顿中,将以上2 种技术和故障树方法(FTA)统称为“3F”,在航天系统进行普及和推广,现已成中国航天的设计规范。
4. 评价
包括各阶段、各类别的技术方案、实施方案、试验验证的结果、各阶段向下一个阶段的转变、出厂与进场放行准则的实现等评审、鉴定和决策建议。近些年,人们对“成果评审”和“进级评审”都比较熟悉,这里重点强调的是系统工程运行中必不可少的非拥护性评审,由参与评审的专家从被评审对象的各角度、各切面去审视与分析,尽量挖掘出系统可能存在的问题和隐患。非拥护性评审是NASA 首先提出来的概念,在工程全生命周期内设置几十个关口进行评审与评价,是航天高可靠性要求的具体实践。实践证明,在关键技术攻关、技术状态控制等方面,严格的非拥护性评审是十分必要的。
图5 预案设计程序
在评价过程中,可以提升认识问题的深度和分析问题的角度,如软件复杂度问题,随着需求的不断增加,为了增加新的功能,软件具有极大优势,所以这种软件快速增长的趋势提出了一个新的课题。仅从飞行软件而言,NASA 做过统计,结论是每隔10 年飞行软件增加一个数量级,因此可以说飞行软件就是航天器的一块“复杂度海绵”,轻易吸纳越来越多的内容。以空军为例,软件规模从F-4A 的1000 行增加到F-22 的170 万行,而到最近的F-35 战斗机软件包含有570 万行代码。这为飞行系统提出一个新的课题,系统工程如何应对工程软件的快速增长,以及由此引发的软件复杂度和软件风险问题。目前,一个完美的软件开发流程的缺陷率为万分之一(10000 行代码一个缺陷),100 万行代码的系统可能存在100 个左右的缺陷。
从软件架构(包括功能性和非功能性需求)而言,其复杂性、可维护性、可测性、可扩展性和可交互性这些软件的质量特性都要得到很好的满足,这就是中国航天已经实施了20 余年的“软件工程化”工作,使软件可测、可评、可知、可透明。NASA 为此提出建立“软件架构评审委员会”和培养“软件架构师”的要求,NASA 正在研究和开发“基于模型的软件可简化故障防护的工程实现、提高系统健壮性”。麻省理工学院(MIT)则开始重视“双语人才”的培养,按MIT 校长拉斐尔·里夫所言,这个双语是指“人类的专业性语言和现代计算机语言”,他说“为了培育双语人士,我们必须创建一个新的架构”。简而言之,在特定项目中“参考架构”是一个作为共同参考、可复用的架构,以使项目在一个较好的架构基础上开展设计。
总之,没有规划性的筹划就不是系统工程,没有程序性的设计就不是系统工程,没有风险分析和处置预案就不是系统工程,没有各阶段的评价(含非拥护性评审)就不是系统工程。