OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2733|回复: 7

关于运用PID遇到的一点问题,望大神路过救救小白,纠结3天了,没有一点进展。。。

[复制链接]

1

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
73
金钱
73
注册时间
2017-7-14
在线时间
16 小时
发表于 2017-7-14 19:26:33 | 显示全部楼层 |阅读模式
1金钱
如题,我在做关于吹帆板实验的过程种需要闭环控制,就是实现按键输入一个角度用空心杯电机吹动帆板达到指定角度。所以需要PID算法。我用的是一套网上找的增量式PID算法,我在实际操作过程中发现,PID算法对于我的设定值没有反应,输出的PWM波感觉根本没有进入算法(跟想象的不太一样)。传感器模块用的mpu6050,用的原子哥的例程,板子是stm32f103zet6,希望各位大佬指点一二,在此感激不尽!下面附上完整程序,主要问题就是在主函数里的PWM输出和PID。

PID.C

PID.C

主函数里关于PID返回增量用于PWM

主函数里关于PID返回增量用于PWM

PID控制PWM.zip

6.1 MB, 下载次数: 255

最佳答案

查看完整内容[请看2#楼]

首先分别把P,I,D,3个参数分别单独作用,同时用屏幕显示当前值与PID单独调节后的值,看看每个参数是否有反应。还有,你的PID的3个参数设置太小,你原始值是什么数据?还有,我看你的设定值是一个KEYstar()函数,而你的实际值是一个Temp/10定值,最好改一下,不然方向会反。最后再查一下你这个函数KEYstar()的返回值类型,看看是否为float类型。PID调节是件很蛋疼的事情,任重而道远。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

14

主题

94

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2504
金钱
2504
注册时间
2017-2-20
在线时间
241 小时
发表于 2017-7-14 19:26:34 | 显示全部楼层
首先分别把P,I,D,3个参数分别单独作用,同时用屏幕显示当前值与PID单独调节后的值,看看每个参数是否有反应。还有,你的PID的3个参数设置太小,你原始值是什么数据?还有,我看你的设定值是一个KEYstar()函数,而你的实际值是一个Temp/10定值,最好改一下,不然方向会反。最后再查一下你这个函数KEYstar()的返回值类型,看看是否为float类型。PID调节是件很蛋疼的事情,任重而道远。
电子之路漫漫兮,吾将任总而道远。http://www.openedv.com/static/image/smiley/default/lol.gif
回复

使用道具 举报

1

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
73
金钱
73
注册时间
2017-7-14
在线时间
16 小时
 楼主| 发表于 2017-7-14 19:27:14 | 显示全部楼层
自己顶一下,希望不要沉
回复

使用道具 举报

1

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
73
金钱
73
注册时间
2017-7-14
在线时间
16 小时
 楼主| 发表于 2017-7-16 21:22:49 | 显示全部楼层
真的沉了吗,5天了   好心大神带带小白,谢谢啦!
回复

使用道具 举报

14

主题

94

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2504
金钱
2504
注册时间
2017-2-20
在线时间
241 小时
发表于 2017-7-17 09:18:27 | 显示全部楼层
最后,你用的是增量式的,而的PID调节后的值又直接赋值给了定时器,而你的PID三个值又太小,我不太清楚你的KEYstar()函数返回值有多大。而你的PID只是与你的两次之间的变化大小来决定的,你先试试把P调大,I,D值给0,然后把外界改变KEYstar()函数测得的值,看看你电机转速时候有变化。如果有,那应该是你PID参数整定有问题。
电子之路漫漫兮,吾将任总而道远。http://www.openedv.com/static/image/smiley/default/lol.gif
回复

使用道具 举报

1

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
73
金钱
73
注册时间
2017-7-14
在线时间
16 小时
 楼主| 发表于 2017-7-17 09:23:29 | 显示全部楼层
学霸君 发表于 2017-7-17 09:12
首先分别把P,I,D,3个参数分别单独作用,同时用屏幕显示当前值与PID单独调节后的值,看看每个参数是否有 ...

谢谢你的回复,虽然我已经磕磕碰碰的搞出来了,不过还是谢谢
回复

使用道具 举报

2

主题

10

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2017-7-13
在线时间
9 小时
发表于 2017-8-10 12:14:57 | 显示全部楼层
老哥 能把搞出来 的程序发下吗   急需  谢谢啊啊
回复

使用道具 举报

2

主题

10

帖子

0

精华

新手上路

积分
37
金钱
37
注册时间
2017-7-13
在线时间
9 小时
发表于 2017-8-10 12:15:09 | 显示全部楼层
476997779@qq.com  老哥 感激不尽
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-4-20 12:59

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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