PID控制

智能平衡车PID学习

PID大概形式

PID算法核心是对误差的数学运算,由比例、积分、微分共同组成

公式:

连续型PID公式:(PID公式主要形式)

u(t) = $K_p $[e(t) + 1TI\frac {1}{T_I}TI1 ∫0te(t)dt\int_0^t e(t)dt0te(t)dt + TDT_DTD $\frac{de(t)}{dt} $]

绝对式PID公式:(位置式)

uk=Kp∗ek+Ki∗∑j=0kej+Kd∗(ek−ek−1) u_k = K_p * e_k + K_i * {\sum}_{j=0}^k e_j + K_d * (e_k - e_{k-1}) uk=Kpek+Kij=0kej+Kd(ekek1)

绝对式需要对象及时做出与原来动作相反的趋势(注重结果)

对于相关变量的解释:

比例

1.KpK_pKp 越大,系统响应越快,越快达到目标值

2.KpK_pKp 过大会导致系统不稳定,发生振荡

3.仅有比例环节无法消除静态误差

积分

1.KiK_iKi越大,系统响应越快,越快达到目标值,积分项的引入可以消除稳态误差

2.KiK_iKi过大会是系统不稳定,发生振荡

3.随之时间增加,积分项数值会越来越大,导致系统响应变慢(需要在前期比例阶段进行限幅,(写个if特判就好)当积分值超过或小于某值后不再变化)

微分

1.KdK_dKd或者变化趋势越大,微分作用越强,主要是抑制振荡和超调
2.KdK_dKd过大会引起系统的不稳定,容易引入高频噪声


增量式PID公式:

uk=Kp∗ek+Ki∗∑j=0k+Kd∗(ek−ek−1)uk−1=Kp∗ek−1+Ki∗∑j=0k−1ej+Kd∗(ek−1−ek−2) u_k = K_p * e_k + K_i * {\sum}_{j=0}^k + K_d *(e_k - e_{k-1}) \\ u_{k-1} = K_p * e_{k-1} + K_i * {\sum}_{j=0}^{k-1} e_j + K_d * (e_{k-1} - e_{k-2}) uk=Kpek+Kij=0k+Kd(ekek1)uk1=Kpek1+Kij=0k1ej+Kd(ek1ek2)

增量式需要算出当前值后叠加在上一次值中(注重过程和趋势)

串级PID控制原理

也就是嵌套PID控制,如果你的小车在内环中速度太小了(并且阻力在作用)根本动不了,那么编码器测速就反馈给二级PID环控制电机,让电机速度增加,从而促使小车速度改变

直立环

可以参考用手控制棍子不倒,棍子向哪边倒就用手去接住
PWM=Kp∗(机械中值−返回角度)+Kd∗角速度 PWM = K_p * (机械中值 - 返回角度) + K_d * 角速度 PWM=Kp(机械中值返回角度)+Kd角速度

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值