Jun 18, 2020
06:11 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Jun 18, 2020
06:11 AM
Hi
I have a deta connected motor.the parameters are as follows:
Ruv=3.9 mohm Luv=10uH@1Khz pole pairs=5;
So I changed the FOC parameter configuration , see the pictrue below
But the phase current waveform is not sinusoidal
I change the code of current sampling because I think maybe it is different from deta to star connected.But the phase current waveform is still not sinusoidal
the code are as follows ,could you please give me some advice?
R0mioffs = AdcResult0 - Emo_Svm.CsaOffsetAdw;
/*CSA Offset minus result 1*/
OffsmiR1 =Emo_Svm.CsaOffsetAdw - AdcResult1;
/*Result 1 - Result 0*/
R1miR0 = AdcResult1 - Emo_Svm.CsaOffsetAdw;//
/* Calculate currents according to sector number */
sector = Emo_Svm.StoredSector1;
switch (sector)
{
case 0:
{
Emo_Svm.PhaseCurr.A = (2*R0mioffs-R1miR0)/3;//R0mioffs
Emo_Svm.PhaseCurr.B = (2*R1miR0-R0mioffs)/3;//R1miR0
}
break;
case 1:
{
Emo_Svm.PhaseCurr.A = (R1miR0-2*R0mioffs)/3;//R1miR0;
Emo_Svm.PhaseCurr.B = (R1miR0+R0mioffs)/3;//R0mioffs
}
break;
case 2:
{
Emo_Svm.PhaseCurr.A = -(R1miR0+R0mioffs)/3;//OffsmiR1;
Emo_Svm.PhaseCurr.B = (2*R0mioffs-R1miR0)/3;//R0mioffs;
}
break;
case 3:
{
Emo_Svm.PhaseCurr.A = (R0mioffs-2*R1miR0)/3;//OffsmiR1;
Emo_Svm.PhaseCurr.B = (R1miR0-2*R0mioffs)/3;//R1miR0;
}
break;
case 4:
{
Emo_Svm.PhaseCurr.A = (2*R1miR0-R0mioffs)/3;//R1miR0;
Emo_Svm.PhaseCurr.B = -(R1miR0+R0mioffs)/3;//OffsmiR1;
}
break;
case 5:
{
Emo_Svm.PhaseCurr.A = (R1miR0+R0mioffs)/3;//R0mioffs;
Emo_Svm.PhaseCurr.B = (R0mioffs-2*R1miR0)/3;//OffsmiR1;
}
break;
default:
{
/* unexpected error => halt motor, reset device */
Emo_StopMotor();
}
break;
}
I have a deta connected motor.the parameters are as follows:
Ruv=3.9 mohm Luv=10uH@1Khz pole pairs=5;
So I changed the FOC parameter configuration , see the pictrue below
But the phase current waveform is not sinusoidal
I change the code of current sampling because I think maybe it is different from deta to star connected.But the phase current waveform is still not sinusoidal
the code are as follows ,could you please give me some advice?
R0mioffs = AdcResult0 - Emo_Svm.CsaOffsetAdw;
/*CSA Offset minus result 1*/
OffsmiR1 =Emo_Svm.CsaOffsetAdw - AdcResult1;
/*Result 1 - Result 0*/
R1miR0 = AdcResult1 - Emo_Svm.CsaOffsetAdw;//
/* Calculate currents according to sector number */
sector = Emo_Svm.StoredSector1;
switch (sector)
{
case 0:
{
Emo_Svm.PhaseCurr.A = (2*R0mioffs-R1miR0)/3;//R0mioffs
Emo_Svm.PhaseCurr.B = (2*R1miR0-R0mioffs)/3;//R1miR0
}
break;
case 1:
{
Emo_Svm.PhaseCurr.A = (R1miR0-2*R0mioffs)/3;//R1miR0;
Emo_Svm.PhaseCurr.B = (R1miR0+R0mioffs)/3;//R0mioffs
}
break;
case 2:
{
Emo_Svm.PhaseCurr.A = -(R1miR0+R0mioffs)/3;//OffsmiR1;
Emo_Svm.PhaseCurr.B = (2*R0mioffs-R1miR0)/3;//R0mioffs;
}
break;
case 3:
{
Emo_Svm.PhaseCurr.A = (R0mioffs-2*R1miR0)/3;//OffsmiR1;
Emo_Svm.PhaseCurr.B = (R1miR0-2*R0mioffs)/3;//R1miR0;
}
break;
case 4:
{
Emo_Svm.PhaseCurr.A = (2*R1miR0-R0mioffs)/3;//R1miR0;
Emo_Svm.PhaseCurr.B = -(R1miR0+R0mioffs)/3;//OffsmiR1;
}
break;
case 5:
{
Emo_Svm.PhaseCurr.A = (R1miR0+R0mioffs)/3;//R0mioffs;
Emo_Svm.PhaseCurr.B = (R0mioffs-2*R1miR0)/3;//OffsmiR1;
}
break;
default:
{
/* unexpected error => halt motor, reset device */
Emo_StopMotor();
}
break;
}
- Tags:
- IFX
2 Replies
Jun 18, 2020
07:13 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Jun 18, 2020
07:13 AM
H, you can find more details on the current caltulations in our Appnote:
https://www.infineon.com/dgdl/Infineon-TLE987x-Sensorless-Field-Oriented-Control-ApplicationNotes-v0...
https://www.infineon.com/dgdl/Infineon-TLE987x-Sensorless-Field-Oriented-Control-ApplicationNotes-v0...
Jun 18, 2020
08:17 PM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Jun 18, 2020
08:17 PM
Hi
I have already read the Appnote,and the code in red is modified according to the Appnote.
Could you check it for me and tell me what's wrong
I have already read the Appnote,and the code in red is modified according to the Appnote.
Could you check it for me and tell me what's wrong