Because of the holidays, TI E2E™ design support forum responses will be delayed from Dec. 25 through Jan. 2. Thank you for your patience.

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.

TMS320F28054M-Q1: Algorithm Confirmation

Part Number: TMS320F28054M-Q1
Other Parts Discussed in Thread: MOTORWARE

Hi Expert,

Nice to talk with you.

F28054M-Q1 is under evaluation on customer side. The application is motor controller of Brake system. Here is the background for this customer: 

1. MCU Platform: F280054M-Q1

2. CCS version: 10.4.0.00006

3. MotorWare version: motorware_1_01_00_18  (instaspin-motion)

4. Motor information: Voltage: 600V; Max Speed: 3500rpm; polar pair: 8

5. Issue Description:

When the motor speed is 3600rpm. all the function is OK;

When the motor speed increase to 3700rpm, motor speed gMotorVars.Speed_krpm change from IQ(3.7) to IQ(-3.1). It cause the PID out of control;

In order to verify this issue is not cause by the encoder,   we change the encoder line from 1024 to 512, the issue still existed.

So customer confirm that this issue is cause by qep sample, so they change replace qep by observer which used to measure speed. So the software start to work well. Here is the code for the observer: 

                // get the speed estimate
                gMotorVars.Speed_krpm = EST_getSpeed_krpm(obj->estHandle);

Customer also share the code of qep: 

                 // get the speed from eQEP
                gMotorVars.Speed_krpm = _IQmpy(STPOSCONV_getVelocityFiltered(stObj->posConvHandle), _IQ(ST_SPEED_KRPM_PER_PU));

For qep rotation speed acquisition, customer call the function in the red box in the figure below:

Here is the original code: 

 

6. Support need

Could you share the original code of the function that marked by red line? So customer can find the detail cause of this issue.

Best Regards

Songzhen Guo

  • Could you share the original code of the function that marked by red line? So customer can find the detail cause of this issue.

    The motorWare includes all of the InstaSPIN-FOC and Motion codes. There are no more additional codes can be shared with customer.

    Please ask your customer if the dc bus voltage is enough to run the motor with such higher speed, and the setting maximum current (USER_MOTOR_MAX_CURRENT in user.h)

    Make sure that the motor parameters and inertia have been identified correctly by running the related labs like lab02b and lab05c/lab12a.

    In order to verify this issue is not cause by the encoder,   we change the encoder line from 1024 to 512, the issue still existed

    The encoder lines should be set correctly according to the using encoder. And need to run the "Index" calibration as shown in the example lab if they are using an incremental encoder. If they are using the another encoder, they have to ensure the rotor angle and speed are detected correctly with their own functions. They can try to run the lab02b, lab05a, and then lab05b to see if the motor can run up the target speed they want. If yes, the issue could be from the position sensor.

    BTW, if they are using their own board, they may need to ensure the current and voltage sensing signals are good enough for FOC.

  • Hi Yanming,

    Thank you so much for your feedback.

    According to the customer’s current feedback, the following results can confirm that the encoder is working normally, and the program itself has no problem, but the encoder’s speed calculation part is abnormal. Customer hope us can provide us with relevant codes for the encoder’s speed calculation, so as to analyze the cause of the failure.

    The current situation is that using the following configuration, the motor works normally, and the maximum speed can reach 5300rpm (the speed obtained by the estimator):

    1. The rotor angle adopts the value of the encoder, as shown in the figure below:  

                  

     2. The rotor speed adopts the value of the estimator;

    At present, there is still a small problem with the speed estimator, that is, the estimated speed at low speed is not stable, so our program sets the encoder speed when the estimated speed is lower than 1000rpm, so that the motor can barely work normally, as shown in the figure below Show.

    Best Regards

    Songzhen Guo

  • Hi Songzhen,

    I want to follow up on this issue. It is normal that the speed estimator doesn't perform well at low speed. Did they try to run the labs?

    Thanks,

    Jiaxin