數字運動控制方法可精確調節機器人系統中驅動末端執行器的電動機和執行器的運動和定位。然而,在實踐中,開發基于傳統比例積分(PI)控制器的運動控制系統的工程師通常會發現他們的項目停滯不前,因為他們難以調整敏感的控制器參數。更有效的方法可降低調諧復雜性,同時在各種操作條件下提供穩定的性能。
低成本、高性能的微控制器推動了數字電機控制的快速出現,該控制能夠通過軟件控制響應各種工作條件。通過在軟件中設計PI控制器,工程師可以使用最少數量的組件創建響應迅速的電機控制系統。然而,在實踐中,找到最佳的PI控制器參數集給開發人員帶來了重大挑戰。很多時候,工程師發現每個電機的獨特特性(以及相關的電機控制系統實現)使確保電機在不同速度和負載下穩定運行的任務變得非常復雜。結果,電機控制開發團隊發現自己被迫延長項目進度并解決細微的調諧問題。
PI 控制器面臨的挑戰
傳統的PI控制器使用控制環路,該環路產生輸出,旨在減少某些過程中預期值和測量值之間的誤差。在控制環路的串行形式中(圖1),Kb設置PI控制器的零點,而Ka設置閉環系統響應的帶寬。
圖 1:在傳統 PI 控制器的串行形式中,工程師必須為其零點 (Kb) 和帶寬 (Ka) 找到最佳設置,這一過程往往會延遲運動控制項目。(圖片來源: 德州儀器)
在電機控制應用中,由于工程師需要控制電流來控制速度,PI控制器優化的復雜性變得更加復雜。在典型的電機速度控制回路中,工程師將使用兩個PI控制器 - 一個在內環路中控制電機電流,另一個在外環路中控制電機速度(圖2)。當電機轉速低于命令值時,外環路需要更多電流;內環路校正電機電流以匹配所需值。
圖 2:典型的速度控制環路使用兩個 PI 控制器來控制電機電流和速度本身,從而增加了尋找最佳控制器參數的任務。(圖片來源:德州儀器)
在實踐中,在各種運行條件下實現穩定的性能成為一項復雜而耗時的任務。工程師需要調整多個參數,以針對特定的速度和負載工作點調整控制器。然而,特定的調諧解決方案可能只解決非常小的速度和負載范圍。因此,工程師可能會發現,具有不同速度和負載點的高動態系統可能需要為每個點調整PI控制器,從而進一步延遲項目進度。
先進的控制算法
TI 運動解決方案為數字電機控制設計提供了一種簡單得多的方法。作為思達紡運動的核心,線流科技的SpinTAC在系統的動態速度、位置和負載范圍內提供強大的控制。這種專有方法提供先進的速度和位置控制,并具有主動抗擾控制(ADRC)功能。
ADRC在電機模型中具有高度的不確定性。它將未建模的電機動力學和系統的不良行為視為可以估計、拒絕或糾正的干擾。這使得SpinTAC控制器可以使用單個調諧參數(稱為帶寬)控制各種位置,速度和負載,該參數確定系統的剛度并指示系統抑制干擾的強度。
當設計人員使用這種調諧方法增加控制器的帶寬時,對扭矩干擾的響應速度會更快,并且過沖更少(圖 3)。如果帶寬設置得太高,當扭矩干擾從系統中消除時,系統開始圍繞目標速度振蕩。設計人員只需找到帶寬,以便在消除扭矩時圍繞目標速度值產生最小的振蕩。
圖 3:SpinTAC 調諧只需要設置一個參數 – 帶寬。在此示例中,理想帶寬為 40 rad/s。在該帶寬下,當扭矩被移除時,響應在目標速度周圍表現出最小的振蕩。(圖片來源:德州儀器)
簡化開發
InstaSPIN-MOTION無需處理傳統PI控制器中優化多個參數的復雜性,而是讓工程師只需設置單個帶寬參數即可調整其系統。與使用傳統PI控制器的設計相比,這種簡單而強大的方法可以大大縮短開發時間。同時,這種方法提供了一種具有更少過沖和更快建立時間的解決方案,從而降低了最終應用的整體功耗(圖4)。
圖 4:為了響應施加的扭矩干擾,InstaSPIN 的恢復速度明顯快于傳統的 PI 控制器環路。(圖片來源:德州儀器)
TI 進一步提供了一個廣泛的開發和部署平臺,將軟件和硬件相結合。TI 的 MotorWare 產品包括特定于設備的驅動程序和支持軟件,以及完整的系統示例和技術培訓。
為了更快地部署這些設計,TI 提供了其 C2000 短笛 MCU 的專用版本,這些 MCU 在片上 ROM 和閃存中包括 InstaSPIN-MOTION 庫,無需額外付費(圖 5)。C2000 InstaSPIN TMS320F28069M MCU 基于 90 MIPS C28x 處理內核,將片上 InstaSPIN-MOTION 電機控制軟件與完整的片上外設相結合,包括一個 16 通道模數轉換器 (ADC),用于采集電機控制算法中使用的數據(例如,參見圖 5 右側所示的 ADC 輸入)。
圖 5:德州儀器 (TI) 的 TMS320F28069M MCU 在片上集成了 InstaSPIN-MOTION 軟件庫,進一步簡化了運動控制系統的開發。(圖片來源:德州儀器)
TMS320F28069M 還具有 8 個片上增強型脈寬調制器 (ePWM) 模塊,提供 16 個 PWM 通道。因此,工程師可以用最少的額外組件快速設計完整的電機控制系統。MCU 的 PWM 可以直接驅動專用的隔離式柵極驅動器,如 TI ISO5851(圖 6)。ISO5851 具有 CMOS 輸入,使微控制器能夠直接驅動它們,這與典型的基于光耦合器的柵極驅動器不同,后者需要外部電流驅動器和偏置電路來提供輸入控制信號。
圖 6:CMOS 隔離式柵極驅動器(如 TI ISO5851)與高度集成的微控制器(如 TI TMS320F28069M)配合使用,使設計人員能夠以最少的額外組件創建復雜的電機控制系統。(圖片來源:德州儀器)
在軟件方面,由于采用了 SpinTAC 控制器算法,電機控制實現也同樣簡單。工程師使用最少的步驟配置SpinTAC速度控制,從包含適當的頭文件(例如,spintac_velocity.h)開始,將SpinTAC軟件組件引入應用程序。(此示例涉及自旋TAC速度控制,但自旋TAC位置控制配置遵循類似的方法。
然后,開發人員在主源文件中聲明全局結構:
ST_VelCtl_t stVelCtl; // The SpinTAC Speed Controller object
ST_VELCTL_Handle stVelCtlHandle; // The SpinTAC Speed Controller Handle
在應用程序的 main 函數中,開發人員隨后會將配置變量初始化為其默認值。對于許多電機,此配置通常包括以下變量:
Copy
ST_VelCtl_t斯特維爾特爾;斯賓塔克速度控制器對象
ST_VELCTL_Handle斯特維爾特漢德爾;斯賓達克速度控制器手柄
在應用程序的 main 函數中,開發人員隨后會將配置變量初始化為其默認值。對于許多電機,此配置通常包括以下變量:
初始化自旋交車速度控制器組件 stVelCtlHandle = STVELCTL_init(&stVelCtl, sizeof(stVelCtl));
設置 PU 中的最大電流
_iq maxCurrent_PU = _IQ(USER_MOTOR_MAX_CURRENT / USER_IQ_FULL_SCALE_CURRENT_A);
速度控制器的實例
STVELCTL_setAxis(ST_AXIS0年);
采樣時間 [s], (0, 1)
STVELCTL_setSampleTime_sec(ST_SPEED_SAMPLE_TIME年)_IQ州州長);
系統慣性上限 (0, 127.9999] 和下限 (0, SgiMax] 極限 [PU/(pu/s^2)] STVELCTL_setInertiaMaximums(stVelCtl 手柄, _IQ(10.0), _IQ(0.001));
系統控制信號高 (0, 輸出最大] & 低 [輸出敏, 0) 限制 [PU] STVELCTL_setOutputMaximums(stvelctlHandle, maxCurrent_PU, -maxCurrent_PU);
系統最大 (0, 1.0] 和最小 [-1.0, 0) 速度 [pu/s] STVELCTL_setVelocityMaximums(_IQ(1.0), _IQ(-1.0));
帶寬規模STVELCTL_setBandwidthScaleMaximums的系統上限 (0, 0.2/(T*20)] 和下限 [0, BwScaleMax] 限制(stVelCtlHandle,
_IQ24(0.2) / (ST_SPEED_SAMPLE_TIME * 20.0)), _IQ24(0.01));
系統慣性 [聚氨酯/(蒲/秒^2)], [西敏, 西美斯]
STVELCTL_setInertia(USER_SYSTEM_INERTIA)_IQ( USER_SYSTEM_INERTIA)
控制器帶寬標度 [帶寬最小值、帶寬最大值]
STVELCTL_setBandwidthScale(_IQ24 USER_SYSTEM_BANDWIDTH_SCALE));
最初未啟用ST_VelCtl
STVELCTL_setEnable(假);
最初ST_VelCtl未處于重置狀態
STVELCTL_setReset(假);
在操作期間,主中斷服務例程將更新速度參考、加速度參考和速度反饋,然后以適合該部件的抽取率(ISR_TICKS_PER_SPINTAC_TICK中指定)調用SpinTAC速度控制函數。
Copy
CTRL_Obj *obj = (CTRL_Obj *)ctrlhandle;獲取指向 CTRL 對象的指針
以 pu/s 為單位獲得機械速度
_iq速度反饋 = EST_getFm_pu(obj->estHandle);以 pu/s 為單位獲取機械速度 // 更新速度參考
STVELCTL_setVelocityReference(圣維斯特蘭德,
STVELMOVE_getVelocityReference(stvelMoveHandle));
更新加速參考
STVELCTL_setAccelerationReference(圣維斯特蘭德,
STVELMOVE_getAccelerationReference(stvelMoveHandle));
更新速度反饋STVELCTL_setVelocityFeedback(速度反饋,速度反饋);運行自旋交車速度控制器STVELCTL_run(st垂直手柄);
從自旋交車速度控制器獲取扭矩參考
iqReference = STVELCTL_getTorqueReference(stVelCtlHandle);
設置來自自旋TAC速度控制的Iq參考
CTRL_setIq_ref_pu(ctrlHandle, iqReference);
開發人員可以使用 TI C2000 Piccolo F28069M LaunchPad 快速啟動電機控制開發,該功能具有開發基于 F2806x 微處理器的應用程序所需的所有硬件和軟件。TI 還提供完整的電機控制解決方案套件,例如高壓電機控制套件,該套件全面介紹了對最常見類型的高壓三相電機的控制,包括交流感應 (ACI)、無刷直流 (BLDC) 和永磁同步電機 (PMSM)。TI 還提供補充套件,例如 BLDC 電機套件,其中包括一個內置霍爾效應傳感器的無刷直流電機,開箱即用,可與電機控制套件軟件配合使用。
結論
使用傳統PI控制器的傳統電機控制設計由于調整這些控制器的復雜過程,可能會面臨明顯的延遲。TI 的 InstaSPIN-MOTION 內置于專用微控制器中,可將調諧減少到單個參數,為設計人員提供簡單性和穩定性的組合,使其成為機器人系統等具有多種狀態轉換或經歷動態變化的應用的理想選擇。
審核編輯 黃昊宇
-
mcu
+關注
關注
146文章
17123瀏覽量
350982 -
運動控制
+關注
關注
4文章
579瀏覽量
32855
發布評論請先 登錄
相關推薦
評論