• 
    

    
    

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

      ?

      微機改造液壓萬能試驗機關鍵技術的研究

      2011-10-21 06:05:32趙春雨王俊飛
      大眾科技 2011年6期
      關鍵詞:試驗機控件線程

      趙春雨 王俊飛

      (成都理工大學工程技術學院,四川 成都 614000)

      微機改造液壓萬能試驗機關鍵技術的研究

      趙春雨 王俊飛

      (成都理工大學工程技術學院,四川 成都 614000)

      微機化改造后的液壓萬能試驗機能實時、自動、精確地顯示壓力、位移等參數(shù),并能在實驗結束后保存實驗數(shù)據(jù)和打印材料特性曲線,省去了人工計算的環(huán)節(jié),利于工作效率的提高。文章就其中壓力、位移等實驗參數(shù)的測量及實驗曲線繪制關鍵技術和算法進行研究闡述,分析了高速實時工作、串口通訊、曲線擬合等關鍵技術。

      高速實時工作;串口通訊;曲線擬合

      (一)前言

      我國從上世紀50年代開始生產液壓萬能試驗機,早期產品使用杠桿擺錘測力系統(tǒng)。1987年國家頒布了GB228—87《金屬拉伸試驗方法》新標準。舊試驗機的測量系統(tǒng)不能滿足新標準的要求。上世紀90年代已是電子信息時代,計算機已廣泛地應用于各種行業(yè)。因而將計算機應用于試驗機技術已成為當前重要的課題。

      在數(shù)據(jù)采集上,采集速度快、測量精度高;在數(shù)據(jù)分析上,考慮得更加周全;在數(shù)據(jù)處理上,具有智能交互、圖文并茂的特點,能以數(shù)值顯示、圖表、曲線等多種方式表現(xiàn)實驗數(shù)據(jù),并可根據(jù)教學要求對實驗數(shù)據(jù)進行各種分析與處理。讓試驗機在信號檢測、數(shù)據(jù)處理等方面更接近現(xiàn)代試驗機發(fā)展水平,迎合了目前國內外的試驗機發(fā)展面向智能化、準確化、操作簡便、穩(wěn)定可靠趨勢的需要。

      就我國的經(jīng)濟實力和現(xiàn)有的生產力水平,淘汰低檔試驗機是不必要的。只要選擇改造的途徑,利用微機對液壓萬能試驗機進行壓力、位移等試驗數(shù)據(jù)的顯示,利用軟件對實驗結果進行處理,都可以達到比較好的效果。目前很多單位已將微機用于低檔試驗機的改造。改造的系統(tǒng)框圖如下圖1。

      圖1 液壓萬能試驗機微機化改造組成圖

      利用微機的液壓試驗機改造方法在wE-300液壓試驗機的油缸回油管與油缸之間加配一個三通接頭,兩頭接油管,中間接一個30Mpa壓力傳感器,主要用于測量液壓油路的壓力。壓力傳感器接收到油壓的模擬信號傳到微機的數(shù)據(jù)采集卡。在油缸的工作行程位置上加裝一個位移傳感器,用來測量油缸行程的位移量,通過位移傳感器測量到模擬信號傳到微機的數(shù)據(jù)采集卡。改造后的試驗機可配有標程為0~700mm不同規(guī)格的變形引伸計,可作金屬材料的拉、壓常規(guī)試驗。

      (二)關鍵技術研究

      1.系統(tǒng)高速實時工作的實現(xiàn)

      (1)FIFO緩存技術

      FIFO存儲器是近幾年面市的一種特殊存儲器件,通常用于數(shù)據(jù)的緩存和用于容納異步信號的頻率或相位的差異。FIFO的實現(xiàn)通常是利用雙口RAM和讀寫地址產生模塊來實現(xiàn)的。FIFO的接口信號包括異步的寫時鐘(wr_clk)和讀時鐘(rd_clk)、與寫時鐘同步的寫有效(wren)和寫數(shù)據(jù)(wr_data)、與讀時鐘同步的讀有效(rden)和讀數(shù)據(jù)(rd_data)。為了實現(xiàn)正確的讀寫和避免FIFO的上溢或下溢,通常還應該給出與讀時鐘和寫時鐘同步的 FIFO的空標志(empty)和滿標志(full)以禁止讀寫操作。其特點是在同一個芯片里同一個存儲單元配備有兩個數(shù)據(jù)口,一個是輸入口,只負責數(shù)據(jù)寫入,另一個是輸出口,只負責數(shù)據(jù)輸出,就像數(shù)據(jù)管道一樣,數(shù)據(jù)從管道的一頭流入、從另一頭流出,先進入的數(shù)據(jù)首先流出。另外對這種存儲器進行讀和寫的操作時不需要地址線參與尋址,它的數(shù)據(jù)是按照一種環(huán)形結構依次進行存放的。FIFO存儲器的另一個與傳統(tǒng)存儲器不同點是傳統(tǒng)存儲器的一個存儲單元中只要寫入一個數(shù)據(jù)后,這個數(shù)據(jù)將一直保存,直到被一個新的數(shù)據(jù)覆蓋,無論這個存儲單元中的數(shù)據(jù)被讀取過多少次也是如此。而FIFO存儲器中的存儲單元則不是這樣,寫入的數(shù)據(jù)一旦被讀取后,則這個數(shù)據(jù)再無法被讀取,像永久消失一樣。所以,F(xiàn)IFO存儲器在操作時由“空”和“滿”的標志位來表示FIFO存儲器內部的狀態(tài)。

      采集板本身的動態(tài)鏈接庫(PCI8335.dLL)中所有的函數(shù)均可以直接調用,從而就實現(xiàn)了保證了采集的高速實時操作。

      (2)定時查詢方法

      一旦啟動了A/D轉換,A/D就開始不斷地采集數(shù)據(jù)并存入到FIFO中,系統(tǒng)必須定時查詢FIFO緩存器是否處于半滿狀態(tài),以便下一步的存儲操作。以本系統(tǒng)選用定時杏詢的方法,被執(zhí)行的時鐘控件函數(shù)主要用來實現(xiàn)程序定時查詢 A/D狀態(tài)寄存器中的FIFO是否半滿標志(HF),當FIFO中的數(shù)據(jù)超過一半后,一次讀空FIFO中的數(shù)據(jù)。因為FIFO半滿時的空間為2048個字,按照最大采集速度每秒100個數(shù)據(jù),緩存器可以存儲 2048/8*100=2.56秒的數(shù)據(jù),由于定時器的時間處理頻率直接來源于系統(tǒng)時鐘18.2Hz的中斷頻率,這就決定了這種定時器的處理時間的周期是55ms的倍數(shù),時鐘控件定時采集間隔完全可以滿足系統(tǒng)要求。

      2.Delphi實現(xiàn)串行通訊的方法

      Delphi在目前眾多流行的面向對象開發(fā)工具中最具有吸引力的開發(fā)工具之一。由于Delphi具有編程效率高、功能強大而受到廣大程序員的青睞。用Delphi實現(xiàn)串口通訊,可用使用通訊控件,如MSCOMM和SPCOMM,也可以使用API函數(shù)或者在Delphi中調用其它串口通訊程序。而利用API編寫串口通信程序較為復雜,需要掌握大量通信知識,其優(yōu)點是可實現(xiàn)的功能更強大,應用面更廣泛,更適合于編寫較為復雜的低層次通信程序。在本系統(tǒng)中,采用較為方便的MSCOMM通訊控件的方法。利用Delphi 7.0提供的MSCOMM通訊控件可以方便地訪問串行口,MSCOMM控件提供了很多有用的屬性和方法,通過它們用戶可以很容易的對串口進行操作。MSCOMM的主要屬性如表1所示。

      表1 MSCOMM控件的主要屬性

      OnComm事件是通訊控件唯一的事件,此事件可用來處理所有與通訊有關的事件,無論何種事件發(fā)生,通訊控件只用一個 CommEvent的屬性來處理。使用事件程序的好處是不需要一直讓程序處于檢測的狀態(tài)下,只要事先將程序代碼寫好,一有事件發(fā)生,就直接執(zhí)行相應的程序代碼。下面給出串口的讀寫程序。從串口讀二進制數(shù)據(jù)的程序如下:

      var

      SerialInput:Variant;

      DataLength,intCnt,intTem:Integer;

      begin SerialInput:=frmMain.MSComm.Input;

      //讀取串口數(shù)據(jù)

      DataLength:=frmMain.MSComm.InBufferCount; //讀取數(shù)據(jù)的長度

      For intCnt:=1 to SerialDataLength-1 do

      Begin

      IntTem:= SerialInput[intCnt];

      end;

      end;

      var

      SerialOutput:Variant; Count,DataLength:Integer;

      begin

      Count:=1; SerialOutput:=VarArrayCreate([1,1],v arByte); SerialOuput[Count]:=intTmp[Count];

      Inc(Count);

      While (Count<DataLength) do

      begin SerialOuput[Count]:=intTmp[Count];

      Inc(Count); VarArrayRedim(SerialOutput,Count);

      end;

      frmMain.MSComm.Output:= SerialOuput;

      end;

      3.多線程機制實現(xiàn)

      多線程的實現(xiàn)原理:

      創(chuàng)建一個進程時,它的第一個線程稱為主線程(Primary thread),由系統(tǒng)自動地生成。然后可以用這個主線程生成額外的線程,而這些線程,又可以生成更多線程。在運行一個多線程程序時,從表面上看,這些線程似乎同時運行。

      而實際情況并不是這樣,為了運行所有這些線程,操作系統(tǒng)為每個獨立線程安排了一些CPU時間。單CPU操作系統(tǒng)時以輪轉方式向線程提供時間片(Quantum),每個線程使用完時間片后交出控制,然后系統(tǒng)再將 CPU時間片分配給下一個線程。因為每個時間片足夠短,所以就給人一種假象,好像這些線程同時運行。創(chuàng)建額外線程唯一目的就是盡可能地利用CPU時間。

      雖然Windows 提供了比較多的多線程設計的API 函數(shù),但是直接使用API 函數(shù)一方面極其不方便,而且使用不當還容易出錯。利用Tthread 對象,來解決多線程設計上的困難,簡化了多線程問題的處理。Tthread 對象沒有實例的,它和界面的交流,主要依靠主窗體(主VCL線程)。

      Tthread 對象的主要方法:

      構造線程:

      constructor Create(CreateSuspended:boolean)

      其中:CreateSuspended=true 構造但不喚醒

      false 構造的同時即喚醒

      inheried Create(CreateSuspended:boolean)

      掛起線程:

      suspend

      (把線程掛起的次數(shù)加一)

      喚醒線程:

      resume

      析構(清除線程所占用的內存):destroy

      終止線程(后面會具體討論):Terminate

      下面為在主線程區(qū)構造線程的方法是:

      thread1:=mymath1.create;

      thread2:=mymath2.create;

      掛起:

      thread1.suspend;

      thread2.suspend;

      喚醒:

      thread1.resume;

      thread2.resume;

      析構:

      thread1.destroy;

      thread2.destroy;

      線程的同步:

      在使用多線程編程時,有一個非常重要的問題就是線程同步。線程同步是指線程之間在相互通信時避免破壞各自數(shù)據(jù)的能力。同步問題是由前面說到的Win32系統(tǒng)的CPU時間片分配方式所引起的。雖然在某一時刻,只有一個線程占用CPU(單CPU時)時間,但是沒有辦法知道在什么時候,在什么地方線程被打斷,所以如何保證線程之間不破壞彼此的數(shù)據(jù)就顯得非常重要。

      利用Windows的API實現(xiàn)同步,Windows API函數(shù)提供了很多同步技術。使用線程的時候,遇到的一個基本的問題,就是多個線程訪問同一個對象,比如訪問相同的文件、DLL、相同的通訊資源,特別是數(shù)據(jù)庫的訪問,當多個線程對同一數(shù)據(jù)庫字段寫入的時候,其結果會出現(xiàn)不確定性。

      臨界區(qū)用于解決這個問題,它可以保證線程使用敏感數(shù)據(jù)的時候,阻賽其他的線程訪問名干數(shù)據(jù),使用時首先要初始化,其聲明一個

      TRTLCriticalSection類型的變量:

      var

      CS:TRTLCriticalSection;

      初始化:

      initializeCriticalSection(cs);

      獨占

      EnterCriticalSection(cs);

      解除獨占

      LeaveCriticalSection(CS);

      使用臨界區(qū)是比較方便而且概念比較清晰的的線程同步機制,應用比較廣泛。

      在曲線顯示模塊的設計中,其中主要采用的數(shù)學方法。

      (三)曲線顯示模塊設計

      液壓萬能試驗機在數(shù)據(jù)采集過程中,所采集到的是一些離散數(shù)據(jù)點,這些離散的數(shù)據(jù)點中會存在誤差較大和明顯不正確的點,就需要分析和處理來提高數(shù)據(jù)準確性,保證能繪出光滑的數(shù)據(jù)曲線。特別在試驗機啟動和停止時,由于收到較大的電磁干擾等,采集的數(shù)據(jù)往往會產生突變。為了解決這些數(shù)據(jù)誤差,本系統(tǒng)采用線性插值和最小二乘法曲線擬合等數(shù)學原理,進行去毛刺處理,對數(shù)據(jù)曲線處理以便得到光滑實驗曲線,便于進行實驗分析。

      1.線性插值

      已知函數(shù) y=f(x)在節(jié)點 x0,x1有函數(shù) y0=f(x0),y1=f(x1),求作一次多項式L(x)=a0+a1x,使它滿足條件L(x0)=y(tǒng)0,L(x1)=y(tǒng)1。這種插值稱為線性插值,在節(jié)點上插值的誤差為0。

      本系統(tǒng)由于采樣頻率比較高,兩個相鄰的采樣點可以近似的看成直線,選用線性插值就可以完成。

      本文采用Lagrange插值方法。

      Lagrange插值是n次多項式插值,其成功地用構造插值基函數(shù)的方法解決了求 n次多項式插值函數(shù)問題?;舅枷胧菍⒋蟮?n次多項式插值函數(shù) pn(x)改寫成另一種表示方式,再利用插值條件確定其中的待定函數(shù),從而求出桿值多項式。在區(qū)間[a,b]中已知 y=f(x)在該區(qū)間上有 n個不同點x1,x2,…,xn處的函數(shù)值 yi=f(xi)(i=1,2,…,n)。用 Lagrange插值公式計算指定點u處的函數(shù)近似值。

      Lagrange插值多項式:

      其中

      Lagrange插值余項

      2.最小二乘法擬合曲線

      系統(tǒng)進行數(shù)據(jù)采集時,所采集到的數(shù)據(jù)為一些離散的數(shù)據(jù)點,為了使數(shù)據(jù)曲線平滑、準確,采用最小二乘法擬和曲線,產生一個多項式或已知函數(shù)來對這些離散的數(shù)據(jù)點進行逼近。

      根據(jù)一組給定的實驗數(shù)據(jù)(xi,yi)(i=0,1,…,m),求出自變量x與因變量y的函數(shù)關系y=s(x,a0,…,an)(n<m),這是ai為待定參數(shù),由于觀測數(shù)據(jù)總有誤差,且待定參數(shù) ai的數(shù)量比給定數(shù)據(jù)點的數(shù)量j少(即 n<m),因此它不同于插值問題。這類問題不要求 y=s(x)=s(x,a0,…,an)通過點(xi,yi)(i=0,1,…,m),而只要求在給定點 xi上的誤差δi=s(xi)- yi(i=0,1,…,m)的平方和最小。當s(x)=span{ Φ0,Φ1…,Φn}時,即 s(x)= a0Φ0(x)+ a1Φ1(x)+…+ anΦn(x)這里Φ0,Φ1…,Φn∈C[a,b]是線性無關的函數(shù)族,假定在[a,b]上給出一組數(shù)據(jù){(xi,yi)(i=0,1,…,m)},a≤xi≤b以及對應的一組權{ρi}0m,這里ρi>0為權系數(shù),要求s(x)=span{ Φ0,Φ1…,Φn}使(a0,…,an)最小。

      這就是最小二乘逼近,得到的擬合曲線為y=s(x),這種方法稱為曲線擬合的最小二乘法。

      I(a0, a0,…,an)實際上是關于 a0, a0,…,an的多元函數(shù),求I的最小值就是求多元函數(shù)I的極值,由極值必要條件,可得

      根據(jù)內積定義引入相應帶權內積記號

      則可得

      這是關于參數(shù)a0,a0,…,an的線性方程組,用矩陣表示為

      均方誤差為

      在實際擬合試驗曲線時,取次數(shù)為 2的最小二乘擬合,得到擬合方程s(x)。

      (四)結論

      我國數(shù)萬臺低檔試驗機在國標GB228-87的促進下,必須改造。用電子和計算機技術改造試驗機已經(jīng)有了成功的例子。設計生產一種適臺國情的中檔材料試驗機的新機型是我國目前市場的需要,應該受到有關部門和試驗機廠家的重視。本文就其中的關鍵技術做了研究和闡述,旨在對微機控制液壓萬能試驗機的推廣應用提供有益的參考。

      [1] 王勇.材料試驗機的速率與數(shù)據(jù)采集技術的研究[R].北京工業(yè)大學碩士論文,1994(1):3-9.

      [2] 曹少方.液壓萬能試驗機自動測試裝置拄術報告[J].北京工業(yè)大學,1989.

      [3] 駱涵秀.試驗機的電液控制系統(tǒng)[M].機械工業(yè)出版社, 1991.

      [4] 沈紅衛(wèi).RS一 232串行期通訊的實踐探討[J].計算機工程,1999(7):40-42.

      TH123.+1

      A

      1008-1151(2011)06-0122-03

      2011-03-10

      趙春雨(1973-),男(滿族),遼寧錦州人,成都理工大學工程技術學院助教,碩士,研究方向為機電傳動;王俊飛 (1983-),男,山西太原人,成都理工大學工程技術學院助教,碩士,研究方向為液壓傳動。

      猜你喜歡
      試驗機控件線程
      鐵路軸承試驗機
      哈爾濱軸承(2020年2期)2020-11-06 09:22:28
      接觸疲勞試驗機伺服電動缸加載系統(tǒng)設計
      哈爾濱軸承(2020年1期)2020-11-03 09:16:08
      關于.net控件數(shù)組的探討
      軟件(2018年7期)2018-08-13 09:44:42
      淺談linux多線程協(xié)作
      橡膠整體式履帶動態(tài)嚙合試驗機的設計
      水泥電動抗折試驗機的應用研究
      河南科技(2014年10期)2014-02-27 14:09:20
      Linux線程實現(xiàn)技術研究
      就這樣玩會VBA中常見的自定義控件
      電腦迷(2012年24期)2012-04-29 00:44:03
      么移動中間件線程池并發(fā)機制優(yōu)化改進
      在PowerBuUder中利用WinSock控件制作簡單的Web服務器
      杨浦区| 行唐县| 特克斯县| 曲松县| 房产| 海宁市| 静海县| 乌恰县| 普陀区| 蒙山县| 潞西市| 五家渠市| 蒲城县| 中江县| 清丰县| 佛学| 龙门县| 三穗县| 邢台市| 梅州市| 酉阳| 奎屯市| 靖边县| 府谷县| 马龙县| 荣成市| 大足县| 甘泉县| 龙岩市| 定结县| 苍溪县| 秦安县| 巨野县| 黄山市| 尚义县| 囊谦县| 巩义市| 兴和县| 勃利县| 札达县| 高陵县|