作者:Kim Eung-Soo,韓國Delphi汽車公司 “我們在短短兩個月時間里就利用NI CompactRIO硬件和NI LabVIEW軟件開發了一套包含復雜算法的轉向反作用力仿真系統。“ 挑戰:開發一個轉向反作用力仿真系統,可以從不同傳感器采集數據,進行計算、信息匹配、并產生輸出,并能夠可靠地執行一系列需要快速響應的實時任務。 解決方案:使用NI CompactRIO硬件和NI LabVIEW軟件在短短兩個月內開發一個基于復雜算法的轉向反作用力仿真系統。 對駕駛過程中轉向反作用力的仿真一直是動態變化的,因為它取決于車速、轉向角度以及道路狀況。另外,此仿真系統還必須具備快速響應時間,以便通過部件產生反作用力。 在車速、轉向角度、轉向角加速度數據的基礎上我們得到了轉向力矩數據圖,并根據此圖計算出最終的反作用力。然后,我們把這些值傳給一個液壓系統來仿真實現最終的反作用力。我們設計系統邏輯,從不同傳感器獲得數據、計算數據、匹配地圖數據,產生輸出,并可靠、快速地執行一系列實時任務。 系統概述 我們選擇LabVIEW和CompactRIO來創建我們的系統。我們選擇了可擴展的8槽NI cRIO-9116機箱。它有一個Xilinx Virtex-5現場可編程門陣列(FPGA),以幫助實現控制邏輯,并保證快速響應時間。我們還選擇了 NI的一款配備了實時操作系統(VxWorks)的cRIO-9024實時控制器。 cRIO-9024控制器具有4 GB的存儲空間,512 MB DRAM和800 MHz的CPU,這將有助于快速采集、記錄和處理大量數據。此外,借助兩個以太網端口和一個RS232接口,系統很容易便可與外部設備相連。USB端口可以很容易地用于擴展外部存儲器介質。 我們使用兩個4通道NI9215模擬輸入模塊處理8路模擬傳感器信號。使用一個2端口NI9853控制器區域網絡(CAN)模塊來與正在開發的電子穩定程序(ESP)電子控制單元(ECU)進行CAN通信。 我們使用NI9474模塊產生8路數字輸出作為脈沖寬度調制(PWM)信號,仿真車輛速度。然后將此PWM信號發送到EPS ECU來虛擬一個車輛。這個信號會使用通道間相互隔離的NI9269模塊來進行模擬信號輸出,從而消除了信號之間的干擾,以確保用于液壓系統的模擬輸出足夠精確。 除了精確控制數字和模擬輸出,CompactRIO的配置還可以仿真車輛中動態變化的傳感器信號和CAN信號(一種車輛通信信號)。我們利用FPGA和實時操作系統創建了一個快速并且高度可靠的車輛仿真系統。 我們為什么選擇NI產品 考慮到該系統對于處理時間的精確性要求嚴格,我們需要通過FPGA實現高速數據采集、處理,并保證精確的數字和模擬控制信號輸出。我們還需要實時、動態控制,以真實地仿真車輛行駛工況,快速計算出整車轉向反作用力矩的數據,并構建出一個不受PC限制的嵌入式系統。LabVIEW減少了我們的軟件開發時間,并提供了一個強大的函數庫幫助我們開發算法。 ![]() 圖1: 系統配置 如圖1所示,8路傳感器信號(NI9215)和CAN通信數據(NI9853)各自從它們的輸入對象接收信號。FPGA以100 μs的采樣周期從EPS ECU采集信號,并使用PWM波(0 km/h~250 km/h: 1.41 Hz~353 Hz, 占空比50%)提供車速信號(NI9269),并最終傳輸給EPS ECU。 通過先入先出(FIFO)的模式,所收集的數據將通過實時處理器(cRIO-9024)進行分析和邏輯處理,并轉化為有效值。然后,在實時處理器中,系統使用一種快速映射算法(對應于標準地圖數據存儲的反作用力值)由參考數據計算出最后的控制量,并將它通過一個FPGA算法產生模擬輸出量。NI 9269模塊則提供±10 V的范圍內的控制信號至液壓執行器。 輸入的傳感器信號和最終的液壓系統控制值控制了液壓系統。他們同時還保存在隊列中,然后通過TCP / IP通信發送到PC主機。這種配置使得PC主機可以監控反作用力仿真器的性能和狀態。此外,該系統在保證動態控制的同時還提供給用戶多個信號的控制權利。 ![]() 圖2: FPGA程序框圖 圖2顯示了FPGA程序框圖,用于處理傳感器輸入信號的程序以及處理CAN通信的消息的程序。EPS反作用力輸出程序和PWM生成程序分別用于產生液壓執行器的控制輸出信號,和將車輛速度轉化為PWM波信號。 ![]() 圖3 實時程序框圖 在圖3中,程序框圖運行于實時操作系統中,進行數據采集、FPGA輸出從數據庫中獲取數據,并傳出最終值給FPGA,然后再將數據經過TCP/IP傳給主機。 ![]() 圖4 2D數據插值程序框圖 該系統最重要的部分就是一個可以根據從傳感器采集的標準值而計算出不同地圖數據的算法(見圖4)。將輸入參考信息與標準值相減后,數據減小了,為了保持線性,數值將從插值中提取出來。 ![]() 圖5:主機前面板 圖5顯示了主機前面板,用于監測EPS仿真器和不同傳感器的狀態變量。其中大多數數據都將歷史值顯示在圖表上,重要參數被分開單獨顯示。 ![]() 圖6:CompactRIO 結論 我們有4個月的時間來開發這個應用程序,但實際僅使用了短短兩個月內就完成了。我們使用LabVIEW編程完成了FPGA程序的快速功能實現和調試,而這往往需要大量時間和經驗。在部署FPGA邏輯的同時,我們還實現了快速的數據采集。 該實時操作系統通過運用一個已獲驗證的操作系統(VxWorks),保證了高度安全、可靠的數據處理。因為目標控制的總循環時間為50毫秒,這就使得一個高效的控制效果成為了可能。這比為液壓執行器提供所需的響應更快。 軟件開發完畢后,將被下載至CompactRIO中獨立運行,在沒有PC控制下,平滑地控制反作用力仿真器。通過匹配整車級別的反作用力力矩數據,我們可以在cRIO-9024存儲器中更新不同駕駛條件下的數據,用于更準確的實現實驗室級的仿真環境。因為機箱插槽的可擴展性,我們只要再添加一個模塊,就可以添加出更多樣化的車輛行駛工況。這意味著我們可以使用最初的CompactRIO系統設計來輕松、經濟、高效地適應新變化。 使用LabVIEW和CompactRIO作為解決方案的最大優勢是,只要使用簡單的組合或者簡單的變量變化,它就能幫助我們快速、方便、準確地建立復雜的算法。 |