stm32串级pid控制
时间: 2023-08-04 14:09:57 浏览: 138
在STM32中实现串级PID控制,可以按照以下步骤进行操作:
1. 首先,需要设定目标速度,并将位置控制器的输出进行限幅。这可以通过编写一个函数来实现,如引用\[1\]中的PWM_Restrict函数。
2. 接下来,需要确定控制量▲u(k)。在串级PID控制中,控制量▲u(k)对应的是近几次位置误差的增量,而不是对应实际位置的偏差。这意味着在增量式PID中,不需要累加误差。可以通过加权处理最近几次采样值来确定控制增量Δu(k),以获得较好的控制效果。这一点在引用\[2\]中有所提及。
3. 在编写串级PID控制代码时,需要初始化PID结构体,并定义计算函数。具体的代码实现可以参考引用\[3\]中的相关内容。
4. 在使用串级PID控制时,需要定义PID结构体并进行初始化。同时,还需要定义电机速度函数,并在检测霍尔码盘时将速度发送给电机。这样可以实现对电机速度的控制。
总结起来,串级PID控制在STM32中的实现包括设定目标速度、限幅、确定控制量▲u(k)、初始化PID结构体、定义计算函数、定义电机速度函数以及将速度发送给电机等步骤。具体的代码实现可以参考引用\[1\]、\[2\]和\[3\]中的内容。
#### 引用[.reference_title]
- *1* *2* [基于stm32的直流电机串级PID控制(代码开源)](https://blog.csdn.net/weixin_45720060/article/details/129947250)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item]
- *3* [STM32应用(十)经典控制算法PID(单级和串级)原理与代码实现](https://blog.csdn.net/weixin_45751396/article/details/119721939)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文