MATLAB - 斜上拋射

Topic 動力學的斜上拋射

---

                       

斜上拋射要注意的地方在於:
初速度可以分解為兩個互相垂直的向量,其中Vy與重力加速度g的方向不同
由於只考慮2D平面動力學,在忽略空氣阻力的情況下,已初速度Vo做傾斜角度斜上拋,有以下公式可以描述質點的位置



其中h為可以到達的最大高度

以下用5種初速度(10、12、14、16、18、20m/s)搭配4個仰角(50、60、70、80度),計算質點的高度,為了減少計算時間,以Matlab進行運算


  • v=[10:2:20] :建立初速度陣列v
  • deg=[50:10:80]:建立角度陣列,並轉成徑度量(*pi/180)
  • vel=[ ] ....for...end : 先做一個空的速度矩陣,再以迴圈重複寫入,創造出一個6*4的矩陣
  • theta=[ ]...for..end : 一樣的概念
為什麼要這麼做???

原因是我們計算的原理是一個角度搭配多個初速度,創造出一樣的維度的陣列,可以讓我的算式以逐元運算計算初對應的h值
(例如:v=10搭配50度,v=10搭配60度,v=12搭配50度,v=12搭配60度.....)

這邊有幾個心得:
|心得| : 先做一個空的矩陣,再用想要的方式寫進去
|心得| : 搞清出計算的搭配,再以適當的逐元運算做這件事
目前覺得第二個心得是比較難以言語描述的,但是一個很不錯的技巧

最後的table指令就是show出結果

順帶一提,再不計空氣阻力且不考慮發射高度時,有以下特性:

  1. 當拋射角度=90度,可達到最大高度,其實就是鉛直上拋
  2. 當拋射角度=45度,可以達到最遠的射程
    (因為你必須同時故水平射程跟拋射飛行時間,角度越值水平速度會很小,拋得太斜,飛行的時間不夠長,所以也飛不遠呢!)
  3. 拋射的角度互餘(相加=90度)時,水平射程是一樣的唷!


---

想出來的瞬間很爽,希望能保持腦袋清醒~~~


留言

熱門文章