新聞中心

EEPW首頁 > 測(cè)試測(cè)量 > 設(shè)計(jì)應(yīng)用 > 在LabVIEW下建立彈球模型

在LabVIEW下建立彈球模型

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

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


1. Simulation Module

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


點(diǎn)擊看大圖


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


2. G Code

不用Simulation Module,單單用LabVIEWG code,也能對(duì)這個(gè)簡(jiǎn)單的物理模型進(jìn)行仿真。下圖是用LabVIEW編寫的程序:


點(diǎn)擊看大圖


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


3. Mathscript

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

點(diǎn)擊看大圖


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

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


點(diǎn)擊看大圖


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

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



關(guān)鍵詞: LabVIEW 彈球模型 仿真方式

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉