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.

[参考译文] DRV8301-69M-KIT:user.c 和 ctrl.c 中的 PID 增益

Guru**** 2933120 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/841708/drv8301-69m-kit-pid-gains-in-user-c-and-ctrl-c

器件型号:DRV8301-69M-KIT

我观察到我们有2个不同的 PID 方程。

在 ctrl.c 中,  

Kp =_IQ (0.1);
Ki =_IQ (pUserParams->ctrlPeriod_sec/0.004);
Kd =_IQ (0.0);
outMin =_IQ (-0.95);
outMax =_IQ (0.95);这些值在 USER_SET_params ()函数的主文件中调用

在 user.c 中

RoverLs_d = Rs/Ls_d;
KP_ID =_IQ ((0.25*LS_d*fullScaleCurrent)/(ctrlPeriod_sec*fullScaleVoltage));
KI_ID =_IQ (RoverLs_d*ctrlPeriod_sec);

RoverLs_q = Rs/Ls_q;
KP_IQ =_IQ ((0.25*LS_q*fullScaleCurrent)/(ctrlPeriod_sec*fullScaleVoltage));
KI_IQ =_IQ (RoverLs_q*ctrlPeriod_sec);

Kd =_IQ (0.0);  

此公式在 main 的 SoftwareUpdate ()函数中调用。

为什么两个 PID 不同,在什么情况下使用哪一个 PID?

Instaspin -FOC 和 Instaspin -spintac 有何区别? 我知道如果使用 QEP、我们不需要速度环路来确定速度、但这2个方框图有何不同?  en

3.如果第2个方框图中未使用 QEP,速度规划、移动和控制中使用了什么方程式?

4.第一个方框图中使用了哪些 pid 方程?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Q1:ctrl.c 中的 Kp 和 Ki 是不带电机参数的识别默认值。 和用户.c 中的 Kp 和 Ki 是根据识别的或设置的电机参数计算的、用于运行。

    Q2:正如您在 InstaSPIN 用户指南中看到的、InstaSPIN-FOC 使用传统 PID 进行速度环路、而 SpinTAC 使用 ADRC 进行速度和位置控制。

    问题3和问题4、抱歉、我们只能展示如何使用 SpinTAC 中的 API 供您使用、不能对 IP 提供任何更详细的限制。

    BTW、我们可以披露和提供的所有信息都可以在 InstaSPIN 用户指南中找到。