<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 測試測量 > 設計應用 > 在LabVIEW下建立彈球模型

          在LabVIEW下建立彈球模型

          作者: 時間:2012-09-07 來源:網(wǎng)絡 收藏

          對物理對象進行建模仿真是目前來說非常流行的一種科學研究方法,一般來說,對于這種應用,可以用C語言或者Matlab來實現(xiàn)。作為一種編程語言,其實也能非常方便地實現(xiàn)模型的建立,特別是8.2Simulation Module更是使得仿真建模更加方便直觀,本文就將以實現(xiàn)一個Bouncing Ball)為例,跟大家介紹一下利用來建模的三種方式。


          1. Simulation Module

          Simulation Module這個模塊對于來講還算比較新,但是相信在以后的版本中會有更強大的功能,并且會更加完善和易用。利用這個模塊對彈性球建模的程序如下圖:


          點擊看大圖


          可以看到,整個模型一共有三個可調(diào)參數(shù):彈性系數(shù)(即表示在與地面撞擊時小球速度變?yōu)樵俣鹊谋戎担?,初始速度以及初始高度。?/SPAN>Simulation Loop中,首先對重力加速度g進行積分,得到速度值,再積分得到位置值。其中還判斷了位置是否過了0點(即是否與地面發(fā)生了撞擊),當過了0點時,則將速度乘上彈性系數(shù),位置重置于0。


          2. G Code

          不用Simulation Module,單單用LabVIEWG code,也能對這個簡單的物理模型進行仿真。下圖是用LabVIEW編寫的程序:


          點擊看大圖


          從圖中可以看到,我們用了For循環(huán)使得仿真的循環(huán)次數(shù)為200,每次的dt0.1,根據(jù)dt以及物理動力學公式,可以得到當前的速度以及位置等信息,再與上例一樣進行過0檢測,并進行相應的操作。可以看到,用LabVIEW編寫程序稍微煩瑣一點,主要是數(shù)學運算太多,使得整個Diagram過于占用面積。


          3. Mathscript

          Mathscript也是LabVIEW 8.2的一個新特性,目前來說,對于LabVIEW主張的是文本與圖形混合編程的方式,這樣可以兼顧兩種編程方式的優(yōu)勢,使得開發(fā)效率達到最高。下圖是用Mathcript編寫的仿真代碼:

          點擊看大圖


          整個Mathcript的代碼是類m代碼,即只要你在Matlab下能夠順利運行這些代碼,那么90%你就能直接貼到這個節(jié)點里運行。如果仔細研究下程序的話,可以看到它的運算方式與用G Code類似,但是由于用到了文本編程方式,使得代碼更有效率,這也是為什么用混合編程的最大原因。

          下面是用了這三種的結(jié)果比較圖:


          點擊看大圖


          可以看到,用Simulation Module的算法由于用到了專業(yè)的Rounge-Kutta計算方法(即Solver),因此在實際的仿真結(jié)果上可以確認為可信,那么其他兩種方法在減小dt的條件下也能使得其仿真效果接近Simulation Module

          總結(jié)一下,用LabVIEW建模是目前來說比較新的方法,但是由于LabVIEW擁有非常強大的數(shù)據(jù)采集功能,界面功能等優(yōu)勢,因此將這些與建模整合起來的話,就可以很方便地進行快速原型設計和硬件在環(huán)測試等高級應用。



          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();