同步和定时
每个实时应用程序的阿尔法和欧米加是适当的时间、同步和确定性系统响应。在设计电动机控制软件时,必须特别注意这些方面。从本质上讲,这个过程听起来相当简单:系统读取传感器值,处理控制算法,监测系统安全性,通过调整三个主要的压水堆输出的任务周期来管理输出阶段。
微小的定时错误会导致系统响应错误,操作不稳定,性能差.为了确保一切功能都如预期的那样,保持同步和确保系统的决定性是至关重要的。在此,我要强调,我们正在处理一个"硬实时系统",在该系统中,严格的最后期限完成任务是绝对重要的。
电动机控制器软件可以在没有操作系统的情况下实现,使用适当的实时操作系统,或者是一种多芯混合解决方案,其中一些CPU核心在Bar-金属模式下运行,而其他核心则使用操作系统。无金属解决方案总是基于中断驱动设计,在中断过程中执行时间紧迫的任务,确保每件事都在精确的时间间隔下发生。
不管它是一个无金属的、实时操作系统还是混合解决方案,都必须进行定时分析、任务优先排序和安全性分析,以确保高效和可靠的系统性能。
时间分析确保所有任务都能在截止日期前完成。这包括考虑每个任务的最坏情况执行时间。电动机控制中的一些主要关键任务是传感器数据的采集、用PBM信号生成控制算法的执行、故障检测和处理、应急和安全功能、与其他系统部件的实时通信以及与外部系统的同步。
锁相环
如前所述,无论是集成在单片机/DSP硬件中,还是作为可持续发展框架中的IP核心实现的锁相环路,都是同步关键事件所必不可少的。PLL的主要功能是将单片机/DSP/FPGA的内部时钟与外部时钟源或信号同步。这对于保持实时应用中的定时精度至关重要。当控制马达的速度和位置时,对于精确的时间至关重要。PLL保证反馈信号采样(如转子位置和电流测量)与控制算法的执行之间的精确的定时调整,确保最佳同步和准确性。在具有多个核心的系统中,PLLS可以用来同步这些核心的操作。
在电机控制应用中,通过相位锁定环路(PLL)对电流测量和模拟数字转换(ADC)同步的脉冲宽度调制至关重要,以确保系统的精确和高效性能。同步时钟,PLL确保所有的系统组件,包括压波发生器,ADC和其他处理元件,运行同步时钟。在这个同步时钟的基础上,控制输送到电动机的功率的压波M信号就产生了。这些信号的时序直接影响电动机的性能.电流传感器测量流向电动机的电流。这些测量的时间是至关重要的,特别是在像面向外地的控制(FOC)系统中,在那里电流反馈被用来控制电动机的转矩和速度。目前传感器的模拟信号通过ADC转换成数字值。PLL有助于将ADC采样与压波M循环同步。这种同步可以确保ADC在最佳时间采样电流相对于压波器的信号,通常是在压波器既没有完全启动也没有完全关闭的地方,以获得准确的电流表示。然后将数字化电流测量输入控制算法。PLL确保这些测量是在相对于压波M信号的一致间隔进行的,使控制算法能够根据状态变量的变化而精确地修改压波M的工作周期,确保最优化的电动机性能。通过将ADC采样同步,使开关噪声和失真的影响最小化。在大功率电动机控制中,这一点尤为重要,在这种情况下,压波机信号可以引起明显的电子噪声。
电流和位置测量
精确测量和同步电流与压波M脉冲是必要的。常规采样、电流过采样和平均法等技术被用来提高精度。
定期采样的频率与压波管相同.这里的挑战是确定适当的取样时间。这涉及到设置一个延迟之间的开始的压波M周期和类似数字转换器(ADC)采样。
目前过采样的频率高于压波管,有时高出8-32倍,并平均测量结果。ADC中断服务例程(ISR)频率可以远远高于压水堆频率,这使得详细的数据收集成为可能。
过电平受当前传感器带宽的限制.例如,在电动机控制中,大多数人体效应传感器的带宽通常在50千赫兹和160千赫兹之间。适当的时序和同步是处理可能影响相位电流的高频振荡的关键。
图1:同步水压机和电流测量
图1显示了一个处理周期的时间安排。类似数字转换器(ADC)可以配置为在高频率采样。这需要设置ADC的时钟和调整其采样率。一旦完成采样,单片机单元(单片机)或数字信号处理器(DSP)处理这些样品,以计算其平均值。这种计算通常是在积累一定数量的样品之后进行的。主处理中断服务例程(ISR)必须配置为在完成平均计算时触发。此外,脉冲宽度调制模块需要建立的方式,以确保同步之间的ADC采样,ISR,和压波M定时。现代的单片机和DSP由于其强大的处理能力,能够同时处理这些任务,实时操作能力,以及各种用于管理ADC、压水堆和ISR任务的外围设备。
位置传感器数据的采样与主处理中断服务程序(ISR)同步是至关重要的。有必要考虑到数据传输所造成的任何延迟,这些可以外推以保持时间的精确性。在使用任何滤波器时,重要的是考虑相位延迟的影响。在使用解析器的情况下,解析器数据的处理必须是同步的,必须选择正弦和余弦信号的幅值最小的一个点,以确保准确的读数。此外,过采样的解析器信号和应用带通滤波器的截止频率匹配的压波M频率可能是有益的。这种方法有助于过滤掉不需要的频率,同时保持信号的完整性。
在高速系统中,当务之急是对转子位置进行外推,以确保转子位置的准确性,从而使定子磁场与转子磁场保持正确的直线。精确的角度测量确保电机在任何给定的时间都能提供适当的功率,从而减少能量损失、转矩波动、振动和热的产生。
本文主要讨论了应用直接转子位置测量的面向场控制(FOC)应用。它不深入研究无传感器FOC的应用,其中转子的位置不是直接测量的,而是通过间接方法估计的。
安全功能
在电动机控制应用中常见的一些安全功能是:
安全转矩下降(STO) :此功能可立即消除电动机驱动器的电源,使电动机停止产生转矩。在紧急情况下,尽可能快地停止电动机是防止伤害的必要条件,这是一个至关重要的特点。
Safe Direction (SDI): 防止电动机向意外方向运行.
安全操作站: 此功能使电动机保持在停止状态,而不拆卸电源.
安全速度范围或有限安全速度: 确保电动机运行在一个安全的速度范围或低于一个安全的最大速度.
过流保护: 此功能保护电动机和电子设备免受过大电流的损害,而过大电流可能是由于短路或过载等故障造成的。
过电压和过电压保护: 这些功能保护电压条件太高或太低,可能损害电动机或控制电子。
热保护: 监控电动机和驱动器的温度.如果温度超过安全限度,系统可以关闭以防止过热。
速度监测和限制: 确保电动机不超过预先设定的速度限制,这对超过一定速度可能是危险的应用至关重要。
紧急停车: 物理按钮或开关,当启动时,立即使马达停止.这是工业环境中的一个标准特征。
安全刹车控制: 对于装有制动器的电动机,该功能安全地与制动器连接,以阻止电动机,特别是在重力可能引起运动的垂直应用中。在启动安全制动功能之前,系统首先尝试通过电制动来停止电动机,如果可行的话,这是一个将能量流倒转来减速的过程。
安全功能可以实现在硬件(HW),软件(SWS),或两者的组合,取决于具体的要求和限制的应用。在硬件中,通常会实现过电压和过电压保护、过电流保护、热保护和应急停止等安全功能,以确保系统的坚固、快速和可靠的保护。
软件中实现了速度监控和限速、故障检测算法和安全操作停止。
安全转矩(sto)、安全方向(SDI)、安全转速范围(rp)/安全限制转速(SLS)和安全制动控制等功能通常通过硬件和软件的组合实现。这种混合方法通常涉及启动和控制软件命令,同时依赖硬件组件进行有效的执行和执行。
汽车控制中的安全设计和功能安全问题,包括SIL3等标准是一个专门的课题,本文没有涉及。
嵌入式系统和电机控制领域的各种制造商提供了全面的设计包和工具,旨在促进和加速工业、运输、能源和医疗等关键部门的设计和认证过程。这些软件包通常包括预先认证的软件库、详细的安全手册和硬件模块,这些模块的设计是为了符合像ic61508、ISO13849等严格的安全标准。此外,它们通常提供广泛的文档和支持,以实现安全完整性等级等认证,这在高可靠性和安全性至关重要的应用中至关重要。这种援助不仅简化了发展进程,而且大大减少了这些高度管制行业的合规和认证所需的时间和努力。
实时操作系统
选择适合于电动机控制应用的实时操作系统对于确保高性能、可靠性和安全性至关重要。主要的考虑因素包括实时的rto的性能,它的资源效率,包括内存足迹和CPU的使用,以及基于优先级的先发制人的调度。高效快速的中断处理以及系统的可靠性和健壮性也是关键因素。供应商支持和文档、与硬件的兼容性以及开发工具(如IDES、调试器和分析器)的可用性和生态系统(包括库和代码示例)发挥着重要作用。最后,应该考虑到授权条款和实时操作系统的成本。
考虑到电动机控制应用的各种因素和具体要求,一个广受赞誉的开源实时操作系统,以其效率和多功能性著称,成为一个杰出的选择。在成本效益、业务效率、系统灵活性、可靠性和稳健性、易用性、广泛的硬件支持和资源效率等方面都是至关重要的考虑因素的情况下,这种选择特别有益。
应用架构
图2:电机控制系统架构概览
重要的是,电动机控制应用程序的架构包括几个层次和模块:
硬件抽象层: 提供了一个标准化的接口,用于访问硬件外围设备,包括ADAC、PBM控制器和通信接口,方便了可移植性和可伸缩性。它还包含板支持包(BSP)和各种硬件外围设备的驱动程序,使无缝硬件-软件集成。
核心运行时层: 这一层包括实时操作系统,用于高效的任务调度和系统资源管理。它还包括专门的内存管理,具有实时堆分配器设计,在时间紧迫的应用程序中优化内存分配。此外,该层整合了强大的核心间和流程间通信机制,促进系统内不同核心和流程之间无缝数据交换和同步。这一层是核心操作功能的支柱,确保平稳和高效的运行时性能。
中间件层: 这一层集几个关键功能于一体:
· 通讯接口: 使用各种通信协议管理与外部系统或设备的交互。
· 追查和数据记录: 专注于追踪和记录特定的信号和事件,能够通过诸如发援会、iOS、以太网、UART、USB等渠道实时输出数据。
· 软件上载: 监督新软件版本或更新的上传,确保无缝集成和系统的连续性。
· 配置管理: 处理定制和操作调整的系统配置设置。
· 诊断和监测: 为系统诊断和持续监控提供工具,这对维护系统的健康和性能至关重要。
· 内置测试: 包括自我测试功能,以检查硬件和软件组件的状态和功能。
电动机控制应用层: 位于所有层顶端的是电机控制应用程序,这是执行应用程序特定工作流的关键组件。这一层包括:
· 控制和信号处理算法: 这包括控制算法的核心控制,如530控制和面向场控制(FOC),以及旨在优化电动机性能的信号处理算法。
· 安全逻辑: 本组成部分致力于系统的安全方面,执行紧急情况下的必要协议和例行安全检查,确保系统在安全参数范围内运作。
· 针对具体应用的工作流程: 该层还集成了额外的、独特的工作流,以适应电机控制应用程序的具体要求,确保全面的功能和性能。
应用程序工作流
应用工作流通常涉及几个关键步骤:
第一阶段引导加载程序: 这个基本组件负责启动过程的初始阶段,包括低级别的硬件初始化和加载主要的软件组件。其作用的一个关键部分是加载和启动用户应用程序。Fsbl与应用层分开工作,通常由单片机或数字信号处理器制造商在其软件开发包(SDK)中提供。定制板支持包(BSP)通常是必要的--例如,增加额外的内存检查或诊断功能--以确保Fsbl满足特定的系统要求并提高整体可靠性。
平台安装: 硬件组件的初始化:这包括建立ADC(模拟至数字转换器)、系统中断、压波调制(脉冲宽度调制)模块、通信接口(如SPI、I2C、UART)、看门人定时器以及任何其他必要的硬件外围设备。设置中断处理机制,以响应诸如计时器溢出、输入更改或通信事件等事件。配置系统时钟、电源模式,确保控制器和电机的高效电源管理.
应用程序配置: 这个步骤包括定义操作参数的关键任务,这通常是通过读取配置文件来实现的。这些文件指定了基本的细节,如电机特性、控制参数和操作限制。此外,配置设置可以通过各种方式进行调整,包括数字输入、DIP开关,或者通过外部PC或主设备的通信接口进行动态调整。这种多方面的方法确保灵活和适应性的配置管理,满足广泛的应用程序需求。
这一阶段还包括:
· 确定任务: 创建主要的控制任务、通信任务、健康监控任务等对应用程序功能至关重要的任务。
· 确定优先事项: 根据这些任务在应用程序中的重要性和作用,指定这些任务的优先次序。这对于确保关键任务(比如主控制任务)获得必要的CPU时间来完成不那么重要的任务至关重要。
· 配置任务属性: 这可以包括设置堆栈大小、指定任务参数和配置任何任务特定的属性。
· 建立任务间沟通: 为任务之间的通信设置机制,例如队列、信号符或共享数据结构。
传感器校准: 在传感器是整体的应用中,它们的校准对于确保读数的精确性至关重要。特别是,霍尔效应传感器,这是常用的,显示最初的抵消,必须核算。在校准阶段,这些初始补偿被确定,随后从电流测量中减去,以纠正传感器输出。这一步骤对保证传感器数据的精度至关重要。
通信和监测: 数据通信:处理与外部设备或系统的通信,用于命令和控制、诊断或远程监控。
管理人机界面(如适用)
在电动机控制应用程序中,HMI可以表示简单的物理控制和指示器(如按钮、LED或显示器)或遥控接口。
主要中断处理: 工作流程的这一部分包括:
· 传感器数据采集: 实时读取和处理来自传感器的数据,这是控制回路反馈所必需的。
· 实时控制循环执行: 这是执行主要控制算法的地方(比如530控制或面向字段的控制),通常是为了响应定时器的中断,以保持一致的时间。
· 执行者命令生成: 基于控制算法的输出,生成执行器的命令,如电机驱动。它通常涉及到设置特定的数字输出和压波器信号的生成。
· 安全及紧急处理: 为了确保对安全和紧急事件(例如紧急停留)立即作出反应,应在这一专门阶段按顺序并高度优先地处理这些事件。这种方法不仅最大限度地减少了处理重大事件的延误,而且还提高了系统的总体安全性和可靠性。此外,该阶段包括检测和应对各种类型的故障,包括过电流、过电压和硬件故障。通过确定这些任务的优先次序,该系统能够更好地迅速应对和减轻潜在风险,从而确保更安全的业务环境。
关键原则是维护一个简明的中断服务例程(ISR),主要用于在需要进一步处理时通知主要控制任务。在此上下文中,它的主要作用不是在ISR中执行整个控制逻辑,而是将事件的发生通知高优先级任务。为此,FERERTOS提供了各种通知方法,例如二进制信号符号、任务通知或队列。主要的控制任务--实时操作系统任务--负责主要的控制算法。一旦收到ISR的通知,这个任务就会启动(或解除阻塞)并执行前面描述的所有必要步骤。至关重要的是,主要的控制任务被分配一个适当的优先级,以确保控制算法被迅速处理遵循ISR。
应使用看门狗计时器确保主要任务的运行,该任务的设计是定期重置看门狗定时器,展示其正常操作,防止计时器失效并触发系统重置或错误例程。
系统健康监测: 持续监控系统的故障,如过热或其他异常,并在发现任何问题时采取适当的行动。
伐木和数据记录: 记录重要事件、错误和系统性能指标,用于未来的分析或故障诊断。
图3:数据传输:从电机控制器记录到PC分析"Alt="未定义";
优雅的关门: 确保当应用程序停止时电机和控制器安全关闭.
如果应用程序是在多芯单片机/DSP/FPGA上运行,则必须确保适当的核心间通信机制。这可以通过芯片共享内存和软件中断来实现,尽管该方法可能因平台不同而有所不同。其他的可能性包括消息传递接口、直接内存访问(DMA)通道,或者使用特定于体系结构的专用硬件通信块。
一种常见的方法是将一个核心专用于处理通信任务,另一个核心专用于主控制环。为了有效的任务管理,典型的做法是在两个核心上都使用实时操作系统,但通常情况下,主控制核心是在一个非金属环境中运行的,用于流线型、低级别的控制。各种制造商,包括德克萨斯仪器及其控制法律加速器(CLA),ARM的皮层-MDSP扩展器,ST微电子的艺术加速器,微芯片的DSPIC,NXP的电动机控制共同处理器,英菲良公司的XMC数学共同处理器,提供专门的处理单位,以提高在特定嵌入式系统应用中的性能。这样的扩展增加了总体的计算带宽,并释放了CPU用于其他任务,如通信、监控和诊断。