PID:智能小车入门(位置式和增量式)

PID:智能小车入门(位置式和增量式)

今年大二,以一个新人的角度来说一下PID及其用法,新人第一次写,有不对的请各位指正。手动狗头
大佬们走过路过可否评论一手
PS:开环:无反馈控制 闭环:有反馈控制

1.PID算法

PID 控制器以各种形式使用超过了 1 世纪,广泛应用在机械设备、气动设备 和电子设备.在工业应用中PID及其衍生算法是应用最广泛的算法之一,它当然不是完美无缺的,但对于初学者(比如我)已经足够了。

PID 实指“比例 proportional”、“积分 integral”、“微分 derivative”,这三项构 成 PID 基本要素。每一项完成不同任务,对系统功能产生不同的影响。

P:比例常数,最主要的参数,提高系统的调节精度
I:积分常数,消除稳态误差
D:加快响应速度

以上是一点介绍,下面直接说重点

2.位置式PID

首先,列举一下会用到的变量和参数:
1.P 比例参数 I 积分参数 D 微分参数
2.e(k):输入量
3.out:输出量
4.sum:e(k)累计值

公式:out = P * e(k) + I * sum + D * [e(k)-e(k-1)]

我学位置式PID是为了控制舵机,我想初学者应该和我差不多都是学舵机,这里用舵机举个例子,采集到的信号回来一定是个数字,比如50,这时候e(k)=50,代入公式,,处理后得到out值,这个值经检测在舵机转向允许范围内,然后给赋给舵机,一次闭环控制完成。

3.增量式PID

变量和参数参照上面位置式PID

公式:out =

P * [e(k)-e(k-1)] + I * e(k) + D * [e(k)-2e(k-1)+e(k-2)]

学增量式PID是因为需要控制电机,就是编码器测速然后和设定值比较,反馈一个值给增量式PID,比如编码器测得数是50,符合当前情况的是30,这时候e(k)等于50-30=20,代入公式得出out,增量式PID需要限幅(原因后面说),这个out在范围内,就可以赋给电机,一次闭环控制完成。

你可能感兴趣的:(算法,单片机,nxp)