您的位置 首页 元件

编写代码太累?试试根据模型的规划

前一阵参加了MathWorks公司一个关于基于模型的设计的讲座,先介绍了基于模型的设计model based design,然后是亲自动手体验;感觉很有意义,特别是其中的自动代码生成,所以在此和大家分

  前一阵参加了MathWorks公司一个关于根据模型的规划的讲座,先介绍了根据模型的规划model based design,然后是亲主着手体会;感觉很有意义,特别是其间的主动代码生成,所以在此和咱们共享一下。

  听起来,主动生成代码好像是专门为不想多着手的工程师预备的东西。其实,主动代码生成最早是做为根据模型的规划办法的一部分提出的。一般情况下,嵌入式体系软件的开发分为需求界说、功用规划、代码编写和测验等几个阶段,测验、找bug和处理bug往往要花费许多的精力,特别是越是躲藏的深的bug越难发现和处理,危险也很大。所以每次在传统办法下发现和处理bug形成的发布延时都会形成整个修正本钱的指数级上升。而选用根据模型的规划,则能够在规划的前期经过仿真等手法确保模型的正确性,例如在仿真环境下,咱们的模型能够彻底完结咱们的目的,然后主动代码生成和验证便是瓜熟蒂落的问题了。

  其次,根据模型的规划在杂乱和十分杂乱的体系中特别有意义。他们举了几个比如,例如在高级的汽车上,悉数代码预估现已到达千万行、乃至两千万行的级别了,这么多代码要是靠手艺编写和测验,首要需求几十个几百个人的编程和测验团队不说,光是交流的功率就很难确保了;根据模型的规划办法则能够有用处理这个问题。现在在汽车行业,这种形式现已成为干流的开发办法了,在航空航天等范畴也得到了很广泛的运用,例如闻名的F-22战斗机和“猎奇号”火星车都运用了根据模型的规划办法。例如讲座中说到,火星车的开发中,运用了380000次仿真,这要是依照传统的测验办法去一遍遍做,估量整个团队都要吐血身亡了。

  此外,开发一个杂乱体系要花费很多的时刻,新体系开发时从现有体系中复用现有的代码是省劲实力的。根据模型的规划办法由于运用模型参阅调用的办法引证子体系,所以代码的移植和复用十分便利。例如例如讲座中说到,F35战斗机有A、B、C三种类型,在开发进程中,能够重复运用的体系规划模型就明显提高了开发功率。

  接下来讲讲我所了解的根据模型规划的开发进程:

  1. 体系需求

  不管用啥开发办法,终究要完结的体系是相同的,所以体系需求并没有什么明显差异。只不过Simulink开发东西能够在建模中将模型与需求文档进行相关,便利快速检查模型功用与需求文档之间是否有误差。

  2. 建模

  便是在Simulink环境中把咱们需求的功用用模块建立起来,例如控制体系、通讯体系等,根据图形化的编程仍是较为直观和简单的,并且仿真测验很快就能得到成果了。

  3. 代码生成

  模型有了,这一步便是超级吸引人的了,直接把模型生成C代码,多便利的功用。当然有一些规范要界说的,包含一些ISO的规范;并且假如咱们运用的处理器被Simulink支撑的话,在生成代码的时分还能够直接针对代码优化,例如咱们的方针对象是TI的一个DSP,则一些数学运算在生成代码时会直接调用BootROM里的数学库,比较于传统的C言语math.h里边的规范数学库,运转速度要强的多;常用的DSP、ARM等根本都是支撑的。

  4. 软件在环测验

  硬件在环测验HIL咱们或许都听说过,不过软件在环测验SIL貌似是个比较新鲜的概念。它的意义便是把生成的c代码调用到仿真环境中,输入是与仿真的那步是相同的,这样就能比较生成的代码和咱们的模型是否有成果的差异。当然几乎是不会呈现什么情况的。

  5. 硬件在回路测验

  这一步许多人都不生疏,便是把生成的代码下载到实践的控制器中,观测回来的成果是不是和咱们的仿真模型是共同的。

  实验了一下,生成代码的功率还不错,可读性也很好,假如觉得编程太累了,能够测验一下。当然有一些功用在Simulink里边完结仍是暂时有困难的,例如实时操作体系的使命调度,现在还很难完结出来,所以能够把功用区分一下,一部分控制体系、通讯体系的代码运用这种办法,其它的则还需求手艺编写,然后经过接口进行协同作业。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/xinpin/yuanjian/118251.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部