西莫电机圈

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

手机号码,快捷登录

查看: 3648|回复: 16

[讨论] 完全新手的我做了一个项目后,对PID的理解,还有些不明白的地方求助大家

[复制链接]

该用户从未签到

发表于 2011-1-14 17:26 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
我用的是增量式PI调节
这次的PWM值=上次的PWM值 - ((这次速度差-上次速度差)*KP+这次速度差*KI)

我设置的速度是1000R/MIN,但是启动的时候是全速度启动的,200转后才调用PI调节函数调节速度。这就有了一个问题。
按照网上的方法先调节KP的值,我用函数
这次的PWM值=上次的PWM值 - ((这次速度差-上次速度差)*KP)
速度根本调节不到1000R/MIN,始终是1800R/MIN左右,PWM始终是100%。仔细分析了一下公式,发现按照公式确实只能在初始周围调节PWM,一开始是1800就永远是1800永远调不到1000。只有加上    这次速度差*KI   这一项后才能把速度拉回来。
我发现KI值越大拉回来的越快,PI越大,速度抖动的越厉害。

真不知道网上写的那么多东西为什么都是先P再I,为什么不能先I再P,只有P永远到不了想要的速度。

还有一个就是函数的执行频率,多少MS执行一次,我一个做洗衣机的同事说至少10MS执行一次,但是我现在是30--40MS执行一次,也没看出来有什么不好的地方,并且我发现不要P效果差不多,非常的奇怪。
请教各位高手!!!!!!!!

评分

参与人数 1西莫币 +3 收起 理由
dianjikongzhi + 3 支持

查看全部评分

西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过

该用户从未签到

 楼主| 发表于 2011-1-14 18:13 | 显示全部楼层
增量式PID是我用的第2个PID方法
我用的第1个PID方法是我们经理教我的,这个方法可以用网上教的先P后I,也是和网上说的反映速度主要由P决定,I只是消除静态误差,这个方法是这样的。
这次的PWM值=上次的PWM值 + 这次的速度差*KP + X 。
当实际速度在某个值范围内时,比如设置速度是800,而实际速度是700--900,这个时候我们把差值垒加起来,当这个值大于或者小于某个值时,如>500或者<-500我们会另X为正几或者负几的一个值,然后请零垒加的值,当速度不在700--900范围内时,我们直接令X为0。

我觉得这2个方法虽然都是PID,并且在陈汝全的同一本书里都看到了,但是2个调节完全不一样。经理的方法拉近速度靠的是KP,而增量式让速度靠近的是KI。
所有增定PID的方法都没有针对增量式PID,所以才有那么多的先P,再I。

不知道我说的对不对,请高手,懂的人指教
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

该用户从未签到

 楼主| 发表于 2011-1-15 10:39 | 显示全部楼层
...............................................................................
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

该用户从未签到

 楼主| 发表于 2011-1-18 09:11 | 显示全部楼层
昨天问了做洗衣机的工程师,他用的是位置式PI,
这次的PWM值 = 上次的PWM值 + 这次的差值*KP + 误差累计*KI
误差累计是永远不会清的,一直都在。
我尝试了一下他的方法,不过加了一个限制条件,我设置速度是800,而实际速度是700--900,才累计误差,在这个范围以内才+误差累计*KI,以外累积误差清0不要I。

发现真的象书上说的那样超调会小一些,不过同事说,这点超调对于洗衣机那样高转速的无所谓,他的方法可能还好一些,这样能更快的达到速度。

没有人回复,只有自己把自己的实验写出来,我还是个新手,希望大家说说自己怎么弄的。我知道很简单。大神门帮帮忙,小弟真的很吃力。弄了2个月才知道PI是什么东西,才做出来一个简单产品。

评分

参与人数 1西莫币 +3 收起 理由
roccy + 3 感谢分享,提升高亮,请高手注意帮忙解决

查看全部评分

西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

该用户从未签到

 楼主| 发表于 2011-2-10 17:29 | 显示全部楼层
春节回家了20多天,又来上班了。高手还是不愿意回答简单的问题,窘。简单的PI不够用了,要学习矢量控制了,一头雾水。
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

签到天数: 7 天

连续签到: 2 天

[LV.3]偶尔看看II

发表于 2011-2-11 11:23 | 显示全部楼层
楼主 先调P再调I 不是要把I设成零 而是设成一个很小的值 不然无法消除静差
另外 几十MS更新一次PWM 个人认为不够 建议至少1MS
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

该用户从未签到

 楼主| 发表于 2011-2-11 14:00 | 显示全部楼层
回复 6# lbz0123
你没明白我说的意思,我的意思是想说:网上说的所有的方法都是针对位置式PID讲的。
比如我下面说的这段:

增大比例系数P一般将加快系统的响应,但是过大的比例系数会使系统有比较大的超调,并产生振荡,使稳定性变坏。
增大积分时间I有利于减小超调,减小振荡,使系统的稳定性增加
增大微分时间D有利于加快系统的响应速度,使系统超调量减小,稳定性增加,但系统对扰动的抑制能力减弱。

都是针对位置式PID的,对于增量式PID完全不行,就象我在1楼说的:
对于初始速度是1800,而我想要到达的速度是1000,这个时候在没有KI的情况下,不管怎么增大KP都不可能把速度调到1000。
因为增量式PI的公式是这样的:
这次的PWM值=上次的PWM值 - ((这次速度差-上次速度差)*KP+这次速度差*KI)
而位置式PI的公式是这样的:
这次的PWM值 = 上次的PWM值 + 这次的差值*KP + 误差累计*KI
累积误差=第1次速度差+第2次速度差+第3次速度差+。。。。。+这次的速度差
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

该用户从未签到

 楼主| 发表于 2011-2-11 14:14 | 显示全部楼层
回复 6# lbz0123


    之前我不明白现在明白了,网上说的方法是,对于PI调节,先不要KI,只用KP,增大KP到系统有波动,这个时候把KP变为原来的90%,再加上KI调,调好KI就完成了,这个方法只是对位置式PID管用。
其实照网上说的I是消除静态误差,那么我们不要I了,了不起有微小的波动,不会出现我说的1800初速度,永远到不了1000。
所以网上的方法完全不适用于增量式PI。
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

签到天数: 42 天

连续签到: 1 天

[LV.5]常住居民I

发表于 2011-2-12 12:18 | 显示全部楼层
这个问题我不懂,看了大家的讨论还是不明白,真是隔行如隔山啊
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

签到天数: 7 天

连续签到: 2 天

[LV.3]偶尔看看II

发表于 2011-2-12 17:06 | 显示全部楼层
照你的算式来看 增量式的控制的确不太适合之前的经验
貌似至少应该保留I在一个固定的值上 再调整P
可是为什么要用增量式的结构 而且为什么要全速启动在调节?
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

该用户从未签到

发表于 2011-2-13 19:16 | 显示全部楼层
跟着学习,呵呵
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

该用户从未签到

 楼主| 发表于 2011-2-14 11:17 | 显示全部楼层
回复 10# lbz0123

我是控制风扇的,做个小家电,你家要是有风扇的话(稍微贵一点的落地扇)转转就会发现,开机肯定会最高转速转3秒,然后速度再变为应该的速度。就是希望快点达到速度,如果一开始就低速度的话,电压低点你得10几秒才能到你想要的速度。
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

该用户从未签到

 楼主| 发表于 2011-2-14 11:25 | 显示全部楼层
回复 10# lbz0123

我发了一个帖子问增量式与位置式的区,地址在   http://bbs.simol.cn/thread-62155-1-1.html
shengangqun 在4楼回复我的我很赞同:位置式会产生累积误差,而增量式不会,因为他只有最近2次的采样,而位置式是一开始就一直累积,一直不清的。
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

签到天数: 238 天

连续签到: 2 天

[LV.7]常住居民III

发表于 2011-2-18 09:40 | 显示全部楼层
位置式PID会产生累计误差,且误差不会清零,而增量式只是记录前几个步的误差。
一般在网上或者相关资料里查到的都是针对位置式的PID,不过位置式PID使用较少,现在大多都是用增量式的PID。
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

该用户从未签到

 楼主| 发表于 2011-2-18 17:25 | 显示全部楼层
回复 14# yjhou


    非常感谢,大神你有没有增量式PID的调试经验啊,怎么调?
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

签到天数: 238 天

连续签到: 2 天

[LV.7]常住居民III

发表于 2011-2-18 22:13 | 显示全部楼层
MATLAB2010a以后的版本带的PID有自动调惨功能,我现在都是用这个,很方便就能调出PID参数来。
如果从理论上解释的话,那就是“h2”和“h无穷”PID控制了,这个可以从理论上说的很详细。
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

该用户从未签到

发表于 2011-2-19 13:33 | 显示全部楼层
这个问题我不大懂,学习了
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|西莫电机圈 ( 浙ICP备10025899号-3 浙公网安备:33028202000436号

GMT+8, 2024-10-1 00:16 , Processed in 0.173017 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表