当前位置:文档之家› field_weaken 异步电机弱磁调速

field_weaken 异步电机弱磁调速

异步电机弱磁调速异步电机矢量控制的调速范围可以通过减弱磁场来增大,这种调速方式被称作“弱磁调速”,在Turbo PMAC中,可以通过一个简单的程序来实现这种调速方式。

弱磁调速的基本用法是:当转速达到现有电枢电压下的极限(即反向电动势等于电枢电压)减弱转子场强,以达到速度极限增大的效果。

磁场强度在一定范围内与速度大致成反比,磁场强度是由定子的Id(平行于磁场方向的电流)指令控制,在Turbo PMAC中为Ixx77变量。

但实际磁场变化会滞后于Ixx77一个相对较大的电气时间常数(电感的电流滞后于电压)。

Turbo PMAC的“滑差(转差)增益”参数Ixx78是相更新时间(相周期)除以转子时间常数,Turbo PMAC使用“滑差增益”与“开环估计器”计算代表磁场强度的转子励磁电流。

我们也可以使用Ixx78滑差增益预测转子励磁电流的滞后,还可以加速定子Id指令的变化以对滞后做出一定的补偿。

由于这个算法并非每个相周期都会运行,我们将针对PLC0计算等效的滑差时间常数,一个介于实时中断与转子电气时间常数之间的值。

由于转子的磁场强度决定电机的力矩常数,因此控制场强也相当于控制了反馈回路增益,在减弱磁场的同时回路增益也将减小。

为对此做补偿,我们需要同时更改位置环比例增益Ixx30,Ixx30的变化应与估计的转子励磁电流成反比,以确保回路全局增益保持不变。

下面的例子是在4号电机上操作,您可以做简单的更改以操作其他电机。

它基于期望速度来控制磁场,因期望速度比实际速度更平滑,但在使用时应确保实际速度与期望速度相差不是太大,否则,应使用实际速度控制磁场。

;变量替换及定义;I变量#define ServoPeriod I(I19+5) ;每个伺服周期内相周期个数#define PLC0Period (I8+1) ;每个实时中断周期内伺服周期个数#define Mtr4CmdId I477 ;指令直接电流(Id)#define Mtr4SlipGain I478 ;滑差增益,由转子时间常数得出#define Mtr4PropGain I430 ;控制回路增益#define Mtr4MaxIq I469 ;伺服输出限幅值(Iq,力矩电流);用于自动计算的M变量#define Mtr4EstIm M480 ;估计励磁电流,PMAC自动计算Mtr4EstIm->Y:$000237,8,16,S ;以Ixx77为单位#define Mtr4ActId M476 ;实际Id,来自(霍尔)传感器Mtr4ActId->Y:$000239,8,16,S ;以Ixx77为单位#define Mtr4DesVel M455 ;期望速度Mtr4DesVel->X:$00021A,0,24,S ; 1/[Ixx08*32]cts/[Ixx60+1]cyc#define Mtr4ActVel M456 ;实际速度,来自编码器Mtr4ActVel->X:$00021D,0,24,S ; 1/[Ixx09*32]cts/[Ixx60+1]cyc;用于算法的P变量#define Mtr4DesIm P470 ;期望的励磁电流#define Mtr4LastDesIm P471 ;上一周期期望励磁电流#define Mtr4BaseSpeed P472 ;励磁电流饱和时的最大速度(基础转速)#define BaseSpeedFrac P473 ;基础场强(减弱磁通前的磁场强度)的百分比#define Mtr4CtsPerRev P474 ;解码后编码器分辨率(这里为×4);#define Mtr4BaseRPM P475 ;空载基础转速rev/min#define Mtr4BaseKp P476 ;基础比例增益#define Mtr4BaseId P477 ;基础场强下的定子Id#define Mtr4DesId P478 ;非极限值的期望Id#define Mtr4MinIm P479 ;最小励磁电流#define Mtr4Tslip P480 ;实时中断时间/转子时间常数#define MaxIdqSqrd P481 ; Id 与Iq矢量和最大值;;设置常量(在线指令并保存,或上电、后台PLC)BaseSpeedFrac=0.9 ;基础场强的90%Mtr4BaseRPM=1800 ;空载基础速度Mtr4CtsPerRev=2000 ;500线编码器,×4解码;计算带载基础速度cts/msMtr4BaseSpeed=BaseSpeedFrac*Mtr4BaseRPM*Mtr4CtsPerRev/60000;以内部单位重新计算指令速度Mtr4BaseSpeed=Mtr4BaseSpeed*((I10*(I460+1)/8388608)*I408*32Mtr4BaseId=3000 ;低转速指令IdMtr4MinIm=1000 ;高转速指令IdMtr4BaseKp=200000 ;低转速伺服比例增益Mtr4Tslip=Mtr4SlipGain*ServoPeriod*PLC0Period ;单位用于PLCC0 MaxIdqSqrd=32767*COS(30)*32767*COS(30) ;最大矢量励磁电流OPEN PLCC 0 CLEAR;基于速度计算转子期望励磁电流IF (ABS(Mtr4DesVel) < Mtr4BaseSpeed)Mtr4DesIm=Mtr4BaseId ;饱和场强ELSEMtr4DesIm=Mtr4BaseId*Mtr4BaseSpeed/ABS(Mtr4DesVel) ;减弱磁场IF (Mtr4DesIm < Mtr4MinIm)Mtr4DesIm=Mtr4MinIm ;使用最小值ENDIFENDIFMtr4CmdId=(Mtr4DesIm-(1-Mtr4Tslip)*Mtr4LastDesIm)/Mtr4TslipMtr4LastDesIm=Mtr4DesIm ;保存,用于下次查询IF (Mtr4DesIm < Mtr4MinIm)Mtr4DesIm=Mtr4MinIm ;使用最小值ENDIFMtr4MaxIq=SQRT(MaxIdqSqrd-Mtr4CmdId*Mtr4CmdId) ;Iq限制IF (Mtr4EstIm < 0.98*Mtr4BaseId) ;减弱磁场?Mtr4PropGain=Mtr4BaseKp*Mtr4BaseId/Mtr4EstIm ;增加增益用于补偿ELSEMtr4PropGain=Mtr4BaseKp ;使用基础比例增益ENDIFCLOSEInduction Motor Field WeakeningThe speed range of vector-controlled induction motors can be increased by varying the strength of the rotor field as a function of velocity, a technique commonly known as “field weakening”. In Turbo PMAC, a simple program can be used to implement this field weakening functionality. The fundamental strategy in field weakening is to reduce the strength of the magnetic field of the rotor when the velocity is high enough that the back EMF would limit the current that could be used to drive the motor. The field strength should be roughly inversely proportional to the speed in this range. The field strength is controlled through the stator direct current command value, Ixx77 for the motor, but changes are delayed by the relatively long electrical time constant of the rotor. Since Turbo PMAC’s “slip gain” parameter Ixx78 is simply the phase update time divided by the rotor time constant, Turbo PMAC uses the slip gain parameter with an open-loop estimator to calculate the estimated rotor “magnetization current”, which represents the field strength.We can also use the Ixx78 slip gain parameter here to anticipate the delays in changing the rotor magnetization current, and use it to provide “accelerated” changes to the commanded stator direct current and largely compensate for these delays. Because this algorithm does not run every phase cycle, we compute the equivalent slip time constant for PLC 0 – the ratio between the real-time-interrupt period and the rotor electrical time constant.Because the rotor’s magnetic field strength determines the motor’s torque constant, and is therefore a gain term in the overall feedback loop, weakening the field lowers the loop gain. To compensate for this, we change the position loop’s proportional gain term Ixx30 inversely to the estimated rotor magnetization current to keep the overall loop gain approximately constant.This example operates on Motor 4, but it would be simple to change it to other motors. It controls the field based on desired velocity, which has less jitter than the actual velocity measurements. This does require that the actual velocity not deviate too much from the desired velocity. If it cannot be assumed that this is true, actual velocity should be used instead.; Substitutions and definitions; I-Variables#define ServoPeriod I(I19+5) ; Phase cycles per servo cycle#define PLC0Period (I8+1) ; Servo cycles per RTI cycle#define Mtr4CmdId I477 ; Commanded direct current#define Mtr4SlipGain I478 ; From rotor time constant#define Mtr4PropGain I430 ; Controls loop gain#define Mtr4MaxIq I469 ; Servo output limit; M-variables for automatically calculated values#define Mtr4EstIm M480 ; PMAC does automaticallyMtr4EstIm->Y:$000237,8,16,S ; In units of Ixx77#define Mtr4ActId M476 ; From sensors, xformedMtr4ActId->Y:$000239,8,16,S ; In units of Ixx77#define Mtr4DesVel M455 ; Includes overrideMtr4DesVel->X:$00021A,0,24,S ; 1/[Ixx08*32]cts/[Ixx60+1]cyc#define Mtr4ActVel M456 ; From sensorMtr4ActVel->X:$00021D,0,24,S ; 1/[Ixx09*32]cts/[Ixx60+1]cyc; P-variables for algorithm#define Mtr4DesIm P470 ; Desired rotor mag current level#define Mtr4LastDesIm P471 ; Last cycle’s desired level#define Mtr4BaseSpeed P472 ; Max speed for full mag current#define BaseSpeedFrac P473 ; % of base to start weakening#define Mtr4CtsPerRev P474 ; Encoder res after decode ;#define Mtr4BaseRPM P475 ; No-load base speed in rev/min#define Mtr4BaseKp P476 ; Ixx30 prop gain below base#define Mtr4BaseId P477 ; Ixx77 direct current below base#define Mtr4DesId P478 ; Desired Id before limits#define Mtr4MinIm P479 ; Minimum Im value#define Mtr4Tslip P480 ; T(RTI)/T(rotor)#define MaxIdqSqrd P481 ; Sqr of max vect mag of Id & Iq ;; Set constants (on-line and SAVE, or in power-on or background PLC) BaseSpeedFrac=0.9 ; Start weakening at 90% of base Mtr4BaseRPM=1800 ; No-load base speedMtr4CtsPerRev=2000 ; 500-line encoder, x4 decode; Calculate loaded base speed, first in cts/msecMtr4BaseSpeed=BaseSpeedFrac*Mtr4BaseRPM*Mtr4CtsPerRev/60000; Now re-calculate in internal units of commanded velocityMtr4BaseSpeed=Mtr4BaseSpeed*((I10*(I460+1)/8388608)*I408*32Mtr4BaseId=3000 ; Command Id at low speedsMtr4MinIm=1000 ; Command Id at highest speeds Mtr4BaseKp=200000 ; Servo prop gain at low speedMtr4Tslip=Mtr4SlipGain*ServoPeriod*PLC0Period ; In units for PLCC 0 MaxIdqSqrd=32767*COS(30)*32767*COS(30) ; Max current vec mag OPEN PLCC 0 CLEAR; Compute desired rotor mag current based on speedIF (ABS(Mtr4DesVel) < Mtr4BaseSpeed)Mtr4DesIm=Mtr4BaseId ; Full field strength ;ELSEMtr4DesIm=Mtr4BaseId*Mtr4BaseSpeed/ABS(Mtr4DesVel) ; Weakened field IF (Mtr4DesIm < Mtr4MinIm)Mtr4DesIm=Mtr4MinIm ; Use minimum valueENDIFENDIFMtr4CmdId=(Mtr4DesIm-(1-Mtr4Tslip)*Mtr4LastDesIm)/Mtr4TslipMtr4LastDesIm=Mtr4DesIm ; Save for next scanIF (Mtr4DesIm < Mtr4MinIm)Mtr4DesIm=Mtr4MinIm ; Use minimum valueENDIFMtr4MaxIq=SQRT(MaxIdqSqrd-Mtr4CmdId*Mtr4CmdId) ; Quad current limitIF (Mtr4EstIm < 0.98*Mtr4BaseId) ; Weakened field?Mtr4PropGain=Mtr4BaseKp*Mtr4BaseId/Mtr4EstIm ; Raise gain to comp ELSEMtr4PropGain=Mtr4BaseKp ; Use standard gainENDIFCLOSE。

相关主题