MC SDK 5.x 中增加位置環控制
前言
在 MC SDK 5.x 中有兩個環路控制,分别是电流環和速度環(力矩環),有些應用需要使用到位置環,比如無人機的雲平台馬達控制,地鐵閘門等等應用,本文將闡述如何在現有 ST 馬達涵式庫基础上增加簡易的位置環,使其能夠擁有3環控制方式使其更加穩定
理論基礎
如果在有減速齒輪馬達上,需要加入速度環以更快速的到達到給定位置,也就是三環控制:位置環+速度還+電流環,框架同如
下:
實作步驟
在MCSDK上增加DAC模塊。如果MCU上没有DAC模塊,可以使用TIMER+RC濾波電路模擬輸出DAC;下圖為使用DAC配置,需要配置Userdefined DAC1/2。
增加以下變量或函數用於位置環控制
- 位置環 PID 結構體 PID_Handle_t PIDAngleHandle_M1
- 位置控制的結構體 Position_Handle_t
- 位置角度誤差 Position_GetErrorAngle
- 位置環速度参考輸出計算 Position_CalcSpeedReferrence
- 位置環力矩参考輸出计算 Position_CalcTorqueReferrence
参考 mc_position.h 以及 mc_position.c
mc_task.c 文件修改
增加 DAC 輸出程序
增加位置控制程序
在 mc_task.c 的中頻任务函数 TSK_MediumFrequencyTaskM1 中增加位置環差值數據計算,根據差值計算,當差值在閥值之上的話進行速度控制,否則進行力矩控制