1.3 基于模型的系统工程 - ibm...1.3 基于模型的系统工程 企业面临的挑战...

5
010 IBM 汽车制造解决方案集 1.3 基于模型的系统工程 企业面临的挑战 不断增强的产品复杂性和关联性要求制造型企业必须提高 10 倍以上的效率才能满足设计开发成本上的需求。因此,汽 车制造企业需要对产品研发过程进行理念上的变更。 当前在以下六个领域中存在许多问题: 1. 成本/ 效率 快速增长的系统开发费用(整车10%的年增长率,软件14% 的年增长率)* ,其原因可以归纳为以下几点: (1)越来越复杂 的产品(2)越来越复杂的开发过程(3)越来越复杂的供应链; 一些发展中国家市场对廉价汽车提出了大量需求,从而带 来了降低成本的压力; 为了寻求全球化环境下的竞争优势,汽车行业公司普遍在 全球设立分布式研发中心。 2. 复杂性与系统连接 与之前相比,汽车生产需要涉及更多的技术门类,如电池、 电动机、电子等; 汽车产品的竞争优势主要由软件决定,而软件的代码行数 以平均每年翻番的速度增长(2010年普通汽车的代码行数 超过了1000万行),而软件的开发成本也在不断增长中( 车产品的开发成本中软件部分占到了 42%*)大量车载子系统相互连接,并且在一些情况下还需要协同, 以完成单个任务如汽车稳定性控制,从而使得设计难度和 测试成本增加; 汽车需要和基础架构(如智能交通系统)联接通讯。 3. 依赖关系 越来越多的车辆故障由软件导致( 软件占46%,硬 件占 22%,运营计划占9%)* 功能安全性设计需要从汽车设计开发的一开始就加以考虑; 由于汽车可能被连入网络,为了防范黑客攻击的必须,需要 考虑信息安全。 4. 技术人员短缺 40%的技术人员缺口* 年轻一代的人口减少使得技术人员供应量减少; 难于保留和传承汽车行业相关的技术知识。 5. 跨公司之间的合作 跨公司之间的合作成为必须,从而需要一定层次上的安全 保证; 在跨公司合作场景下,难于追踪跨问题的根源所在; 无法获取源代码,控制器的验证必须通过基于的黑盒方式 进行。 6. 行业生态环境驱动的变化 技术上有了许多的变化(如电动汽车) → 设计变化

Upload: others

Post on 26-Jun-2020

37 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1.3 基于模型的系统工程 - IBM...1.3 基于模型的系统工程 企业面临的挑战 不断增强的产品复杂性和关联性要求制造型企业必须提高 10倍以上的效率才能满足设计开发成本上的需求。因此,汽

010

IBM 汽车制造解决方案集

1.3 基于模型的系统工程

企业面临的挑战 不断增强的产品复杂性和关联性要求制造型企业必须提高

10倍以上的效率才能满足设计开发成本上的需求。因此,汽

车制造企业需要对产品研发过程进行理念上的变更。

当前在以下六个领域中存在许多问题:

1. 成本/效率

• 快速增长的系统开发费用(整车10%的年增长率,软件14%

的年增长率)*,其原因可以归纳为以下几点:(1)越来越复杂

的产品(2)越来越复杂的开发过程(3)越来越复杂的供应链;

• 一些发展中国家市场对廉价汽车提出了大量需求,从而带

来了降低成本的压力;

• 为了寻求全球化环境下的竞争优势,汽车行业公司普遍在

全球设立分布式研发中心。

2. 复杂性与系统连接

• 与之前相比,汽车生产需要涉及更多的技术门类,如电池、

电动机、电子等;

• 汽车产品的竞争优势主要由软件决定,而软件的代码行数

以平均每年翻番的速度增长(2010年普通汽车的代码行数

超过了1000万行),而软件的开发成本也在不断增长中(整

车产品的开发成本中软件部分占到了42%*);

• 大量车载子系统相互连接,并且在一些情况下还需要协同,

以完成单个任务如汽车稳定性控制,从而使得设计难度和

测试成本增加;

• 汽车需要和基础架构(如智能交通系统)联接通讯。

3. 依赖关系

• 越来越多的车辆故障由软件导致(软件占4 6 %,硬件占

22%,运营计划占9%)*;

• 功能安全性设计需要从汽车设计开发的一开始就加以考虑;

• 由于汽车可能被连入网络,为了防范黑客攻击的必须,需要

考虑信息安全。

4. 技术人员短缺

• 40%的技术人员缺口*;

• 年轻一代的人口减少使得技术人员供应量减少;

• 难于保留和传承汽车行业相关的技术知识。

5. 跨公司之间的合作

• 跨公司之间的合作成为必须,从而需要一定层次上的安全

保证;

• 在跨公司合作场景下,难于追踪跨问题的根源所在;

• 无法获取源代码,控制器的验证必须通过基于的黑盒方式

进行。

6. 行业生态环境驱动的变化

• 技术上有了许多的变化(如电动汽车)

→设计变化

Page 2: 1.3 基于模型的系统工程 - IBM...1.3 基于模型的系统工程 企业面临的挑战 不断增强的产品复杂性和关联性要求制造型企业必须提高 10倍以上的效率才能满足设计开发成本上的需求。因此,汽

011

产品生命周期管理篇

→生产流程变化

→更多侧重电子电气/软件

• 供应链/反向供应链上的变化

→需要新的原材料,如电池、电机、新金属等

• 业务模式的变迁

备注:*统计数据由METI,JAPAN(2008)提供

客户需求 基于以上所述的行业问题,我们总结了客户在汽车设计生产

过程中的关键需求如下:

今天,为了开发一部汽车,需要涉及到多个不同技术门类的

合作。这些技术门类之间需要相互交流,相互理解以达成共

同目标。他们应该使用一个共同的语言,也就是所谓的共同

的“模型”。

为了支持全球化分布式开发,需要建立与之相适应的IT基础

架构。信息技术不仅能够提供视频会议,共享屏幕,计算云

之类的技术来支持分布式开发;共同的“模型”还可以帮助

在不同国家使用不同语言的技术人员对被开发汽车产品建

立共同的理解。

主要由于软件方面的原因,汽车正在变得越来越复杂,工程

师们需要更好的方法来理解汽车的运行机理。在过去工程师

们更多从机械行为角度来理解汽车及其子系统,但是现在,

他们没有方法直接看到软件本身,而直接建立从软件代码到

汽车行为的联系是非常困难的。“模型”可以帮助汽车工程

师们更好理解软件和汽车机械行为之间的关联。

随着汽车被连接入网络,整体系统的行为在将来会变得越来

越复杂。测试项目数量会变成天文数字,从而很难使用真实汽

车来执行测试。许多验证工作需要使用“模型”仿真来完成。

综上所述,“模型”对于以下方面是非常重要的(1)跨技术领

域工程师之间的合作(2)跨国合作(3)理解软件相关的行为

(4)使用仿真手段对系统(的系统)加以验证。

接下来,我们会提供一些与“模型”相关的方法学与工具技

术的基本介绍。

需求建模 企业面临的挑战

工程师们之间需要紧密合作,但是沟通上的缺乏和自然语言

文档规范造成的歧义往往会使得他们的工作实现内容上产

生差异和不一致。不仅如此,项目过程中的决策制定也往往

无法找到与之相关联的文档。

对于单个工程师来说,最好能够只看到与其相关的领域信

息,但是每个人的工作都需要和别的领域内容整合在一起

以构成像车辆这样的复杂系统。所以工程师也需要对变更

及其对其他领域的影响加以管理。

即便文档的质量足够高,但是依然很难在许多不同的文件信

息之间找到所需要的关联。

IBM解决方案 需求建模是一个重要的开发过程,其目的在于理解和分析系

统的需求。在达成对目标系统功能/早期设计的可信模型之

前,需求建模的过程需要不断迭代(见图1)。通过在需求建模

过程中的投入,工程师们可以避免在开发过程的后期才发现

重大问题。IBM推荐使用SysML语言和Rhapsody工具来构

建汽车系统的需求和规范。

Page 3: 1.3 基于模型的系统工程 - IBM...1.3 基于模型的系统工程 企业面临的挑战 不断增强的产品复杂性和关联性要求制造型企业必须提高 10倍以上的效率才能满足设计开发成本上的需求。因此,汽

012

IBM 汽车制造解决方案集

汽车企业案例分享 IBM将需求建模相关解决方案提供给几家日本汽车

生产厂商和电器生产厂商。其中,通过将需求建模与

反向工程的整合,IBM帮助Kyocera(一家电器厂商)

实现了30%的开发时间削减效果。

基于电子表格的汽车系统建模 企业面临的挑战 作为一种广泛使用于汽车行业的基于UML的建模语言,

SysML可以用来实现“描述”,“设计”,“验证”三方面功

能。它提供了基于图形化的表示方式来帮助用户构建直观

的表达模型,但是不能提供整车系统的全局视图。因此,

SysML无法满足客户的如下需求:

• “我希望在一个视图中查看所有相关需求”

• “我希望知道是否每个需求都被满足了,如果是,那又是由

那些功能模块来满足的”

• “我希望一次同时修改多个模型元素的属性”

IBM解决方案 IBM提供了基于电子表格的SysML建模工具,该工具提供了

完整的视图以及高效的用户交互界面(1)在表格视图中易于

发现漏失,忽略以及不一致(2)更加有效的编辑(例如,同时

图1. 当前以需求分析为目的的系统建模概要

企业获得的价值 采用需求建模的系统工程可以带来四大益处:

1. 可追踪性:模型帮助工程师以IT手段支撑,更加有效地跟

踪并查找与汽车工程相关的信息(智能的表示和电子表格)。

2. 验证和校验:工程师可以通过模型仿真和验证来实现在

开发过程中的尝试性错误排除,并由此在开发过程的早期排

除潜在的错误。

3. 效率:工程师能够从模型来产生或者用模型来支持开发更

加高质量的工作件(代码、测试、配置等)以显著提高效率。

4. 重用性:模型信息易于被查询或者转换成为可重用的需求

以及架构,这样可以帮助更好的满足车辆的多样化需求。

Efficient Shift change≪Requireme nt≫

ID = UR1

The DCT shifts the gear to acheve good transmission efficiency

T ag s

Category:RhpString=Behavior

Priority:RhpString=High

Safety≪Requireme nt≫

ID = UR2

The DCT must keep the safety especially when it shifts the gear

T ag s

Category:RhpString=Safety

Priority:RhpString=High

Fuel consumption≪Requireme nt≫

ID = UR3

The DCT shifts the gear to reduce fuel consumption

T ag s

Category:RhpString=Behavior

Priority:RhpString=High

Describe upper level requirements of the Dual Clutch Transmission (requirements from the stakeholders of upper level)

Realizing "Driving Smater"≪Requireme nt≫

ID = UR4

The DCT should not prevent the driving confortability when it shifts the gear

T ag s

Category:RhpString=Marketing

Priority:RhpString=High

Feasibility Analysis

Analysis and Verification

SystemContext for Verification

Behavior with STM

Upper-level Req.

(Plant Models in Modelica/Simulink) Detailed Analysis

Design Strategy

Component Structure and

System Context(Who)

How-to-achieve(How)

y y

Functional Requirement

(What)

sd [Package] Verification [Verification Sequence case1]

SimplifiedContext.testDriver

state_3

state_1

state_2

tm(4000) at ROOT.state_1

tm(10000) at ROOT.state_2

tm(1000) at ROOT.state_0

tm(4000) at ROOT.state_1

tm(10000) at ROOT.state_2

tm(1000) at ROOT.state_0

SimplifiedContext.shiftController

Gear3rdL

Gear1st

Gear2ndU

Gear2ndL

chUpcommand()

upcommand = 0

tm(100) at ROOT.Gear2ndU

chUpcommand()

upcommand = 1

chUpcommand()

upcommand = 1

chUpcommand()

upcommand = 0

tm(100) at ROOT.Gear2ndU

chUpcommand()

upcommand = 1

chUpcommand()

upcommand = 1

SimplifiedContext.errorSignalGenerator

off

sd [Package] Verification [Verification Sequence case2]

tm(3000) at ROOT.state_2

SimplifiedContext.testDriver

state_1

state_2

state_3

tm(3000) at ROOT.state_2

upcommand = 1

tm(4000) at ROOT.state_1

tm(1000) at ROOT.state_0

tm(4000) at ROOT.state_1

tm(1000) at ROOT.state_0

upcommand = 1

SimplifiedContext.shiftController

Gear2ndU

Gear1st

Gear2ndL

Disorder2nd

Gear2ndL

chUpcommand()

chUpcommand()

upcommand = 0

tm(100) at ROOT.Disorder2nd

tm(100) at ROOT.Gear2ndL

chUpcommand()

upcommand = 1

chUpcommand()

chUpcommand()

upcommand = 0

tm(100) at ROOT.Disorder2nd

tm(100) at ROOT.Gear2ndL

chUpcommand()

upcommand = 1

in = 1

SimplifiedContext.errorSignalGenerator

off

off

on

chIn()

in = 0

chIn()

tm(1000) at ROOT.on

in = 1

chIn()

in = 0

chIn()

tm(1000) at ROOT.on

sd [Package] Verification [Verification Sequence case1]

SimplifiedContext.testDriver

state_3

state_1

state_2

tm(4000) at ROOT.state_1

tm(10000) at ROOT.state_2

tm(1000) at ROOT.state_0

tm(4000) at ROOT.state_1

tm(10000) at ROOT.state_2

tm(1000) at ROOT.state_0

SimplifiedContext.shiftController

Gear3rdL

Gear1st

Gear2ndU

Gear2ndL

chUpcommand()

upcommand = 0

tm(100) at ROOT.Gear2ndU

chUpcommand()

upcommand = 1

chUpcommand()

upcommand = 1

chUpcommand()

upcommand = 0

tm(100) at ROOT.Gear2ndU

chUpcommand()

upcommand = 1

chUpcommand()

upcommand = 1

SimplifiedContext.errorSignalGenerator

off

sd [Package] Verification [Verification Sequence case2]

tm(3000) at ROOT.state_2

SimplifiedContext.testDriver

state_1

state_2

state_3

tm(3000) at ROOT.state_2

upcommand = 1

tm(4000) at ROOT.state_1

tm(1000) at ROOT.state_0

tm(4000) at ROOT.state_1

tm(1000) at ROOT.state_0

upcommand = 1

SimplifiedContext.shiftController

Gear2ndU

Gear1st

Gear2ndL

Disorder2nd

Gear2ndL

chUpcommand()

chUpcommand()

upcommand = 0

tm(100) at ROOT.Disorder2nd

tm(100) at ROOT.Gear2ndL

chUpcommand()

upcommand = 1

chUpcommand()

chUpcommand()

upcommand = 0

tm(100) at ROOT.Disorder2nd

tm(100) at ROOT.Gear2ndL

chUpcommand()

upcommand = 1

in = 1

SimplifiedContext.errorSignalGenerator

off

off

on

chIn()

in = 0

chIn()

tm(1000) at ROOT.on

in = 1

chIn()

in = 0

chIn()

tm(1000) at ROOT.on

Edit by Spreadsheets

Verification Items assigned

to how-to-achieve

Detailed System Context for Verification

Behavior of Plants in Modelica/Simulink

Scenarios and Testcases

De

ys

H

y

t

VerificItem

A

or n

Bewith

Modelica/Simulink

ontextF

Re

Detailed Systemt for Verr Verr ificationon

Behavior of PlaModelica/Si

De

Page 4: 1.3 基于模型的系统工程 - IBM...1.3 基于模型的系统工程 企业面临的挑战 不断增强的产品复杂性和关联性要求制造型企业必须提高 10倍以上的效率才能满足设计开发成本上的需求。因此,汽

013

产品生命周期管理篇

编辑多个模型元素,或者对其进行拷贝/粘帖以及自动填充等)。

用户可以根据其工作特性定义个人视图,例如,为一个特定

的组件定义需求视图,或者为特定的管理审批所需要的信息

的视图。

图2. 基于电子表格的汽车系统建模

企业获得的价值 “基于电子表格的建模”能力为汽车行业客户提供了以下

价值:

1. 该工具为基于SysML的汽车系统工程开发过程的任意阶

段提供了一个标准的工程信息标准格式。

2. 该工具为提供整车系统完整建模乃至车辆的特定子系统

建模提供了非常好的用户界面。

汽车企业案例分享 IBM正在和一些来自日本的汽车生产厂商及其供应商

合作部署“基于电子表格的建模”技术。在这些合作

部署中,“基于电子表格的建模”和IBM Rational开

发工具整合在一起为客户的开发过程提供支持。

复杂控制系统仿真

企业面临的挑战 汽车上装载了大量的嵌入式系统,因此也形成了一个控制系

统的复杂聚合体。电子控制单元ECU是负责控制一个或多

个电子(子)系统的嵌入式系统。当前,一般的汽车上都装载

了30到70个不同的ECU并控制不同的汽车部件,如引擎,传

动,制动以及通过传感器和促动器升降的电动窗等。复杂的

控制系统如电子稳定控制器(ESC)被用来协调控制两个或

者多个ECU以确保汽车在任何时候都是安全的。

对这样一个复杂系统的单维仿真,需要考虑到如何权衡仿

真速度和仿真的可信度:

1. 仿真结果越准确,车辆产品质量越高。但是,为了获取高

可信度的结果,往往都需要建立细节模型。

2. 模型细节程度越高,模型规模越大。

3. 模型规模越大,仿真速度越慢。

Page 5: 1.3 基于模型的系统工程 - IBM...1.3 基于模型的系统工程 企业面临的挑战 不断增强的产品复杂性和关联性要求制造型企业必须提高 10倍以上的效率才能满足设计开发成本上的需求。因此,汽

014

IBM 汽车制造解决方案集

图4. 模型同步器解决混合仿真的权衡问题

企业获得的价值 CCSS提供了以下价值:

1. 通过准确的仿真结果和更多测试来提升产品质量;

2. 降低成本及上市时间周期;

3. 缩短新技术引入到市场的间隔。

汽车企业案例分享 IBM与一家汽车制造厂商合作应用了“模型编译器”

技术。该合作采用IBM研究部门的FOAK项目模式,

并且产生了令人满意的效果。同时,IBM还在和一家

位于欧洲的控制企业就该技术展开联合研究开发的

商谈。

所以,需要建立一个更好的权衡关系,能够在不严重损失仿

真结果可信度的前提下最大化仿真速度对于多维度仿真而

言,随着仿真单元的添加,集成仿真耗费的时间也会增加,

相应的仿真可信度也会降低。所以,混合仿真过程中也存在

着同样的速度与可信度的权衡考量问题。

IBM解决方案 CCSS (复杂控制系统仿真)包含两个解决技术:

1. 模型编译器通过对单个模型的并行化处理,并将其分布到

多个处理器上运行,从而可以加快仿真速度而不至于损失仿

真可信度(见图3)。

2. 模型同步器通过数据交换平台来以连接多个仿真单元并

且提供最优调度来解决涉及到多个单维度仿真器的混合仿

真中的权衡问题(见图4)。

图 3. 通过模型编译器求解常微分方程