This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Tool/software:
Hello team,
Currently I am checking field weakening and MTPA using DRV8353 EVM and f2800157 launchpad.
For the above activity I am using 24v encoder motor and running the motor with encoder feedback in build level 4.
I have enabled the below macros for field weakening and MTPA.
MOTOR1_ENC, MOTOR1_UVW, MOTOR1_FWC, MOTOR1_MTPA and ENC_CAL.
Based on the motor parameters without using field weakening and MTPA I am able to run the motor upto 290f in both the direction.
By using field weakening and MTPA functionality I am able to run the motor up to maximum frequency (400f) in forward direction (positive speed ref values).
But in reverse direction (negative Speed ref values) I am able to run the motor up to 290f only, after this value motor speed is decreasing and meanwhile it is taking more Id and Iq currents compare to forward direction.
If I increase the supply (Bus voltage) voltage from 24v to 30v I am able to run the motor upto it's maximum speed in both the directions.
Can you please suggest why this issue is coming, whether it is because of back emf?
By increasing supply voltage motorVarsM1.VsRef_V value also increasing and we are able to achieve the maximum speed in both the directions.
Kindly suggest which parameters we need to tune for the above issue.
Thanks in advance.
Regards,
Kirana H P
If you are using sensorless-FOC for high speed, you just need to enable field weakening control, and increase the field weakening current. You can try to tune the following parameters as below.
//! brief Define the Kp gain for Field Weakening Control
#define USER_M1_FWC_KP (0.0525f)
//! brief Define the Ki gain for Field Weakening Control
#define USER_M1_FWC_KI (0.00325f)
//! brief Define the maximum current vector angle for Field Weakening Control
#define USER_M1_FWC_MAX_ANGLE -15.0f // degree
#define USER_M1_FWC_MAX_ANGLE_RAD USER_M1_FWC_MAX_ANGLE /180.0f * MATH_PI // rad
Hello Yanming Luo,
1. Actually, we are using the MTPA and field weakening method to achieve high speed in sensored-FOC using encoder feedback condition but not in sensor less-FOC.
2. Meantime we need to reduce the current consumption at high speed because after crossing speed Ref = 290f, motor is consuming some high current to achieve the high speed in positive speed Ref values.
3. But in reverse direction (negative Speed ref values) I am able to run the motor up to 290f only, after this value motor speed is decreasing and meanwhile it is taking more Id and Iq currents compare to forward direction.
Can you please suggest me apart from above variables you mentioned whether we need to consider any other variables to run the motor at high speed.
4. Because if I increase the supply (Bus voltage) voltage from 24v to 30v I am able to run the motor up to its maximum speed in both the directions so whether we need to tune the parameters related to back EMF of the motor.
5. Actually, we are calculating the current vector angle (angleCurrent_rad) below based on the angle MTPA_rad and angle FWC_rad in both motor rotation directions. I have included my observations below; could you kindly confirm if this is the right technique and if any relevant parameters need to be adjusted?
Here if I decrease the current vector angle (angleCurrent_rad) in negative speed_ref values after crossing the speed_ref = -290f, I am able to achieve the high speed without increasing the supply voltage but in this case, it will inject the negative Id current instead of positive Id current and this is not proper.
Whether above approach is proper, or we need to tune any parameters related to this because in DRV8353 EVM only we are facing these issues.
Regards,
Kirana H P
Disable the MTPA and only enable the FWC for getting the maximum speed, and also you need to make sure that the dc bus voltage and the motor can support the maximum speed with the right load as well. You can't expect the motor can run up to the maximum speed with the same load as the rated or low speed, and also you can't expect the motor can run up to the maximum at a low dc bus voltage.
Here if I decrease the current vector angle (angleCurrent_rad) in negative speed_ref values after crossing the speed_ref = -290f, I am able to achieve the high speed without increasing the supply voltage but in this case, it will inject the negative Id current instead of positive Id current and this is not proper.
Yes. It's for tuning the filed weahening current to achieve the maximum speed if you don't need the motor to output the high torque at the maximum speed.
Whether above approach is proper, or we need to tune any parameters related to this because in DRV8353 EVM only we are facing these issues.
Yes. You are on the right way, you don't need to change anything on the board, just need to tune the field weakening vectore angle to increase the field weakening current. The injected field weakening current will be always negative value.
Hello Yanming Luo,
1. Actually we are supplying the dc bus voltage based on the rated voltage of the motor.
2. Without altering the current vector angle, if I use the default current angle generated by the FOC in negative Speed ref after crossing 290f it is injecting positive Id current.
As you mentioned above it should inject negative Id current right?
Can you please tell me why this issue is coming and please specify the parameters related to this so that I can resolve this issue.
3. I need to introduce the MTPA function in my code and I have enabled MOTOR1_MTPA but I observed that some of the MTPA functions are defined but not called in the universal motor code.
MPTA parameters functions are not called in the universal motor code.
Can you please suggest what all are the changes we need to do in universal motor code so that we can use MTPA methodology effectively.
Regards,
Kirana H P
As replied to you, it's better to use just either MTPA and FWC at the same time. The FWC always inject a negative current on d-axis for extending the motor speed range.
The MTPA and FWC can't work at the same time, only FWC is needed for running the motor to the maximum speed.
Hello Yanming Luo,
Thank you for your reply,
Actually I need to use the MTPA and FWC at a same time because I need to achieve the maximum speed as well as I need to reduce the current consumption.
I need to achieve the maximum torque or speed with less current consumption.
Because at high speed motor is consuming huge current in no load condition itself.
So please suggest the way to implement the MTPA and FWC at a same time.
This is very crucial for us, please suggest the way to implement this.
Regards,
Kirana H P
Currently, the motor will run with either MTPA or FWC according to the speed, not at the same time.
Hello Yanming Luo,
Thank you for your support.
In universal motor code functions related to the Ls_dh and Ls_qh are declared but not called anywhere in the code.
Thank you.
Regards,
Kirana H P