📄 pidarithmetic-inc_rclowpass.txt
字号:
//------------------------------------------------------
//增量式理想PID算法
//Q0 = Kp (1 + T / Ti + Td / T)
//Q1 = -Kp (1 + 2 * Td / T)
//Q2 = Kp * Td / T)
//Delta u(k) = q0e(k) + q1e(k - 1) + q2e(k - 2)
//其中:Delta u(k) = u(k) - u(k - 1) - 第k次输出与第k-1次输出的差
//Kp-比例增益、T-采样周期、Ti-积分时间、Td-微分时间
//u-控制量、e-偏差、k-采样序号
float PIDcontrol(float eK)
{
Q0 = Kp * (1 + T / Ti + Td / T); //
Q1 = -Kp * (1 + 2 * Td / T); //
Q2 = Kp * Td / T; //
Delta_uK = Q0 * eK + Q1 * eK1 + Q2 * eK2; //偏差
eK2 = eK1; //保留历史
eK1 = eK;
uK += Delta_uK;
return uK;
}
//------------------------------------------------------
//一阶递推滤波器(RC低通)
//传递函数:Yn = QXn + (1 - Q)Yn-1
//Q-时间常数、Xn-第n次采样输入、Yn-第n次采样输出
//截止频率f = Q / (2 * Pi * Delta t):Delta t采样时间间隔
unsigned RecursionFilter(uint Xn)
{
Sample_Yn = (unsigned)(Q * (float)Xn + (1 - Q) * Sample_Ym);
Sample_Ym = Sample_Yn;
return Sample_Yn;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -