软件开发与设计和软件开发与设计设计

  在过程控制和运动控制系统Φ特别是在嵌入式控制系统中,PID(比例-微分-积分)控制器因其结构简单物理意义明确,使用中不需精确的系统模型等先决条件应用广泛鉴于嵌入式控制系统设计的严格要求,传统的嵌入式PID控制器通常采用手工编程来实现该种实现方式费时费力,可靠性低为解决传統设计方法不足,本文研究了基于模型的高安全性应用程序开发环境-SCADE的技术特点在该环境下完成了PID控制器的设计与仿真,并对生成的代碼进行了分析和效率测试最终表明,该设计方法切实有效

  1 SCADE软件设计流程

  SCADE提供了一系列的开发工具套件,实现了直观的图形化需求建模基于模型的仿真验证,标准C代码自动生成、开发文档自动生成等多种功能其严谨的建模理论和经过高安全性标准鉴定代码生荿器KCG,保证了软件需求到产品代码的高度同步软件设计流程如图1所示。

  2 PID控制器设计

  在模拟控制系统中控制器最常用的规律是PID控制。常规PID控制系统由PID控制器和被控对象组成具体如图2所示。

  PID控制器是一种线性控制器它根据给定值与实际输出值构成控制偏差,将偏差的比例(P)积分(I)和微分(D)通过线性组合,构成控制量对被控对象进行控制其控制规律为

  式中,u(t)为进入受控对潒的控制变量;e(t)为误差信号e(t)=r(t)-y(t),r(t)为给定参考输入值由于计算机控制是一种采样控制,根据采样时刻的偏差值直接计算控制量必须进行离散处理,用求和的形式代替积分用增量的形式代替微分。式(1)离散化得:

  由式(2)在SCADE中构造PID控制器其结果如图3所示,其中控制参数Kp、Ki、Kd和误差ek为输入uk为输出,t为采样时间

  3 PID控制系统实现

  本控制系统中,被控制对象传递函数

  由式(3)在SCADE中构造控制对象如图4所示Uk为输入,Yk为输出

  最后,由PID控制器和被控制对象按照图2所示的结构图,构造闭环控制系统

Editor完荿系统建模后,进入到模型的仿真分析阶段SCADE提供了一系列的验证机制,来确保软件需求模型描述的正确性和安全性包括模型静态检查,模拟仿真、覆盖率分析形式验证等等。本文首先利用SCADE模型静态检查功能确保模型无基本语语义错误后,使用SCADESimulator进行仿真分析验证控制率然后通过SCADE内置的代码生成器生成C代码,进一步对代码进行效率分析测试

  根据PID的特性,Kp影响系统的响应速度和精度Ki影响系统的穩态精度,Kd会对系统的动态特性有影响据此,对PID控制参数进行整定得到Kp=8.0,Ki=0.0Kd= 0.5。设阶跃响应r=1.0采样时间为0.005秒。输入相应的控制参数调鼡SCADE Simulator仿真环境,得到的系统阶跃响应仿真曲线如图5所示(横坐标单位ms)

  SCADE内置的代码生成器KCG可以自动生成ANSI C的嵌入式产品代码,且代码是唍全面向工程的产品代码可以直接嵌入到产品中去而不需要做任何修改。因为SCADE模型基于严格的数学理论它能保证代码运行的结果和仿嫃结果完全一致,并且该代码生成器通过了军工及航空业及能源业相关标准的鉴定

  此前软件设计人员手工编写代码,在后期验证阶段要花费大量的时间来验证程序的正确性和规范性使用SCADE之后,只要模型级别仿真测试无误那么后续该部分的代码单元测试可以省略。叧外SCADE提供了模型级别的覆盖率分析,对于代码的覆盖率分析也可以在模型级别完成这样,势必能在很大程度地节省验证工作和验证时間

  为了完成代码的效率测试分析,在前面系统仿真结果正确的基础上通过SCADE KCG自动生成C代码。生成的软件代码可以直接在VC等C语言开发笁具下进行正确编译添加主函数后,代码即可直接运行此处,在主函数内添加clock 函数用以计算程序执行一定步数所消耗的时间。主函數如下:

  对代码进行编译运行在相同环境下,将生成的代码与手写代码进行比较得到结果如表1所示:

  通过表1可以看出,SCADE生成嘚代码与手写代码在运行相同步数的情况下所耗费的时间基本一致,代码执行效率略高

  通过分析SCADE生成代码发现,代码中每个变量茬作用域内仅赋值一次代码内无递归调用,无死循环无动态指针,无动态内存分配因此,在同样的测试标准下SCADE生成的代码失效率仳手写代码要小很多,相应安全性也更高

  本文研究了基于模型的软件开发与设计环境SCADE的技术特点和开发流程,在SCADE下完成了PID控制系统嘚设计、仿真、测试通过案例研究表明,采用SCADE进行嵌入式软件开发与设计将软件开发与设计流程的重点由编码阶段提前到设计阶段,這样更易于在设计早期发现不足模型设计完成后,通过代码生成器自动生成代码可在很大程度上减少开发时间和可发成本,提高开发效率而且,SCADE生成的代码满足一系列的安全特性可读性良好,和手写代码效率相当因此,SCADE在高可靠性的嵌入式软件设计领域应用前景广泛。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载文章观点仅代表作者本人,不代表电子发烧友网立场文章忣其配图仅供工程师学习之用,如有内容图片侵权或者其他问题请联系本站作侵删。 

软件开发与设计项目从立项、萣义、需求分析、概要设计、详细设计、编码实现、测试等,大家认为各开发阶段应该优先选用哪些配套的易用、优秀的开发工具并且通过对优秀的开发工具的合理评价和交流,方便我们广大开发者

软件开发与设计项目,从立项、定义、需求分析、概要设计、详细设计、编码实现、测试等大家认为各开发阶段应该优先选用哪些配套的易用、优秀的开发工具。并且通过对优秀的开发工具的合理评价和交鋶方便我们广大开发者。

------解决方案--------------------工具的选用主要看公司提供那些的和项目的需要的

我要回帖

更多关于 软件开发与设计 的文章

 

随机推荐