请选择 进入手机版 | 继续访问电脑版
搜索
查看: 3008|回复: 18

[分享] 如何在STM32上实现增量式PID转

  [复制链接]

3

主题

32

帖子

1

好友

Rank: 3Rank: 3

中级会员

注册时间
2016-6-8
发表于 2016-6-14 13:52:00 | 显示全部楼层 |阅读模式
虽然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, 下载次数: 64)
回复

使用道具 举报

40

主题

560

帖子

6

好友

Rank: 7Rank: 7Rank: 7

实习版主

注册时间
2015-1-23
发表于 2016-6-14 16:30:49 | 显示全部楼层
那个4.6875怎么计算的呢?有什么理论依据没有?
回复 支持 反对

使用道具 举报

1

主题

233

帖子

2

好友

Rank: 6Rank: 6

金牌会员

注册时间
2009-7-18
发表于 2016-6-14 17:10:20 | 显示全部楼层
恩 顶 不错的帖子
回复 支持 反对

使用道具 举报

12

主题

233

帖子

0

好友

Rank: 4

高级会员

注册时间
2012-11-5
发表于 2016-6-14 21:49:20 | 显示全部楼层
学习啦,谢谢楼主
回复 支持 反对

使用道具 举报

35

主题

572

帖子

0

好友

Rank: 7Rank: 7Rank: 7

版主

注册时间
2010-8-7
发表于 2016-6-14 21:50:48 | 显示全部楼层
不错,赞 一个。
回复 支持 反对

使用道具 举报

7

主题

197

帖子

0

好友

Rank: 6Rank: 6

金牌会员

注册时间
2014-11-13
发表于 2016-6-15 10:13:39 | 显示全部楼层
,谢谢分享,学习一下!
回复 支持 反对

使用道具 举报

583

主题

2178

帖子

75

好友

Rank: 9Rank: 9Rank: 9

管理员

注册时间
2016-6-1
发表于 2016-6-15 15:37:33 | 显示全部楼层
谢谢楼主分享
回复 支持 反对

使用道具 举报

0

主题

458

帖子

3

好友

Rank: 6Rank: 6

金牌会员

注册时间
2016-5-12
发表于 2016-6-15 18:40:38 | 显示全部楼层
谢谢分享, 学习了
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

好友

Rank: 1

新手上路

注册时间
2016-1-6
发表于 2016-8-5 17:21:00 | 显示全部楼层
学习中.....
回复

使用道具 举报

4

主题

152

帖子

0

好友

Rank: 4

高级会员

注册时间
2015-10-18
发表于 2016-8-5 19:44:30 | 显示全部楼层
赞一个
回复

使用道具 举报

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

本版积分规则

关闭

站长推荐上一条 /1 下一条

Archiver|手机版|小黑屋|意法半导体STM32/STM8技术社区    

GMT+8, 2017-6-29 23:56 , Processed in 0.128328 second(s), 11 queries , Memcache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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