婁曉琪
(石家莊鐵路職業(yè)技術學院 河北石家莊 050000)
傳統(tǒng)的代碼開發(fā)模式主要采用人工手寫代碼的方式,存在著需求分析錯誤、項目前期開發(fā)投入大、開發(fā)周期長手寫代碼良莠不齊等缺點,限制了復雜控制系統(tǒng)開發(fā)效率和準確度的提升。
基于Simulink 模型設計的開發(fā)模式能夠有效降低嵌入式系統(tǒng)的開發(fā)門檻,通過Simulink/Stateflow建立系統(tǒng)模型,利用RTW-EC 自動生成可優(yōu)移植的產品級C 代碼,并根據(jù)特定的配置自動生成系統(tǒng)應用程序,同時全流程的快速開發(fā)工具鏈為系統(tǒng)開發(fā)提供了有力的工具。在開發(fā)控制系統(tǒng)時,能夠減少對于底層代碼的關注,從而將更多地精力集中于模型的建立以及優(yōu)化上,縮短系統(tǒng)開發(fā)時間。
本文針對單相電力鎖相環(huán)的相位跟蹤算法,在Matlab/Simulink 軟件中搭建系統(tǒng)模型,利用基于模型設計的方法成嵌入式代碼,通過DSP28335[3]開發(fā)平臺實現(xiàn)DAC 正弦及相位的信號的輸出,驗證了自動代生成技術能夠高效可靠地實現(xiàn)控制算法的設計與驗證。
電網(wǎng)電壓的相位檢測法主要分為以下幾種[4]:硬件電路過零法、基于基波傅里葉變換計算相位法、基于三相dq 變換的鎖相環(huán)方法、基于單相dq 變換的鎖相環(huán)方法等,由于單相鎖相環(huán)能夠避免過多引入硬件、且在不對稱工況下也能夠正產運行,因此采用單相鎖相環(huán)的控制策略。
對單相鎖相的原理進行分析。設電網(wǎng)電壓為:
ω0為電網(wǎng)角頻率,,Φ0為電網(wǎng)電壓相位,ε0為電網(wǎng)檢測誤差分量及諧波。
假設生成的信號為:
ω1 為跟蹤信號角頻率,Φ1 為跟蹤信號相位。將(1)及(2)式相乘得到:
由公式(4)可知,其中共有三項分量,第一分量是100Hz 的正弦波動分量,第二分量是直流分量,第三是高頻諧波引起的干擾。將相乘結果送入到平均值濾波器濾去2 倍頻分量及諧波分量。當系統(tǒng)處于穩(wěn)態(tài)時刻:
圖1 單相鎖相環(huán)原理圖
將相位差與參考值0 做差后送入PI 控制器進行相位跟蹤。其基本調節(jié)過程為,若跟蹤信號相位滯后輸入電網(wǎng)電壓信號,則數(shù)字PI 調節(jié)器增大輸出ω值,最終使跟蹤信號相位趕上電網(wǎng)相位。當跟蹤信號相位超前電網(wǎng)電壓信號相位,則數(shù)字PID 調節(jié)器輸出ω值,最終使跟蹤信號相位趕上電網(wǎng)相位。當系統(tǒng)調蹤信號和電網(wǎng)相位相等。
基于模型設計的方法實現(xiàn)單相電力鎖相環(huán)的檢測算法首先在Simulink 軟件搭建仿真模型,將輸入信號設置為正弦函數(shù),相位輸出信號通過余弦函數(shù)與輸入信號相乘,仿真模型如圖2。
圖2 單相鎖相環(huán)仿真模型
仿真結果如圖3 所示,為便于觀測將系統(tǒng)信號放大兩倍,將鎖相環(huán)輸出相位與系統(tǒng)電壓放置于同一坐標系,分析波形可以得出結論:單相鎖相環(huán)能夠準確地跟蹤正弦信號相位,實現(xiàn)鎖相功能。
圖3 系統(tǒng)電壓及輸出相位波形圖
在Matlab/Simulink 中搭建代碼生成模型。其中ADC 模塊系統(tǒng)為Simulink 硬件支持包自帶的ADC采樣模塊,主要作用為采集外部帶有直流偏置的正弦信號,并將采樣信號傳遞至交流信號提取模塊中,設置ADC 采樣時間為5e-5s,利用軟件查詢方式(software 方式)進行采樣,采樣通道設置為ADCA0 通道,將采集數(shù)據(jù)類型設置為single。
圖4 Simulink 單相鎖相環(huán)代碼自動成模型
由于ADC 采樣值為正值,參與鎖相環(huán)計算的正弦波為正負變化的正弦波,因此需要將直流量轉換為交流量進行計算。將ADC 采樣信號縮小后引入活動平均值濾波器[5]。Simulink 濾波器模型如圖5。設置采樣周期為5e-5s,假設二倍頻分量為周期為0.01s,得到一周波的延時d=400 拍。
圖5 Simulink 滑動濾波器模型
為消除鑒相器產生的二倍頻分量,將輸入信號積分后延遲與原信號相即可消除二倍頻分量。設置采樣周期為5e-5s,假設二倍頻分量為周期為0.01s,得到一周波的延時d=200 拍。
利用SPI 串口輸出數(shù)據(jù)至TLV5620 數(shù)模轉換芯片,利用數(shù)字示波器觀測系統(tǒng)電壓及計算相位信息。
在自動生成的CCS 文件中添加添加驅動代碼:①在board.c 文件中添加代碼,將與TLV5620DAC芯片相連接的復用GPIO 配置為SPI 數(shù)據(jù)輸出口。②在adc.c 文件中進行spi 波特率等配置。③在生成的Simulink 同名.c 文件中的step 子函數(shù)中添加DAC 輸出函數(shù)。輸出信息主要有相位值及至以及相位的正弦函數(shù)。
示波器輸出如圖6,CH1 通道為系統(tǒng)電壓,CH2 通道為單相鎖相環(huán)相位的正弦值DAC 輸出。輸出正弦值與系統(tǒng)電壓波形頻率相同,鎖相環(huán)能夠準確跟蹤系統(tǒng)相位。
圖6 DAC 系統(tǒng)電壓及相位信息輸出
將相位信息的正弦值導出為CSV 格式,并利用MATLAB/Simulink 進行FFT 分析,結果如圖7,正弦輸出為50Hz 基頻分量疊加直流分量,THD 為4.93%,驗證了輸出相位正弦波的DAC 信號具有較低的畸變率及較高的平滑度。
圖7 DAC 相位輸出FFT 分析
仿真及實驗表明,基于MATLAB 自動生成代碼的方式能夠極大的加快嵌入式控制系統(tǒng)的開發(fā)進程,為電力電子控制系統(tǒng)的快速開發(fā)及算法驗證提供了有利的工具。