日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

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

發(fā)布時(shí)間:2025/4/5 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 STM32 电机教程 28 - ST MCLIB实战之 位置闭环控制 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

前言

????? ST MotorControl Workbench 生成的工程默認(rèn)實(shí)現(xiàn)了電機(jī)的電流閉環(huán)和速度閉環(huán)控制,有些應(yīng)用場(chǎng)合需要對(duì)電機(jī)的位置也實(shí)現(xiàn)閉環(huán)控制,如舵機(jī),伺服系統(tǒng)等,本節(jié)就給大家介紹一下基于ST MotorControl Workbench生成的電機(jī)工程,如何實(shí)現(xiàn)位置閉環(huán)控制。

????? 基于ST MotorControl Workbench生成的電機(jī)工程,電流(Iq,id)環(huán)的實(shí)現(xiàn)在mc_tasks.c文件FOC_CurrController函數(shù)中的兩個(gè)PI_Controller接口調(diào)用。其函數(shù)調(diào)用關(guān)系為:ADC1_2_IRQHandler –》TSK_HighFrequencyTask -》CurrController -》PI_Controller。

電機(jī)的速度環(huán)的實(shí)現(xiàn)是基于電流環(huán)來實(shí)現(xiàn)的,即電流環(huán)是內(nèi)環(huán),速度環(huán)是外環(huán),速度環(huán)的輸出是電流環(huán)的輸入:

在ST電機(jī)庫(kù)中,速度環(huán)的實(shí)現(xiàn)在speed_torq_ctrl.c中的STC_CalcTorqueReference函數(shù)中,函數(shù)調(diào)用關(guān)系為:SysTick_Handler-》MC_RunMotorControlTasks-》MC_Scheduler-》TSK_MediumFrequencyTaskM1-》(RUN)FOC_CalcCurrRef -》STC_CalcTorqueReference-》PI_Controller。

其于上面對(duì)ST MotorControl Workbench生成的電機(jī)工程分析,給工程加入位置環(huán)也可以像速度環(huán)一樣的方式實(shí)現(xiàn),即位置環(huán)為外環(huán),電流環(huán)為內(nèi)環(huán)來兩環(huán)串聯(lián)方式實(shí)現(xiàn)位置閉環(huán)控制,當(dāng)然也可以位置環(huán)為外環(huán),速度環(huán)為中間環(huán),電流環(huán)為內(nèi)環(huán)三環(huán)串聯(lián)方式實(shí)現(xiàn)位置閉環(huán)控制。本節(jié)給大家介紹第一次即位置環(huán)為外環(huán),電流環(huán)為內(nèi)環(huán)來兩環(huán)串聯(lián)方式實(shí)現(xiàn)位置閉環(huán)控制的具體操作:

?

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

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

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

方法二:拋開速度環(huán),直接力矩控制;

?實(shí)際框圖如上圖?

增加以下變量或函數(shù)用于位置環(huán)控制

?

1) 位置環(huán)PID 結(jié)構(gòu)體PID_Handle_t PIDAngleHandle_M1? ?

2) 位置控制的結(jié)構(gòu)體Position_Handle_t? ?

3) 位置角度誤差Position_GetErrorAngle? ?

4) 位置環(huán)速度參考輸出計(jì)算Position_CalcSpeedReferrence? ?

5) 位置環(huán)力矩參考輸出計(jì)算Position_CalcTorqueReferrence

?

具體操作為:經(jīng)工程加入事先準(zhǔn)備好的mc_position.c和mc_position.h文件:

在mc_task.c的中頻任務(wù)函數(shù)TSK_MediumFrequencyTaskM1中增加位置環(huán)差值數(shù)據(jù)計(jì)算,根據(jù)差值計(jì)算,當(dāng)差值在閾值之上的話進(jìn)行速度控制,在RUN下調(diào)用函數(shù)Position_GetErrorAngle 和Position_CalcSpeedReferrence。

?

如果差值縮小到一定范圍內(nèi),則進(jìn)行力矩控制,在函數(shù)FOC_CalcCurrRef中進(jìn)行調(diào)用。

?

最后測(cè)試說明,要使用位置模式,需在spi_pwm_encoder.h 開啟對(duì)應(yīng)的宏定義

#define POSITION_CONTROL

?

OK,本節(jié)內(nèi)容到此結(jié)束,也歡迎大家留言!!最后喜歡這個(gè)公眾號(hào)的同學(xué)們記得加關(guān)注了,每天都會(huì)有技術(shù)干貨推出!!

?

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

?

?

?

總結(jié)

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

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。