开发机电系统的挑战
在了解到机电这个词已有近40年的历史后,大多数工程师都会倍感惊讶。首次使用这个词的人是Yaskawa Company的一名工程师Tetsuro Mori。1969年,他使用这个词来描述由嵌入式系统控制、包含机械和电子元素的系统(参见图1)。在当今世界,很少有机电设备不包括某种类型的嵌入式系统。嵌入式系统的智能化提供了更优越的性能、更低的能源消耗、更出色的可靠性和更安全的操作,这正是一种设备的关键差异化优势和价值驱动因素。
嵌入式系统的优势是有代价的。随着机电系统利用更加强大的微处理器(这些微处理器能为嵌入式系统提供智能),硬件和软件之间的交互也变得更加复杂。管理这样的复杂性可能会给硬件和软件工程团队带来巨大的挑战,这些团队要负责陈述需求、描述问题、以不同的方式测试和实现解决方案。此外,工程师必须设计闭环控制策略,以弥补机电交互和外部干扰,并针对操作需求整合开环监视控制,例如启动和关闭、个人与设备的安全性以及故障检测和修复。
在大多数传统设计方法中,工程师在硬件原型上测试软件,只有在开发过程的后期才能处理软件验证。在这个阶段发现的硬件或软件错误会造成代价高昂的延迟,而且追溯问题根源也十分耗时。与不完善、不正确或彼此冲突的需求有关的错误甚至可能导致彻底的重新设计。
使用基于模型的设计改进开发
基于模型的设计(参见图2)为横跨不同工程学科进行设计和通信提供了一种通用的环境,从而简化了机电系统的开发。基于模型的设计为系统级设计提供了另一种视角,扩展了计算机辅助工程(CAE)领域。计算机辅助设计(CAD)提供设备的几何学或静态描述,与之相似,基于模型的设计整合了正确描述系统所需的动力学和性能需求。由于这种方法是由软件驱动的,因而工程师可以顺利地研究竞争对手的设计和探索新概念,不必承担昂贵的硬件投资。工程师可以随着设计的进展不断开展测试,根据需求检查设计,在开发过程的早期发现错误,此时纠正错误的难度和成本都较低。此外,基于模型的设计能消除手动编码开环和闭环控制算法的需求,自动生成嵌入式系统的代码。
基于模型的设计使用一种系统级模型,该模型以数学形式独特地描述设备的自然行为和受控行为,从而定义一种可执行的规范。工程师可通过模拟系统的实际动力学和性能来执行模型。模型指定对机电系统预期性能的明确的数学定义。作为一种可执行的规范,系统级模型具备超越书面文档的显著优势,这是因为书面文档存在理解差异,可能会导致需求的遗漏、冗余或冲突。
书面需求将一直存在,但工程师可将其电子格式与系统级模型链接起来,帮助符合ISO 9001和IEC 61508等标准。从书面规范到系统级模型的需求跟踪可明确工程师解释需求的方式。需求和模型之间的电子链接允许工程师将测试标准与在开发过程中所用的测试用例联系起来。
开发系统级模型
方框图是表示系统级模型的一种自然方法(参见图3)。模型包含输入(由外部代理提供的信号)和输出(系统实际行为的度量指标)。输入和输出代表实际值,例如电压、温度和PH值等。
在模型内部,每个方框表示模型的输入和输出信号之间的数学运算。某些方框(称为设备或流程)代表机电系统的自然行为。例如,模型中包含的一个方框可能代表一辆汽车。汽车的数学模型可能非常简单——获取输入电压并将其转化为输出扭矩。为模型添加更多输入(例如电压噪声)或添加更多参数(例如温度和磁饱和影响)可提高汽车模型的复杂度。一个方框或一组方框可根据输出错误或模型中发生的事件过滤并处理信号,从而表示系统中的补偿或控制。
系统级模型的基础就是描述系统物理性质的集中参数数学模型。使用常微分方程(ODEs)和微分代数方程(DAEs)表示机电系统的输入与输出的关系。在汽车的示例中,ODE描述电压输入与轴输出扭矩之间的关系。微分方程是一种具有较高的计算效率的集中动力学描述方式,与基于偏微分方程的建模工具(例如有限元分析(FEA))正好相反。FEA软件可用于解出由扭矩造成的汽车车轴上关键插槽处的压力分布。
使用ODE来描述机电系统的系统级行为涉及多种工程学科,具有巨大的挑战。以数学方式表示系统行为要求您了解系统底层的物理学原理。机电的本质就是所有系统都是非线性的,您必须考虑实际机电设备中出现的滞后、摩擦和热效应。
改进系统级模型
当系统的数学原理过于困难或开发过于耗时的时候,工程师可以转向其他系统级建模方法。第一原理方法的一种常见的补充方法就是数据驱动的经验建模,例如系统识别或神经网络。这些黑盒方法使用标准的输入-输出数据来构建线性或非线性ODE形式的系统行为,以便将其整合到系统级模型之中。这些方法未提供系统物理状况的完整信息,但能够在测试数据范围内准确描述系统动力学。标准数据还能够利用参数估计技术提高第一原理方法数学模型的准确性,这种灰盒建模方法包含用于调整模型参数(如摩擦系数)的优化技术,使模型输出与测试数据相匹配。
基于模型的设计允许工程师从不太详细的系统级模型入手,随着开发的进展以增量方式提高其保真度。要帮助快速排除希望不大的概念,工程师最初只需要一个表示为低阶ODE的概念验证模型。对于更有力的想法,工程师可通过整合供应方提供的子组件来提高保真度,迅速评估组件的最佳组合。模型将发展成多个域的组合,仅提供必要的细节,以保证在需求文档中表示的运行条件下的性能。
在工程师使用从三维CAD汇编文件转换而来的机电系统的质量和惯性属性提高模型保真度时,CAD与基于模型的设计就彼此结合了。工程师可使用从CAD文件自动转换而来的表示机械主体和连接的方块,取代近似的数学表达式。除了加速复杂机械系统级模型的开发以外,这种方法还能确保系统设计人员和机械工程师使用被广泛认可的通用模型行为来表示即将构建的实际机电系统。
开发控制策略
描述了系统的自然行为之后,下一步就是开发和评估控制策略,该策略可在机电系统中整合多级开环和闭环控制。开环控制包括所有接口、模式、逻辑和监督控制,是工程师实现安全操作、故障检测和恢复特性的方法。闭环控制的复杂程度多种多样,包括从基本的比例-积分-微分(PID)补偿器算法到多变量线性二次高斯(LQG)控制器的实现的各个级别。
开环控制执行设备内的监督控制和模式控制,处理操作人员与设备的交互。使用更强大的微处理器的设备设计人员可以开发出复杂的用户界面,以提供对设备操作的更好控制。因而,开发人员可在设备内创建越来越精密的自我诊断、故障检测和安全关闭系统。基于模型的设计帮助工程师针对系统级模型开发和测试日渐复杂的开环控制系统。仿真支持在设计过程的早期启动测试工作,从而改进设备的工效,找出任何可能导致设备损坏或造成不安全条件的场景。
机电系统可使用大量在多种条件下操作的闭环控制系统。使用系统级模型可帮助在具有耦合行为的控制循环中设计和调节控制器。在硬件中调节控制器是一项耗时耗力的任务,为了避免不稳定性,系统往往未能调优到预期性能。系统级模型允许工程师分析控制循环的交互、开发解耦策略,并通过依靠多种直接和基于优化的技术的方法来调节补偿器增益。
在这个阶段,系统级模型将表现出动态不稳定性,而通过闭环补偿方法消除此类不稳定性在物理或经济上是不可行的。模型使得识别和调节导致不稳定性的物理参数(例如质量、长度和电容)更加轻松。因而,可在成本较低的软件仿真阶段发现问题,而不是在物理原型的测试过程中。
基于模型的设计可帮助工程师在控制系统内开展成本权衡研究。系统级模型是一种分析工具,可确定具有更高容错能力但成本较低的传感器是否能够提供必要的准确度和性能水平。在实践中,工程师可以衡量机电系统中使用的所有组件的成本与系统性能影响的对比情况。
连续测试与系统验证
整个开发过程中的连续测试与验证涉及定义和使用标准测试,并将其与控制系统设计过程相结合。使用标准测试或测试套件可确保工程师以一致的方式、使用相同的衡量指标集测试不断发展演进的系统级模型。通过/失败和容错度范围等测试标准通过需求文档的电子链接与测试相关联。使用标准测试套件的连续测试可立即公开任何设计变更对于系统输出的影响,帮助快速跟踪动机的变化。
此外,工程师可使用测试套件来确定是否覆盖了完整的模型,即衡量测试套件是否全面测试了设备的所有操作场景。在建模过程中,确认标准测试将在所有操作条件下充分测试系统,这可以向开发人员保证在物理原型上开始测试之前测试的完整性和正确性。基于模型的设计可帮助工程师创建完整的测试,供其在开发过程的所有阶段和生产测试中使用。
细化系统级模型以供部署
开发控制设计策略并进行仿真测试后,工程师即可针对部署进一步细化模型。部署是指将控制算法转换为C代码、硬件描述语言(HDL)或IEC 61131-3语言,例如结构化文本(ST),以便在实时系统上执行。此过程涉及将控制算法从连续(模拟)格式转换为离散(数字)格式,往往采用定点格式。在连续测试的过程中,工程师根据设备的连续格式测试控制算法的数字格式,确定数字转换是否会对系统的目标性能产生影响。
模型细化允许工程师检查数字信号转换的其他方面。系统设计人员建模输入/输出(I/O)设备驱动器和任何A/D与D/A转换器,确保系统的实际实施过程中不会出现信号讹误或混淆。机电系统往往结合使用多种处理器,这些处理器以不同的速度和取样率运行。系统级建模允许工程师模拟和测试多种组合,评估成本和实现选项,例如使用现场可编程门阵列(FPGA)取代数字信号处理器(DSP),或使用定点计算取代浮点计算。
使用实时系统测试机电系统
基于模型的设计的下一个步骤是在实时系统上测试系统级模型。在这个阶段,工程师将系统级模型自动转换为C代码、HDL或PLC代码。工程师可为控制算法和/或设备模型生成代码,具体取决于他们选择的系统测试方式。在基于模型的设计中,自动将系统级模型转换为代码可消除系统工程师对深入的编码知识的需求,避免出错并节约时间。
自动代码生成的过程类似于通过三维CAD文件生成用于加工零件的工具路径。如果在加工完成后发现零件存在错误,工程师就需要检查和修改CAD文件,重新为工具路径生成代码。在基于模型的设计中,系统级模型作为排除系统故障的自然环境,工程师可以通过它更新和测试模型,并重新生成代码。
实时测试使用专用的实时测试系统,可分为两类:快速原型(RP)和硬件在环(hardware-in-the-loop,HIL)。在此类测试中,工程师可在测试运行时实时收集数据和更改代码中的参数。表1给出了部分实时测试选项,展示了允许工程师在实际硬件可用之前捕捉重大、耗时的错误的测试灵活性。如前所述,跟踪错误更加简单,因为系统级模型就是规范,它与需求文档紧密关联。
在快速原型中,实时系统与实际硬件相连接。在大多数情况下,由于模型中的控制系统包含所需的全部I/O,因而系统级模型会自动为这些特性创建代码,消除了工程师手动编码的需求。HIL测试将设备模型部署到实时系统。在这种情况下,工程师将控制算法部署到实时测试系统或指定的目标处理器,同时连接到同样在实时运行的设备模型。HIL测试还可以通过使用在桌面或工作站计算机上运行的模拟设备模型来实现。
生成生产质量代码
基于模型的设计使工程师能够使用系统级模型,以生产处理器或其他实时系统为目标,在C代码、HDL或PLC代码中部署控制算法。代码生成过程针对特定处理器优化生产质量代码。这与实时测试中所用的代码不同,因为此过程消除了测试中需要的所有参数,并将代码的资源占用优化到最小,从而减少存储器的占用并最大化计算速度。工程师可控制代码生成过程,以包括数据对象、用户定义的存储种类、类型和别名。此外,还可自定义代码格式,使其自动符合企业的软件样式指南,这有助于完善优化工作,并简化软件工程师使用此类代码的过程——对负责将代码整合到更大的代码集中的工程师来说更是如此。
结束语
基于模型的设计是用于机电系统的系统级设计的CAE。在软件中开发和测试设备的行为模型的工程师能获得以下好处:
能够以较低的成本设计和测试多种方法,无需在开发过程的早期投入大量资源来原型化硬件。
使用通用可执行规范的协作式设计环境与需求文档紧密相连,允许多种工程学科采用通用语言进行通信。
在早期仿真阶段轻松发现和纠正错误,从而降低开发成本。
能够开发复杂的嵌入式系统,在机电系统中提供更出色的客户价值、产品质量和精密度。