探索汇川变频器源码:TMS320F28035 上的技术革新
汇川三种变频器源码,MD290,MD380,MD500变频器源码,基于TMS320F28035。 新的SVC3算法,高速速度波动小,新的转子电阻,漏感辩识算法!.
在工控领域,汇川变频器一直以其出色的性能和可靠性备受关注。今天咱们就来深入探讨基于 TMS320F28035 的汇川 MD290、MD380 和 MD500 变频器源码,特别是其中蕴含的新算法带来的卓越表现。
硬件基础:TMS320F28035
TMS320F28035 是一款高性能的 32 位定点 DSP 芯片,为变频器的精准控制提供了坚实的硬件平台。它具备丰富的外设资源和高速的运算能力,能够快速处理复杂的控制算法。例如,其 ePWM 模块可用于生成精确的脉宽调制信号,控制变频器的功率输出。以下是一个简单的 ePWM 初始化代码示例:
#include "DSP28x_Project.h"
void InitEPWM1(void)
{
// 使能 EPWM1 时钟
EALLOW;
SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC = 0;
SysCtrlRegs.PCLKCR0.bit.EPWM1ENCLK = 1;
EDIS;
// 初始化时基模块
EPwm1Regs.TBCTL.bit.CTRMODE = TB_COUNT_UP;
EPwm1Regs.TBCTL.bit.PHSEN = TB_DISABLE;
EPwm1Regs.TBCTL.bit.HSPCLKDIV = TB_DIV1;
EPwm1Regs.TBCTL.bit.CLKDIV = TB_DIV1;
// 设置周期值
EPwm1Regs.TBPRD = 1000;
// 初始化比较模块
EPwm1Regs.CMPCTL.bit.SHDWAMODE = CC_SHADOW;
EPwm1Regs.CMPCTL.bit.SHDWBMODE = CC_SHADOW;
EPwm1Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZERO;
EPwm1Regs.CMPCTL.bit.LOADBMODE = CC_CTR_ZERO;
EPwm1Regs.CMPA.half.CMPA = 500;
EPwm1Regs.CMPB = 500;
// 初始化动作限定模块
EPwm1Regs.AQCTLA.bit.ZRO = AQ_SET;
EPwm1Regs.AQCTLA.bit.CAU = AQ_CLEAR;
EPwm1Regs.AQCTLB.bit.ZRO = AQ_SET;
EPwm1Regs.AQCTLB.bit.CAU = AQ_CLEAR;
// 使能 EPWM1
EPwm1Regs.TBCTL.bit.TBCLKSYNC = 1;
}
这段代码首先使能了 EPWM1 的时钟,然后配置了时基模块,设定了计数器模式、分频系数以及周期值。接着初始化比较模块,决定了 PWM 信号的占空比,最后在动作限定模块中定义了计数器为 0 和递增计数到周期值时 PWM 输出引脚的动作。
新算法:SVC3 与转子电阻、漏感辨识算法
SVC3 算法:高速下的稳定之选
新的 SVC3 算法在高速运行时展现出了极小的速度波动。传统的矢量控制算法在高速场景下,由于电机参数变化、负载扰动等因素,容易出现速度不稳定的情况。而 SVC3 算法通过更精确的磁链估计和电流控制,有效解决了这一问题。
在代码实现上,SVC3 算法可能涉及到复杂的坐标变换和控制律计算。以下是一个简化的电流环控制代码片段,用于说明其基本思路:
void CurrentLoop(void)
{
float Id_ref, Iq_ref;
float Id, Iq;
float Vd, Vq;
// 获取电流反馈值
Id = GetIdFeedback();
Iq = GetIqFeedback();
// 电流环 PI 控制
Id_ref = CalculateIdRef();
Iq_ref = CalculateIqRef();
Vd = Kp * (Id_ref - Id) + Ki * IntegralId + PreviousVd;
Vq = Kp * (Iq_ref - Iq) + Ki * IntegralIq + PreviousVq;
// 坐标反变换,得到三相电压指令
float Va, Vb, Vc;
ParkInverse(Vd, Vq, &Va, &Vb, &Vc);
// 将电压指令输出给 PWM 模块
SetPwmVoltage(Va, Vb, Vc);
// 更新积分项和上一时刻的电压值
IntegralId += (Id_ref - Id);
IntegralIq += (Iq_ref - Iq);
PreviousVd = Vd;
PreviousVq = Vq;
}
这段代码中,首先获取电流反馈值 Id 和 Iq,然后根据电机运行状态计算参考电流 Idref 和 Iqref。通过 PI 控制器计算出 Vd 和 Vq,再经过坐标反变换得到三相电压指令 Va、Vb 和 Vc,最后输出给 PWM 模块来控制变频器的输出。在高速运行时,SVC3 算法通过更优化的参数调整和控制策略,使得电机速度能够保持稳定。
转子电阻、漏感辨识算法
准确的电机参数对于变频器的高性能控制至关重要。新的转子电阻和漏感辨识算法能够实时在线估计这些参数,提高控制的准确性。
汇川三种变频器源码,MD290,MD380,MD500变频器源码,基于TMS320F28035。 新的SVC3算法,高速速度波动小,新的转子电阻,漏感辩识算法!.
在实际的代码实现中,可能会基于电机的数学模型,通过注入特定的信号,然后根据电机的响应来估计参数。例如,以下是一个简化的基于模型参考自适应系统(MRAS)的转子电阻辨识算法代码框架:
void RotorResistanceIdentification(void)
{
float omega_r;
float psi_alpha_est, psi_beta_est;
float psi_alpha_ref, psi_beta_ref;
float err_alpha, err_beta;
float Kp_rotor, Ki_rotor;
static float Integral_rotor;
// 获取电机转速
omega_r = GetMotorSpeed();
// 估计磁链
EstimateFlux(&psi_alpha_est, &psi_beta_est);
// 参考磁链计算
CalculateReferenceFlux(&psi_alpha_ref, &psi_beta_ref);
// 计算磁链误差
err_alpha = psi_alpha_ref - psi_alpha_est;
err_beta = psi_beta_ref - psi_beta_est;
// MRAS 自适应律更新转子电阻
float rotor_resistance_update = Kp_rotor * (err_alpha * psi_beta_est - err_beta * psi_alpha_est) + Ki_rotor * Integral_rotor;
RotorResistance += rotor_resistance_update;
Integral_rotor += (err_alpha * psi_beta_est - err_beta * psi_alpha_est);
}
此代码通过获取电机转速,分别估计和计算参考磁链,进而得到磁链误差。基于 MRAS 的自适应律,根据磁链误差实时更新转子电阻估计值。这样,变频器能够随着电机运行状态的变化,动态调整控制参数,实现更精准的控制。
汇川基于 TMS320F28035 的这三款变频器源码中的新算法,为电机控制带来了更高的性能和稳定性,无论是在高速运行还是面对复杂的电机参数变化时,都能出色应对,推动了工控领域变频器技术的进一步发展。
更多推荐



所有评论(0)