0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于模型设计的敏捷方法分析和介绍

MATLAB 来源:djl 2019-09-12 09:20 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

如今,大多数为工程应用开发软件的团队都意识到了传统开发方法(瀑布式)的缺点。这包括在项目后期发现缺陷和设计问题,无法适应需求的更改,以及交付的系统不满足客户需求的风险。为了克服这些缺点,许多团队采用了将敏捷方法与基于模型的设计相结合的开发流程。

有关基于模型的设计和敏捷方法的研究表明,对工程应用而言,基于模型的设计不仅是敏捷开发的有效补充,甚至有时使敏捷开发成为可能。像敏捷开发一样,基于模型的设计最初是为了支持快速迭代,其还满足了系统工程方面的挑战,而这些挑战不是敏捷开发单独能够解决的:

如何在不使用设备的情况下进行早期测试

如何管理工程系统的复杂性

如何降低在昂贵的硬件上测试未经验证的软件的风险

如何满足功能安全及其他标准的要求,包括 DO-178B/C 和 ISO 26262

本文通过一个自适应巡航控制示例,解释基于模型的设计是如何支持敏捷开发的核心价值体系。该示例结合了基于模型的设计、敏捷方法和 Scrum 框架。

敏捷开发和基于模型的设计——基础

软件敏捷开发方法建立在2001年出版的《敏捷宣言》中概述的核心价值体系和原则之上。如今,敏捷开发最广泛使用的框架之一是Scrum。在Scrum中,开发以称为sprint的一系列周期进行,在每个周期中,开发团队在项目待办事项列表中的一个子集上工作一段时间(通常是一到两个星期或者一个月)。在每个sprint中,开发团队对软件进行开发、测试、集成,最后对可工作的软件设计文档(图1)。

基于模型设计的敏捷方法分析和介绍

基于 Scrum 框架的敏捷开发

基于模型的设计是一种以模型为中心的系统开发方法。基于模型的设计在整个开发过程中使用模型作为设计载体,而不是依赖物理原型和文本规范的在团队内传递。模型包含了与系统行为相关的所有组件——包括算法、控制逻辑、物理组件和环境组件。一旦模型被开发(细化)出来,就可以用其来生成代码(C/C++、HDL或结构化文本)、报告和其他类型的文档。基于模型设计的核心要素包括系统级和组件级的设计和仿真、自动代码生成,以及持续测试与验证。

将敏捷开发的核心价值体系映射至基于模型的设计

敏捷宣言定义了软件开发的四个核心价值观:

个体和互动高于流程和工具

工作的软件高于详尽的文档

客户合作高于合同谈判

响应变化高于遵循计划

宣言作者指出,“高于”并不意味着“否定”。他们所倡议的是开发要素要有所侧重:“虽然右边的开发要素也有价值,但我们更注重左边的要素。”

让我们看看这些敏捷方法的价值观如何映射到基于模型的设计:

专注个体和互动

基于模型设计的流程和工具——特别是建模和仿真——能够促进个人和团队之间进行高效的交互。模型可以直接通过Simulink,报告或web页面进行共享, 使所有相关人员能够使用模型作为一个共同的工作参考点,避免产生分歧。仿真结果清晰可见,有助于设计决策、Scrum规划以及促进相关人员的讨论。

注重客户合作

客户合作是敏捷方法的核心。每个sprint以计划会议开始,以评审会议结束,在会议上,客户经常被邀请提供输入。建模和仿真不仅支持高效的客户合作,还支持跨团队、跨领域和跨学科的合作。采用MathWorks公司基于模型的设计工具,来自硬件设计、系统设计、功能和组件开发的工程师们使用共同的语言/平台,可以集中精力在一起工作,而不必担心工具兼容问题。

关注可工作的软件

对于采用敏捷开发的团队来说,基于模型设计的主要优势之一是,即使没有嵌入式目标硬件、被控对象实物、传感器或其他硬件,也能够在最初的sprint中开发出一个可工作的系统。通过仿真验证后的Simulink模型可以作为可工作的软件服务于整个项目的开发。模型作为系统开发过程中的可执行规范,在早期的sprint中,当硬件还不存在时,作为硬件测试结果的替代,也可以与客户共享模型的仿真结果,以用于评估项目进度、寻求支持或计划下一次sprint。模型还提供了一种清晰而便捷的方法来评估项目进度。随着模型的细化,可以用其生成代码,用于软件在环(SIL)、处理器在环(PIL)和硬件在环(HIL)测试,以及用于实时原型和生产系统。

模型还可以作为文档的载体。在基于模型的设计中,文档是模型设计过程的输出,而不是一个单独的任务,文档和报告可以根据需要从模型直接生成。

注重响应变化

瀑布开发的一个主要障碍是不能对不断演化的需求和条件做出足够的反应。敏捷开发和基于模型的设计解决了这一缺陷,使团队能够更有效地应对变化。对于工程应用软件中的任何重大更改,使用基于模型设计的工程师可以修改模型,然后简单地重新生成代码。在实现任何更改之前,开发团队可以执行假设分析来确定适应特定更改请求的最佳方法。对模型进行更改后,工程师可以进行回归测试,以确保更改不会为系统引入意外行为。当模型与需求相链接后,开发团队还可以进行影响分析,以了解对模型其中一个部分的更改将如何影响其他部分。

案例——

将敏捷开发与基于模型的设计相结合

开发自适应巡航控制器

在这个例子中,某汽车工程团队正在开发一套具有传感器融合算法的自适应巡航控制系统软件。该系统融合了车载雷达和视觉传感器的输入数据,识别出最重要的目标及其与当前车辆的距离,以调整车速并保持安全距离。

项目中,其中一组工程师负责开发控制算法,另一组工程师负责开发驾驶场景和传感器数据综合算法。这些合成数据将使工程师能够在获得实际的传感器数据之前开发和测试算法。在开发的早期阶段,使用合成数据进行仿真可以为设计决策提供信息,例如车内传感器的类型、数量和位置。

在第一个sprint中,每个子团队(或工程团队)都对各自负责的子系统进行建模,使用共享的系统级的Simulink模型来协调各自的工作(图2)。甚至在这个初期阶段,工程师们可以运行仿真以观察在不同工况下控制器的行为。在编写或生成代码之前,工程师们可以调试控制器,识别出要优化的参数,并利用可工作的系统模型来可视化关键性能指标。

基于模型设计的敏捷方法分析和介绍

带传感器融合算法的自适应巡航控制系统的Simulink模型

在随后的sprint中,开发团队基于客户反馈对模型进行改进或增强——例如,通过调整安全跟踪距离或改变车辆加速或减速的速率——对这些参数进行优化,并生成代码,部署到ECU上。生成的代码可以按照原样使用,也可以作为较大系统的一部分与已有代码集成。Jenkins提供的持续集成(CI)功能可以用来不断检查生成代码与手工代码的集成活动, 比如运行模型测试,检查建模规范的符合性,对生成的代码进行测试等。所有这些活动的结果都会被自动报告,以跟踪进度,并且提供给不使用开发工具的相关人员。

基于模型设计的敏捷方法分析和介绍

自适应巡航控制模型的仿真结果

在之后的sprint中,开发团队加入了更严格的验证和确认活动,包括SIL、PIL或HIL测试,以确保设计满足需求。此外,开发人员还检查模型和代码是否符合已建立的标准和指南,使用静态分析和形式化方法来证明软件不存在严重的运行时错误,并为标准的认证生成认证报告及其他所需文件。

随着项目的进行,客户需求可能会发生变化。例如,客户可能要求模型使用预测控制,而不是经典的控制算法,因为先进的MPC(模型预测控制)控制器使车辆能够对场景中其他车辆的激进动作更好地做出反应。由于在这个项目中使用了系统模型,算法团队可以很容易地用新开发的模型预测控制器替换原来的控制算法,并保持模型的其余部分不变。团队重新运行仿真并与客户分享结果,进而就是否继续进行设计更改还是恢复到原先的控制算法设计做出更好的决定。

该团队在其敏捷开发工作流中使用了基于模型的设计,并且在涉及到具体硬件之前就交付了可以工作的软件。建模和仿真使得团队能够根据客户反馈不断改进设计,甚至在项目后期适应重大的需求更改。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 控制器
    +关注

    关注

    114

    文章

    17877

    浏览量

    195104
  • 数据
    +关注

    关注

    8

    文章

    7348

    浏览量

    95016
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    知识分享 | 使用MXAM进行AUTOSAR模型的静态分析:Embedded Coder与TargetLink模型

    分析:EmbeddedCoder与TargetLink模型文章内容来源:MES模赛思官方网站AUTOSAR(AUTomotiveOpenSystemARchite
    的头像 发表于 08-27 10:04 883次阅读
    知识分享 | 使用MXAM进行AUTOSAR<b class='flag-5'>模型</b>的静态<b class='flag-5'>分析</b>:Embedded Coder与TargetLink<b class='flag-5'>模型</b>

    在ANSA中设置ABAQUS独立非线性分析步的方法

    搭建Abaqus有限元模型时,经常需要设置多分析步。在设置Abaqus多分析步的常用方法为在仿真分析任务中设置多个“Step”,将整个仿真任
    的头像 发表于 08-06 15:14 1769次阅读
    在ANSA中设置ABAQUS独立非线性<b class='flag-5'>分析</b>步的<b class='flag-5'>方法</b>

    多种空间矢量调制方法的谐波分析

    摘 要:以三相电压型逆变器为研究对象,介绍了多种空问矢量调制方法。该方法易于数字化,避免繁琐的计算。本文通过一种在标准正弦波的基础上,注入零序分量来统一给出这些调制方法。逆变器在这些调
    发表于 07-25 14:03

    知识分享 | 敏捷方法在基于模型的软件开发项目中的应用

    传统的瀑布式软件开发流程存在诸多局限,这使得应用敏捷原则变得尤为重要,尤其是面对复杂且不断变化的开发环境时。作为最高效的软件开发方法之一,基于模型的开发(MBD)具有诸多优势。将敏捷
    的头像 发表于 07-16 16:52 1427次阅读
    知识分享 | <b class='flag-5'>敏捷</b><b class='flag-5'>方法</b>在基于<b class='flag-5'>模型</b>的软件开发项目中的应用

    模型推理显存和计算量估计方法研究

    GPU、FPGA等硬件加速。通过分析硬件加速器的性能参数,可以估算模型在硬件加速下的计算量。 四、实验与分析 为了验证上述估计方法的有效性,我们选取了几个具有代表性的深度学习
    发表于 07-03 19:43

    提高SEA模型PBNR计算精度的方法及策略

    在汽车 NVH 工程领域, PBNR(Power Based Noise Reduction)分析是整车高频噪声舒适性开发中常用的方法,相比于传统的隔声量NR分析方法,PBNR
    的头像 发表于 06-30 09:30 1538次阅读
    提高SEA<b class='flag-5'>模型</b>PBNR计算精度的<b class='flag-5'>方法</b>及策略

    模型在半导体行业的应用可行性分析

    的应用,比如使用机器学习分析数据,提升良率。 这一些大模型是否真的有帮助 能够在解决工程师的知识断层问题 本人纯小白,不知道如何涉足这方面 应该问什么大模型比较好,或者是看什么视频能够涉足这个行业
    发表于 06-24 15:10

    轮毂电机电磁噪声测试方法及特性分析

    有限元模型,求解径向力波,并以此为激励力求解电机外转子的受迫振动响应,利用LMS.Virtual.Lab建立轮毂电机电磁噪声边界元模型,基于正交试验原理对轮毂电机电磁保声进行仿真计算,分析了产生该试验
    发表于 06-10 13:19

    FA模型的DataAbility的切换介绍

    ,Stage模型下的DataShareExtensionAbility为系统API,只有系统应用才可以创建。因此,FA模型的DataAbility的切换,对于系统应用和三方应用策略有所不同。下面分别介绍
    发表于 06-06 08:10

    FA模型的ServiceAbility的切换介绍

    的ServiceExtensionAbility为系统API,只有系统应用才可以创建。因此,FA模型的ServiceAbility的切换,对于系统应用和三方应用策略有所不同。下面分别介绍这两种场景。 系统
    发表于 06-05 07:24

    FA模型绑定Stage模型ServiceExtensionAbility介绍

    FA模型绑定Stage模型ServiceExtensionAbility 本文介绍FA模型的三种应用组件如何绑定Stage模型的Servi
    发表于 06-04 07:55

    FA模型访问Stage模型DataShareExtensionAbility说明

    FA模型访问Stage模型DataShareExtensionAbility 概述 无论FA模型还是Stage模型,数据读写功能都包含客户端和服务端两部分。 FA
    发表于 06-04 07:53

    Stage模型绑定FA模型ServiceAbility的方法

    Stage模型绑定FA模型ServiceAbility 本小节介绍Stage模型的两种应用组件如何绑定FA模型ServiceAbility
    发表于 06-04 06:54

    Stage模型启动FA模型PageAbility方法

    Stage模型启动FA模型PageAbility 本小节介绍Stage模型的两种应用组件如何启动FA模型的PageAbility组件。 U
    发表于 06-04 06:36

    IGBT模块吸收回路分析模型

    尽管开关器件内部工作机理不同,但对于吸收电路的分析而言,则只需考虑器件的外特性,IGBT关断时模型可以等效为电压控制的电流源,开通时可以等效为电压控制的电压源。下面以下图所示的斩波器为例提出一般
    的头像 发表于 05-21 09:45 1395次阅读
    IGBT模块吸收回路<b class='flag-5'>分析</b><b class='flag-5'>模型</b>