使用基于模型的设计进行早期验证和确认
MATLAB 简化了线性控制设计,但是在实际应用中,系统很少是线性的。因此,即使在设计了控制器后,对其进行测试和调整仍然意味着需要构建系统的硬件原型,并对算法进行编码。或者,因为没有样机而无法进行测试,只有等到开发流程后期才能开展测试活动。
本文引用地址:https://www.eepw.com.cn/article/151119.htm为了将算法应用到硬件之前验证这些算法,工程师们借助数值技术来仿真控制算法对系统(也称为“对象”)的控制行为。控制工程师们学习编写 C 或 Fortran 程序来尝试构建系统模型,借用他们认为可能会适用于其系统类型的数值积分例程,在系统模型程序中复制其控制算法,并仿真整个系统。如果要使系统完全正常工作,那么整个仿真-开发流程需要耗费大量时间并且极具挑战性。
The MathWorks 在 1990 年发布了Simulink,一种用于对动态系统进行建模和仿真的软件环境。在控制设计中使用 Simulink 可带来两大好处。首先,该软件提供了一种直观的框图环境,可用于对算法和对象以及可能影响系统行为的非线性实际效果进行建模。其次,该软件包括一个基于一流数值积分方法创建的仿真引擎。这些核心功能极大地简化了控制工程师通过仿真来验证控制算法的工作。但是控制工程师们仍然必须在最后对算法进行编码,以在硬件样机或实际系统上测试这些算法。
大约五年后,随着 Simulink 模型自动代码生成的推出,此流程变得简单得多。对于调试和测试在原型系统中运行的代码,控制工程师们不必再担心将算法模型转换为代码时出现错误。
控制工程发展的下一步曾是个很大的挑战:产品级的代码生成。快速原型代码通常包含许多调试例程、数据收集代码、主机-目标通信代码以及用于交互测试的其他补充代码。一般而言,这些代码的优化程度不足以将其运用在可交付使用的系统中。代码生成工具经过改进后,可以生成高效率的代码,足以部署到产品级嵌入式系统中。今天,许多行业都认为从控制模型自动生成产品级代码是最佳的做法。
Model-Based Design(基于模型的设计)
处理器速度和内存的快速增加有助于在桌面上开发建模、仿真和代码生成工具,同样也使嵌入式软件开发人员可以改进嵌入式控制器的功能和复杂性。此步骤继而推动了这样一种需求:即使用文本编辑器和调试器的传统代码开发技术不再是一种局限,未来的设计将以模型为中心。这种以模型为中心的开发方法称为 Model-Based Design(基于模型的设计)(图 1)。
图1:以模型为中心的开发方法称为 Model-Based Design(基于模型的设计)。
通过基于模型的设计,团队可根据书面需求使用模型开发其设计。由于采用了仿真引擎,因此这些模型成为“可执行的规范”。对于开发和检查规范的团队而言,“规范可执行”是个极大的好处。检查完高级模型后,可使用设计详细信息修改模型,以便将其转换为代码。从详细设计模型自动生成代码极大优化了实现过程,并避免了从设计到代码转换过程中引入错误的可能。
传统的嵌入式控制系统的开发过程和V 型图一致(图 2)。
图2:传统的嵌入式控制系统的开发过程和V 型图一致。
评论