• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

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

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

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

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

      0 前言

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

      1 混合編程的方法

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

      2 MATLAB模擬輸入輸出曲線

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

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

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

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

      圖1所示函數(shù)為分段函數(shù),需用VB.NET將中間的反饋信號提取出來進行擬合,提取出的曲線如圖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 可以看出,擬合曲線幅值與反饋曲線一致性相對較好,相位相對比實際反饋曲線超前,究其原因是由于反饋信號在第一個波形還未達到穩(wěn)定時就對其進行了擬合,導致擬合出的相位超前。至此可以改進算法,從第二個波形開始擬合,擬合出的曲線如圖3(b)所示,不難看出圖3(b)擬合效果要比圖3(a)好很多,表1 給出了擬合曲線幅頻特性的相位值與精準值的比較。

      4 COM組件的生成

      將上述MATLAB函數(shù)保存為myfit.m文件,利用deploytool 命令生成工程名為fupin.prj、類名為Class fupin、函數(shù)名為myfit 的通用COM 組件,當函數(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ù)組關系

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

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

      表1 擬合曲線幅頻相位與標準值比較

      6 VB.NET主要程序

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

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

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

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

      8 結(jié)論

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

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

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

      猜你喜歡
      伺服機構調(diào)用幅值
      伺服機構氣囊自動裝配工藝與工裝
      核電項目物項調(diào)用管理的應用研究
      軸對稱推力矢量控制伺服機構空間運動解耦研究*
      飛控與探測(2019年4期)2019-09-09 09:24:54
      LabWindows/CVI下基于ActiveX技術的Excel調(diào)用
      測控技術(2018年5期)2018-12-09 09:04:46
      基于S變換的交流電網(wǎng)幅值檢測系統(tǒng)計算機仿真研究
      電子制作(2017年7期)2017-06-05 09:36:13
      基于系統(tǒng)調(diào)用的惡意軟件檢測技術研究
      正序電壓幅值檢測及諧波抑制的改進
      歸一化小波能量熵的彈上伺服機構傳動鏈動態(tài)可靠性評估
      制導與引信(2016年3期)2016-03-20 16:02:02
      低壓電力線信道脈沖噪聲的幅值與寬度特征
      電源技術(2015年5期)2015-08-22 11:18:30
      基于零序電壓幅值增量的消弧線圈調(diào)諧新方法
      電測與儀表(2015年7期)2015-04-09 11:40:10
      乌拉特前旗| 清涧县| 邵阳县| 安吉县| 陆川县| 伊金霍洛旗| 临泉县| 溆浦县| 秦安县| 航空| 临潭县| 宜兰市| 鸡泽县| 奉贤区| 巢湖市| 濮阳市| 加查县| 波密县| 武功县| 陇南市| 比如县| 嘉禾县| 平安县| 沅江市| 新和县| 自治县| 广河县| 东明县| 文登市| 武冈市| 尼勒克县| 南宁市| 永兴县| 丹巴县| 双鸭山市| 秦安县| 通州区| 新郑市| 缙云县| 贡嘎县| 陕西省|