龔學銳,楊一鵬,徐曉康,邱長青
(船舶綜合電力技術重點實驗室,武漢 430064)
推進電機作為船舶的主要動力設備,對其進行有效地控制,將直接影響船舶整體的性能。實現對推進電機振動的實時監測與反饋,利用反饋數據對電機進行控制,能夠進一步保障電機的安全運行;同時利用監測信息可以評估設備的健康狀態,對相關故障進行及時報警,保證推進電機在船舶航行中的可靠性。
電機運行產生振動。不同運行狀態下的振動形式所包含的信息也不盡相同。因此,根據電機振動情況判斷電機故障類型和部位,進而對電機進行控制是保障電機正常運行的重要手段之一。ARM和 FPGA是被廣泛應用的嵌入式處理器,ARM具有較強的事務管理功能,而 FPGA接口豐富、靈活性強、可擴展性好,兩者結合構建的嵌入式采集系統兼備各自的優點。與傳統的嵌入式系統相比,這樣的架構能夠根據需要靈活地選擇連接的外設和控制器,同時能夠根據需求在硬件實現和軟件實現之間進行權衡。當軟件實現成為瓶頸時能夠用硬件邏輯定制協處理器引擎來高效的實現算法,具有較好的性價比需求。
本文針對船舶推進電機,基于 FPGA+ARM的異構架構設計了一種主動控制用振動監測及信號反饋系統,并分別從硬件和軟件設計兩方面進行論述,最后借助實驗證明該系統在電機振動監測方面具有有效性和可靠性。
圖1為整體監測系統的總體框圖,主要由振動傳感器、振動主動控制板、數據上傳通信、上位機這幾個重要部分組成。其中基于 FPGA和ARM的振動主動控制板是整個系統的核心部件,它通過振動傳感器獲取電機的振動信號,進行電機故障振動信號的采集,從中提取出用于后續診斷的故障特征向量,并將相關信息通過 CAN總線和串口傳輸給上位機,進行后續的相關控制。
信號采集電路主要分為模擬調理電路和 AD采樣電路兩部分,圖2為模擬調理電路的設計框圖,其主要芯片使用的是OPA1652以及THS4524。Opa1652是一款低噪聲的雙通道運放。低失真:1 kHz 時為 0.00005%;采用雙電源或者單電源供電,供電范圍寬至40 V,典型的供電范圍是±2.25 V至±18 V或 4.5 V至36 V,本設計中采用±5 V供電。THS4524 是一款4通道低功耗、完全差分運算放大器,實現輸入單端信號到差模信號的轉換。調理電路利用OPA1652芯片實現電壓增益降低后通過 THS4524實現單端轉差分輸出至后續的AD采樣電路,并在此過程中同時實現了輸入的寬范圍低通濾波功能。
圖1 系統總體框架圖
圖2 模擬調理電路框圖
AD采樣電路采用ADS1274芯片實現4路數據的同步采樣,該芯片在工業領域廣泛應用,在AD內部每個通道分別有一個模數轉換器,實現模擬信號采集。同時AD內部有4個數字濾波器,在特定工作模式中,會對采集的數據進行濾波,減小噪聲,提高精度。最后通過串行方式將采集結果輸出。
數字處理電路的核心芯片采用 xilinx zynq7系列芯片 xc7z020-clg484-2,該芯片結構集成了基于ARM公司雙核ARM Cortex-A9多核處理器系統(Processing System,PS)和基于 xilinx的可編程邏輯資源的 FPGA系統(Programmable Logic,PL)。與此同時為完成大量數據緩存整體電路還接有外部存儲器DDR3和eMMC,具體結構如圖3所示。ARM作為主控制核,控制FPGA完成信號采集和預處理部分,并將它們存儲至外部DDR3存儲器中。同時ARM通過通訊電路以CAN通信的形式獲取所需上位機所需數據并從DDR中提取,經數據后處理后將相應數據上傳至上位機,用于實現后續功能。
圖3 數字處理電路結構圖
本文軟件系統在 vivado2017.4和 xilinx的SDK軟件編譯環境中實現,采用verilog和C/C++語言,分別在芯片PL和PS兩側實現FPGA和ARM的程序功能。系統對整體軟件的需求為能夠同時進行 4路 AD采樣結果的快速傅里葉變換(FFT)處理,最終對4路處理結果中挑選1路的某個頻點通過 CAN接口上傳計算后數據,同時還能夠將時域數據通過串口上傳至上位機,總體流程圖如圖4所示。整體軟件由PS和PL兩部分協同工作,PS側作為主控,主要承擔通訊功能、控制功能和數據后處理。PL部分則主要實現FFT計算和AD數據采樣兩個功能。
圖4 系統流程圖
系統與上位機通信主要通過CAN通訊完成,中斷函數通過郵箱地址判斷接受指令是參數設置還是數據請求,如果是參數設置命令,則通過解析接受到的指令更新并維護內部參數組,包括是否控制pl側進行FFT處理,是否上傳調式數據,是否使用頻率校正,同時上位機還能夠設置系統默認的初始化值并生成 fat文件供芯片上電時讀取,實現掉電記憶。具體流程如圖5所示。若是數據請求指令,則計算相應四個頻點的位置,跳轉進入數據處理的主體函數進行處理,以此來響應數據請求指令。
處理主體主要包含三個部分,第一部分主要負責根據配置參數計算待處理時域數據在ddr中的存儲位置,并請求FPGA進行FFT計算將數據存儲到相應地址,具體流程如圖 6-a)所示;第二部分主要是數據的后處理部分,如圖6-b),主要對FFT處理后的數據進行后處理,包括頻點選取、增益矯正、量綱轉換等。第三部分為數據回傳部分,主要負責將處理后的數據通過 CAN通信回傳給上位機。同時能夠根據上位機參數設置將指定長度以及抽取數據源的時域數據通過串口傳給上位機,但這一部分在正常工作模式下一般不打開。
圖5 通訊程序流程圖
圖6 主題函數流程圖
圖7 系統板卡實物圖
根據上述硬件和軟件設計,對本系統進行實驗驗證,圖7為本系統實物圖,中間為系統核心板,圖8為上位機監測界面。實驗通過信號發生器輸入激振器模擬在不同頻率引發不同程度的電機振動噪聲并與理論值進行對比。實驗結果如表1所示,實驗證明在一定頻率范圍內系統保證了良好的檢測精度。
表1 振動信號監測數據
圖8 上位機監測界面
圖9 FFT計算用時
實際延遲造成的原因主要有一下幾個方面,AD采集、存儲和FFT計算:AD采集和FIR計算采用隨路計算,即隨著AD數據流進行計算。即需要在1個采樣點的時間內完成當前點采樣以及fir濾波,否則就會被后來的數據沖掉。AD采樣率是30.720 K,所以這部分延遲為不大于32 μs。而存儲采用axi總線存入 ddr3中,axi總線目前使用的是150 M*64bit,因此這部分時間可以忽略不計。FFT每路延遲最大如圖9所示,每路需要124 μs??傆嫴怀^500 μs。綜上所述振動板處理延遲較小,能夠實現參數實時反饋。
本文對推進電機振動信號反饋系統從硬件和軟件方面進行了設計,結合ARM和FPGA的異構系統架構設計了一種精度高、實時性強的電機振動信號反饋系統,對采集數據進行后處理計算,并通過上位機下達指令需求上傳相應數據,為后續設備故障檢測、運維提供了良好的技術基礎。且該系統資源占用少、擴展性強,具備較強的應用價值,可以廣泛應用。