仇存凱,姜海洋,張曉慧,岑啟峰,付培華
(1.上海航天控制技術研究所·上海·201109;2.上海慣性工程技術研究中心·上海·201109)
在軌補加功能是長期在軌運行的航天器的重要組成部分,為航天器進行姿態調整和軌道控制提供能源支持。由電機驅動的浮動連接機構安全可靠地運行是實現在軌補加功能的關鍵。基于步進電機具有啟停響應迅速、運行精度高等特點,本文設計方案采用兩相混合式步進電機驅動浮動連接機構。
步進電機是一種可將電脈沖信號轉換為角位移或直線位移的機電執行元件,每輸入一個脈沖,電機隨之轉過一定角度,從而可以通過控制電脈沖輸入個數來控制電機運行的位置。步進電機每轉過一周,其位置回到上一周起始位置,位置誤差不會無限累積,但步進電機同樣存在易失步、振動大等缺點。
此外,對于步進電機相電流的控制,文獻[6-8]采用基于空間矢量的PID控制算法,文獻[9]采用基于細分技術的PID控制算法,具有較高的控制精度。但PID控制算法各參數之間存在較為復雜的耦合性,且參數整定復雜,不利于產品調試和軟件移植。
本文針對上述問題,提出了步進電機相電流自適應閉環控制方案。方案采用細分技術,由現場可編程門陣列(Field Programmable Gate Array, FPGA)根據硬件比較結果實現步進電機恒流斬波控制,在降低軟件設計復雜度的基礎上,將步進電機相電流誤差限定在10%范圍內,以提高步進電機驅動的平穩性,保證浮動連接機構的可靠運行。
細分技術是指對步進電機每一個單步進行細分,將每一單步細分成步,稱為細分。通過對步進電機進行細分控制,可以提高步進電機分辨率、減輕電機振動、降低噪聲、減小失步概率,從而使電機運行更加平穩。
以兩相步進電機為例,對步進電機進行細分控制。通常按正弦規律設定各相電流,使電機總電流處于恒定狀態。兩相電流矢量圖如圖1所示。

圖1 步進電機兩相電流隨角度變化示意圖Fig.1 Schematic diagram of stepper motor two phases current changing with angle
電機工作在恒流狀態下,圖1中總電流為恒值,各相電流計算如式( 1 )所示。

(1)
式中,、、、分別表示步進電機總電流、A相電流、B相電流、偏轉角,其中偏轉角定義為步進電機每運行一步,轉子偏離初始位置的角度。
對兩相步進電機進行兩細分驅動控制,電機每相繞組通電一周,電機轉子運行八拍,運行規律如圖2所示。

根據式(1)可知,步進電機工作在恒流狀態下,每一拍對應的各相電流在當前拍保持恒定。當轉子位置變化時,各相電流隨偏轉角變化波形如圖3所示,通過對每一相電流分別進行恒流斬波控制,即可實現步進電機總電流恒定。

(a)A相電流波形
為實現在軌補加浮動連接機構步進電機的恒流控制,本文系統采用斬波的方式調節各相繞組通電時間,以控制繞組電流大小,其硬件設計架構如圖4所示。

圖4 步進電機驅動控制硬件設計架構Fig.4 Hardware design architecture of stepper motor driving control
圖4中,FPGA接收中央處理器(Central Processing Unit, CPU)步進電機控制指令,分別輸出A、B相的方向信號、剎車信號,以及脈沖寬度調制(Pluse Width Modulation, PWM)信號至18200驅動芯片,由18200分別輸出A、B相驅動信號驅動步進電機。同時,FPGA根據圖3所示相電流變化規律給定步進電機運行在相應位置時的電流數據,經DA轉換后得到相電流設定值。由18200輸出的A、B相采樣電流經采樣電阻轉換成電壓信號后分別輸出至各自電壓比較器,與相電流設定值進行比較,并將比較結果反饋至FPGA,由FPGA進行斬波處理,實現電流閉環控制。
斬波控制原理如下所述:當A相或B相在當前拍通電時,FPGA根據比較器輸出信號對輸出的A相或B相PWM信號進行斬波。以A相為例,當相電流實際值小于設定值時,比較器輸出未過流信號(高電平),FPGA檢測到未過流信號后,輸出高電平PWM信號,繞組通電,相電流上升;當相電流實際值超過設定值時,比較器將輸出過流信號(低電平),此時FPGA輸出低電平PWM信號,繞組斷電,相電流下降;當相電流實際值低于設定值時,繞組再次通電,相電流上升,如此循環往復,從而實現步進電機恒流控制。
基于FPGA現場可編程、并行處理的優勢,本系統采用FPGA作為處理器,構建圖5所示狀態機,實現在軌補加步進電機兩細分驅動控制。

圖5 步進電機兩細分驅動控制狀態機Fig.5 Two subdivision control state machine of stepper motor
圖5中,狀態機初始狀態為IDLE狀態,每檢測到一個有效的步頻脈沖step_pulse_p,狀態機根據方向信號m_dir_c向不同方向跳轉一次,在系統復位或因異常跳出狀態機后重新進入初始狀態。m_dir_c = ′1′,電機方向定義為正轉;m_dir_c = ′0′,電機方向定義為反轉。狀態機各狀態說明如表1所示。

表1 步進電機兩細分控制狀態機狀態說明
各狀態下,由FPGA輸出相電流設定值至DA,經硬件電路處理后,由比較器反饋電流比較結果至FPGA。FPGA接收比較器反饋值,判斷電機是否過流,并根據判斷結果對通電繞組PWM信號進行斬波輸出,其控制流程如圖6所示。
圖6所示流程為步進電機控制狀態機處于每一動作狀態時,FPGA根據當前所處狀態進行繞組通電判斷,繞組通電時,使能PWM信號輸出,否則無輸出。PWM使能輸出情況下,FPGA判斷通電相數,根據通電相數更新相電流設定值并輸出至DA芯片。經硬件電路處理并反饋后,FPGA對電機過流狀態進行判斷,電機未過流,PWM輸出有效電平,否則置無效,由此實現步進電機兩細分恒流斬波閉環控制。

圖6 步進電機PWM信號斬波控制流程Fig.6 Control process of stepper motor PWM signal chopping
采用Modelsim仿真工具,對步進電機PWM信號斬波過程進行仿真,仿真結果如圖7所示。

圖7 步進電機PWM信號斬波仿真圖Fig.7 Simulation diagram of stepper motor PWM signal chopping
圖7中:clk_i、rst_n_i、cur_A_i(1)、m2_pwm_o(0)、cur_B_i(1)、m2_pwm_o(1)、curr_powerswitch_state分別定義為時鐘信號(16MHz)、復位信號、A相過流信號(高電平有效)、A相PWM信號、B相過流信號(高電平有效)、B相PWM信號、兩細分控制狀態機當前狀態。
從仿真圖7中可以看出,在不同狀態下,當繞組通電時,PWM信號輸出電平跟隨繞組過流狀態變化,即各相繞組過流時,對應相PWM信號輸出無效電平(低電平),反之輸出有效電平(高電平),實現了步進電機PWM信號斬波輸出。
為驗證PWM信號斬波后對步進電機相電流的控制效果,搭建圖8所示實驗平臺。

圖8 在軌補加步進電機驅動實驗平臺示意圖Fig.8 Schematic diagram of the in-orbit refueling stepper motor experimental platform
圖8中,在軌補加控制系統接收上位機電機控制指令,解析控制指令后經驅動電路輸出驅動信號至步進電機,并反饋遙測信號至上位機。為分析不同設定值下相電流的變化情況,通過示波器記錄波形,具體如圖9所示。

(a) 相電流設定值1A

根據示波器測量結果計算相電流誤差百分比(誤差最大值/設定值×100%),相電流設定值分別為1A、2A、3A時,對應的誤差百分比分別為8%、4%、4%,控制結果符合需求。
本文提出了一種步進電機相電流自適應閉環控制方案,該方案通過比較器對相電流設定值和實際值進行比較,并將比較結果反饋給FPGA,由FPGA根據反饋值對電機PWM驅動信號進行斬波處理。這有效降低了FPGA軟件控制流程的設計復雜性,同時省去了電流閉環控制參數調整環節,極大方便了步進電機恒流控制調試過程。
本文基于上述方法進行了系統軟硬件設計,通過Modelsim仿真工具對FPGA輸出的PWM信號斬波過程進行仿真,并搭建了實驗平臺對步進電機斬波控制效果進行測試驗證。測試結果表明,采用FPGA、DA芯片、比較器、電機驅動芯片等器件構建閉環回路對電機PWM驅動信號進行斬波,實現了步進電機恒流控制,保證了浮動連接機構在恒轉矩驅動下平穩進行在軌補加,為航天器長期穩定地工作奠定了堅實基礎。