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/TMS320F28379S:PID 控制输出

Guru**** 2539500 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/756471/ccs-tms320f28379s-output-of-pid-control

器件型号:TMS320F28379S

工具/软件:Code Composer Studio

您好!

我正在使用"DCL_runPID_C4"、并正在 进行测试以查找合适的 KP。 Ki 和 Kd 值。

我将 PID 的参数设置如下、

pid1.kp = 5.0f;
pid1.Ki = 100;//0.015f;
pid1.kd = 0;//1.35f;
pid1.kr = 1.0f;
pid1.c1 = 188.0296600613396f;
pid1.c2 = 0.880296600613396f;
pid1.d2 = 0.0f;
pid1.d3 = 0.0f;
pid1.I10 = 0.0f;
pid1.i14 = 1.0f;
pid1.Umax = 1000.0f;
pid1.Umin =-1000.0f;
pid1.sps =&SPID;
pid1.css =&cpid;

我的测试控制环路如下所示、

RK = 1000.0f;//控制基准的初始值
LK = 0.0f;//控制环路不饱和

while (1)

 POS = eQEP_getPosition (EQEP1_base);

 IF (pos & 0x80000)
 {
   s_pos =(0xffffffff - pos);
 }
 其他
 {
  s_pos =-pos;
 }
 YK=(浮点) s_pos;

//用于抗饱和复位的外部钳位
DCL_runClamp_C1 (&lk、10.0f、-10.0f);

//运行 PID 控制器
UK = DCL_runPID_C4 (&pid1、rk、yk、lk);
占空比= ABS (UK)% 1001;

 }

但是,在 YK 为21000.0000f 时,英国变为零

我预期英国在黄黄时为零,与 rk (=1000.0f)相同

我的期望有什么错误?

BR

Paul

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

    Paul、

    首先、请分别为 Ki 和 Kd 增益使用100.0f 和0.0f、以便编译器知道将它们视为浮点。

    集成控制器应强制黄网络在 rk 上收敛。 这里的问题是您已禁用积分路径。

    变量"lk"应为1.0f 或0.0f。 没有其他东西。 该项乘以积分路径内的误差、因此将其设置为0.0f 将*禁用*(不启用)积分路径。  请参阅用户指南和支持说明中的控制器图。   

    我建议您将 lk 设置为1.0f (而不是0.0f)、不要将其钳制。

    此致、

    Richard