|
虽然PID不是什么牛逼的东西,但是真心希望以后刚刚接触这块的人能尽快进入状态。特地分享一些自己如何实现的过程。 首先说说增量式PID的公式,这个关系到MCU算法公式的书写,实际上两个公式的写法是同一个公式变换来得,不同的是系数的差异。 资料上比较多的是:
还有一种的算法是:
这里主要介绍第二种,具体会分析比例、积分、微分三个环节的作用。 硬件部分: 控制系统的控制对象是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, 下载次数: 147)
|
| 那个4.6875怎么计算的呢?有什么理论依据没有? |
| 恩 顶 不错的帖子 |
| 学习啦,谢谢楼主 |
| 不错,赞 一个。 |
,谢谢分享,学习一下! |
| 谢谢楼主分享 |
| 谢谢分享, 学习了 |
学习中..... |
赞一个 |
STM32
超强工具——STM32CubeMX 你会用吗?
集结出发! STM32全国研讨会系列之一:ST智能门铃中国首秀
关于STM32启动文件的几个小问题
【银杏科技ARM+FPGA双核心应用】STM32H7系列35——USB_VCP_FS
【银杏科技ARM+FPGA双核心应用】STM32H7系列28——USB_HID
粉丝分享 | 图说CRC原理应用及STM32硬件CRC外设
STM32L151进入低功耗,并由RTC唤醒的故事
[转]stm32控制NFC模块(PN532)源码(P2P,模拟卡,读写卡等
STM32G070RB+LVGL移植
微信公众号
手机版