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.

CCS/TMS320F28335: Adaptive PI Control

Part Number: TMS320F28335
Other Parts Discussed in Thread: CONTROLSUITE, C2000WARE

Tool/software: Code Composer Studio

Dear Sir.

I have work on

C:\ti\controlSUITE\development_kits\HVMotorCtrl+PfcKit_v2.1\HVPM_Sensorless_2833x

I want implement adaptive PI control and repetitive control.

Are there any code about  adaptive PI  control and repetitive control?

My another question.

When ı want add a pole or zero to my PI controller, how can ı change the code.

  • The answer to the first part is that, unfortunately, we don't currently have any adaptive or repetitive control examples for C2000. I'm sorry not to have better news on that.

    I'll get back to you tomorrow about the second part. Thanks for your patience.

    Regards,

    Richard
  • Regarding the second part of your question; the example code uses the PI_MACRO call to implement all three PI controllers. I presume you will want to modify the outer speed loop controller?

    The DMC library used with this kit is quite old, and modifications along the lines of what you have in mind are not very straightforward. You will need to replace the PI macro with a 2P2Z macro, then calculate the zero frequency from the PI, then insert the extra pole and zero. Unfortunately there isn't a 2P2Z macro in the DMC library. You could borrow something from the digital power library in controlSUITE, but again, that is not straightforward.

    What I recommend you do is to download the newest version of C2000Ware and look through the Digital Control Library at:
    C:\ti\c2000\C2000Ware_1_00_06_00\libraries\control\DCL
    You could do this with a DF22 controller and there is a DCL function to load controller that from a pole-zero description (DCL_loadDF22asZPK). It will then be a matter of integrating the DCL with your own code.

    You should find everything you need in the DCL documentation. Feel free to post back if anything's unclear.

    Regards,

    Richard

  • Dear sir;

    I have download the newest version of C2000ware. I setuped it.

    When ı look C:\ti\c2000\C2000Ware_1_00_06_00\libraries\control\DCL there is a folder "c28".

    Could you explain more the"You could do this with a DF22 controller and there is a DCL function to load controller that from a pole-zero description (DCL_loadDF22asZPK). It will then be a matter of integrating the DCL with your own code."
  • There is a user's guide in c28\docs which describes the DF22 controller and the function I mentioned to load it. Please read through that first.

    Your original post asked: "When ı want add a pole or zero to my PI controller, how can ı change the code."

    You will need to put the PI controller into pole-zero form first, so you'll have an integrator plus a zero. Then, you'll add an extra pole or zero (your question), so you'll need a 2-pole, 2-zero compensator to implement it. In the DCL, that's called a DF22 controller. The function I mentioned allow you to load such a controller directly from a pole-zero description without having to work out the coefficients first. Please read about it in the user's guide.

    As I explained, the DCL is different from the libraries used to construct this sensor-less HVPM example, so you'll have some work to do to integrate the DCL library with the HVPM example code. You'll have to do that - there aren't any examples of using DCL in this way.

    There really isn't anything in the legacy motor control libraries you are using which does what you want.

    Regards,

    Richard