首页/文章/ 详情

非线性磁链观测器:零速闭环启动的处理和分析d轴电流注入的作用

1天前浏览4

前言:本期文章主要讨论:永磁同步电机全速域单一观测器法-非线性磁链观测器。主要关注零速闭环起动和d轴电流注入,通过理论分析、MATLAB仿真验证和硬件测试三个维度进行验证、说明。


一、引言

图1 永磁同步电机基于非线性磁链观测器的无感控制策略

本期文章介绍非线性磁链观测器实现转速、位置的估算,属于永磁同步电机全速域单一观测器法。该无感方案可以实现零速闭环起动,且具有一定的带载能力,接下来就零速闭环、d轴电流注入和非线性磁链观测器的估算性能展开讨论。

二、非线性磁链观测器的实现和标幺化

2.1 非线性磁链观测器控制框图

内置式IPMSM在alpha-beta静止坐标系下的电压磁链方程可以表示为:

由上式,不难得出如下形式的电压磁链方程:

将其进一步化简,可以得到:

这样就得到了IPMSM在轴上的基于有效磁链的电压磁链方程(与表贴式的SPMSM基本一致)。

总结起来,非线性磁链观测器的实现步骤:

(1)、非线性磁链观测器是在静止坐标系下实现的,首先得求出alpha、beta轴的压降;

(2)、定义一个矢量函数你n(x),这个矢量函数其实就是alpha、beta轴的磁链。再求欧几里德范数n(x):

(3)构建非线性磁链观测器;

非线性磁链观测器的估计值是电机的磁链在alpha和beta轴的分量,将得到的值代入到锁相环PLL中就可以估算得到电机转子轴的速度信息。

图2.2 基于非线性磁链观测器法的永磁同步电机无感控制策略框图

基于非线性磁链观测器法的无感控制的优点在于观测器的可调参数只有一个,这样减小调试的难度。

三、零速闭环起动和d轴电流注入作用分析

3.1 零速闭环起动

零速闭环起动的定义:

无论电机的初始位置角度在哪,观测器输出的角度都能够在一个电角度周期内迅速收敛到真实角度。

图3.1 零速闭环时的角度跟随变化情况

图3.1中,角度差较大的阶段本质上还是属于强拖阶段,类似于IF控制,估计角度趋向于真实角度有一个拖动的过程。角度误差逐渐变小,映射到q轴上的电流随之增大,电磁力矩正向输出变大,推动电机转动。

只有做到估计角度在很短时间内收敛,那么速度环和电流环就可以从一开始就能直接闭环使用。

3.2 d轴电流注入作用分析

基于有效磁链的永磁同步电机模型在dq旋转坐标系下的电压模型如下:

注意到,有效反电势中的微分项是did/dt,只要其有值即id变化率较快,反电势有值,磁链估计值就会存在,转子的位置信息也就有了。

因此,在磁链观测器在起动时,通常注入一定的d轴正电流,除了增大电压的输出,克服逆变器非线性影响的目的外,还有就是造成did/dt在零速位置上是有值的,这有助于角度的收敛,这就是注入d轴电流的原理。

同样类比分析,注入d轴正电流的作用。适用于dq轴坐标系下的观测器,比如静态电压补偿观测器等。

四、验证分析

4.1 MATLAB/Simulink

图4.1 估计速度跟随变化情况

图4.2 估计位置角跟随变化情况

从图4.1和4.2可以看出,估计的速度和位置可以很快地收敛到真实位置和给定速度,说明非线性磁链观测器具有较好的跟踪性能。

4.2 CCS工程实现以及硬件测试平台验证

图4.3 80rpm:磁链和位置角变化情况

图4.4 300rpm:磁链和位置角变化情况

从图4.3和4.4同样可以证明非线性磁链观测器具有较好的估计跟随性能,磁链变化和位置角变化效果好。

五、开发过程中的问题总结

1、为确保零速直接闭环启动,提高启动初始时刻观测器的精度,一般在启动时注入一定大小的d轴正电流,待正常起动后, 大于某一速度时,再将d轴电流降为0;

2、Gamma增益的设置,从小到大调节,直到输出的Flux_alpha, Flux_beta是稳定的正交的正弦波,才可进行后续的锁相环调节;

3、锁相环的带宽一般设置为10--50Hz,设置太小角度不收敛,设置太大噪音信号过大;

4、锁相环的PI参数按二阶系统阻尼系数取1设置,此时系统处于临界阻尼状态,从不稳定到稳定的时间最短;

5、基于非线性磁链观测器+PLL的无感方案,可以实现正反转工况;

图5.1 磁链的波形变化

图(5.1)是非线性磁链观测器估算得到的磁链的波形变化情况,作为锁相环PLL的输入。

图5.2 转速和位置角的波形变化情况

从上述波形可以看出,基于非线性磁链观测器的无感控制策略在突加载、突加减速的时候都能够精确地估算出转速和位置信息。


来源:浅谈电机控制
Flux非线性电磁力MATLABSimulink理论电机控制
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2026-11-12
最近编辑:1天前
公众:浅谈电机
硕士 签名征集中
获赞 45粉丝 7文章 95课程 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是永磁同步电机常见的有感矢量控制(FieldOrientedControl,FOC),ABZ编码器测取转速位置信息用于坐标变换。FOC的核心部分主要有电流采样、PI调节器和电压矢量空间脉宽调制技术(SpaceVectorPulseWidthModulation,SVPWM)。所采用的开发环境是MATLAB和TI的DSP_C2000系列的控制芯片(CCS),后续的软硬件测试验证就使用这两种工具。图3MATLAB和CCS软件CCS软件采用语言C编程,需要具备一定的基础。MATLAB的建模方式多种,适合迭代优化的仿真类型是利用sfunction模块并结合M语言实现控制策略或者功能。采用sfunction模块进行M语言实现与CCS软件中的C代码实现具有相同之处,可相辅相成,可加深对实现的内容理解。图4基于TI_DSP_F283xC2000的硬件测试平台表1永磁同步电机参数硬件测试平台主要分为驱动板和控制板,以及配套的电源、开关、仿真烧录器和100W的永磁同步电机。控制板搭载的是TI_DSP_F28335芯片,板上资源丰富,适合后续的电机控制所需的算力。表2V1.0版本的开发大纲V1.0版本的开发主要是基于目前的软硬件平台搭建出一套CCS软件架构,实现基础的带ABZ编码器的永磁同步电机有感矢量控制,并移植一套成熟的上位机通过串口通信实现高刷新率的控制变量的显示,方便调试。接下来从硬件、软件和上位机三个方面介绍PMSM_FOC_sensor_ABZ。一、硬件篇(简要总结)1.1ePWM外设以及配套外围硬件模块电路图1.1ePWM外设模块的配置流程七段式SVPWM五段式SVPWM1.2ADC外设注:电流和电压采样是电机控制的重中之重,电机控制的核心目标之一就是精准地调节电流。ADC外设模块的采样精度,直接决定闭环控制的稳定性与准确性。图1.3ADC外设模块的配置步骤流程图1.3eQEP外设图1.4eQEP外设模块的配置步骤流程图图1.5上位机抓取的波形图二、软件篇2.1MATLAB/Simulink(真实系统)图2.1各种离散化仿真类型的分析图2.2硬件部分图2.3控制策略实现部分整个仿真验证部分一共分成4个部分:(1)硬件模拟;(2)控制层和SVPWM调制模块;(3)加载部分和Powergui、示波器;(4)脚本文件,用于设置电机参数和控制参数;图2.4基于零极点对消设计的速度波形变化情况图2.5基于零极点对消的电流波形变化情况2.2CCS(浮点标幺,以图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.2DSP接口图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.4DSP主循环模块流程图完成这个过程后,程序的执行流程则见图(2.5)所示。图2.5lsw=1时软件执行流程图2.3.2PWM初始化及TZ保护模块初始化(具体内容见1.1节)矢量控制中,一般需要六路(3组)PWM输出,配置为两两互补带死区的导通形式。PWM初始化,配置PWM频率、死区,载波频率8kHz,死区时间为2us,对PWM1启动125us中断以及ePWM模块的错误联防保护功能。2.3.3串口通信模块(具体内容见第三章)串口主要完成和上位机的通信,接收上位机的控制指令,并将一些需要监视的变量回传给上位机。本程序中设置波特率为460800pbs,8位数据位,1位停止位;无奇偶校验,全双工传送,设置RXFIFO中断深度1,TXFIFO中断深度0。SCI内部串行时钟信号由低速外设时钟信号LSPCLK及波特率选择寄存器共同决定。BRR为16为波特率设定值,其高8位装入SCIHBAUD中,低8位装入SCILBAUD中,即可配制出不同的波特率。2.3.4片内片内AD采集处理模块(具体内容见1.2节)最基本的FOC只需要两相电流即可,为了硬件保护等,我们可能还要采集母线电压、电流、温度等信号。并对采样值进行滤波数据处理。ADC模块具有多个分频器,以产生任何需要的ADC操作时钟,图15为ADC的时钟链结构。图2.6ADC时钟链结构图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.1V1.1版本的开发内容预告4.2开发过程中的问题梳理1、PI调节器中为什么不加入D项?微分,说白了在离散情况下,就是error的差值,就是t时刻和t-1时刻error的差,会引入噪声反而会劣化控制性能。另一个实际只用到了PI控制,没有引入微分,因为电流的采样率非常高不需要加入微分项。2、欢迎讨论,会根据讨论的问题进行总结,在下期文中进行展示;来源:浅谈电机控制

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