王菊遠,谷玉海,李小群
(北京信息科技大學現(xiàn)代測控技術教育部重點實驗室,北京 100192)
對于任何系統(tǒng),在實際工作狀況下測試系統(tǒng)的性能是非常必要的。但對處于研發(fā)階段的系統(tǒng)而言,難以構建系統(tǒng)的實際工作環(huán)境,這樣會給系統(tǒng)在后期調(diào)試中帶來難度,從而增加開發(fā)周期。因此模擬信號而建立與實際工作相似的環(huán)境,成為系統(tǒng)開發(fā)過程中不可或缺的環(huán)節(jié)。同時還可以模擬更加復雜的工況,從而全面測試系統(tǒng)的性能。使得系統(tǒng)性能滿足開發(fā)需求,因此該系統(tǒng)對研發(fā)階段的產(chǎn)品提供了很好的模擬實際信號[1]。
模擬多型信號并發(fā)系統(tǒng)設計是采用C語言進行編程,并根據(jù)不同的需求可以選擇不同的信號類型、改變信號的各項參數(shù)及對信號的選擇性疊加等。從而更加真實地模擬實際工況,對系統(tǒng)性能的測試提供有效支持。
首先根據(jù)需求選擇所需信號類型和自定義信號參數(shù),然后選擇信號疊加和采樣處理產(chǎn)生信號數(shù)據(jù),將生成的信號數(shù)據(jù)通過軟總線平臺進行處理,軟總線平臺提供了多種波形顯示端接口、數(shù)據(jù)庫接口等其他第三方接口。系統(tǒng)總體設計方案流程如圖1所示。模擬多型信號軟件系統(tǒng)設計首先根據(jù)需求選擇多種信號類型,是否根據(jù)需求改變信號各項參數(shù)(幅值、相位、頻率等),是否根據(jù)需要選擇多型信號并發(fā)等(圖2)。
圖1 系統(tǒng)總體設計方案流程
圖2 信號參數(shù)配置頁面
根據(jù)需求選擇疊加信號ID進行疊加,自定義信號的采樣頻率對信號進行采樣處理。信號處理配置頁面如圖3所示。根據(jù)采樣處理產(chǎn)生的信號數(shù)據(jù),采用軟總線平臺進行數(shù)據(jù)后期處理。數(shù)據(jù)可以根據(jù)使用者的需要進行顯示、存入數(shù)據(jù)庫等,還可以根據(jù)軟總線平臺提供的數(shù)據(jù)接口進行其他操作。
圖3 信號處理配置頁面
信號的分類主要有確定性信號和非確定性信號。由于工程中的信號大多數(shù)是確定性信號,因此系統(tǒng)主要模擬確定信號的產(chǎn)生。確定性信號主要分為周期信號和非周期信號。確定性信號分類如圖4所示。根據(jù)工程上常見的信號類型,系統(tǒng)主要設計了簡單周期信號、復雜周期信號、準周期信號、瞬態(tài)信號等4種信號類型。
圖4 確定性信號分類
周期信號是周期、幅值等隨時間重復性變化的信號[2]。系統(tǒng)主要設計2種簡單周期信號:①f(t)=Asin(2πft+θ)+B;②f(t)=Acos(2πwt+θ)+B,式中幅值、頻率、相位、直流分量等特征參數(shù)都可以由用戶根據(jù)需求輸入設定。
復雜周期信號是在周期內(nèi)信號圖像較為復雜的周期信號[3]。系統(tǒng)主要設計5種典型復雜周期信號,信號1為不同頻率正弦信號和余弦信號疊加、信號2為方波信號、信號3為三角波信號、信號4為鋸齒波信號、信號5為正弦整流信號。復雜周期信號周期函數(shù)表達式如下所示。
以上信號的幅值、頻率、相位、直流分量等特征參數(shù)可以根據(jù)用戶的需求自定義設置。信號之間也可以進行疊加等。
準周期信號是由一些不同頻率的簡諧信號疊加而成的信號,且各簡諧分量的頻率之比不全為有理數(shù)。并且這些簡諧信號的頻率不成簡單整數(shù)比,疊加而成的信號不再為周期信號,但信號的頻率描述還具有周期信號的特點,稱為準周期信號[4],f(t)=Asin(2πft+θ)+Bcos(2πωt+β)+C,式中的正弦函數(shù)和余弦函數(shù)的幅值、頻率,相位、直流分量都可以由用戶根據(jù)需求自定義輸入設定,正弦函數(shù)和余弦函數(shù)頻率至少有一個為無理數(shù)。
軟總線平臺是由現(xiàn)代測控教育部重點實驗室項目研發(fā)成果。軟總線平臺提供C/C++SOA應用組件開發(fā)、部署與運行的創(chuàng)新型一攬子技術解決方案。信號產(chǎn)生后數(shù)據(jù)傳輸主要提供3種基于軟總線平臺提供進程間通信、網(wǎng)絡通信和數(shù)據(jù)庫的服務的數(shù)據(jù)傳輸,可以滿足本地、網(wǎng)絡間、數(shù)據(jù)庫各種場景使用。
本機內(nèi)通信主要采用消息隊列,消息隊列提供了一種可靠的進程或線程間通信傳輸,消息隊列采用C++面向對象進行封裝,msgQService類如下。
調(diào)用此類變量和方法即可完成可靠的本機內(nèi)通信。
基于網(wǎng)絡通信數(shù)據(jù)傳輸主要依靠現(xiàn)代測控教育部實驗室項目團隊封裝基于軟總線平臺的動態(tài)庫,windows下msgEngineServiceLib.dll、linux 下 msgEngineService.so 該動態(tài)庫封裝提供具有 tcp、udp、http、serial(串口)、ftp功能,通過修改配置文件完成網(wǎng)絡通信數(shù)據(jù)傳輸?shù)倪B接傳輸?shù)裙δ?。通過修改配置文件msgEngineService.ini可快速配置網(wǎng)絡通信數(shù)據(jù)傳輸。
基于數(shù)據(jù)庫服務數(shù)據(jù)傳輸主要依靠現(xiàn)代測控教育部實驗室項目團隊封裝基于軟總線平臺的動態(tài)庫windows下dbservice.dll,linux 下 dbservice.so。dbservice.dll(dbservice.so)提供mysql、Oracle、sqlServer、sqLite、postgres、mongodb 數(shù)據(jù)庫的增刪改查等服務。通過讀取配置文件dbservice.ini完成數(shù)據(jù)庫的連接等服務。
實驗針對該系統(tǒng),選擇了4種信號。
(1)簡單正弦信號。f(t)=sin(2t)。
(4)疊加信號。
將信號1、信號2、信號3進行疊加,產(chǎn)生信號4。
本次試驗采用1kHz采樣頻率,通過軟總線平臺提供的通信服務組件進行通信,通過改變組件的配置文件配置。
通過通信服務組件TCP/IP傳輸控制協(xié)議發(fā)送數(shù)據(jù),實驗顯示端tcphelper17.6.4(tcphelper17.6.4由現(xiàn)代測控教育部實驗室項目團隊研發(fā)tcp通信顯示軟件)同樣采用IP:127.0.0.1、Port:8081。
通過上述實驗,系統(tǒng)產(chǎn)生了4種信號(圖5~圖8),其中,圖5是簡單周期信號,圖6是復雜周期信號,圖7是準周期信號,圖8是疊加周期信號。同時還可以通過系統(tǒng)產(chǎn)生不同的疊加信號等。
采用C語言產(chǎn)生多型信號,并通過軟總線平臺傳輸、tcphelper17.6.4顯示,同時使用者可以根據(jù)自己需求定義信號的一些參數(shù),該系統(tǒng)可以作為獨立的服務組件和其他系統(tǒng)模塊結合。該信號發(fā)生系統(tǒng)可以縮短系統(tǒng)整體的開發(fā)周期、整體系統(tǒng)壓力的測試提供了便捷。
圖5 信號1產(chǎn)生結果顯示
圖6 信號2產(chǎn)生結果顯示
圖7 信號3產(chǎn)生結果顯示
圖8 信號4產(chǎn)生結果顯示