首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

基于模型的高级电机控制系统设计

基于模型的高级电机控制系统设计

作者: ADI公司Anders Frederiksen

最近几十年来,借助高级处理器功能来简化设计一直都是广泛讨论的话题。如今,设计灵活性进一步提高,使工程师能够采用标准的MATLAB和Simulink模型设计来优化电机控制系统,并缩短整体设计时间。此外,设计工程师还能够重复使用仿真模型,确保系统在终端市场应用中具有正确的功能和所需性能。

基于模型的设计(MBD)经过数十年的探讨,直到最近几年才发展为完整的设计流程:从模型创建到完整实现。在1970年代,仿真可采用模拟计算平台,但是控制硬件却只能借助晶体管实现。2000年代仿真工具的发展迎来了图形化控制原理图输入工具和控制设计工具,大大简化了复杂的控制设计和评估任务。但是,控制系统设计师仍然需要编写C语言来开发硬件控制算法,以反映仿真设计的情况。本世纪初,完整的MBD能够实现仿真平台和硬件实现平台的通用控制设计,把复杂控制算法迅速运用至硬件平台。



图1:设计发展史与设计能力

MBD是指在整个开发过程中使用一个系统模型作为可执行规范。与传统基于硬件原型的设计方法相比,基于仿真的方法有助于更好地理解设计备选方案和权衡要素,从而能够优化设计,达到预定的性能标准。设计师无需使用复杂的结构和大量软件代码,通过连续时间和离散时间构建模块,就可以定义具有高级功能特性的各种模型。将现有C代码与标准控制库模块整合,可实现设计效率最大化。这些与仿真工具一同使用的模型能够缩短原型设计、软件测试和硬件回路(HIL)仿真的时间。通过仿真,我们能够立即发现各种规范差异和模型误差,不会等到设计周期的后续环节才发现。在硬件平台上运行相同算法时,自动代码生成省去了手动步骤。这可简化设计过程、减少硬件设计实现过程的错误,并缩短整体上市时间。



图2:MBD设计流程

MBD过程有多个步骤可优化整体设计中的各项任务。这些任务可由不同的设计工程师或设计团队完成,然后组合在一起形成整体设计和完整的系统。借助此方法,各项任务可在更高的抽象层进行设计,从而针对给定的最终应用优化整体设计流程。总而言之,MBD使设计师能够从更多经典设计方案开始扩展,以可控方式直接从模型创建转到仿真、代码生成和HIL测试,无需重新设计整个系统就可对系统行为做出递增改变。

在图3中,我们以直观的方式显示MBD流程的不同设计阶段和每个步骤的范围。这些步骤共同描述了MBD的“标准”流程。以电机控制设计为例,该流程包括:

● 运行概念

○ 电机系统的整体功能

● 工厂建模/系统架构

○ 电机、负载、功率电子设备、信号调理等设备的模型开发。

● 控制器建模和要求

○ 三相永磁电机基于编码器的磁场定向控制

● 分析和综合 – 详细设计

○ 上述创建模型用于确定工厂模型的动态特性

○ 系统调谐和配置

● 验证和测试

○ 离线仿真和/或实时仿真

○ 动态系统时间响应调查

嵌入式目标实施过程 – 全面运行

○ 自动代码生成

○ 测试和验证

○ 更新控制器模型



图3:MBD实现的概念

以上可构成调整整体设计的多步骤方法,并且可单独分析每个控制步骤。软硬件规范完成后,就可针对整个系统的具体算法和功能部署建立完整的系统架构(参见图4)。可对控制器和工厂模型的仿真过程进行评估,还可对不涉及硬件的算法离线开发过程进行合理构建并微调,从而达到整个系统的性能要求。对于初始生成的代码,无论是“重复使用”的现有代码还是由代码生成工具生成的代码,均可在嵌入式控制器中实施,以便将PC上的系统仿真情况与硬件目标的实际实现数据进行对比。设计师在定义MBD的平衡结构时,必须考虑模型的复杂度。不过,某个平衡概念实现之后,也可以快速更改设计内的独立模型,使整个驱动系统获得更准确的结果。



图4: MBD设置

本文采用的实验设置是基于ADI公司的ARM
Cortex-M4混合信号控制处理器,它与IAR和MathWorks公司的组合工具一同使用,实现MBD平台。上述每个步骤都可直接链接至可用工具和整个实现过程。

参见图5,每条工具链都具有使用价值。在MBD中,设计师必须选择如何平衡使用这些工具链与独立MBD平台创造的全部价值二者之间的关系。



图5:MathWorks与IAR系统优势

对于目标平台,实时开发环境现可适用于建模、仿真、评估、部署和优化整个系统的性能和功能。这一切都基于MBD和平衡选择系统参数,从而使需要特定优化的设计具有一流的灵活性。这使得系统的可扩展模型得以实现,进而有助于代码的使用和重复使用,这些代码可以基于现有旧代码或功能,也可以基于标准C的全新构建模块或图形化功能(Simulink/MATLAB模型对应完整的仿真和实施阶段)。不仅从软件角度来看可以更改整体设置,而且在为系统开发出正确的设备驱动程序之后,设计师也可更改最终应用或系统的资源、硬件元件和整个应用软件。此外,还能够实时控制整个系统的时序,所以直接借助此环境就可实现系统调度最优化。



图6:实施环境

仔细观察这个典型的驱动系统框图,便可直观地了解此架构的功能。我们可以优化“驱动系统”中的每个要素,并着重关注对最终系统最为重要的要素。举例来说,如果保护功能和数值范围最重要,则应着重关注与电气控制和功率系统结合的机械系统。可综合运用仿真结果和实时数据来监控系统行为,共同实现“即时”优化。另一方面,如果噪声干扰降低了系统的整体效率水平,则可以在可扩展滤波器和观测器中使用其测量值,最大程度地减少硬件噪声问题以实现最佳状态。针对所有因素建模并收集相关数据之后,就可以开始实施阶段的最后一步,而目标系统的完整实现阶段亦可成为现实。



图7:“驱动系统”框图

通过MBD设计流程和MathWorks与IAR,可对代码进行编译,并使整体模型得以实现。“驱动系统”模型的每个阶段或要素都可通过MATLAB和Simulink模型来表示,该模型已调整至符合最优设计标准的适当水平。模型中的每个要素均基于MathWorks的标准工具箱和模块集,在特定设计中可以与任何要素一同重复使用。这些要素还可表示驱动系统的不同域,并且均可进行微调,以便最大程度减少模型相对于实施的误差。通过实时实施方法并在此混合环境下编译,还可将现有手写C代码与由Embedded Coder(嵌入式编码器)生成并经过ARM Cortex M4优化的C代码相结合。Embedded Coder是一款适用于MATLAB和Simulink的生产代码生成工具。整个过程使得用户能够正确地重复使用现有的电机控制设计知识。此时,IAR嵌入式工作台可获取生成的代码,并对ARM Cortex M4的完整项目进行编译,这也表示此系统的MBD实现阶段结束。



图8:实现和编译

自MBD问世以来,人们就一直在质疑其相较于传统系统开发的性能和功能,以及系统整体资源的使用效率。经过元件供应商、仿真和实施供应商以及工具编译器供应商的不懈努力,现如今MBD已经与传统实施方式不相上下。当然,任何为实时系统编写和开发代码的过程均可能效率低下,这取决于所使用的实现方法。借助MBD,可以将性能分析、交叉优化选项以及安全关键系统开发的强大优势组合在一起,从而尽可能减少代码开发费用,实现最高性能。MathWorks会按照IEC 61508、ISO 26262和相关功能安全标准对嵌入式编码器进行工具资格验证。



图9:基于模型设计构建系统的仿真和运行时间数据(处理器数据与仿真数据)

在标准设计流程中,实现这一系列功能要困难得多。在上述例子中,标准磁场定向控制(FOC)模型在ADI公司的ADSP-CM40x系列上实现。该模型的位置反馈和电流环路反馈的执行时间为15μs,并且可对电流方案和调试设备进行实时分析。该模型还可追踪整个FOC方案的功能性。可以对MBD仿真结果和实时数据进行评估,并与理想的系统功能和目标规格进行比较。因此,设计师能够不断提高系统效率、功能和性能,还能评估信号链中指定要素或组件的表现与目标规格的差异情况。

本文介绍了一种采用MBD构建电机控制系统的“新”方法。如今的嵌入式处理器必须在性能、成本和尺寸几方面取得平衡,以便能够开发和运用更高抽象层的图形工具,从而缩短上市时间,提高安全性、性能以及可扩展性,为获得高度优化的系统打下基础。
返回列表