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.

TMS320F280049C: Calculation of Id reference with RsOnline

Part Number: TMS320F280049C

Hi All,

I am currently working on the RsOnline feature provided by the FAST estimator but I see some issues regarding functions used in the Lab code.

As far as I understood when the RsOnline feature is active, the estimator calculates a d-current which should then be added to the control. The estimator then uses the feedback values to estimate the resistance with the known applied d-current. Because of the use in the Lab I expected the function EST_getIdRated_A() to return the d-current I need to add to the control and EST_updateId_ref_A as the function where I set the finally resulting reference values.

When I moved certain parts to the CLA I experienced some problems because EST_getIdRated_A seems to return always 0 and EST_updateId_ref_A actually manipulates the input with the desired d-current. Is this behavior expected? 

For now I solved the problem by calculating the Rated d-current by substracting the d-current before EST_setIdq_ref_A from the d-current after. This seems to work but it also adds a delay of one ISR before the new calculated rated d-current is used in the control. Would this be a problem? Since we are splitting functionality between CLA and CPU the only other approach would need an additional ping-pong ISR cycle between CPU and CLA.

Thanks in advance 

Wolfgang

  • I don't think all the EST_xx() functions can be executed with CLA, and don't know you how to split the FAST functions between CLA and CPU. You might provide more information about how do you use CLA, what event trig the CLA tasks?

  • Yes that is absolutely correct. The whole control is splitted so the CLA handles the ADC/PWM and computes Clarke, Park, PI, FWC, etc. The CPU is only used to do all Estimator functions so the total load is reduced. Resulting from this the trigger chain is basically ADC -> CLA -> CPU -> CLA -> CPU for one control cycle. In Lab 13 we identified two switching points.

    - After getting ADC, computing Clarke and Traj

    - After computing the new Idq_ref by using the speed control, FWC, MTPA and adding the rated Id_current

    Since we assumed the Idq_ref is only changed with the rated current by "Idq_ref_A.value[0] += EST_getIdRated_A(estHandle);" we did not add an additional ping pong at this point and moved the EST_updateId_ref_A and EST_setIdq_ref_A to the last CPU trigger chain element. I am even thinking about moving these function calls directly before Est_run() like it is partially in Lab 10 to get rid of the additional interrupt at the end.

    The only problem I see with this is the one cycle delay between the computation of the rated current and the use of this particular value.

    Hope this helps to understand our issue.

  • What events trigger the task of the CLA for the controller and the interrupt for the estimator? The delay should be from these two ISRs of CLA and CPU.