劉媛媛
(無錫科技職業學院,江蘇 無錫 214028)
步進電動機是數字控制的電動機,具有較好的低速運行特性和較寬的調速范圍,無累積誤差,能夠準確移動和定位、壽命長及抗干擾性能好等獨特優點,被廣泛應用于工業自動化設備等領域[1~5]。
由于步進電機的結構和運行特點,使它存在整步驅動控制時有步距角較大、轉速不夠平穩,低速時容易產生振動、機械噪聲較大及工作精度低等缺點[6]。為了克服步進電機自身的缺陷,實現在整個電機控制系統中的精密控制,除了要求電機自身性能外,另一個主要因素取決于所選擇的驅動器。目前市面上性能優越的步進電機價格較昂貴。所以一般選擇性價比稍高的步進電機配套性價比高的驅動器來滿足精密控制的需求。步進電機的細分技術可以消除電機的低頻振蕩,并提高電機的輸出轉矩和步距的均勻度,是一種較為完善的解決方式[7~9]。筆者結合步進電機的電流矢量恒幅細分驅動原理,設計由STM32F103C8單片機、AD5336芯片和功放電路組成的二相混合步進電機的高精度細分驅動器,給出了電機驅動的硬件電路、軟件流程和校正程序。
步進電機實現細分是通過對勵磁繞組中電流合成矢量的控制來實現的。勵磁繞組中的電流合成矢量如圖1所示,其中IA﹑IB﹑IH分別表示步進電機兩相A、B的電流矢量和兩相電流的合成矢量。

圖1 勵磁繞組中的電流合成矢量示意圖
合成的磁場矢量幅值決定了電機的旋轉轉矩,相鄰的兩個合成磁場矢量間的夾角決定了步距角的大小。步進電機任意一相的電流變化,都會引起電流合成矢量幅值的不斷變化,步進電機的轉距亦隨之變化,這將影響更高的細分數。為了得到盡可能的圓形合成磁場并保證步距角變化均勻,繞組電流的參考信號采用近似正弦的階梯狀波形。對兩相混合式步進電機而言,需同時改變IA和IB兩相電流的大小,從而保證電流合成矢量恒幅均勻旋轉。步進電機的細分控制函數為:
IA=IM·cosθ
IB=IM·sinθ
(1)
其中IM為合成電流幅值。細分驅動就是用設定的數字化電壓量模擬為正余弦電壓,然后細分步進電機在一個周期內所受的模擬信號,確保每個細分點對應于一個確定的數字量化值。根據步進電機所要求的最大細分數N,按正弦方式在零和最大相電流之間劃分出N個電流中間狀態,同時將每個中間狀態對應的量化值存入E2PROM,步進電機所要求的細分數可通過軟件設定。比如,電機運行要求細分數為256,就是將1/4周期分成了256個點對應的數字量,經數模轉換后輸出給電機繞組的電流信號就逼近正弦模擬連續信號。
根據輸入設定的細分數,微處理器輸出存儲在E2PROM中對應的細分電流正弦表,微處理器輸出的控制數字信號經D/A轉換器將其轉換為模擬量的電壓信號,后經運算電路放大和功率電路放大,兩相繞組分別輸出正弦和余弦變化電流,采用電流合成矢量的方式,驅動步進電機旋轉,從E2PROM中的正弦表中每輸入一個對應數字量,就完成一個微步距角的旋轉,同時引入由采樣電阻取樣得到的繞組電壓信號進行負反饋,以保證電壓放大的穩定性。驅動器的硬件框圖如圖2所示。

圖2 驅動器硬件框圖
微處理器控制部分是以32位ARM內核的微處理器STM32F103C8為核心構建的電路,其主要功能是根據鍵盤輸入設置參數及控制數據等,輸出E2PROM中存儲的量化的細分電流控制字,通過微處理器IO口輸出對應的數字量,經數模轉換為逼近給定電流正弦波形的階梯波信號。同時回讀采集數據由LED模塊顯示,實現步進電機的實時控制。
微處理器通過I2C總線讀入按照設定細分數對應的正弦表,作為微處理器與數模轉換模塊連接端口的并行輸出數字量;E2PROM存入多種步進電機的細分正弦驅動表,按不同的細分數,通過I2C總線與微處理器通信讀入到微處理器。筆者所選的E2PROM芯片為24C04。
D/A轉換芯片主要是把微處理器的數字驅動量轉換為逼近正弦波形的模擬信號,經運算和功率放大后驅動步進電機。所以D/A轉換芯片的選擇決定了步進電機細分方案的技術要求。
D/A數模轉換電路如圖3所示。筆者選用AD5336作為D/A轉換芯片,該芯片具有4個十位精度可單獨控制的D/A輸出通道,功耗低,全部數模轉換都通過一個十位并行IO口與微處理進行讀寫操作,D/A轉換的切換時間僅6μs,完全滿足本設計對電機高精度細分和快速調速的需求;而且該芯片帶負載能力強,每個D/A通道均帶有軌到軌輸出的緩沖型放大器;該芯片采用雙重緩沖的輸入鎖存架構和高速總線的存取時間,可實現兩路數模轉換,分別寫入和輸出數據,并能實現同時一次性寫出的功能,完全滿足高速并行輸入和并行輸出的數模轉換要求。AD5336所帶的4個電壓輸出數模轉換器,可直接輸出電壓0~5V,再經兩級運算放大和功放放大為0~12V,實現對電機的兩相繞組控制,減少電路設計的復雜性。

圖3 數模轉換電路
放大驅動電路主要由運算放大電路和功率放大電路兩部分組成。運算放大電路部分是以具有極低噪聲、極低失調電壓和漂移、低輸入偏置電流的高精度運放AD8674為核心組成的兩級運算放大電路,在實現驅動電壓兩級放大的同時也實現了驅動信號的兩級低通濾波。第一級運算放大電路完成了低通濾波截止頻率5.3kHz,放大倍數2.00;第二級運算放大完成了低通濾波截止頻率1.1kHz,放大倍數1.21。功率放大電路是以OPA544為核心構建的電路。OPA544具有響應速度快、線性度好及失真小等特點,最大輸出電流2A,提供2倍增益,同時引入由采樣電阻R16取樣得到的繞組電壓信號進行負反饋,以保證電壓放大的穩定性。其中A相放大驅動電路如圖4所示。

圖4 A相放大驅動電路
驅動器的控制程序主要由主程序、細分驅動子程序、按鍵處理程序、數據處理和顯示驅動程序5部分組成。
主程序(圖5)實現整個程序的流程控制,完成參量初始化、計數器工作方式和中斷方式設置、子程序調用、鍵盤輸入運行參數的接收、采集數據的回讀、LED連接及顯示等功能,另設看門狗代碼防止程序“跑飛”,提高運行程序的可靠性。

圖5 主程序流程
細分驅動子程序中,細分控制信號的輸出采用STM32F103C8對片外E2PROM進行循環查表法。將兩相繞組的加電順序的控制代碼編制成一張表,同時兩相輸出的細分值也編制成一個表,通過I2C總線的讀入將其存入片外E2PROM中,通過一個地址指針的設置完成正反向對應表讀取,正向時將地址指針賦予表首址,隨后逐一遞加地址指針;反向時將其賦予表首址加上當前步長的偏移量,然后逐一遞減地址指針,即可從表中輸出加電相選的對應代碼,通過微處理器的并行接口數模轉換后驅動運算放大電路,以及各相細分值的輸出[10]。
假定完成一次正弦變化的周期為T,必須要求從數模轉換輸出的前一個T/4內,數字量輸入由低到高;下一個T/4內,數字量輸入由高到低。如此循環輸入數字量,使電壓按給定的逼近正弦波變化的階梯電平輸出。
如果將放大處理的驅動信號作用于兩相混合步進電機的繞組,并保證兩個繞組的起始相序差為1/4周期,則可得到兩相步進電機細分驅動繞組電流,波形如圖6所示,可以看出該電流波形完全滿足步進電機恒轉矩細分驅動所要求的兩相繞組的電流。
基于STM32F103C8單片機、AD5336芯片和功放電路所構成的二相混合步進電機的高精度細分驅動器,數模轉換器采用高精度的電壓基準源,驅動放大電路引入的電壓負反饋,以及步進電機采用的軟件控制算法與修正程序,較好地克服了步進電動機非線性的影響,確保了高精度細分的實現。該驅動器的實施,滿足了較高的細分步距角精度及平滑運行等要求,提高了步進電機的運行性能。
[1] 高琴,劉淑聰,彭宏偉.步進電機控制系統的設計及應用[J].制造業自動化,2012,34(1):150~152.
[2] 孟軍,張振興,劉波.二相步進電機細分驅動的設計與實現[J].電氣應用,2007,26(12):84~87.
[3] 李昱,劉景林,董亮輝.基于SOPC技術的步進電動機細分控制器設計[J].微特電機,2011,39(7):46~48,66.
[4] 徐軍,葛素娟.用單片機實現步進電機細分技術研究[J].機床電器,2004,(6):25~28.
[5] 劉志明,戴明,匡海鵬.一種步進電機細分控制方法[J].機械設計與制造,2008,(11):154~156.
[6] 李婧,金占雷.兩相步進電機單極性細分驅動器的實現[J].電機與控制應用,2012,39(3):14~18,52.
[7] 陳興文,劉燕.基于單片機的步進電機細分驅動器設計[J].電機與控制應用,2009,36(7):30~33.
[8] 李玲娟,劉景林,王燦.兩相混合式步進電機恒轉矩細分驅動技術研究[J].微電機,2007,40(3):48~50.
[9] 劉寶志.步進電機的精確控制方法研究[D].濟南:山東大學,2010.
[10] 彭樹生,周旋.基于PIC16F876的步進電機細分驅動電路設計[J].計算機測量與控制,2004,12(1):79~82.