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.

TIDM-1000: Control loop tuning parameters (Compensation coefficients)

Part Number: TIDM-1000
Other Parts Discussed in Thread: SFRA

Hi Team,

Greetings of the day!

We are using TIDM-1000 Software for our custom board with our ADC scale factor and Passive element parameters.

Now we want to change compensation designer type from One Pole one Zero to 2 Poles 2 Zeros. Here we will get the output parameters(B0,B1,B2,A1,A2) for 2-pole 2-zero differently.
How those parameters will be given to the code(in the form of Kp and Ki or anything else)?

There are many coefficient's in "Kit.json" file as shown in the below, but Now our question is where we have to give the input of compensation coefficients(A0,A1,A2,B1,B2) after tuning(poles and zeros frequencies) which we got from the GUI (SFRA Analyzer tool).
{
"MODEL": {
"ID": "4",
"PLANT": {
"Fsw": "50000",
"Fctrl": "50000",
"Tuning": "2",
"Vin": "208",
"Vout": "600",
"Pout": "680",
"Vout_SenseMax": "454",
"I_SenseMax": "12",
"Li": "0.003",
"Ri": "0.2",
"Cf": "0.00018",
"Rcf": "0.73",
"Rfltr": "68",
"Cfltr": "1.0000000000000001e-7",
"ProjectNonModifiable": "0"
},
"COMP": [
{
"TUNING": "9",
"DCL_Kp": "0.349650340737655",
"DCL_Ki": "0.00200005103159284",
"A0": "1",
"A1": "1",
"A2": "0",
"A3": "0",
"B0": "2",
"B1": "0",
"B2": "0",
"B3": "0",
"z0": "31831",
"Qz0": "4.68705446301803",
"z1": "13418",
"z2": "1000000",
"p0": "0",
"p1": "31831",
"Qp1": "1",
"p2": "20000000000000",
"gain": "60730.2403614083",
"Kp": "2",
"Ti": "0.00018896447",
"Td": "0"
},
{
"TUNING": "10",
"DCL_Kp": "0.1486725877128",
"DCL_Ki": "3.38095160854676",
"A0": "1",
"A1": "1",
"A2": "0",
"A3": "0",
"B0": "0.40004",
"B1": "-1.39996",
"B2": "0",
"B3": "0",
"z0": "10000",
"Qz0": "4.68705446301803",
"z1": "13418",
"z2": "1000000",
"p0": "0",
"p1": "31831",
"Qp1": "1",
"p2": "20000000000000",
"gain": "0.4",
"Kp": "0.4",
"Ti": "0.1",
"Td": "0"
},
{
"TUNING": "9",
"DCL_Kp": "0.349650340737655",
"DCL_Ki": "0.00200005103159284",
"A0": "1",
"A1": "0",
"A2": "0",
"A3": "0",
"B0": "1",
"B1": "0",
"B2": "0",
"B3": "0",
"z0": "31831",
"Qz0": "4.68705446301803",
"z1": "13418",
"z2": "1000000",
"p0": "0",
"p1": "31831",
"Qp1": "1",
"p2": "20000000000000",
"gain": "91095.0964494984",
"Kp": "1",
"Ti": "1E-06",
"Td": "0"
}
],
"COMP_OPTIONS": {
"COMP_NUM": "2",
"MODEL_STYLE": "1",
"SFRAPATH": "C:/pfc3phvienna_F28004x/SFRAData/SFRAData.csv",
"COMP_ABS_LIMIT": "256",
"COMP_STYLE": "10"
}
}
}

Thank you in Advance!

Regards,

Chaithanya.

  • Chaithanya,

    as you indicated this design uses a 1p1z filter.  it looks like this is in the DCLxxx.asm files included in the project.

    it appears to use the following structure as inputs :

    If you wish to move to a 2P2Z filter you may need to change the function calls. The code has aliased the compensator as "VIENNA_GV_RUN". This call will likely need to be updated to use a 2P2Z filter.


    Take a look at the DCL included in the DPSDK. It offers PID and other types of director form compensators if you would like to change it.

    This guide explains how to use the DCL and update the compensator values:https://www.ti.com/lit/pdf/spruid3 

    Regards,

    Cody