工具/软件: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