发新帖我要提问
123
返回列表
打印

请教关于PID的问题,百思不得其解,请教大虾帮忙给看看

[复制链接]
楼主: 秋雨
手机看帖
扫描二维码
随时随地手机跟帖
41
yangzq| | 2011-1-11 09:36 | 只看该作者 回帖奖励 |倒序浏览
先弄好电流环,电机有机械惯性,你一下就上那么大电压,不过流,就怪了。

使用特权

评论回复
42
xuyaqi| | 2011-1-11 11:27 | 只看该作者
纯比例调节算法应该是:Vout=Kp*e(t)+Vold  只和当前偏差有关,积分与微分调节才和历史偏差有关。
电机速度调节纯比例完全可满足要求,为减小静差可加大放大倍数(减小比例度)。

使用特权

评论回复
43
秋雨|  楼主 | 2011-1-11 11:53 | 只看该作者
先弄好电流环,电机有机械惯性,你一下就上那么大电压,不过流,就怪了。
yangzq 发表于 2011-1-11 09:36

谢谢,电流只有过流保护。。。太高深的弄不了。。我慢慢加电压行不?系统的稳定时间要求不高

使用特权

评论回复
44
秋雨|  楼主 | 2011-1-11 11:55 | 只看该作者
纯比例调节算法应该是:Vout=Kp*e(t)+Vold  只和当前偏差有关,积分与微分调节才和历史偏差有关。
电机速度调节纯比例完全可满足要求,为减小静差可加大放大倍数(减小比例度)。 ...
xuyaqi 发表于 2011-1-11 11:27

谢谢,就准备这个干了。。理论太差研究不了。
现在也积分微分公式看着都面生了:(

毕业30年了。。。

使用特权

评论回复
45
g1234567| | 2011-1-11 12:43 | 只看该作者
问题在第一次:e(t-1)=0是怎么来的

使用特权

评论回复
46
奇兵| | 2011-1-11 13:07 | 只看该作者
楼主给你一份PID的资料你看一下吧!可能对你有帮助!

关于PID控制方法.pdf

278.29 KB

使用特权

评论回复
47
zjswuyunbo| | 2011-1-11 16:51 | 只看该作者
和楼主一样,也有这样的困惑。。。
一直没有花时间去研究。。。。

使用特权

评论回复
48
zjswuyunbo| | 2011-1-12 11:14 | 只看该作者
本帖最后由 zjswuyunbo 于 2011-1-12 11:19 编辑

按照pid误差放大来说。。。。
k的取自应该很大

比如100,

这样就会震荡了.

电路会一直震荡,直到设定值和反馈值接近。。。

不过,这是运放。。。

程序上应该如何不知道。。。

使用特权

评论回复
49
秋雨|  楼主 | 2011-1-12 21:11 | 只看该作者
纯比例调节算法应该是:Vout=Kp*e(t)+Vold  只和当前偏差有关,积分与微分调节才和历史偏差有关。
电机速度调节纯比例完全可满足要求,为减小静差可加大放大倍数(减小比例度)。 ...
xuyaqi 发表于 2011-1-11 11:27


就按照这个来了。。理论不研究了,结贴!

使用特权

评论回复
50
tf_0991| | 2011-1-15 01:11 | 只看该作者
个人感觉
out(1)-vout(0)=kp(e(1)-e(0))          [1]
... ...                                          ...........
out(k)-out(k-1)=kp(e(k)-e(k-1))      [k]
所有式子想加,out(k)=kp*e(k)    (out(0)=0)
所以楼主,你这个本质上还是位置式的PID。
增量式的PID:out(k)=kp*(e(k)-e(k-1)),这种方式更多的是用在一些输入量需要累加的执行器,例如步进电机。
回归正题,首先说明楼主使用的还是位置式PID,即效果和Vout=kp*e(k)完全一样,直流电机两端电压和转速是近似线性关系,可以当线性来处理,即n=Vout楼主试想,如果你设定的转速ni,你只加比例环节,如果输出转速no=ni,则e(k)=0,那Vout=kp*e(k)=0,按理n=0,这与no=ni矛盾,所以你只加比例环节,电机进入稳定状态后,必然会存在偏差。而这个e*kp应该与你的稳态转速近似成比例。所以你只加比例环节,稳定后的转速n,必然会与输入ni偏差detn=ni-n。你增大比例环节,只能减小这detn,而从原理上不可能消除这个detn,而且kp过大还会使系统震荡,如果你想消除这个偏差,必须引入匠人所说的积分环节,因为引入积分环节之后,即使no-ni=0,即e(k)=0,但是积分作用是ki*(e(0)+e(1)+...+e(k)),通过积分累积效果,便可使Vout=no=ni。建议楼主去看一下数字PID文档,网上很多,也不难。

使用特权

评论回复
51
xuyaqi| | 2011-1-15 18:52 | 只看该作者
本帖最后由 xuyaqi 于 2011-1-15 19:07 编辑

位置式纯比例调节:uk=Kp*ek+u0
增量式纯比例调节:Δuk=Kp*ek - Kp*e(k-1)
                                 = Kp*( ek - e(k-1))
                                 = Kp*Δek
式中:k  -        采样序号,k=0,1,2,…
      Kp –   比例系数
      uk -       第k次采样时刻的输出值
      u (k-1) - 第k-1次采样时刻的输出值         
      ek -    第k次采样时刻输入的偏差值
      u0 -    开始进行控制时输出的原始初值

   另外,电机转速定值调节由于供电电压,负载的变化等外界因素,转速总处在变动当中,经常偏离给定值很正常,加大控制偏差的放大作用这个偏差不会太大,而如果加上积分作用由于机械的惯量滞后积分时间的确定很困难,不合适的积分调节反倒会使偏差加大。

使用特权

评论回复
52
xuyaqi| | 2011-1-15 19:04 | 只看该作者
按照搂主的假设:
   那么假设有一个电机DC为220V对应220转,为了便于说明期间,假设电机控制电压和转速成正比,即输出电压多少伏,转速就是多少。
那么电机设定转速200转

上面算法的u0=200(v)

使用特权

评论回复
53
highgear| | 2011-1-15 23:36 | 只看该作者
增量式与普通式本质是一样的:

普通式:
     y(k) = Kp*e(k) + Ki* I(k) + Kd*(e(k) - e(k-1)) / Ts
     积分: I(k) = e(k) + I(k-1)

增量式可以从上面普通式导出:
    dy(k) = y(k) - y(k-1) = Kp*(e(k) - e(k-1))  + Kp*e(k) + ...

所以,使用增量式时, 最终输出为: y(k) = dy(k) + y(k+1)
这种方式对于步进电机之类的增量式输出比较有利, 但在实际运算中,特别是使用定点运算,并没有多少好处 , 反而会丢失很多精度, 而且运算稍稍多了一些。
对于电机速度控制, 用普通的 PI 足够了, 微分会带来一定噪声

使用特权

评论回复
54
jeaper| | 2011-1-20 18:51 | 只看该作者
你可以分析P或者PI的阶跃响应,而不要以假设的电机参数值计算。实际的测试过程中还要考虑采样时间,P I参数如果不想计算,就要慢慢去凑。用增量PID即可。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则