电机控制的DSP软件框架1、电机控制的知识背景2、V/F控制3、矢量控制(FOC)3.1矢量控制是独立控制交流电机转矩与磁通的一种控制方法3.2直接磁场定向控制(FOC)是通过磁通估计或测量直接测量转子磁通转角的一种方法3.3间接磁场定向控制(FOC)是通过测量速度等间接计算转子磁通转角的一种方法问:为什么电机数字控制对CPU运算能力提出了严峻挑战?电机控制的DSP软件框架•芯片功能:把所有电机控制功能集成在一个芯片中成为一个控制器•(1)通信协议栈(2)速度设定规划(3)磁通估计(4)对象辨识(5)磁场定向控制•问:为什么工程实际中偏向采用单个CPU而不是多个CPU并行处理?电机控制的DSP软件框架•2、电机控制原理描述—交流永磁同步有速度传感器•交流电机控制的复杂性:频率可变的功率变流器、电机复杂的动态特性、电机参数的变化、含有谐波反馈信号的处理,庞大复杂的人机接口•问:应该怎样看待与处理实际电机控制的复杂性?设备模式模式状态控制策略组态基于CAN总线的功能扩展数字式操作器管理输入/输出可编程逻辑宏虚拟浮点运算基本数字信号处理模块电机辨识与控制模块ADC_DRVCAN_DRVSVPWM_DRV设备运行逻辑管理层用户接口管理层功能算法模块层DSP硬件外设管理层电机控制的DSP软件框架•电机控制的流程图描述—交流异步无速度传感器—用流程图表示控制机理与方法•问:流程图的本质是什么?电机控制的DSP软件框架•3、DSP控制软件模块结构图•3.1、控制流程图模块与软件流程图模块的一一对应•3.2、面向对象的软件开发方法—处理软件复杂化的最佳方法•问:控制流程图模块与软件流程图模块一一对应的好处是什么?电机控制的DSP软件框架•同步电机矢量控制软件模块结构图•问:精确划分软件算法模块的好处?数字PID运算模块PID_REG3Park逆变换模块I_PARK数字PID运算模块PID_REG3数字PID运算模块PID_REG3SVPWM生成模块SVGEN_DQPWM驱动模块PWM_DRV逆变器PMSM线电流和直流母线电压测量模块ILEG2_DCBUS_DRVPark变换模块PARKClark变换模块CLARKQEP编码器模块QEP_DRV电机转速计算模块SPEED_FRQQEPPWM1PWM2PWM3PWM4PWM5PWM6ADCIN_IaADCIN_IbADCIN_IcADCIN_DCQEP_AQEP_BQEP_ZElecThetaDirectionQepVdcMeansImeansAImeansBImeansCAsBsCsAlphaBetaAlphaBetaElecThetaDirectionQepAngleMfuncC1MfuncC2MfuncC3MfuncPeriodTaTbTcUalphaUbetaAlphaBetaOutOutOutDsQsAngleRefQsDsFdbFdbRefIdRefFdbSpeedSpeedRefRef电机控制的DSP软件框架•4、DSP软件的层次结构—四层或五层,面向对象的软件架构•问:层次结构与软件内部解耦的关系?电机控制的DSP软件框架•5、基本的Q-MATH库与虚拟浮点运算•(1)TMS320C28XIQmath库是高度优化与高精度的算术函数库,可以无缝地把浮点数运算转换为TMS320C28X定点数。定点运算达到最快的运算速度,以满足实时系统的要求。IQmath库远比标准C函数库快,同时运算精度也有保证。•(2)基于IQmath库开发应用算法程序•问:为什么实际实时应用中偏好采用IQmath库?电机控制的DSP软件框架•7、DSP外设的驱动软件库•明确区分外设相关与无关模块使软件易于移植•在软件的移植过程,需要清楚知道软件模块与DSP外设的关联性,通过分割与割离外设相关性,使软件移植的风险与调试工作量最小•举例:PWM信号调制算法与实际PWM产生外设分离。信号调制算法是纯数学的,实现调制函数。它与PWM载波频率、对称与非对称模式、死区、预分频等硬件特性无关。•程序举例•问:软件移植性与硬件升级换代?开发的起始点?电机控制的DSP软件框架•8、电机控制算法模块对象•重用性、兼容性、可预测性与扩展性•(Reusability,Compatibility,PredictabilityandExpandability)•软件实例:•问:什么是面向对象的软件开发方法?OOP?电机控制的DSP软件框架•具体软件对象介绍•问:在CCS中如何实现OOP?•(1)空间矢量脉宽调制算法具体对象SVGEN_MF描述电机控制的DSP软件框架•具体软件对象介绍•(2)全比较方式PWM驱动对象•问:应该怎样建立对象开发文档?具体对象FC_PWM_DRV描述(3)ADC对象电机控制的DSP软件框架•9、DSP实时控制软件的多任务性•嵌入式实时操作系统与基于中断的实时多任务机制•问:为什么不基于DSP/BIOS开发电机控制程序?电机控制的DSP软件框架•10、DSP软件的增量式开发方法里程碑式的软件开发方法----微软的秘密软件的开发与测试是内嵌的增量式开发依赖于软件的模块化设计增量式开发便于系统化测试问:实际项目的开发过程是怎样的?电机控制的DSP软件框架•电梯专用变频器软件系统设计与开发用层次化观点分析电梯变频器的功能需求。软件采用四层递阶层次结构,即某一层只能被其上层调用,而每一层中的大模块组是平行的,同一层模块之间无耦合关系,从而实现软件功能的并行扩展。设计软件模块的基本准则是模块间尽可能无耦合关系。(1)DSP硬件外设管理层由于TMS320F2811的外设编程十分复杂,而且保持软件对硬件平台的兼容性在软件的整个生命周期至关重要,所以DSP硬件外设管理层设计的首要任务是实现分割软件模块的硬件相关性,使上层软件模块独立于硬件。问:实际软件还有哪些部分要仔细考虑,真实的电机控制软件是怎样的?电机控制的DSP软件框架•(2)功能算法模块层•功能算法模块层分为两大部分。•第一部分:基本运算和信号处理功能库。针对32位的TMS320F281x系列DSP,TI公司提供了基础虚拟浮点运算库(所谓虚拟浮点运算本质是32位整形数运算,由于是整形数运算,与DSP提供的32位乘除指令相对应,计算速度最快。同时由于是32位运算,表示精度高,基本达到浮点运算的精度。),虚拟浮点运算是实现复杂控制算法的基石。另外,TI公司还提供了较丰富的数字信号处理库,如:FFT、FIR等。从软件重用性出发,没必要重新开发他人已经反复优化的信号处理模块。总之,基本运算和信号处理功能库直接引用即可。•第二部分:电机参数辨识和矢量控制模块库,这部分是电机控制的核心算法。从软件开发角度看,关键是怎样设计软件模块以清楚表示复杂的控制策略。核心算法开发的关键是控制系统信号流程图与软件模块结构图之间的一一对应关系。采用可视化的信号流程图是表示复杂控制策略的基本方法。图3是同步电机有位置传感器的控制信号流程图。电机控制的DSP软件框架•(3)用户接口管理层•从外表看,电梯变频器的复杂性体现在繁杂的用户接口功能上。•按具体接口方式划分有三种,分别是:数字式操作器、异步串行通信接口(RS485与RS232)、CAN总线功能扩展。•图5用户接口管理层与功能软件层的关系框图•按通信协议实现层次划分,用户接口管理层大致分为通信子层和参数传递解析层。通信子层中异步串行通信采用Modbus协议,这是在PLC、变频器中普遍采用的通信协议,保持了与工业标准的一致性。•参数传递子层用于面向不同软件应用层的参数传递与修改,如图5所示。在电梯控制过程中,必须能修改软件各层中有关模块的参数,有时候用户对一个应用参数的修改在软件系统内部可能涉及到许多个不同层模块。为了确保参数修改的一致性,设立多种参数解析传递对象,以保证参数修改的正确性,并滤除各种非法操作和错误的参数输出。设备运行逻辑管理层功能算法模块层DSP外设管理层用户接口管理层电机控制的DSP软件框架•设备运行逻辑管理层•电梯变频器是一个混杂系统,既有连续控制,也有复杂时序逻辑控制。必须有恰当的方法描述这种复杂系统,在工程实际中,不能用多输入多输出非线性系统的观点指导软件开发,在电梯运行过程中,有许多差异很大的工作状况,不可能用单一控制策略涵盖所有工况,而且实际运行过程中必须有设计完善的设备故障时的控制策略,这更增加了软件开发的复杂性。避免由于控制的复杂性导致软件模块间的相互偶合是设备运行逻辑管理层设计的关键,为此特引入“虚拟设备(VirtualDevice)”概念[6],这里的设备是表示混杂对象的工具,而不是工业中的具体设备。每一个设备有5个逻辑范畴,它们是:模式、状态、控制、故障和报警。•设备运行逻辑管理层由不同虚拟设备对象构成,主要有变频器设备、可编程逻辑设备等。变频器虚拟设备(Inverter_Device)是描述变频器宏观运行规律的对象