基于模型的设计(MBD)
直升机
巡航控制器
汽车巡航控制器
功能:自动调节车速,使车按设定速度行驶
问题:作为汽车系统中的一个组件,它要与其它部分如何互动?
目录
一、基本问题
二、设计的基本过程
二、基于模型设计
三、什么是模型
四、建模实例
一、基本问题(工程的视角)
嵌入式系统(设计)基本问题(Wolf)
关于嵌入式系统设计
◼ 事实上。没有一种结构(无论是硬件还是软件)能满足所有应用,即不具通用性。
◼ 我们需要针对应用的设计,但有以下共同问题:
◼ 快速而有效.
◼ 结果的可靠的.
系统结构(Architectures)基本问题1)硬件结构基本问题
CPU、多核(众核)处理器、网络、FPGA、存储交互(A/D与D/A)
2)软件结构基本问题操作系统、编译技术、数据技术、人机交互进程、调度、分配
3)协同设计
Architectures V.S structure?
◼ 硬件与软件的系统结构都非常重要.◼ 系统的架构(structure)决定了成本、功耗、性能。◼ 不同的应用需求导致我们要设计不同的架构。
应用基本问题
◼ 如果我们不了解具体的应用背景,我们设计不出好的嵌入式系统。
◼ 我们难以成为各方面的专家,
◼ 况且那怕一点知识都有很长的路要走。.
◼ 专业领域知识,可以帮助你做出权衡 :
◼ 可以放宽要求吗?
◼ 一个需求可以换另一个吗?
系统建模是最基本的问题。
方法学(Methodologies)基本问题基本问题:
1)建模、分析与仿真;
2)性能、功耗、成本;
3)综合、验证。
◼ 我们必须能够可靠地设计出系统:
◼ 从需求/规范开始。
◼ 构建一个系统速度足够快,不会消耗太多的能量,而且尽可能便宜
◼ 能够按时完成它。
◼ 并知道在我们开始项目时对困难的预计。
◼ 创新让我们突破一些关键的技术障碍。
◼ 方法学可确保一致性。
基于模型的设计!=写代码
• 用高层框图和状态机的设计,自动获取编译成底层代码 !
• 不仅需要建模,还需要设计开发环境
验证!=仿真/测试
建模/编程
需求
yes/proof
no/bug验证
Program testing can be used to show the presenceof bugs, but never their absence!程序测试可以用于显示存在
bug,但做不到完全消除bug!Edsger W. Dijkstra,算法大师,图灵奖获得者
形式化验证
建模/编程
需求
yes/proof
no/bug验证
❑ 目标: 建立可满足所有可能情况需求的模型
❑ 第1个挑战: 为了使问题能用数学精确描述,需要形式化定义“模型”和“需求”
❑ 第2个挑战:需要验证技术于开发工具
CPS:三大基本问题
1)建模(what)通过模拟获得对系统更深入理解的过
程。模型表达系统做或应该做的事情。2)设计(how)组件的结构化创建。它明确并规范了系统如何完成预设目标。3)分析(why)通过解剖获得对系统更深入理解的过
程。它证明一个系统什么该做,或无法做模型认为它应该做的。
二、设计基本过程
以巡航控制器设计为例
巡航控制器的目的:自动调节车速,使车按设定速度行驶
1)是一种可使汽车工作在发动机有利转速范围内,减轻驾驶员的驾驶操纵劳动强度,提高行驶舒适性的汽车自动行驶的装置。2)该系统工作时,驾驶员无需操作油门踏板就能保证汽车以设定的车速匀速行驶,从而给汽车驾驶带来了很大的方便。
基本原理
系统结构
工程图纸(某款市售车)
传统的设计过程工具:纸,笔。计算尺(器)
材料:元器件、电路板
特点:周期长
Courtesy: HP
系统级设计
目标是如何快速精确分析系统性能
怎样设计软件?
巡航控制器
怎样设计软件?
问题:作为汽车系统中的一个组件,它要与其它部分如何互动?
软硬件协同设计(Hardware/Software Co-design )
设计模式 (1): loop 展开
设计模式(2): Gajski‘s Y-图
设计模式 (3):V-模型
Software
architecture
System
architecture
Requirement
analysis
System
design
Software
designUnit
testsIntegration
testingSystem
integrationAcceptance
& useSkipping some explicit
repository updates ..
一般的设计流
Specification
ES-hardware
System software
(RTOS,
middleware, …)
Test *
Evaluation & Validation
(energy, cost,
performance, …)
Optimization
Application
mapping应用
知识
Design方案存档
工具链、平台、重用,构成一个有效的loop
* Could be
integrated
into loop
Design
设计的一般方法
1)规格规范描述:Need to be done using high-level specification, programming and hardware description languages(非汇编与门级/晶体管级设计)
2)工具:Requires efficient design space exploration and synthesis/compilation tools.
3)非功能因素的考虑:Different design requirements has to be taken into account, e.g., cost, performance, testability, quality of service, power consumption.
4)多语言设计架构:Multi-language design framework.
软件设计一般流程
传统开发流程
传统设计流程的弊端
二、基于模型设计
系统设计面临的挑战(航空航天)
设计的需求越来越复杂
基于模型设计(MBD)可期望的目标
什么是基于模型设计
基于模型的开发流程
基于模型的系统(软件硬件)解决方案
基于模型设计的一般流程
Specification,设计重要的开始
Specification:详述, 规格, 说明书, 规范。
是对工程、设备或产品的原料、尺寸或质量进行明确、详细地说明。
设计文档会写设计文档吗?
传统设计方法 vs 基于模型的设计方法例:新的Electronic stability control (ESC)开发
1. 拿来样车,到各种路面上做实验;
2. 收集数据,研究一下,搞些参数,搞个算法
3. 码代码,码代码 编译,出错,改代码,编译,编译,出错,改代码,编译,出错,改代码,编译,过了(虽然不知道为啥)!
4. 搞到测试的板子上,做成ESC,装到机器上测试一下算法!
5. 把板子装到样车上,到各种路面上做各种乱开 。
6. 拿来数据看看控制效果,如果要提高产品质量或者老板要有任何改动,就得 3,4,5再来一次。
7. 最后还要留出时间来把代码转成production level的,检查bug。
1. 通用的车辆Simulink模型,把具体车辆物理参数输入进行调试,提高model的准确性。
2. 在Simulink搭建整个ESC,可以同时开发多个算法来进行比较,MIL(Model In The Loop) 跑一下各种不同路况。
3. 将这个ESC模型直接进行codegen, 然后deploy 到target(板子)上,进行TIL(Target In The Loop) [
这个环节不仅是一个debug的环节,对于算法的选择和任何控制器的优化都可以在2,3中完成]
4. 当模拟数据满意后,将deploy好的板子放到车辆上进行测试 。
5. 如果要提高产品质量或者老板要有任何改动,就得 2
,3,4再来一次。
6. 测试系统在不同情况下的表现。可以在开发的早期就发现类似于ambiguous requirements的问题(老板想
要的和你做的不一样的问题)。如果在车辆测试中发现实际车辆和模拟车辆表现有差别还可以进一步来完善plant model。
42
MBD的八个核心要点(参考)
1)可运行化的要求 Executable Specification
2)高层面系统模拟 System-Level Simulation
3)模拟测试 What-if Analysis
4)模型化的详述 Model Elaboration
5)虚拟化样机开发 Virtual Prototyping
6)不间断测试及认证 Continuous Test and Verification
7)自动化 Automation
8)知识撷取和管理 Knowledge Capture and Management
三、什么是模型
模型的定义
模型:对于现实世界的事物、现象、过程或系统的简化描述,或其
部分属性的模仿。
建模:对于所研究的系统可以通过类比、抽象等手段建立起各种模
型。
分类:模型可以取各种不同的形式,不存在分类原则。按照模型的
表现形式可以分为物理模型、数学模型、结构模型和仿真模型。
模型分类
模型
物理模型 数学模型 结构模型 仿真模型 …
…
按照模型的表现形式划分:
物理模型
歼十模型
歼十模型
歼十战机
数学模型
在哥尼斯堡的一个公园里,有七座桥将普雷格尔河中两个
岛及岛与河岸连接起来。问是否可能从这四块陆地中任一块出发,恰好通过每座桥一次,再回到起点?
结构模型
碳60结构模型 房屋结构模型
模型与建模
模型——是对现实世界的事物、现象、过程或系统的简化描述,或其部分属性的模仿。
建模——是通过类比、抽象等手段对所研究的系统建立起各种模型(物理模型、数学模型、结构模型、仿真模型等)。
从现实对象到数学模型
模型是为了一定目的,对客观事物的一部分进行简缩、抽象、提炼出来的原型的替代物。模型集中反映了原型中人们需要的那一部分特征。
51
系 统
模 型 计算机
系统建模 仿真实验
仿真建模
建模仿真三要素及三个基本活动
模型到底是什么?
Models = 实物
Models = 数学表达式
Models = 图
Models = Programs
Models = ?
四、建模实例
模型实例(1):一类机器人的运动控制
模型实例(2)
模型实例(3)
模型实例(4)
模型实例(5)
模型实例(6)
模型实例(7)
模型实例(8)
模型实例(9):延迟
❑ 输入变量:布尔类型
布尔输入 布尔输出布尔变量x := 0
输出:=x ; x:= 输入
❑ 输出变量:布尔类型
❑ 状态变量:布尔类型的X
❑ 状态变量的初始化:赋值x:= 0
❑ 在每一轮中,响应一个输入,通过执行更新代码来产生输出和更新状态:输出:= X;
❑ X:=输入