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

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

3天内不再提示

关于持续集成与基于模型的设计的分析和应用

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

扫码添加小助手

加入工程师交流群

持续集成(Continuous Integration)在纯软件开发中是一个比较通用的实践:

持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽快地发现集成错误。许多团队发现这个过程可以大大减少集成的问题。

持续集成通常伴随着以下几个部分:

和版本管理工具友好集成

编译自动化

测试自动化

例如,张三开发了一个新功能,他所在的版本开发分支为Testing。他在提交代码后(当然自己需要先测试一下),系统可以自动编译,并运行回归测试用例。在确定功能稳定可用后,Testing分支可合并到主分支。

大部分MBD(基于模型的设计,Model-Based Deisgn)客户都已经比较好地使用了版本管理工具,例如SVN或者Git。很多客户也能开发一些MATLAB脚本做一些自动化编译,例如:

使用Embedded Coder自动产生算法层C代码,将C代码自动拷贝到TI的CCS工程和驱动部分代码整合,然后自动调用CCS的编译功能进行编译链接产生最终二进制文件,此后可以将二进制文件自动下载到开发板芯片中编译执行。

MBD之所以为一种开发效率高的开发模式,用户会将主要精力集中于Model-In-the-Loop(MIL)的开发。在MIL层面,用户会开发大量的单元测试用例,在和用户的讨论中发现,有一种场景比较实用:

提交模型+自动回归测试+自动报告生成

本文以Git、GitLab、Jenkins为主要工具,介绍如何配置MBD模式下的自动回归测试+自动报告生成。

详细配置

关于持续集成与基于模型的设计的分析和应用

注意:通常情况下,Jenkins Server会选择一个计算能力较强的服务器,本文为了方便选择将Simulink和Jenkins装在同一机器上。

1. GitLab的项目创建

先在GitLab下建立一个项目,本地Git和GitLab Server可以选择SSH连接也可选择HTTPS方式,本文选择HTTPS。

关于持续集成与基于模型的设计的分析和应用

然后在本地的Simulink工程目录,打开Git Bash。

>> Git init

>> Git clone https://insidelabs-git.mathworks.com/mozhou/SBR.git

2. Simulink和Git集成

本文中,Git可视为GitLab的客户端。Simulink可以直接在界面中,进行Git的操作,见下图:

关于持续集成与基于模型的设计的分析和应用

建议直接用Git命令行操作,优势如下:

Git命令行灵活方便,易于脚本化。

想要熟悉Git命令,自己最好从头开始,用Git init、Git add、Git commit、Git push把Simulink工程中的文件添加到GitLab Server。也可理解一个Simulink工程中哪些文件是永久文件(需要添加到版本库),哪些是中间文件(不需要添加到版本库)。

Simulink是比较智能的。

一旦你用手动方式做了一遍Git操作,Simulink就自动“记得”哪些文件和Git库是有关联。

3.Jenkins的配置

首先,安装Jenkins时候装上必用的几个plugin :Git plugin、GitLab plugin、GitLab Hook plugin。然后在Jenkins里面建立项目。

配置源代码GitLab仓库设置

关于持续集成与基于模型的设计的分析和应用

配置BuildTrigger

在GitLab的项目的settings -> integrations:

关于持续集成与基于模型的设计的分析和应用

加上webhook后可以测试一下。

关于持续集成与基于模型的设计的分析和应用

然后回到Jenkins的项目设置:

关于持续集成与基于模型的设计的分析和应用

配置编译脚本:

关于持续集成与基于模型的设计的分析和应用

runMyTests.m 是一个MATLAB脚本,它的功能就是将指定位置的测试用例找到,然后批量执行所有回归测试用例,最后输出指定格式的报告。

关于持续集成与基于模型的设计的分析和应用

关于持续集成与基于模型的设计的分析和应用

关于持续集成与基于模型的设计的分析和应用

3. 运行

打开模型

关于持续集成与基于模型的设计的分析和应用

浏览测试用例:测试用例一共有6个

关于持续集成与基于模型的设计的分析和应用

编辑模型后,提交到GitLab。

关于持续集成与基于模型的设计的分析和应用

在Jenkins上编译成功,查看编译和测试报告。

关于持续集成与基于模型的设计的分析和应用

关于持续集成与基于模型的设计的分析和应用

在实际的工程项目中,随着项目和人员的扩展,越来越多的开发人员会利用合适的代码版本管理和持续集成工具进行并行开发。Git、GitLab、Jenkins这个组合适用于任意大小规模的持续集成开发模式。持续集成也是敏捷开发的一个最佳实践。而MBD的模式——早期验证、虚拟集成完全符合敏捷开发的理念。越来越多的开发人员在使用MBD的同时也关注如何拥抱敏捷开发。

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

    关注

    13

    文章

    10092

    浏览量

    90854
  • 源代码
    +关注

    关注

    96

    文章

    2953

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    成都汇阳投资关于国产开源模型持续突破,国产AI 竞争力增强

           国产开源模型领跑 ,AI 生态有望加速繁荣 根据独立 AI 基准测试与分析平台 Artificial Analysis 最新榜单 , 国产模型 KimiK2Thinking
    的头像 发表于 11-24 14:01 163次阅读

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

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

    构建适用于三维集成系统的互连线长分布模型

    在三维集成电路设计中,TSV技术通过垂直互连显著优化了互连线长分布特性。基于伦特定律的经典分析框架,可构建适用于三维集成系统的互连线长分布模型
    的头像 发表于 08-21 10:41 732次阅读
    构建适用于三维<b class='flag-5'>集成</b>系统的互连线长分布<b class='flag-5'>模型</b>

    亚马逊云科技现已上线OpenAI开放权重模型

    开放权重模型,向数百万亚马逊云科技客户开放。 客户可利用这些全新开放权重模型的先进推理能力,支持Agentic工作流、代码生成、科学分析和数学问题求解等应用。 开放权重模型的推出扩展了
    的头像 发表于 08-06 19:29 665次阅读

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

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

    IGBT模块吸收回路分析模型

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

    答疑 | 台灯会影响白色树脂打印的模型开裂变黄吗?

    极低,通常不会对模型有直接影响。 先浅浅分析一下原因: 第一,“开裂”主要与树脂固化时的应力、打印参数设置不当,或后处理(如清洗、固化)不充分有关。 第二,”变黄“大多是紫外线长期照射引发了树脂氧化,或
    发表于 05-19 17:23

    CICTCD在汽车软件开发中的革命性作用#持续集成与测试 #CICD持续集成与交付

    软件开发
    北汇信息POLELINK
    发布于 :2025年04月17日 15:36:09

    C#集成OpenVINO™:简化AI模型部署

    在开源测控、机器视觉、数采与分析三大领域中,如何快速将AI模型集成到应用程序中, 实现AI赋能和应用增值? 最容易的方式是:在C#中,使用 OpenVINO工具套件 集成AI
    的头像 发表于 02-17 10:03 2503次阅读
    C#<b class='flag-5'>集成</b>OpenVINO™:简化AI<b class='flag-5'>模型</b>部署

    涂鸦智能集成DeepSeek大模型能力,激活全球AI硬件开发者新商机

    春节前一周,DeepSeek-R1模型在全球AI圈内一石激起千层浪。该模型自发布以来持续引发行业热议,更于近日成功登顶全球AppStore应用商店总榜榜首。DeepSeek以更低的训练成本实现了
    的头像 发表于 02-11 10:31 896次阅读
    涂鸦智能<b class='flag-5'>集成</b>DeepSeek大<b class='flag-5'>模型</b>能力,激活全球AI硬件开发者新商机

    C#中使用OpenVINO™:轻松集成AI模型

    分析三大领域中,如何快速将AI模型集成到应用程序中,实现AI赋能和应用增值?最容易的方式是:在C#中,使用OpenVINO™工具套件集成AI模型
    的头像 发表于 02-07 14:05 1639次阅读
    C#中使用OpenVINO™:轻松<b class='flag-5'>集成</b>AI<b class='flag-5'>模型</b>!

    持续改进工具之战:Smartsheet vs. Minitab Engage

    Smartsheet和Engage: 持续集成路线图:Smartsheet缺乏成功执行项目所需的预构建持续集成工作流。Engage在每
    的头像 发表于 01-24 14:40 626次阅读

    云服务器Flexus X实例,Docker集成搭建Jenkins CI/CD平台

    Jenkins 是一个开源的自动化服务器,用于持续集成(CI)和持续交付(CD)软件项目。它允许开发人员在软件开发过程中自动化各种任务,如构建、测试和部署,从而提高开发效率和软件质量。
    的头像 发表于 12-29 15:43 668次阅读
    云服务器Flexus X实例,Docker<b class='flag-5'>集成</b>搭建Jenkins CI/CD平台

    【「大模型启示录」阅读体验】营销领域大模型的应用

    今天跟随「大模型启示录」这本书,学习在营销领域应用大模型。 大模型通过分析大量的消费者数据,包括购买历史、浏览记录、社交媒体互动等,能够识别消费者的偏好和行为模式。这种
    发表于 12-24 12:48