日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

STM32 电机教程 28 - ST MCLIB实战之 位置闭环控制

發布時間:2025/4/5 59 豆豆
生活随笔 收集整理的這篇文章主要介紹了 STM32 电机教程 28 - ST MCLIB实战之 位置闭环控制 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

????? ST MotorControl Workbench 生成的工程默認實現了電機的電流閉環和速度閉環控制,有些應用場合需要對電機的位置也實現閉環控制,如舵機,伺服系統等,本節就給大家介紹一下基于ST MotorControl Workbench生成的電機工程,如何實現位置閉環控制。

????? 基于ST MotorControl Workbench生成的電機工程,電流(Iq,id)環的實現在mc_tasks.c文件FOC_CurrController函數中的兩個PI_Controller接口調用。其函數調用關系為:ADC1_2_IRQHandler –》TSK_HighFrequencyTask -》CurrController -》PI_Controller。

電機的速度環的實現是基于電流環來實現的,即電流環是內環,速度環是外環,速度環的輸出是電流環的輸入:

在ST電機庫中,速度環的實現在speed_torq_ctrl.c中的STC_CalcTorqueReference函數中,函數調用關系為:SysTick_Handler-》MC_RunMotorControlTasks-》MC_Scheduler-》TSK_MediumFrequencyTaskM1-》(RUN)FOC_CalcCurrRef -》STC_CalcTorqueReference-》PI_Controller。

其于上面對ST MotorControl Workbench生成的電機工程分析,給工程加入位置環也可以像速度環一樣的方式實現,即位置環為外環,電流環為內環來兩環串聯方式實現位置閉環控制,當然也可以位置環為外環,速度環為中間環,電流環為內環三環串聯方式實現位置閉環控制。本節給大家介紹第一次即位置環為外環,電流環為內環來兩環串聯方式實現位置閉環控制的具體操作:

?

在三環控制中,不可避免的會涉及到加速度的計算,正常控制過程為:加速、勻速、減速、定位過程。

那么會涉及到加速度以及定位階段的控制,這邊我們可以按照加速度與速度差成反比,而定位階段可以直接設定速度為0但是實際使用過程中我們會發現直接的速度模式在定位階段力量限。

方法一:PID 需要特別設定,更能夠定位到給定位置;

方法二:拋開速度環,直接力矩控制;

?實際框圖如上圖?

增加以下變量或函數用于位置環控制

?

1) 位置環PID 結構體PID_Handle_t PIDAngleHandle_M1? ?

2) 位置控制的結構體Position_Handle_t? ?

3) 位置角度誤差Position_GetErrorAngle? ?

4) 位置環速度參考輸出計算Position_CalcSpeedReferrence? ?

5) 位置環力矩參考輸出計算Position_CalcTorqueReferrence

?

具體操作為:經工程加入事先準備好的mc_position.c和mc_position.h文件:

在mc_task.c的中頻任務函數TSK_MediumFrequencyTaskM1中增加位置環差值數據計算,根據差值計算,當差值在閾值之上的話進行速度控制,在RUN下調用函數Position_GetErrorAngle 和Position_CalcSpeedReferrence。

?

如果差值縮小到一定范圍內,則進行力矩控制,在函數FOC_CalcCurrRef中進行調用。

?

最后測試說明,要使用位置模式,需在spi_pwm_encoder.h 開啟對應的宏定義

#define POSITION_CONTROL

?

OK,本節內容到此結束,也歡迎大家留言!!最后喜歡這個公眾號的同學們記得加關注了,每天都會有技術干貨推出!!

?

文中源碼及資料下載,微信關注?“張十三的博客” 公眾號: 在公眾號里給十三發送 “下載|STM32 電機教程 28” 即可得到資料下載地址

?

?

?

總結

以上是生活随笔為你收集整理的STM32 电机教程 28 - ST MCLIB实战之 位置闭环控制的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。