首页/文章/ 详情

全速域永磁同步电机无感控制-预定位+IF强拖+双dq坐标系切换策略+滑模观测器

1天前浏览51

引言:B1.0版本开始介绍永磁同步电机全速域无感控制,上期文章介绍的是最经典的三段式切换策略:预定位+IF强拖+降q轴电流切换策略+滑模观测器法。降q轴电流切换,通过调整q轴电流使虚拟坐标系与转子同步坐标系重合。但这种平滑切换有一个前提,就是特定转速下的负载转矩是一定的,如果负载转矩发生变化,就会影响虚拟同步坐标系与转子同步坐标系的重合,进而影响控制策略的平滑切换。

本期文章主要介绍双dq空间切换,即使负载转矩发生大范围变化,也不会影响控制策略之间的无缝切换,从理论、MATLAB/Simulink仿真到基于TI硬件测试平台,三个维度进行分析、验证。


永磁同步电机(PMSM)位置、速度、电流三闭环矢量控制(FOC)软件(以下简称“软件”)是为学习矢量控制算法而编写的,针对的是永磁同步电机,代码已经经过了项目验证,可以放心学习、使用。

软件以一套完整的、成熟的PMSM的FOC控制方案为例,从各个方面详细讲解了FOC的原理、实现方法等知识,几乎是逐条的分析了程序,又兼顾程序的系统层面,目的是让初学者看完资料,可以独立的完成FOC的编写,独立的解决一些项目中的实际问题。知识是个触类旁通的东西,相信大家学完这个PMSM的FOC算法后,对其他的控制算法也能很快的上手。

图1 永磁同步电机矢量控制框图(PMSM_FOC_sensor_ABZ)

图1是永磁同步电机常见的有感矢量控制(Field Oriented Control,FOC),ABZ编码器测取转速位置信息用于坐标变换。FOC的核心部分主要有电流采样、PI调节器和电压矢量空间脉宽调制技术(Space Vector Pulse Width Modulation,SVPWM)。

所采用的开发环境是MATLAB和TI的DSP_C2000系列的控制芯片(CCS),后续的软硬件测试验证就使用这两种工具。

图3 MATLAB和CCS软件

CCS软件采用语言C编程,需要具备一定的基础。MATLAB的建模方式多种,适合迭代优化的仿真类型是利用sfunction模块并结合M语言实现控制策略或者功能。

采用sfunction模块进行M语言实现与CCS软件中的C代码实现具有相同之处,可相辅相成,可加深对实现的内容理解。

图4 基于TI_DSP_F283xC2000的硬件测试平台

表1 永磁同步电机参数

硬件测试平台主要分为驱动板和控制板,以及配套的电源、开关、仿真烧录器和100W的永磁同步电机。控制板搭载的是TI_DSP_F28335芯片,板上资源丰富,适合后续的电机控制所需的算力。

表2 B1.0版本的开发大纲

B1.0版本主要介绍永磁同步电机经典的全速域无感控制,三段式切换策略。需要详细介绍四个方面,预定位、IF控制、切换策略和滑模观测器,接下来从理论、仿真验证和硬件测试三个维度进行。

预定位、IF控制和SMO观测器的内容在上期文章中已经详细的介绍过,本期文章重点对双dq空间坐标系切换策略进行总结和介绍其实现的过程。
B1.0版本(全速域永磁同步电机无感控制-预定位+IF强拖+降q轴电流切换策略+滑模观测器(Sliding Model Observer ,SMO))

一、切换策略

图1.1 理想的控制策略切换前的准备状态

永磁同步电机从IF控制切换到基于滑膜观测器的转速、电流双闭环控制,需要经过一个过渡过程。过渡过程设计是否合理直接关系到电机运行的平稳性,过渡过程设计不合理时有可能导致控制策略切换失败、电机失步。

IF控制中采用的是虚拟同步坐标系,它和转子同步坐标系之间存在一个相位差theta_L。控制策略平滑切换过程实际上是相位差theta_L由一个锐角调整到接近于零的过程,IF控制准备切换过程中相位差theta_L不能等于0,否则会引起电机失步。理想的控制策略切换前准备状态如图1.1所示。

1.1 双dq空间切换

前面章节介绍了基于降q轴电流的切换策略,本节介绍另一种基于双d、q空间切换。该方法分别在虚拟同步坐标系和转子同步坐标系下建立两个d、q空间。在两个d、q空间下分别建立电机的状态变量和控制变量,将两种控制策略之间的切换转化为两个d、q空间的切换。双d、q空间对应同样的三相静止坐标系,从而实现IF控制向磁链估计法的无缝切换。

采用降q轴电流法,如果在切换时段,负载发生变化,由于IF控制没有重新建立稳态就进行控制策略切换,因此会产生电流振荡。双d、q这种切换策略不受负载转矩变化的影响,实现IF控制与磁链估计法无位置传感器真正意义上的无缝切换。

图1.2 任意空间矢量在双dq空间下的示意图

图1.3 基于双dq空间控制策略切换原理图

永磁同步电机以 IF 控制策略起动之后,磁链估计法就开始工作以估计电机的转子位置,因此 IF 控制策略下电机转速稳定后就可以计算得到两个 dq空间的相位差。准确计算两个dq 空间之间的相位差是进行控制策略无缝切换的前提,在控制器内部虚拟转子位置和实际转子位置的相位关系如图 1.4 所示。

图1.4 双dq空间坐标系的相位关系

1.2  双dq空间的瞬时切换

控制策略进行切换即双 dq 空间进行切换,双dq 空间切换的瞬间需要完成如下几步操作:

1.3 双dq空间切换策略的鲁棒性
图1.5 双dq空间切换的效果

本文所提的基于双 dq 空间切换策略中,即使负载转矩发生大范围变化,也不会影响控制策略之间的无缝切换。无论在轻载工况还是在重载工况,负载转矩的变化,会体现在两个坐标系的相位差上,这一相位差会通过变换矩阵实现两个坐标系的无缝切换。因此,无论在重载或轻载条件下,只要利用磁链估计法 正确计算转子位置,就可以利用双 dq 空间的切换实现控制策略之间的无缝切换。因此本文所提控制策略的系统鲁棒性较强。

二、切换效果(实际测试平台)

图2.1 低速区域:IF控制策略运行

图2.2 切换区域

图2.3 中、高速区域:SMO观测器运行

从图2.1、2.2、2.3中可以看出,在全速域内,三段式切换的无感策略能够平稳作用,让电机平稳的运行。

三、问题讨论

在开发过程中,切换的时候会存在一个速度突加速的动作,这个问题应该如何解决和避免?


来源:浅谈电机控制
电源MATLAB芯片Simulink理论电机控制试验
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2026-10-23
最近编辑:1天前
公众:浅谈电机
硕士 签名征集中
获赞 45粉丝 7文章 93课程 0
点赞
收藏
作者推荐

TIDSP_F283xC2000_IPM_FOC_V1.0(主要讲解成熟的CCS软件架构)

前言:V1.0版本是初始入门版本,主要分为硬件篇和软件篇。硬件篇是熟悉硬件测试平台,和实现电机控制过程中用到的外设;软件篇是整体CCS工程的架构、实现的开发过程以及对应的理论介绍。永磁同步电机(PMSM)位置、速度、电流三闭环矢量控制(FOC)软件(以下简称“软件”)是为学习矢量控制算法而编写的,针对的是永磁同步电机,代码已经经过了项目验证,可以放心学习、使用。软件以一套完整的、成熟的PMSM的FOC控制方案为例,从各个方面详细讲解了FOC的原理、实现方法等知识,几乎是逐条的分析了程序,又兼顾程序的系统层面,目的是让初学者看完资料,可以独立的完成FOC的编写,独立的解决一些项目中的实际问题。知识是个触类旁通的东西,相信大家学完这个PMSM的FOC算法后,对其他的控制算法也能很快的上手。图1 永磁同步电机矢量控制框图(PMSM_FOC_sensor_ABZ)图1是永磁同步电机常见的有感矢量控制(Field Oriented Control,FOC),ABZ编码器测取转速位置信息用于坐标变换。FOC的核心部分主要有电流采样、PI调节器和电压矢量空间脉宽调制技术(Space Vector Pulse Width Modulation,SVPWM)。所采用的开发环境是MATLAB和TI的DSP_C2000系列的控制芯片(CCS),后续的软硬件测试验证就使用这两种工具。图3 MATLAB和CCS软件CCS软件采用语言C编程,需要具备一定的基础。MATLAB的建模方式多种,适合迭代优化的仿真类型是利用sfunction模块并结合M语言实现控制策略或者功能。采用sfunction模块进行M语言实现与CCS软件中的C代码实现具有相同之处,可相辅相成,可加深对实现的内容理解。图4 基于TI_DSP_F283xC2000的硬件测试平台表1 永磁同步电机参数硬件测试平台主要分为驱动板和控制板,以及配套的电源、开关、仿真烧录器和100W的永磁同步电机。控制板搭载的是TI_DSP_F28335芯片,板上资源丰富,适合后续的电机控制所需的算力。表2 V1.0版本的开发大纲V1.0版本的开发主要是基于目前的软硬件平台搭建出一套CCS软件架构,实现基础的带ABZ编码器的永磁同步电机有感矢量控制,并移植一套成熟的上位机通过串口通信实现高刷新率的控制变量的显示,方便调试。接下来从硬件、软件和上位机三个方面介绍PMSM_FOC_sensor_ABZ。一、硬件篇(简要总结)1.1 ePWM外设以及配套外围硬件模块电路图1.1 ePWM外设模块的配置流程七段式SVPWM五段式SVPWM1.2 ADC外设注:电流和电压采样是电机控制的重中之重,电机控制的核心目标之一就是精准地调节电流。ADC外设模块的采样精度,直接决定闭环控制的稳定性与准确性。图1.3 ADC外设模块的配置步骤流程图1.3 eQEP外设图1.4 eQEP外设模块的配置步骤流程图图1.5 上位机抓取的波形图二、软件篇2.1 MATLAB/Simulink(真实系统)图2.1各种离散化仿真类型的分析图2.2 硬件部分图2.3 控制策略实现部分整个仿真验证部分一共分成4个部分:(1)硬件模拟;(2)控制层和SVPWM调制模块;(3)加载部分和Powergui、示波器;(4)脚本文件,用于设置电机参数和控制参数;图2.4 基于零极点对消设计的速度波形变化情况图2.5 基于零极点对消的电流波形变化情况2.2 CCS(浮点标幺,以图1的id=0的控制系统为例)从框图中可以看出,FOC运算,需要知道电机的三相电流和转子位置,因此我们在设计中,需要采集、解算这两个量。硬件平台我们采用常见的DSP,资源如下:1)处理器:TMS320F28335,晶振频率30MHz,工作主频150MHz;2)存储器:TMS320F28335内部资源模块寄存器,片内18K×16位SARAM存储器,64K×16位Flash存储器;3)中断源:Pwm1中断,8Khz;软件的构成如图2所示。图2.1 软件结构图软件通过RS485与上位机实时通讯交互,在主循环中采用轮询的方式将系统相关状态监测量实时反馈给上位机;为了保障系统安全,软件对输入指令进行了限幅,避免指令超限。2.2.1 主要功能表1软件功能描述软件的具体功能及实现需求如下:a)在控制电源上电后,完成各功能模块初始化;b)通过串口与上位机通讯;c)利用TI最新的SVPWM算法和基于零序电压注入的方法,产生占空比,驱动功率板;d)通过DSP内部自带ADC采集母线电压信号、相电流信号;e)完成速度闭环、电流闭环调节;f)系统状态监测、故障诊断与处理(工业应用中故障诊断、系统检测是很复杂的,为了突出本教程重点,故程序仅保留过压、欠压、过流保护功能);控制软件全部功能描述见表2。表2 软件性能描述与FOC控制软件相关的硬件接口,包括RS485串口,片内ADC,外设I/O,数字I/O等,连接关系见图(2.2)所示,具体的IO配置表见附录I所示。图2.2 DSP接口图2.2.2 软件架构设计暂且把这个架构叫《伺服软件迭代进化架构》吧。伺服软件代码架构千奇百怪,初学者甚至是一些“老师傅”都很难辨别优劣,差的架构不利于代码的理解,更不利于知识的积累,跨平台移植代码更是劳民伤财,不利于个人、企业的发展。根据自己的理解,提出本架构,买家可以依托自己原有的技术积累,以此架构为平台,进行自身技术的积累,软件的迭代、进化,通过不断的学习、实践,凝结核心技术,形成多种成熟可靠的电机控制软件平台,逐步扩充自己的伺服软件型谱,提高个人薪资竞争力,同时,打造出值得信赖的伺服软件品牌。软件采用分层架构设计思想,分5个层次:(1)系统配置层(CMD文件、LIB文件、启动文件、官方库文件……);(2)外设配置层(时钟、GPIO分配、ADC配置、PWM配置、SCI配置……);和硬件确定标准接口,明确所有接口的首选、备选方案。根据永磁同步电机驱动特点,设置标准的底层配置模式,可实现快速切换。(3)模块驱动层(速度反馈解算、位置反馈解算、各种滤波、指令斜坡处理、SVPWM计算、ClarkPark变换、各种PID运算、串口通信、总线、故障诊断……);以功能划分模块,各模块之间采用水平逻辑,模块内采用自上而下的垂直逻辑。每个模块自成体系,具有明确的输入、输出,设置自己的参数结构体,表征所有用到的中间变量、标志位信息,整个生命周期不能直接影响模块以外的任何变量、参数,必须采用参数传递的形式。模块采用统一写法,设计时必须附带调用说明,参数设置说明,功能说明等文档。模块之间相互独立,便于更新、升级。通过项目验证的,进入CBB货架管理,通过多次飞试验证等,进行封包,进入系统配置层的LIB中。(4)控制算法层;a)前馈补偿、抗负载扰动、参数惯量(电机极对数、旋变极对数、旋变安装偏差、电阻、电感、转动惯量、负载转矩、反电动势系数、摩擦系数)、参数自整定(电流环、速度环PI参数)、电流解耦、死区补偿、执行机构末端抖振抑制、母线电压波动拟制补偿、再生制动、能量回馈、故障保护(常规故障保护、缺相运行、异常状态的再启动等技术)……b)弱磁、直接转矩……c)无位置算法(观测器、锁相环、高频注入……)d)先进智能控制算法的研究应用(自抗扰、滑模变结构)……根据算法需求,调用模块驱动层的函数,进行算法设计。同样,算法之间平行、独立,自成体系,采用标准写法。软件人员利用实验平台,验证先进的智能控制算法,不断的扩充算法层、优化、升级现有算法层中内容。成熟稳定的算法可进入模块驱动层,无需修改,供直接调用。(5)任务调度层(实时任务采用中断机制,执行快速、慢速流程任务,非实时任务采用多任务调度机制,整个软件采用实时操作系统进行任务调度);中断任务中完成实时性较强的电流电压采集、控制算法和故障保护等任务,不同的实时任务运行于不同的控制周期;多任务调度系统中完成通信、系统检测等实时性要求较弱的任务。2.2.3 架构特点(1)跨平台开发时,仅需移植系统配置层、外设配置层,内容很少,而核心的模块驱动层、软件算法层、任务调度层可无需修改,直接复 制。(2)模块按最小化功能划分,输入、输出、中间变量明确,各模块之间完全独立,使得功能函数的迁移完全自由,极大方便了协同工作,同时,给同一功能不同实现方法的对比分析提供了便利条件,有利于整个软件的迭代、进化。(3)算法层模块化处理,使得软件可以很方便的借助Simulink工具对已有c形式的算法进行脱离硬件平台的仿真验证,模拟出很多硬件难以达到的边界条件,扩充了算法验证手段。同时,也更方便借助Simulink代码生成技术,对新算法先仿真,然后直接生成可用的c代码,加快了新算法、新控制策略的落地、应用。(4)任务调度层模块化处理,单线程中任务跳转逻辑可采用Stateflow进行设计、验证,复杂系统的多进程任务,可采用RTOS进行调度、管理。(5)组织架构清爽,模块界线清晰,方便排查问题。(6)优秀的架构,使得软件的质量和可靠性得到保证。2.2.4 实施步骤选择1个具有代表性的型号,按以下步骤展开工作:(1)以任务书为指导,按架构设计伺服软件框架。输出:软件架构以及功能说明。(2)从标准和产品特点出发,形成功能函数的编写模板。输出:功能函数模板。(3)梳理软硬件接口推荐表,进行软件底层配置的首选配置以及备选配置的快速切换设计,封装固定模式,预留可调模式的对外接口。输出:推荐接口表;底层架构。(4)按软件功能划分模块,梳理模块驱动层中所有函数的输入、输出、中间变量、激励要素等,并按c语言模板进行初次定型。输出:功能函数表;每个函数的输入、输出要素表。(5)实时任务、非实时任务流程设计,完成项目调试、交付,对软件进行评审。输出:软件改进建议表。(6)改进软件、新项目中继续验证优化,算法迭代、进化……同时,梳理需求,搭建实验平台,帮助算法验证。图2.3 代码组织形式2.3详细设计2.3.1 主循环模块主循环模块是程序运行时的主控流程,控制程序的流程走向。软件在控制电源上电复位后执行主程序,主程序完成初始化后,开中断(触发周期125us),然后进入主循环等待中断的发生,同时在主循环中完成与上位机的实时通讯,翻转LED,提示用户系统正在正常运行中。主程序主要完成初始化(相关功能模块初始配置,控制变量、结构体的初始化),开主中断,然后进入主循环等待中断发生。主循环中完成与上位机的实时通讯交互(查询接收上位机输入的工作指令),具体流程见图5所示。图2.4 DSP主循环模块流程图完成这个过程后,程序的执行流程则见图(2.5)所示。图2.5 lsw=1时软件执行流程图2.3.2 PWM初始化及TZ保护模块初始化(具体内容见1.1节)矢量控制中,一般需要六路(3组)PWM输出,配置为两两互补带死区的导通形式。PWM初始化,配置PWM频率、死区,载波频率8kHz,死区时间为2us,对PWM1启动125us中断以及ePWM模块的错误联防保护功能。2.3.3 串口通信模块(具体内容见第三章)串口主要完成和上位机的通信,接收上位机的控制指令,并将一些需要监视的变量回传给上位机。本程序中设置波特率为460800pbs,8位数据位,1位停止位;无奇偶校验,全双工传送,设置RX FIFO中断深度1,TX FIFO中断深度0。SCI内部串行时钟信号由低速外设时钟信号LSPCLK及波特率选择寄存器共同决定。BRR为16为波特率设定值,其高8位装入SCIHBAUD中,低8位装入SCILBAUD中,即可配制出不同的波特率。2.3.4 片内片内AD采集处理模块(具体内容见1.2节)最基本的FOC只需要两相电流即可,为了硬件保护等,我们可能还要采集母线电压、电流、温度等信号。并对采样值进行滤波数据处理。ADC模块具有多个分频器,以产生任何需要的ADC操作时钟,图15为ADC的时钟链结构。图2.6 ADC时钟链结构图2.3.5 中断处理模块EPWM1产生的主中断,每次事件触发1次中断,因此中断触发周期为125us,该模块执行时间不能超过125us的80%即100us,因为还要留时间去执行非中断中的任务。该模块完成状态机机制下各子函数定时计数器时间分配任务(根据上位机指令,选择要执行的流程)。中断服务程序流程图见图16所示,中断服务程序中主要完成(故障保护不分析):(a)获取转子位置角度(每120us);(b)获取电机三相电流(每120us);(c)通过分频获取其他周期定时;(d)每120us执行电流闭环控制;(e)每500us执行速度闭环控制(如果被选择);(f)每1ms执行位置闭环控制(如果被选择);其中电流闭环、速度电流双闭环、位置速度电流3闭环执行流程分别如图2.7、图2.8、图2.9所示。中断服务程序流程图见图16所示,中断服务程序中主要完成(故障保护不分析):(a)获取转子位置角度(每120us);(b)获取电机三相电流(每120us);(c)通过分频获取其他周期定时;(d)每120us执行电流闭环控制;(e)每500us执行速度闭环控制(如果被选择);(f)每1ms执行位置闭环控制(如果被选择);其中电流闭环、速度电流双闭环、位置速度电流3闭环执行流程分别如图2.7、图2.8、图2.9所示。图2.7 中断服务程序流程图图2.8 中断服务程序流程图图2.9 速度环子程序流程图图2.10 位置闭环子程序其中三个环中使用的MotorCtrl()流程如图(2.11)所示。图2.11 子程序MotorCtrl函数中,对变换使用的转子位置角进行了判断,目的是,在开环拉电机时,直接使用给定的theta = 0.0(调试时,也可以改变theta值,观察电机转向)将电机拉到指定的位置。正常工作时,再使用编码器计算得到的eQEP1.ElecTheta。同理,下面的这两段代码也是为了开环拉电机和校准编码器零位使用的,正常工作时,程序不会执行这两段代码。定时计数器配置功能:使用EPWM1产生的主中断周期作为时间基准,使用TimerCtrl结构体定义的变量TimerCnt自加,得到125us到500ms不同的定时计数器,当TimerCnt变量累加到所需定时计数器的预设值时,设置时间标识位变量置1,执行相应的功能函数,函数执行完成后该变量清零。软件定时器功能见表6。表6 定时器功能2.3.6 转子位置角获取模块(具体内容见1.3节)电机用的是增量式正交编码器,因此本程序采用的EQEP模块来采集电机的转子位置角,该模块就是一个片内外设的配置应用问题,没有技术上的难度。三、上位机(根据显示波形变化情况协助调试)(a)速度波形变化(b)电流、位置和调制波波形的变化图3.1 上位机波形抓取如果控制板上没有DAC模块,那就只能采用上位机(电子示波器)来抓取过程变量,评判电机运行的性能。一款好的上位机是电机控制开发的调试利器,直观的查看电机运行过程中的速度、位置、电流的变化,更改控制参数和功能代码的实现。四、总结4.1 V1.1版本的开发内容预告4.2开发过程中的问题梳理1、PI调节器中为什么不加入D项?微分,说白了在离散情况下,就是error的差值,就是t时刻和t-1时刻error的差,会引入噪声反而会劣化控制性能。另一个实际只用到了PI控制,没有引入微分,因为电流的采样率非常高不需要加入微分项。2、欢迎讨论,会根据讨论的问题进行总结,在下期文中进行展示;来源:浅谈电机控制

未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈