放風箏是一項起源於中國的傳統娛樂專案,隨後推廣到世界各地。按作用可以分成節日慶典祝福風箏,體育競技類,單純的娛樂向風箏等。要想用計算機較為真實的模擬風箏運動,首先我們先得搞清楚風箏的受力情況。
飛行原理
如圖(b)所示,風箏在天空中飛翔時所受的力為:風箏線的張力,尾巴的張力,自身的重力,以及風的作用力,這裡我們分為公升力和阻力。風箏飛行原理與飛機等類似,但是相比,因為本體非常薄,更易受風的影響。
地面上的人通過風箏線調整線的張力大小,我們可以通過之前介紹的 [繩子模擬] 一篇使用質量-彈簧系統來實現。同理尾巴是為了保持風箏平衡,通過調整尾巴的重量,也可以使用mass-spring系統輕易實現。
難點在於公升力和阻力的處理。傳統上,可以通過數值方法對空氣流體的控制方程進行求解,雖然精度上有保障,但是需要構造乙個特殊的風箏面網格結構或者fem,計算量過於龐大,這裡我們介紹一種使用航空力學試驗資料的方法。
公升力和阻力處理
假設風速大小不變,風箏從起飛到平穩飛行的過程中,迎風角(上圖(b))一直在發生變化,也就是說公升力和阻力的大小與迎風角有直接聯絡,有學者通過風洞實驗,測出在ar=0.68(圖中紅線)和ar=1.48(圖中綠線)下,這裡的ar=b/c 是風箏長寬比,即最上圖(a),迎風角的大小對應的公升力係數c_l和阻力係數c_d。
這時候,隨著迎風角α的變化,我們都可以參照圖表得到乙個對應的公升力係數和阻力係數,利用眾所周知的公升力和阻力計算公式,如下:
這裡ρ是空氣密度,u 是氣流相對風箏的相對速度,n是風箏的面法線,s是面積。通過讀取實驗資料計算c_l和c_d,便可以計算出生力l和阻力d。
另外上面的實驗資料α的範圍是0~45。當α>45的時候,我們參照wang[2008]的方法,計算公升力係數c_l和阻力係數c_d,如下:
事實上,在實驗中,隨著迎風角α的變化,風壓中心(第二張圖中的working point)也在一直變化,利用得到的實驗資料,如圖:
根據上述力的合力,我們可以計算風箏的位移,而這裡的風壓中心則會直接影響公升力和阻力的力矩的計算,由此來計算風箏的旋轉。通過控制風箏只在x-z和y-z軸旋轉,以得到更穩定的狀態。
延伸
當然這種方法的侷限性就是只能模擬一般的平面風箏,而像長串風箏,3d形狀的風箏,因為沒有相關風洞試驗資料,模擬起來比較困難。 結果
結果圖如下:
飛行原理
公升力和阻力處理
實時物理模擬
物理模擬入門的大致方向。大致有 1 剛體 rigidbody 的模擬,學習的書籍有多剛體動力學,建議看國外的書籍,國內書籍看了後距離 仍還有相當大距離,開源的專案有bullet等。也可參看以下面的 2 柔體 1 小變形,使用有限元 fem finite element methods 工程上常用。機...
HNOI模擬題 物理
給出一維座標系上的n個點,和n個點所代表的區間,其中第乙個點座標為0。對於任意兩個點,右邊的點可以到達左邊 包括座標相同 當且僅當滿足它們代表的區間有重合且距離不超過乙個給出的值l。求編號2 n的點到第乙個點的最短距離。無法到達輸出 1 對於50 的資料,3 n 20000 對於100 的資料,1 ...
用緩動函式模擬物理動畫
1 緩動函式簡介 1 緩動函式的動畫效果是建立在calayer層級的關鍵幀動畫基礎之上 也就是說用普通的uiview的animation是無法直接實現緩動函式 2 緩動函式是一系列模擬物理效果 如拋物線 方程式的統稱,用以計算給定兩點之間的插值 3 兩點之間插的值越多,效果越好,但是會耗費更多的效能...