蔣昭穎
(國電子科技集團(tuán)第15研究所 北京 100083)
基于STM32單片機(jī)的變頻正弦信號發(fā)生器
蔣昭穎
(國電子科技集團(tuán)第15研究所 北京100083)
為了實現(xiàn)對三相永磁式同步交流伺服電機(jī)頻域響應(yīng)的檢測需求,提出了一種基于ARM單片機(jī)的變頻率PWM正弦信號發(fā)生器的設(shè)計方案,并完成系統(tǒng)的軟硬件設(shè)計。該系統(tǒng)的硬件部分采用STM32F103系列ARM單片機(jī),用于PWM方式輸出變頻率的模擬正弦信號,軟件部分采用Keil進(jìn)行編程。通過軟件仿真和示波器對輸出信號進(jìn)行檢測,利用該方案的正弦信號發(fā)生器對三相永磁式同步交流伺服電機(jī)進(jìn)行頻率響應(yīng)測試,將得到的數(shù)據(jù)利用matlab繪圖,實驗結(jié)果表明此方案產(chǎn)生的正弦信號發(fā)生器滿足電機(jī)頻響需求。
交流伺服電機(jī);ARM單片機(jī);PWM;正弦信號發(fā)生器
近年來,中國航空工業(yè)的發(fā)展進(jìn)一步加速,新型號,新機(jī)型不斷推出,大型運輸機(jī)成功首飛,C919大型客機(jī)開始進(jìn)行結(jié)構(gòu)總裝,航空零部件生產(chǎn)規(guī)模不斷擴(kuò)大,這一系列成就預(yù)示著中國的大飛機(jī)時代正離我們越來越近。在大飛機(jī)項目發(fā)展的同時,相應(yīng)機(jī)型的飛行模擬器研制也逐漸加快了腳步。本文依托于某機(jī)型飛行模擬器項目的操縱負(fù)荷系統(tǒng)的研發(fā),為了滿足操縱負(fù)荷系統(tǒng)的實時性要求,對系統(tǒng)內(nèi)交流伺服電機(jī)的頻域響應(yīng)進(jìn)行了深入研究。
控制系統(tǒng)中的信號可以表示為不同頻率正弦信號的合成??刂葡到y(tǒng)的頻率特性反映正弦信號作用下系統(tǒng)響應(yīng)的性能,所以頻域分析法是研究系統(tǒng)頻率特性非常有效的方法。為了能夠更直觀的對電機(jī)系統(tǒng)頻率響應(yīng)進(jìn)行檢測,需要為電機(jī)系統(tǒng)提供一個合適的信號源。信號發(fā)生器在工程領(lǐng)域是常用的信號源,種類包括:函數(shù)信號發(fā)生器、脈沖信號發(fā)生器等。這些信號發(fā)生器可以為系統(tǒng)提供所需頻率、波形的電壓和電流信號。本文涉及電子電路以及自動化控制技術(shù),借助于ARM單片機(jī)的TIMER(定時器)功能以及PWM輸出,為正弦信號發(fā)生器的設(shè)計提供了理論依據(jù)和技術(shù)支持,同時將正弦信號加到交流伺服電機(jī)上進(jìn)行驗證電機(jī)的頻率響應(yīng)特性。
1.1理論分析
PWM(脈沖寬度調(diào)制)將模擬信號進(jìn)行數(shù)字編碼,按一個固定的頻率來接通和斷開電源,并且根據(jù)需要改變一個周期內(nèi)的“接通”和“斷開”時間的長短。對于直流電機(jī)來說,通過改變直流電機(jī)電樞上電壓的“占空比”來達(dá)到改變平均電壓大小的目的,從而來控制電動機(jī)的轉(zhuǎn)速。從某種意義上來說,只要帶寬足夠,PWM可以對任何模擬量進(jìn)行數(shù)字編碼。
交流脈寬調(diào)制是建立在直流脈寬調(diào)制基礎(chǔ)上,通過一定的方式將正弦波改為幅值相等,而占空比有規(guī)律變化的方波來進(jìn)行對交流的調(diào)制?;竟ぷ髟硎窍葘?0 Hz交流電經(jīng)整流變壓器變壓得到所需電壓,經(jīng)二極管和電容濾波,形成恒定直流電壓,而后送入大功率晶體管構(gòu)成的逆變器主電路,輸出三相電壓和頻率均可調(diào)整的等效于正弦波的脈寬調(diào)制波(SPWM波),即可拖動三相伺服電機(jī)運轉(zhuǎn)。
根據(jù)采樣控制理論,沖量相等而形狀不同的窄脈沖加在具有慣性的環(huán)節(jié)上時,其效果基本相同。沖量即指窄脈沖的面積,效果相同是指環(huán)節(jié)的輸出相應(yīng)波形基本相同[1]。在本文中,針對交流伺服電機(jī)的位置模式特性,傳統(tǒng)的交流脈寬調(diào)制改變占空比的方案并不適用。由于在位置模式工作下的伺服電機(jī)會檢測單片機(jī)發(fā)出的脈沖上升沿從而進(jìn)行相應(yīng)的動作,而在高電平期間,電機(jī)處于靜止?fàn)顟B(tài),所以改變占空比并不會使得電機(jī)按照正弦信號的規(guī)律進(jìn)行運動。在這樣的情況下,我對傳統(tǒng)的交流脈寬調(diào)制進(jìn)行了修改,即通過一定的方式將正弦波改為幅值相等,而頻率有規(guī)律變化的方波來進(jìn)行對交流的調(diào)制。
PWM方式的優(yōu)點是信號是數(shù)字式,抗干擾能力強(qiáng),無需通過單片機(jī)的數(shù)模轉(zhuǎn)換,應(yīng)用廣泛,同時信號的穩(wěn)定性與平滑性都很好,易于調(diào)控幅值和頻率。
1.2總體設(shè)計
STM32F103單片機(jī)采用CortexM3內(nèi)核,同時為了實現(xiàn)低功耗,設(shè)計了一個功能完善但非常復(fù)雜的時鐘系統(tǒng)。飛行模擬器操縱負(fù)荷系統(tǒng)中的交流伺服電機(jī)在運動過程中對實時性有較大的要求,需要的信號源的頻率要求在0.6~4 Hz之間并且可調(diào)。我們選用STM32中的高速時鐘。從芯片角度來說,時鐘源分為內(nèi)部時鐘與外部時鐘源,內(nèi)部時鐘是在芯片內(nèi)部RC振蕩器產(chǎn)生的,起振較快,而外部時鐘信號是由外部晶振輸入,在本文設(shè)計的方案中選用內(nèi)部時鐘[2]。
圖1 方案設(shè)計圖Fig.1 Structure diagram of project
高速內(nèi)部時鐘的頻率為8 MHz,經(jīng)過單片機(jī)內(nèi)部倍頻到64 MHz輸出,我們需要對系統(tǒng)時鐘進(jìn)行分頻處理,分頻后的時鐘可以對輸出PWM信號的頻率進(jìn)行調(diào)節(jié)。
PWM頻率=系統(tǒng)時鐘頻率/(分頻系數(shù)*(1+計數(shù)器上限值))
由于單片機(jī)進(jìn)行脈沖采樣,所以我們對正弦函數(shù)進(jìn)行離散化處理,取到的N個點,可以影響信號源的精度,由于采樣頻率越高,信號越趨近于正弦值,但是相應(yīng)的實時性會下降,所以,我們需要根據(jù)實際情況進(jìn)行離散化精度處理。根據(jù)采樣定理(在進(jìn)行模擬/數(shù)字信號的轉(zhuǎn)換過程中,當(dāng)采樣頻率fs.max大于信號中最高頻率fmax的2倍時 (fs.max>2fmax),采樣之后的數(shù)字信號完整地保留了原始信號中的信息,一般實際應(yīng)用中保證采樣頻率為信號最高頻率的5~10倍)得到的正弦數(shù)據(jù)對應(yīng)的就是PWM輸出頻率。PWM的占空比我們設(shè)定為頻率的50%。
對于正弦信號發(fā)生器,它的模擬正弦波輸出可以用下式描述:上式中t為連續(xù)時間,離散化處理后,用單片機(jī)內(nèi)部時鐘clk進(jìn)行采樣
利用CAN總線將采樣數(shù)據(jù)通過串口發(fā)送至上位機(jī)軟件,并且將數(shù)據(jù)在上位機(jī)軟件中進(jìn)行繪圖。交流伺服電機(jī)根據(jù)正弦信號進(jìn)行往復(fù)運動,同時將速度信息通過485通訊傳送至上位機(jī)軟件,保存數(shù)據(jù)并在上位機(jī)軟件中進(jìn)行繪圖。
圖2 正弦信號采樣圖Fig.2 Sampling diagram of sine-wave
對于STM32系列單片機(jī),我們采取定時器PWM輸出模式,通過ARR寄存器調(diào)整頻率,通過TIM_Pulse調(diào)整占空比,直接生成頻率可變的方波信號,也就是PWM信號。由于PWM波本身是數(shù)字脈沖,其中含有大量的高頻成分,因此,我加入了積分器電路——有源低通濾波器,將高頻成分除去,從而得到較好的模擬變化信號[3-4]。
圖3 硬件電路設(shè)計圖Fig.3 Design of hardware circuit
模擬器操縱負(fù)荷要求精度較高,所以在本文對傳統(tǒng)的PWM到電壓D/A轉(zhuǎn)換電路做了改進(jìn)。傳統(tǒng)轉(zhuǎn)換電路利用單片機(jī)PWM輸出,經(jīng)過簡單的RC積分電路除去高頻,得到D/ A轉(zhuǎn)換輸出電壓。該電路沒有基準(zhǔn)電壓,且隨著頻率不斷的變化,精度很難保證,同時負(fù)載能力差,只適用于精度要求不高,負(fù)載很小的場合。
對于改進(jìn)的電路,我增加了基準(zhǔn)電壓和負(fù)載驅(qū)動。電路中的LM336-5為基準(zhǔn)電壓源,LM358為輸出放大器。PWM經(jīng)過兩級阻容濾波得到電壓信號,實現(xiàn)D/A轉(zhuǎn)換功能。由于放大器的輸入阻抗大,二級阻容濾波效果好,輸出電壓波紋小,滿足高精度要求。由于電容的存在,電路輸出會有相位滯后,過渡時間影響D/A的轉(zhuǎn)換速度,通過調(diào)整阻容參數(shù),可以改變轉(zhuǎn)換速度[5-6]。
本方案設(shè)計的信號發(fā)生器主要對ARM單片機(jī)的定時器進(jìn)行編程。STM32定時器除了TIM6和TIM7之外,其他的定時器均可以用來產(chǎn)生PWM輸出。定時器分為高級定時器和通用定時器,高級定時器可以產(chǎn)生多達(dá)7路的PWM輸出,而通用定時器也能產(chǎn)生多達(dá)4路的PWM輸出,本文我選用通用定時器TIM2。
為了實現(xiàn)變頻率PWM輸出,我主要研究STM32通用定時器TIM2中的寄存器,用于控制PWM。通過配置捕獲/比較模式寄存器、捕獲/比較使能寄存器、捕獲/比較寄存器以及自動裝載寄存器的數(shù)值可以調(diào)整PWM的幅值和占空比。
中斷在本方案中起到了決定性的作用,由于我們的PWM不是傳統(tǒng)的定頻率、定占空比,所以自動裝載寄存器的數(shù)值要隨正弦值變化。同時,本方案的PWM輸出需要精確定位,因為對于交流電機(jī)的控制,我們需要精確地將脈沖個數(shù)發(fā)給電機(jī),使其走相應(yīng)的位移。所以,當(dāng)自動裝載寄存器的值達(dá)到上限時,需要進(jìn)入中斷進(jìn)行對自動裝載寄存器的數(shù)值進(jìn)行修改。
本方案的數(shù)據(jù)通訊應(yīng)用到了CAN總線通訊,將PWM的信號輸出通過CAN總線傳輸至串口,得到的數(shù)據(jù)利用上位機(jī)軟件進(jìn)行繪圖比較。CAN總線通常有2根線(CAN_High和CAN_Low)組成,CAN控制器通過一個收發(fā)器連接到總線上,總線的電平由CAN_High和CAN_Low的電位差來確定,總線有2個電平:顯性和隱性,在任意給定的時間內(nèi),總線總是處于這2個電平之一。對于邏輯上“線與”的總線,顯性和隱性電平被看作邏輯0和邏輯1,一個發(fā)送單元能夠通過改變總線電平來送一個信息給接收單元。本設(shè)計中的CAN協(xié)議主要利用了數(shù)據(jù)幀類型。數(shù)據(jù)幀由發(fā)送單元使用,用來發(fā)送信息給接收單元。數(shù)據(jù)幀有7個域組成,分別是幀開始、仲裁域、控制域、數(shù)據(jù)域、CRC域、ACK域以及幀結(jié)束[7]。
圖4 改進(jìn)D/A轉(zhuǎn)換圖Fig.4 Diagram of D/A improvement
首先測試STM32單片機(jī)PWM輸出,KEIL軟件仿真圖如圖5所示。
圖5 變頻PWM輸出仿真圖Fig.5 Diagram of PWM output with frequency conversion
從圖中可以看出,在一個周期內(nèi),PWM按正弦頻率輸出,占空比為輸出頻率的1/2。該仿真圖對應(yīng)的正弦波頻率為1 Hz。將此PWM的脈沖加到交流伺服電機(jī),電機(jī)將以1 Hz的頻率進(jìn)行往復(fù)運動。
通過CAN總線通訊,將電機(jī)編碼器反饋數(shù)據(jù)傳至上位機(jī)軟件,得到的數(shù)據(jù)在matlab下繪圖如圖6所示。
圖6 10 Hz采樣圖Fig.6 Diagram of 10 Hz sample
以10 Hz的頻率對電機(jī)反饋的信號進(jìn)行采樣,采樣點數(shù)為1 000個點,從圖中可以看出,采樣數(shù)據(jù)為正弦信號,說明電機(jī)反饋的速度信號是正弦信號,驗證了伺服電機(jī)的速度跟蹤性能良好。
將上位機(jī)采集到的電機(jī)速度反饋數(shù)據(jù)畫成連續(xù)曲線,時間為10 s,采樣頻率為10 Hz,采樣點為1 000個,得到的連續(xù)曲線有些許失真,并不是非常平滑,說明采樣點個數(shù)的減少,信號會有失真。模擬機(jī)操縱負(fù)荷系統(tǒng)對信號的跟隨性能有很高要求,信號的頻率要達(dá)到4 Hz不失真,所以要在保證實時性的前提盡可能多的提高采樣頻率。
圖7 10 Hz采樣連續(xù)圖Fig.7 Continuous diagram of 10 Hz sample
最后,我將硬件電路輸出連接至示波器驗證改進(jìn)的D/A電路效果是否明顯,頻率分別調(diào)整為100 Hz和1 kHz,發(fā)現(xiàn)輸出的波形效果非常好,說明改進(jìn)的D/A電路對信號發(fā)生器的模擬波形有顯著改善。
圖8 100 Hz連續(xù)圖Fig.8 Continuous diagram of 100 Hz
圖9 1 kHz連續(xù)圖Fig.9 Continuous diagram of 1 kHz
本文設(shè)計了變頻率PWM正弦信號發(fā)生器用于模擬機(jī)操縱負(fù)荷系統(tǒng),信號發(fā)生器能夠產(chǎn)生1~4 Hz頻率正弦信號且不發(fā)生失真,滿足操縱負(fù)荷系統(tǒng)實時性和精準(zhǔn)性的要求,并且在本文的信號發(fā)生器設(shè)計了改進(jìn)D/A型硬件電路,使得信號發(fā)生器模擬輸出1~1 kHz正弦信號均不發(fā)生失真。根據(jù)最終的實驗結(jié)果可以驗證,該方案在頻率穩(wěn)定性、抗干擾能力以及硬件電路實現(xiàn)情況等方面均具有較大的優(yōu)點。同時該方案也是PWM從理論分析到實際應(yīng)用的一個典型案例。
[1]洪俊峰,卜文強(qiáng),張榕鑫,等.基于STM32PWM的正弦信號發(fā)生器設(shè)計[J].合肥工業(yè)大學(xué)學(xué)報,2014,37(2):189-191.
[2]雷道仲.基于FPGA的正弦信號發(fā)生器研究與設(shè)計[D].湖南:湖南師范大學(xué),2008
[3]王立剛,建天成.基于光電二極管檢測電路的噪聲分析與電路設(shè)計[J].大慶石油學(xué)院院報,2009(33):88-91.
[4]韓志軍,沈晉源,王振波.單片機(jī)應(yīng)用系統(tǒng)設(shè)計[M].北京:機(jī)械工業(yè)出版社,2005.
[5]任駿原,楊玉強(qiáng),劉維學(xué).?dāng)?shù)字電子技術(shù)基礎(chǔ)[M].北京:清華大學(xué)出版社,2013.
[6]楊居朋,王軍民,劉迪仁.基于線性光耦HCNR201雙極性信號隔離電路[J].光電技術(shù)應(yīng)用,2009,24(6):51-54.
[7]陳延奎.基于80C51單片機(jī)的通用數(shù)據(jù)采集與處理系統(tǒng)[J].機(jī)械,2008(4):49-51,54.
Design of sine-wave signal generator of frequency conversion based on STM32
JIANG Zhao-ying
(China Electronics Technology Group Corporation 15th,Beijing 100083,China)
In order to satisfy the requirement of frequency domain response of AC servo motor,we proposed a method for produce a sine-wave signal of frequency conversion based on ARM.The hardware system is used to PWM output to produce a sine-wave signal of frequency conversion by STM32F103.The software system adopts the Keil as development environment. Simulations using software and oscilloscope accomplish to detect output signal.The results show that the proposal can satisfy the requirement of frequency domain response of AC servo motor.
AC servo motor;ARM;PWM;sine-wave signal generator
TN710
A
1674-6236(2016)05-0190-04
2015-05-06稿件編號:201505041
蔣昭穎(1992—),女,黑龍江哈爾濱人,碩士。研究方向:嵌入式系統(tǒng),網(wǎng)絡(luò)前沿技術(shù)。