描述

Polyspace 自 2013b 版本起开始集成到 MATLAB 平台,利用其强大的静态分析和形式化验证功能完善基于模型设计的过程,同时 MATLAB 的脚本处理能力也加强了验证的自动化过程,应用场景包括:

获取生成代码的规范符合性和复杂度信息

验证集成了 C 代码的模型的鲁棒性

补充 基于模型的设计(MBD) 流程的形式化验证能力

以下案例说明了在基于模型的设计中 Polyspace 的可能的应用过程。

下图案例模型中,既包含了 Simulink 和 Stateflow 模块,也包含了 C 代码封装的 s-function 函数 PedalCmdLookup_C。对于这种混合代码模型,Polyspace 可以起到很好的分析和验证作用。

模型生成代码之后,可以按照如下方法从 Simulink 直接调用 Polyspace,在调用之前也可以在 Option 选项中设置 Polyspace 选项。

在 Bug Finder 的结果中,可以得到违反 MISRA 规则的生成代码(左图)和分析得到的软件错误(右图)。

Polyspace 结果和 Simulink 模型的双向追溯功能可以快速定位到模型中问题模块。

对于 Sum 模块的 MISRA 10.3 违规是为了满足 S 函数接口要求有意为之,我们可以在验证之前就在模型中添加说明,相应的说明会反应到 Polyspace 的结果中(左图),避免了重复评审的工作;而对于指针越界的软件错误,经过分析确实是 S 函数 C 代码中的设计问题,及时修正(右图)避免将问题留到后续环节。

同时我们还能得到生成代码的度量信息,如圈复杂度、局部变量内存占用情况等(左图),用以评估模型架构设计是否合理。Bug Finder 的“边设计边检查”模式可以在设计早期就获得高质量的模型。

在模块交付之前,按同样的方法也可以调用 Code Prover,确保生成代码中不存在运行错误,按此方法创建验证工程的过程中由于可以继承 Simulink 模型中数据的范围信息(上图右),保证了验证的精确性。Code Prover 深度的形式化验证能力可以发现更加隐蔽的问题,并且给出充分的程序调用栈信息帮助快速定位问题原因:

打开APP精彩内容

点击阅读全文

polyspace和matlab的关系,关于Polyspace应用到基于模型的设计可能性分析和介绍相关推荐

  1. matlab基于模型的设计,MathWorks主张使用Matlab和Simulink开发工具进行基于模型的设计...

    描述 相信大家和小编一样,都了解Matlab以及FPGA开发,但是你有想过使用Matlab来对你的FPGA进行开发吗?一段时间以来,MathWorks一直主张使用Matlab和Simulink开发工具 ...

  2. matlab建立的发动机的模型,奇瑞使用基于模型的设计实现发动机管理系统软件的自主开发...

    奇瑞采用了基于模型的设计,并请 MathWorks 工程师来协助其工程团队掌握 MATLAB® 和 Simulink® 的运用. 奇瑞团队使用 Microsoft® Word 定义系统需求.他们基于这 ...

  3. matlab fpga 移植,使用MATLAB,Simulink以及基于模型的设计实现把电机控制算法移植到Zynq平台...

    注:参考文献:"使用MATLAB来实现电机驱动移植到Zynq SoC平台",Xilinx DSP方案部门的高级经理Tom Hill.该文章发表在刚刚出版的第87期XCell期刊上. ...

  4. MATLAB/SimulinkSTM32CubeMXKeil工具链完成基于模型的设计开发(一)

    前言 入职一段时间了,需要不断充实自己的技能树,现在汽车行业控制器的开发大都基于"V"流程,采用基于模型开发的方式,此系列文章作为自己的学习记录 一.MBD概述 基于模型的设计(M ...

  5. Matlab/Simulink自动生成STM32代码_基于模型的开发_环境搭建

    目录 前言 官方简介 Matlab R2018b安装 STM32-MAT/TARGET 安装 STM32CubeMX 安装 STM32CubeIDE, Keil安装 ST-Link驱动安装 微信公众号 ...

  6. stm32代码生成,基于模型的设计(MBD) 无刷直流电机MATLAB开发板建模代码生成控制 MBD电机控制资料

    stm32代码生成,基于模型的设计(MBD) 无刷直流电机MATLAB开发板建模代码生成控制 MBD电机控制资料 控制算法采用MATLAB建模并生成代码的方式 配套电机 开发板 模型 源代码和视频 P ...

  7. 基于模型的系统工程(MBSE)与设计(MBD)的关系思考

    已剪辑自: http://www.clii.com.cn/lhrh/hyxx/201905/t20190522_3934609.html **导读:**如何将关于功能知识表达的建议与任何系统工程建模语 ...

  8. matlab中portcons,Matlab在马柯维茨均值-方差模型的简单应用.ppt

    Matlab在马柯维茨均值-方差模型的简单应用 Matlab在马柯维茨均值-方差模型的简单应用 陈思仰 20100512003 Markowitz(1952)发展了一 个在不确定条件下严格陈述的 可操 ...

  9. 级联失效matlab,加权无标度网络的级联失效模型

    社交网.交通网.通信网等领域均呈现无标度特性[, 是复杂网络中常见的一种现象, 不同网络中的节点和边都承载着不同形式的负载, 且负载的承受能力是有限的.加权无标度网络是指节点和边根据权值构建成的网络[ ...

最新文章

  1. 《Swift开发实战》——第2章,第2.4节函数和闭包
  2. yolov3深度解析
  3. Hadoop 在关机重启后,namenode启动报错
  4. iTunes 降级安装 12.6
  5. javascript异步_JavaScript异步并在循环中等待
  6. 前端学习(1267):axios的post传参
  7. 中国特种电器灯泡行业市场供需与战略研究报告
  8. 阿里巴巴Java开发文档2020版学习-OOP 规约
  9. 工业互联网与高端装备健康管理解决方案
  10. AcWing 158. 项链
  11. 美团外卖API接入(一)
  12. 简单可控硅交流调压方案
  13. 【我的新书】《良质!PHP企业级系统开发》- 图灵社区
  14. 常识:分辨率1080p和720p有什么区别?
  15. 敏捷项目管理实战之进度管理
  16. 迈克尔逊干涉计算光强matlab,迈克尔逊干涉实验的仿真研究
  17. 用mysql锁保证线程安全
  18. Excel神奇的输入自动替换,原来就是这么简单!
  19. win 10文件夹、资源管理器卡顿问题解决办法
  20. iOS模拟器无法响应电脑键盘

热门文章

  1. 阿里云【名师课堂】Java高级开发18 ~ 21:Annotation
  2. 【Excel进阶】常用的50个函数与基础操作
  3. Chrome浏览器好用的插件分享
  4. 杰理-修改MAC地址
  5. Sybase ASE 修改登陆用户密码
  6. cpu的性能指标(电脑cpu的性能指标)
  7. python django打造自己的喜马拉雅 2(分析喜马拉雅接口)
  8. YDOOK: ANSYS 命令 定义线性材料属性 MP
  9. Could not determine which parameter to assign generated keys to
  10. 内容无错误,但运行不出来