MC SDK 5.x 中增加位置環控制

前言

在 MC SDK 5.x 中有兩個環路控制,分别是电流環和速度環(力矩環),有些應用需要使用到位置環,比如無人機的雲平台馬達控制,地鐵閘門等等應用,本文將闡述如何在現有 ST 馬達涵式庫基础上增加簡易的位置環,使其能夠擁有3環控制方式使其更加穩定

理論基礎

如果在有減速齒輪馬達上,需要加入速度環以更快速的到達到給定位置,也就是三環控制:位置環+速度還+電流環,框架同如
下:

實作步驟

在MCSDK上增加DAC模塊。如果MCU上没有DAC模塊,可以使用TIMER+RC濾波電路模擬輸出DAC;下圖為使用DAC配置,需要配置Userdefined DAC1/2。

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

  1. 位置環 PID 結構體 PID_Handle_t PIDAngleHandle_M1
  2. 位置控制的結構體 Position_Handle_t
  3. 位置角度誤差 Position_GetErrorAngle
  4. 位置環速度参考輸出計算 Position_CalcSpeedReferrence
  5. 位置環力矩参考輸出计算 Position_CalcTorqueReferrence

参考 mc_position.h 以及 mc_position.c

mc_task.c 文件修改
mc_task.c 中包增加標頭檔
MCboot()函式中增加角度 PID 初始化函数
定位後初始測量角度清零
增加 DAC 輸出程序
TSK_HighFrequencyTask()中增加 DAC 輸出信號
增加位置控制程序

在 mc_task.c 的中頻任务函数 TSK_MediumFrequencyTaskM1 中增加位置環差值數據計算,根據差值計算,當差值在閥值之上的話進行速度控制,否則進行力矩控制

修改参考電流計算
如果差值縮小到一定範圍内,進行力矩控制
馬達累積圈數計算

測試

Leave a Comment

Your email address will not be published. Required fields are marked *

Shopping Cart