題主,你聽我一句話,現實世界水很深,解析解他把握不住,得讓數值解來。
其實這個問題是有實際套用的,屬於非常典型的「航空拖曳」問題。如圖:
在很多場景中都需要知道這根線的形狀,而且不止形狀,線在空間中的擺動規律、幅值都需要分析清楚,這裏面要分析流場影響、線的材質、拖曳物體氣動特性、線管內是否有液體流動等因素。所以本問中只在二維平面內運動的風箏線只能算入門難度。本文將利用MATLAB的multibody模組對風箏線的形狀和運動進行模擬,模型檔在文末提供。
這類問題的常規解決辦法是將線看做n段直桿的連線,每段直桿品質分布均勻且看做剛體。直桿之間使用鉸接,鉸接有扭簧性質,即受彎會產生恢復力矩。每根直桿除了受到兩端的拉力和力矩外,還受過重心的重力和氣動力。與地面和風箏連線的鉸不存在扭簧彈力和摩擦力。一般來說這根線分成越多份直線段,模擬結果越準,這裏我們將其分為10段,開始建立模型:
線段模型
將風箏線看做多根勻質剛性連桿的組合體,如圖:
線段間使用鉸(紅框)相連,考慮到風箏線或是其他繩索不能無阻力彎曲折疊,所以定義此鉸接具備扭簧彈力和旋轉阻尼,使其具備變形恢復趨勢和耗散能量的能力,具體參數值可在配置檔中定義。
透過測量每條線段與世界座標系的角度,計算每條線段與風的夾角,從而計算出每條線段所受風的阻力,並使阻力作用線上段上(綠框)。這裏認為線段阻力系數恒定,使用迎風面積計算阻力,即線段與風垂直時阻力最大,與風平行時沒有阻力,認為線段不產生升力。空氣密度、風速、風向由配置檔定義。
將以上線段模型進行封裝,可得單條線段的模型,之後想用多少條線段就可以直接復制貼上並連線在一起:
風箏模型
定義一個簡陋的風箏。風箏為正方形,邊長、重量由配置檔定義:
定義風箏具有3個連線點,其中1個連線點用於與線段連線,1個連線點用作升力和阻力作用點,1個連線點用於備份,因為肯定有人想在後面連上更多線和風箏,形成蜈蚣風箏:
風箏與線的連線情況如上圖,這裏兩者的連線點不在風箏面上是因為:眾所周知,風箏是多條線匯合到一個點與放風箏的線連線的,連線點並不在風箏上。
風箏阻力計算與線段類似。風箏升力計算使用了一個非常簡陋的假設:假設風箏升力始終向上。做這個假設的原因是防止出現無控制狀態下風箏不能放飛的情況。風箏力矩計算是根據風箏的迎角計算得出。最終把風箏封裝起來,與線段相連,整個模擬系統就搭建完畢:
模擬結果
當然還可以模擬以下情況:
結束語
本模擬程式只是搭建了一個簡單的框架,其中對升力變化和氣動阻尼考慮得不夠充分,所以有些時候風箏和風箏線的運動會有些奇怪,但是對於風箏線穩態的形狀應該能有較好的模擬效果。模型檔放到了公眾號「飛行課」中,感興趣的朋友可以公眾號內回復「風箏線」獲取。