Skip to content
[EN]

非專業立體機動裝飾研究報告

  1. 本篇是看過【閒聊】人體承受立體機動裝置的加速度之後,覺得此篇有趣,會略有不足,所以作出一次推論和估算
  2. 純為興趣之作,切勿當真
  3. 本人不負責任何因計算或推導錯誤所引起或產生之任何意外。

2013年7月18日

近來大熱之「進擊之巨人」,相信不少人有看過。對於其「蜘蛛俠」式的「立體機動裝置」來移動的設定,相信亦有不少人趨之若鶩,想來說一說,好,本文就用我現學現查現賣的物理和數學知識,去分析「立體機動裝置」的真相。

艾倫的行進方式

巨人們的可怕,相信經歷過多次入侵的艾倫就最清楚不過。「立體機動裝置」最大的用途,是用來對付身高比人類高很多,但弱點只有後頸一小部分的巨人們。為了補足人體的身高不足,迫不得以用繩(鋼纜?)盪來盪去繞到巨人後頸位置,作出致命一擊。

但巨人們極難對付,每次外查的調查兵團只有10%的人可以回來。所以實際操作上,「立體機動裝置」最大的用途,應當是繼馬匹之外,最有效的保命逃跑工具。

image-20230907181515948

根據維基百科所示:

螢幕截圖 2023-09-07 下午6.17.25
  1. 假設繩索是無重量,不拉長,一直綳緊;

  2. Motion為2D,鐘擺行程為一弧而非橘圖形;

  3. 沒有能量流失,忽略空氣阻力和阻力。

則,可得出一條微分方程:

其中g為地球重力加速度: 為繩索長度,為角位移,單位是radians(此為變數,隨時間而變,應為​為初始角度(即一開始放手時的角度)。此為一微分方程,不能輕易求解。

已知鐘擺會由位能-->動能-->位能

位能轉變:

動能轉變:

因為假設沒有能量流失,所以,在每一個角位移(),動能差=位能差

轉成用角位移來表示則為:

(一般中學所學應為: 等公式來表示。但實際上,因現在角速率不是常數,所以也不是常數,應用表示。)

如圖所示,

又,

所以,

代入上式:

中學有學過鐘擺原理,而鐘擺週期為:

但上式是基於為一細角度,一般為​以內。而實際應用以下方法求得:

將上式上下倒轉:

擺動一個周期,角度變化應為:

可以簡化為:

所以,角度由時間應為上式的積分:

好,這條不是人類能理解的積分式,所以我直接複製維基百科的答案:

其中,為complete elliptic integral of the first kind(不要問我是甚麼……)

所以,用人類的語言來說,

而艾倫逃走方向等於巨人前進方向(即水平方向),為簡單計算水平方向的前進速度,用每半個鞦韆水平方向的位移,除半個周期:

image-20230907194217575

水平方向的位移總量有:

所以水平方向逃跑速度:

image-20230907212858742

根據書中所載,60m級數的巨人只出現過兩次(註: 寫這篇研究時,漫畫內容才進入到艾倫奪還戰)。就假設一般都是和巨人化的艾倫一樣都是15m高的級數。那繩索長度按理就不會準備得太長,而且據書中和動畫所見,都是約4-5層樓高。

就假設繩索長 (約4層樓高),為地球重力加速度

初始角度的值應在以內,因為大於,擺盪就不會以當初假設繩子一直都是拉直來進行擺盪。

將公式輸入wolframalpha.com (原來維基百科和wolfram對於K(k)的定義不一樣,差了一個二次方….各位如想代入請注意),得出

image-20230907213537334image-20230907213537334

上圖橫軸為(radians),直軸為艾倫每盪一次的水平平均速度()。

==由此得出,當得出最大值。==

image-20230907214221092

即,艾倫最佳的行進方法應為: 向前方傾角處發射繩索,之後經過最低處感受最高速度(這個純粹用位能完全轉成動能去計算,中學生應該計得出來,所以不作演示),再返回原來高度,這時水平方向行進了用了時間,瞬時速率為,之後再發射下一次繩索。

但話說回來==… 好慢呀…==

水平前進的平均速度最大值只有,用這個速度跑賽跑要秒才能完成。跟一般小學女生的平均時間差不多。就算是最高速度,也不比單車來得快…..難怪沒有瓦斯的部隊注定成為巨人的點心。

image-20230907214636588

怎樣才能保命?

那到底要用怎樣的方法來前進才可以保命呢?在還沒研究氣動裝置之前,就讓我試用所有方法去幫助艾倫逃跑吧。

首先得推測逃跑的速度。在漫畫中所見,馬匹是繼「立體機動裝置」外唯一能逃跑的工具。那就是說,艾倫的逃跑速度至少要跟馬匹一樣。上wolframalpha.com一查,原來馬匹陸上行走最高速度是,也就是說。艾倫要保持著這個速度,就不能只夠用上述的方法盪來盪去。從動畫得到靈感(話說我在動畫還未推出的差不多一年前就已經在看漫畫版),在第六、 第七集動畫中十分活躍的三笠,除了靠著繩索在空中盪之外,有時還會甩開繩索騰空翻滾。

image-20230907215158763

那原來艾倫他們的行進方式應為這樣:

image-20230907215300170

根據維基百科對拋體運動(Projectile motion)所示:

image-20230907215335155

假設以拋一物件,其投射角度為,則:

其中為單位向量,即水平和垂直的方向。

那麼,水平和垂直的加速度則是:

而水平和垂直的位移則是:

 的值越少,則水平方向的速度越快,但與此同時因高度不夠,很快便會墬地;的值越大,則騰空時間多了,但水平移動則不遠,只會原地踏步。

假設最遠的水平距離為, 而其對應的騰空時間為,為物件再次墬地時,

這時候,最遠水平距離為:

有最大值,所以:

所以投射角應為

image-20230907221812339

如上圖,拋體的拋出角度為,而拋體運動的水平的速度為馬匹陸上行走最高速度是,也就是說

如果動能和勢能的轉換中能量沒有流失,那麼

如果沒有了氣動裝置,則艾倫就需要以(即)來助跑起跳,或者是從(約39層樓高)處墮下才能達到此初速。那麼真的非有氣動不可吧!

先不論氣動裝置如何幫忙艾倫達到這速度,現在先來研究一下在這情況下人體所受的繩索拉力。

image-20230910182122922

如之前的計算,

位能轉變:

動能轉變:

因為假設沒有能量流失,所以,在每一個角位移(),

轉成用角位移來表示則為:

代入之後得出:

為了解出這條方程,我嘗試用Matlab去計算。在網上一找,找到一條程式碼。它透過Matlab的ODE函數,找出在每個時間點的數值。

首先,先試試代入之前得出的結論,來驗證一下先前的計算結果。

代入初始角位移,初始角速度為

image-20230910184205052

在上圖,x軸為時間,單位是s,而y軸分別為角位移和角速度。先看看紅線,當時,,即角度由(即),共用了,與當初計算的相符。而這個時候,藍色的角速度線得出角速度接近。而最高速度方面,當角位移(紅色線)為時得出角速度為,乘上繩長即速度值為,亦與之前計算的符合。

好,現在來嘗試一下如果代入艾倫作拋體運動的情況。這時候艾倫水平前進的速度為馬匹在陸上行走的最高速度,所以拋體運動和圓周運動的初始速度都為(即角速度),而圓周運動的初始角度(即)。

image-20230910191035235

由上圖得出,在這個初速下,由去到只要,而角速度則沒甚麼變化,都是保持在之間(即保持在)。這個很重要!因速度變化相對來說不大,之後的計算我就大膽的設其為均速()圓周運動去計算,省卻很多複雜的計算。

順帶一提,在這情況下,如果艾倫不在時放手拋出自己,任由自己轉動,那麼在忽略空氣阻力和摩擦力下,艾倫會轉動392圈,共花24.9分鐘才能進入預期的周期性鐘擺運動。

省卻麻煩的鐘擺運動,簡化其為均速圓周運動去計算的話,那艾倫所受到繩索的拉力加速度為:

假設艾倫質量為,那拉著艾倫的繩索拉力就有:

至底有6400牛頓有多大的力?**想像一下,把艾倫的頭、手和腳牢牢的固定在天花板上,之後在艾倫腰間繫上一隻乳牛…**我不敢說身體會斷開兩半,但我想必死無異吧…(順帶一提,【閒聊】人體承受立體機動裝置的加速度中,對於加速度的計算公式是有誤的,非均速圓周運動不能用去計算。)

待續…

##後記

寫這篇文章時,受到了空想科學系列的影響,那一段時間,都會十分科學地去計算要用多少時間才能把電熱水爐的水加熱、太陽透過窗戶,會為我房間上升多少度等問題。而這一篇則是啟發自【閒聊】人體承受立體機動裝置的加速度的研究,一開始是想驗算一下,但越看則越不對勁,覺得他有些地方錯了,於是用了一星期時間計算、編程和撰寫這文章,也算得上是有趣的回憶。

附錄

由於Matlab是要付費的,已經很久沒有使用過Matlab了,所以改用現在較為流行又免費的Python來完成。

python
import numpy as np
from scipy.integrate import solve_ivp
import matplotlib.pyplot as plt

# Data of the problem.
g = 9.81  # gravitational acceleration
l = 12  # length of the pendulum (distance of the center of gravity from the suspension pivot)

# The second order equation of motion (ODE) was converted to first order form.
# This is the right hand side function. y[0] = angle, y[1] = angular velocity.
def f(t, y):
    return [y[1], -g/l*np.sin(y[0])]

thetadot0 = [-24/np.cos(np.pi/4)/12]  # initial angular velocity

for td0 in thetadot0:
    Theta0 = [np.pi/4, td0]  # initial condition: hanging down, with nonzero initial velocity

    # Solve the ODE
    sol = solve_ivp(f, [0, 2], Theta0, method='RK45', t_eval=np.linspace(0, 2, 1000))

    # Plot the solution
    plt.figure()
    plt.plot(sol.t, sol.y[0, :], linewidth=2, color='red', marker='none', label='angle')
    plt.plot(sol.t, sol.y[1, :], linewidth=2, color='blue', marker='none', label='angular velocity')
    plt.xlabel('Time')
    plt.ylabel('Solution')
    plt.title('Initial angular velocity = {}'.format(td0))
    plt.grid(True)
    plt.legend()
    plt.show()

Last updated: