你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

如何在STM32上实现增量式PID转  

[复制链接]
又是一年春来到 发布时间:2016-6-14 13:52
虽然PID不是什么牛逼的东西,但是真心希望以后刚刚接触这块的人能尽快进入状态。特地分享一些自己如何实现的过程。
首先说说增量式PID的公式,这个关系到MCU算法公式的书写,实际上两个公式的写法是同一个公式变换来得,不同的是系数的差异。
资料上比较多的是:
111111.jpg



还有一种的算法是:

11112.jpg


这里主要介绍第二种,具体会分析比例、积分、微分三个环节的作用。

硬件部分:
控制系统的控制对象是4个空心杯直流电机,电机带光电编码器,可以反馈转速大小的波形。电机驱动模块是普通的L298N模块。
芯片型号,STM32F103ZET6

软件部分:
PWM输出:TIM3,可以直接输出4路不通占空比的PWM波
PWM捕获:STM32除了TIM6 TIM7其余的都有捕获功能,使用TIM1 TIM2 TIM4 TIM5四个定时器捕获四个反馈信号
PID的采样和处理:使用了基本定时器TIM6,溢出时间就是我的采样周期,理论上T越小效果会越好,这里我取20ms,依据控制对象吧,如果控制水温什么的采样周期会是几秒几分钟什么的。

上面的PWM输出和捕获关于定时器的设置都有例程,我这里是这样的:
TIM3输出四路PWM,在引脚 C 的 GPIO_Pin_6 | GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9输出
四路捕获分别是TIM4  TIM1  TIM2  TIM5   ,对应引脚是:  PB7 PE11 PB3 PA1
高级定时器tim1的初始化略不同,它的中断”名称“和通用定时器不同。具体的内容,请大家看一下我分享的代码就明白了。

程序.zip (2.51 KB, 下载次数: 148)
1 收藏 12 评论23 发布时间:2016-6-14 13:52

举报

23个回答
zhjunwei 回答时间:2020-4-6 09:35:09
iincpid=                                                          //增量计算
PIDx->proportion*(iError-PIDx->last_error)
+PIDx->integral*iError
+PIDx->derivative*(iError-2*PIDx->last_error+PIDx->prev_error);
请教下,如果是纯比例控制的话,就是PIDx->proportion*(iError-PIDx->last_error),如果开始的时候iError=1,last_error=0,然然后输出就是比例*1,然后last_error = iError=1,此时的输出如果执行器没有动作,那么接下来就是iError-PIDx->last_error=0,一直都是0,那不是输出一直都是0了
zhp218 回答时间:2017-1-10 16:47:57
PID1.sum_error+=(incPIDcalc(&PID1,frequency1));         //计算增量并累加

楼主  这句代码该怎样理解
天臆弄人 回答时间:2019-6-24 10:24:12
像我这样的菜鸟不懂啥PID,我只知道 程序 写,速率快了,就降低,速率慢了,就加速,用个while循环,检测 这是不是 就是PID算法哦
Stm32McuLover 回答时间:2016-6-14 16:30:49
那个4.6875怎么计算的呢?有什么理论依据没有?
jtc_88 回答时间:2016-6-14 17:10:20
恩 顶 不错的帖子
z258121131 回答时间:2016-6-14 21:49:20
学习啦,谢谢楼主
那片清茶 回答时间:2016-6-14 21:50:48
不错,赞 一个。
加拿大 回答时间:2016-6-15 10:13:39
,谢谢分享,学习一下!
zero99 回答时间:2016-6-15 15:37:33
谢谢楼主分享
lzts 回答时间:2016-6-15 18:40:38
谢谢分享, 学习了
mogogomo 回答时间:2016-8-5 17:21:00
学习中.....
车厘子 回答时间:2016-8-5 19:44:30
赞一个
噜噜噜啦嘞 回答时间:2016-8-5 21:13:04
学习学习
lost1421 回答时间:2016-8-9 13:10:38
运用增量PID方式,必须使用浮点运算,MCU的运行效率下降不少。
disheng4688 回答时间:2016-12-9 08:49:23
谢谢分享
konway 回答时间:2016-12-10 13:04:21
感谢分享。还不会
12下一页

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版