关于PID电机调速的疑惑

2019-12-10 18:20发布

本人最近在苦心研究PID,所以经常三更半夜在思考一些问题,基本搞清楚PID每个参数的控制规律,刚才我在想如果我用位置式PID中的PD进行电机调速或者温度控制估计会有些问题,假如我是电机PWM调速,设定转数是100,当前转数是0,规定0%占空比位0转速,100%占空比为100转数,那么假如我只要PD来控制,那么根据P比例规律,当转速到达100时,P项的结果肯定是0,而D项微分是误差变化率,当转数到达100时,D项肯定也为0,因为误差变化率已经为零了,所以PD的结果最终是0,然而我要维持100的转数,PWM的占空比必须是100%,但是现在PD的结果在转数到达100的时候输出控制量已经为0了,这个好像有矛盾啊! !
我觉得应该在PD过程中需要累加控制量,这样当误差为0的时候,不至于控制量也为0,而是维持在一个恒定控制量(100%占空比)
或者在PD中加入I积分项,因为积分项是误差的累积,所以当PD都为0的时候,积分作用可以保存恒定的控制量输出(100%占空比)。

我翻阅了很多调速和温控的,程序基本都是离不开I积分项。没发现单独用PD来控制的。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
57条回答
673104326
1楼-- · 2019-12-11 14:50
觉得你好像搞糊涂了。

PID的只是一个信号控制单元,还要对应一个输出级,这个输出级再驱动对应的控制对象,你的情况是电机,如果是温度那就是相应的加热器件。

PID的调节达到最终的稳定状态时,PID的输出本身应该就是0,不论是PI、PD还是PID,这时对应的只是一个很小的输出来维持稳定状态时的误差。

当转速为0的时候,PID的输出会比较大,对就的输出级应该占空比变化的比较快(也就是加速度比较大),可能在很短的时候时间内从0%到90%的占空比。

当快到100转速的时候,PID输出逐渐为零,输出级的占空比逐渐从90%到100%,但会花比较长的时间。

而最终到100转速的时候,对应的输出级是PWM稳定的状态,也就是100%的占空比,维持100的转速。

你只用PD也应该是这样的一个状态,只是可能会比较容易出现振荡的可能。

I 项是用来消除由各种原因引起的误差的,能让最终的设定的结果不易其它因素影响而能达到一个比较好的精度。
myqiang1990
2楼-- · 2019-12-11 19:16
jieao 发表于 2015-12-5 12:37
我指的是你的说法不对,PD的最终结果不会是0

我觉得是零,你看,假如误差EK = 0,那么P*EK = 0,比例项为0了吧~~而D,D * (EK -EK1) = 0,因为误差变化相同,所以EK - EK1 = 0,所以微分项乘出来就为0啦,所以PD之后就为0呀~~P+D = 0啊。
myqiang1990
3楼-- · 2019-12-11 22:12
673104326 发表于 2015-12-5 13:23
觉得你好像搞糊涂了。

PID的只是一个信号控制单元,还要对应一个输出级,这个输出级再驱动对应的控制对象 ...


好像不是都是输出0,假如PD中加入I积分项,貌似最终稳定后,PID输出的控制量不为0,因为I在不断累加,到达稳定值后,积分项应该是会维持在一个恒定值,所以PID出的来结果不是0~
673104326
4楼-- · 2019-12-12 01:25
本帖最后由 673104326 于 2015-12-5 21:40 编辑
myqiang1990 发表于 2015-12-5 19:48
好像不是都是输出0,假如PD中加入I积分项,貌似最终稳定后,PID输出的控制量不为0,因为I在不断累加,到 ...


还是那句话,积分项是用来消除误差的,如果没有误差,最终的I项输出会是零。 而实际中多少都会有一个误差,但这个误差也是逐渐减小的趋势,最后稳定在一个比较小的值。

不断累加不是说一直在累加正值,当实际值超过设定的值以后其实累加的是一个负值,所以积分项前期会越来越大,后期趋于稳定后会逐渐减小。

给你看一个我的控制温度的PID曲线图,自己再体会一下吧。

WP_20151126_14_34_23_Pro.jpg (1.96 MB, 下载次数: 1)

下载附件

2015-12-5 21:36 上传



黄线是PID的输出,1V 对应驱动级0输出,2.2V对应驱动级最大的输出。蓝线是对应的温度。
myqiang1990
5楼-- · 2019-12-12 06:07
 精彩回答 2  元偷偷看……
673104326
6楼-- · 2019-12-12 08:59
myqiang1990 发表于 2015-12-5 21:41
有点道理,但是如果响应曲线没有超调,也没有震荡,那I积分也是没有机会累加负值呀~~~

你用的示波器竟然 ...

那这种情况只能说是一个巧合,不断累加的积分项刚好等于各种因素的误差,然后使输出稳定。

但更多的时候,如果I项不为零并且比较大的值,那对应输出级会一直有一个比较大的值,而这个值如果一直累加下去可能会使输出达到最大,最后引起超调。。。。。。

一周热门 更多>