新聞中心

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

在LabVIEW下建立彈球模型

作者: 時間:2012-09-07 來源:網絡 收藏

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


1. Simulation Module

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


點擊看大圖


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


2. G Code

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


點擊看大圖


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


3. Mathscript

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

點擊看大圖


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

下面是用了這三種的結果比較圖:


點擊看大圖


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

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



評論


相關推薦

技術專區(qū)

關閉