国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

MATLAB與VB.NET混合編程方法在伺服機(jī)構(gòu)動態(tài)測試中的應(yīng)用

2013-06-01 12:39:00施金花張鑫彬李文頂
機(jī)電工程技術(shù) 2013年4期
關(guān)鍵詞:伺服機(jī)構(gòu)調(diào)用幅值

施金花,王 斌,張鑫彬,李文頂

(上海航天技術(shù)研究院第803研究所,上海 200233)

0 前言

伺服機(jī)構(gòu)工作需要有一定的供油壓力,由于液壓泵供油能力有限,采用平常的連續(xù)頻率掃描測試方法無法保證伺服機(jī)構(gòu)正常工作,現(xiàn)多采用逐個加不同頻率的正弦波信號,待一個頻率的信號結(jié)束后伺服機(jī)構(gòu)回歸零位,供油壓力恢復(fù)正常時再給定下一個頻率的正弦波信號。伺服機(jī)構(gòu)存在零偏,功放電流限制等非線性因素,在工程應(yīng)用中根據(jù)各頻率點的輸入信號和反饋信號計算出幅值和相位。由于對反饋信號采用濾波處理會降低反饋的幅值,所以本文將各頻率點的反饋信號直接擬合成一階正弦函數(shù)形式,再根據(jù)輸入信號計算出幅值和相位以及零偏。在VB.NET 軟件測試程序中,編寫反饋信號的擬合函數(shù)顯然費時費力,而MATLAB 具有強(qiáng)大的計算功能,并且具有專門的曲線擬合工具箱。為提高程序的效率和質(zhì)量,本文將MATLAB擬合函數(shù)以COM組件的形式實現(xiàn)供VB.NET調(diào)用。

1 混合編程的方法

VB與MATLAB混合編程的方法有多種,包括應(yīng)用ActiveX 技術(shù)、應(yīng)用DDE 技術(shù)以及使用MatrixVB 等,但是這些技術(shù)都不能脫離MATLAB 運行環(huán)境[1]。為了使混合編程方法能夠脫離MATLAB運行環(huán)境,也能夠供其他編程語言調(diào)用,本文采用生成COM 組件的方法供VB.NET 調(diào)用,從下文可以看出此方法生成過程簡單,并且便于模塊化。

2 MATLAB模擬輸入輸出曲線

測試伺服機(jī)構(gòu)幅頻特性需要不同頻率的正弦信號,模擬幅值為1 V,頻率為4 Hz 的三個正弦波輸入信號及其得到的反饋信號,如圖1所示。

圖1 一個頻率段內(nèi)伺服機(jī)構(gòu)輸入和反饋信號

從圖1 可以看出,伺服機(jī)構(gòu)反饋信號受伺服機(jī)構(gòu)本身非線性特性、采集卡、電氣干擾等影響,輸出曲線并不是非常光滑,在讀取反饋信號幅值以及相位滯后時會有較大偏差,因此需要對反饋信號進(jìn)行光滑處理。采用濾波的方法可以使反饋信號趨于平滑,但同時會使幅值產(chǎn)生衰減,對結(jié)果分析會產(chǎn)生大的偏差。本文將反饋信號擬合成一階正弦函數(shù)的形式得出幅值,再與原信號相比得出相位滯后。

3 擬合函數(shù)的實現(xiàn)

圖1所示函數(shù)為分段函數(shù),需用VB.NET將中間的反饋信號提取出來進(jìn)行擬合,提取出的曲線如圖2所示,然后與原信號相比得出幅值和相位。

圖2 提取的輸入和反饋信號

MATLAB 擬合函數(shù)非常簡單,可以用短短幾行語句實現(xiàn),語句如下:

myfit 函數(shù)是將反饋信號擬合成a sin(ωx+φ)+a0的形式。由于MATLAB函數(shù)在計算中有虛數(shù)的概念,所以需將返回值轉(zhuǎn)換成實數(shù)以便VB.NET調(diào)用。將圖2所示反饋信號曲線擬合后得到的曲線如圖3(a)所示,從圖3 可以看出,擬合曲線幅值與反饋曲線一致性相對較好,相位相對比實際反饋曲線超前,究其原因是由于反饋信號在第一個波形還未達(dá)到穩(wěn)定時就對其進(jìn)行了擬合,導(dǎo)致擬合出的相位超前。至此可以改進(jìn)算法,從第二個波形開始擬合,擬合出的曲線如圖3(b)所示,不難看出圖3(b)擬合效果要比圖3(a)好很多,表1 給出了擬合曲線幅頻特性的相位值與精準(zhǔn)值的比較。

4 COM組件的生成

將上述MATLAB函數(shù)保存為myfit.m文件,利用deploytool 命令生成工程名為fupin.prj、類名為Class fupin、函數(shù)名為myfit 的通用COM 組件,當(dāng)函數(shù)編譯正確后會在相對路徑的distrib 文件出現(xiàn)名為fupin_1_0.dll 的文件,至此COM 組件就成功生成。

5 VB.NET調(diào)用過程中注意的問題

5.1 COM組件的調(diào)用

點擊“項目”菜單,選擇“添加引用”,通過“瀏覽”選擇生成的fupin.dll。這樣COM組件就添加到程序中。

5.2 VB.NET 數(shù)組與MATLAB數(shù)組關(guān)系

在VB.NET 中如果用一維數(shù)組變量存取反饋時間和反饋信號的值,則在MATLAB編寫function函數(shù)時應(yīng)注意將輸入形參進(jìn)行轉(zhuǎn)置后進(jìn)行計算,因為MATLAB 軟件在數(shù)組存儲上是列優(yōu)先原則,會將VB.NET 的一維向量看成是一維列向量進(jìn)行處理。

圖3 反饋曲線與擬合曲線比較

表1 擬合曲線幅頻相位與標(biāo)準(zhǔn)值比較

6 VB.NET主要程序

上述程序是反饋信號從第二個波形開始將一維數(shù)組變量array1 存儲反饋時間,一維數(shù)組變量arrayy 存儲反饋信號,應(yīng)注意array1 向量與arrayy向量的長度相等。輸出的幅值、相位及零偏分別存入變量A,fai,a0中。

7 VB.NET程序結(jié)果

本程序運行結(jié)果如圖4 所示,實際的伺服機(jī)構(gòu)測試程序中在不同正弦波輸入頻率下反復(fù)調(diào)用COM 組件函數(shù),可以得到在不同頻率下的幅頻值與相位??梢姶藬M合函數(shù)具有通用性,此外也方便其他程序(如C++、Labview等)調(diào)用。

圖4 VB.NET運行結(jié)果

8 結(jié)論

利用MATLAB 科學(xué)計算能力強(qiáng)的特點,可以將一些復(fù)雜的科學(xué)計算過程用MATLAB 輕松實現(xiàn),同時將這些過程生成通用COM 組件模塊供VB.NET 調(diào)用,可以省去VB.NET 編寫復(fù)雜函數(shù)的繁瑣過程,令編程效率大幅提高。本文實現(xiàn)了兩者混合編程,可以同時發(fā)揮MATLAB 計算能力強(qiáng)和VB.NET 編程界面快捷友好的特點,收到了良好的效果。同時生成的COM組件便于模塊化,可以為其他程序調(diào)用。這對其它科學(xué)計算要求高的測試軟件提供了實際意義。

[1]馮莉.VB 與Matlab 的混合編程方法[J].兵工自動化,2005,24(5):110-113.

[2]冀剛.MATLAB 7.3 與.NET 新接口技術(shù)[J].電腦知識與技術(shù),2008(03):548-550.

猜你喜歡
伺服機(jī)構(gòu)調(diào)用幅值
伺服機(jī)構(gòu)氣囊自動裝配工藝與工裝
核電項目物項調(diào)用管理的應(yīng)用研究
軸對稱推力矢量控制伺服機(jī)構(gòu)空間運動解耦研究*
飛控與探測(2019年4期)2019-09-09 09:24:54
LabWindows/CVI下基于ActiveX技術(shù)的Excel調(diào)用
基于S變換的交流電網(wǎng)幅值檢測系統(tǒng)計算機(jī)仿真研究
電子制作(2017年7期)2017-06-05 09:36:13
基于系統(tǒng)調(diào)用的惡意軟件檢測技術(shù)研究
正序電壓幅值檢測及諧波抑制的改進(jìn)
歸一化小波能量熵的彈上伺服機(jī)構(gòu)傳動鏈動態(tài)可靠性評估
低壓電力線信道脈沖噪聲的幅值與寬度特征
基于零序電壓幅值增量的消弧線圈調(diào)諧新方法
電測與儀表(2015年7期)2015-04-09 11:40:10
巴马| 波密县| 封开县| 乾安县| 金川县| 宁远县| 沙河市| 灵川县| 西峡县| 峨山| 黑山县| 夏津县| 拉孜县| 泽州县| 临安市| 江华| 聊城市| 衡阳县| 邹城市| 察隅县| 察雅县| 宁明县| 平和县| 馆陶县| 阿坝| 遵义市| 芜湖县| 图木舒克市| 原平市| 南溪县| 四平市| 北碚区| 寿宁县| 芦山县| 囊谦县| 临邑县| 信宜市| 宣恩县| 会同县| 海盐县| 洪洞县|