螺旋槳 6:性能計算

本篇我們要來做一件稍微硬核的事情,計算分析螺旋槳的性能! 本篇使用的是 Blade Element Theory (BET)計算法, 通常被使用來快速分析一個螺旋槳設計外型的粗略性能表現。 除了產生的總推力和需要消耗的旋轉功率之外, 也能透過分析讓我們一窺在槳葉上面的氣流分佈, 了解螺旋槳的各種參數如轉速、槳距、和飛行航速之間的消長關係, 以及誘導氣流在其中所佔據的影響力。

在往下分析計算螺旋槳的性能之前, 讀者請記得先閱讀過關於機翼剖面型的升阻力計算內容 [1], 因為本篇的分析將以該篇之內容作為起點基礎。

螺旋槳的槳葉與飛機的機翼並沒有本質上的不同, 都是翼片切割空氣產生相對氣流,然後氣流在翼片上產生作用力, 只不過在一般機翼上的作用力被我們叫作升力與阻力,而在螺旋槳上面它們則是推力與轉矩。 雖然螺旋槳看上去好像比常見的機翼更加複雜些, 然而若再度請出祖傳的「用力分割法」將螺旋槳槳葉切割為許多的小塊 (如果是從我的航空系列文章一路讀下來的讀者應該已經很熟悉這種手法了), 則每一塊的情況都將變得相當單純了,能夠計算了。 最後再把各小塊的計算結果加總起來,就得到了整體最後的結果。

fig1 1 propeller and forces
Figure 1. 螺旋槳切塊與作用力示意 [2]

翼剖面型

在繼續更複雜的內容之前,首先要先來挑選將要使用在螺旋槳槳葉上的翼剖面形狀。 一個實際螺旋槳上的翼剖面通常會有好多不同的形狀,從槳葉根部到尖端的每個位置都是不同的形狀, 而在本篇的分析中為了簡單起見,整隻槳從頭到尾將只採用一個翼型。 但是在本篇及下篇使用的分析程式中是有預留能夠在不同槳葉位置使用不同翼型參數的擴展空間的, 讀者自己拿去使用的時候可以不用擔心受到本篇只使用單一翼型的限制。

雖然這裡說的是要決定翼型,但是在分析中其實我們並不關心翼型的實際長相, 真正需要的只有該翼型的性能參數也就是升力係數(\(C_l\))與阻力係數(\(C_d\))而已。 因此在本篇與下篇的分析程式中會發現沒有任何關於翼型的外型定義設定,只有翼型的升阻對應函式或表格而已。 另外也是為了簡單起見,本篇並沒有使用實際的翼型參數表,而是使用簡單的數學式來模似翼型的性能表現。 當然這點也並不影響程式的可用性, 讀者自己拿去計算的時候同樣可以將其內容替換為實際使用的翼型參數資料。

本篇分析所使用的模擬翼型的升阻力係數之數學表達式如下:

\[ \alpha_0 = -2.1 \frac{\pi}{180} \]

\[ C_l = \begin{cases} 2 \pi ( \alpha - \alpha_0 ) & \quad \text{if } \alpha - \alpha_0 \leq 0.25 \\ \frac{1}{2} \pi \frac{\cos( \alpha - \alpha_0 )}{\cos(0.25)} & \quad \text{if } \alpha - \alpha_a0 > 0.25 \end{cases} \]

\[ C_d = \begin{cases} 0.224 ( \alpha - \alpha_0 )^2 + 0.006 & \quad \text{if } \alpha - \alpha_0 \leq 0.25 \\ 16.6944 ( \alpha - \alpha_0 )^2 - 1.0234 & \quad \text{if } \alpha - \alpha_0 > 0.25 \end{cases} \]

其中:
\(\alpha\) 為攻角,也就是翼弦線與氣流的夾角;
\(\alpha_0\) 為此翼型的零升力攻角。

將以上算式畫成圖表的話,那麼本篇所使用的翼剖面升阻參數就長成下圖(Figure 2Figure 3)的樣子。 可看出我們所使用的模擬翼型大約在攻角 12 度左右的位置會發生流場分離現象, 大於那個角度之後的升力會開始下滑,並且阻力陡升。

fig2 1 lift plot
Figure 2. 本篇模擬翼型之升力係數圖表
fig2 2 drag plot
Figure 3. 本篇模擬翼型之阻力係數圖表

槳盤與槳葉(最簡單的分析)

fig3 1 blade measurement
Figure 4. 槳盤與槳葉的參數定義

上圖(Figure 4)是以槳盤為參考基礎下的一些幾何有關的各參數名稱定義。 為了文章的單純化,避免過多雜亂的冗餘敘述,本篇全篇使用統一一致的名稱定義, 因此許多在前面已經交代過的名稱意義,到了後面通常就不會再重複解釋交代了。

整隻螺旋槳的盤面直徑為 \(D_p\), 注意螺旋槳中央會有一部份的區域是會被排除在計算之外的, 那部份通常就是螺旋槳中間的整流罩或是暴露的軸心結構區(槳轂區), 該區域的直徑為 \(D_h\)。

我們將一片槳葉以螺旋槳軸為中心,依據不同的半徑距離將槳葉切割為許多小塊 (切的愈多計算就愈準,至於上圖只是示意就無需較真切塊的數量)。 我們抓取其中被青色斜線標記的那一塊來看, 可知這一個小塊方形區域的長寬分別為 \(dr\) 和 \(c\),面積就是 \( dr \cdot c \)。 其中 \(dr\) 的大小和小區塊分割的數量有關,區塊數量分個的愈多則 \(dr\) 愈小。 好的,這裡我大概知道你想要問什麼問題。 沒錯,這其實實際上並不會是一個真正的長方形,因為槳葉的寬度可能是漸變的; 但是這種分別切割計算的方式之所以能有效降低問題的複雜度, 就在於無視單一格子內的數字差異變化而統一視之。 因此在上面的切割圖之下,每一個小區塊內就不存在外型增寬或縮窄的問題,因此它就是個長方形。 (也因此,這就是為什麼區塊切的愈多就算的愈準,而切的愈少則誤差愈大!)

這一個槳葉小塊距離轉軸中心的距離為 \(r\)。 那麼假設螺旋槳的轉速為 \(\omega\) (注意這裡的轉速單位不是一般市井通用的 RPM, 而是在數學計算領域中更加通用的轉速單位:每秒徑度,也就是 rad/s), 那麼這個槳葉小塊因為旋轉而產生的前進速度就是 \( r \cdot \omega \)。 如果暫時先不考慮一些其它細節的話,那麼到這裡我們就什麼都有了! 這個槳葉小區塊在旋轉的迎風氣流下會產生的升力與阻力, 都能夠使用在前篇 [1] 已經介紹過的內容來做計算:

\[ V_b = r \cdot \omega \] \[ dLift = \frac{1}{2} \rho {V_b}^2 ( c \cdot dr ) \cdot \mathit{C_l}(\alpha) \] \[ dDrag = \frac{1}{2} \rho {V_b}^2 ( c \cdot dr ) \cdot \mathit{C_d}(\alpha) \]

其中:
\(V_b\) 為槳葉小塊所受到的相對氣流;
\(dLift\) 為槳葉小塊產生的升力;
\(dDrag\) 為槳葉小塊產生的阻力;
\(\rho\) 為空氣密度;
\(\alpha\) 為攻角,即槳葉小塊弦線與氣流之間的夾角,目前為止這個攻角就等於槳葉在該位置所造出的扭轉角度,也就是在後面會出現的 \(\beta\) 角;
\(\mathit{C_l}()\) 為槳葉翼型的升力係數函式,代入攻角 \(\alpha\) 後得到升力係數;
\(\mathit{C_d}()\) 為槳葉翼型的阻力係數函式,代入攻角 \(\alpha\) 後得到阻力係數。

這樣我們就計算出了一個小區塊所產生的力,其中的升力就是槳葉推力,阻力就是槳葉阻力, 而對螺旋槳軸產生的轉動力矩則就是槳葉阻力乘上力臂長度(也就是槳葉小塊所在的槳葉半徑位置 r)就是了。 那麼這單一一個小塊所產生的推力(Thrust)、轉軸扭矩(Torque)、 和需要消耗的轉動功率(Power)也就是需要發動機提供動力來對抗的功率, 以上三個數值分別就是:

\[ dThrust = dLift \] \[ dTorque = dDrag \cdot r \] \[ dPower = dTorque \cdot \omega \]

其中為了區別單一小塊和整副螺旋槳所產生的作用力,這裡給單一小塊的作用力都加上一個前綴 d。

最後再把所有的小區塊結果通通計算出來,然後全部加一起,就是整隻槳葉的結果了。 最後的最後看這螺旋槳有幾隻槳葉,再將結果乘上槳葉數量 N,就能得到整副螺旋槳的最終結果:

\[ Thrust = N \sum dThrust \] \[ Torque = N \sum dTorque \] \[ Power = Torque \cdot \omega \]

這樣有沒有覺得很簡單啊?就這麼簡單就把螺旋槳的性能給計算出來了! 原理就是這樣沒錯,不過在上面的計算中其實忽略了相當多的其它條件, 所以計算的結果會和實際上相當有落差。 不過以循序漸進的角度來看,目前這樣的程度算是夠用了, 已經足夠建立起後面要逐漸深入的前導知識概念。 那麼接著繼續往下,我們就要繼續把更多的影響因素給加進來, 複雜度會逐漸升高,但也能讓我們得到更加接近真實的東西。 那就準備好繼續往下閱讀吧!

考慮飛行速度

fig4 1 cross measurement without induced
Figure 5. 槳葉切片小塊的剖面幾何與相關氣流參數定義

前面的螺旋槳分析算法過於簡單, 沒有考慮到飛機本身正在以某個速度飛行所帶來的相對氣流對螺旋槳產生的影響。 因此接下來我們就把飛機飛行的速度加入我們的計算模型內, 也就是為我們的螺旋槳加入一個垂直於盤面的氣流速度 (\(V_\infty\)), 其即為前述之飛機飛行速度所帶來的相對氣流。

在考量 \(V_\infty\) 存在的情況下, 仍然能夠沿用前面介紹過的算法概念,只需要修改調整其中的部份算式內容。 那麼這次就讓我們繼續將焦點放在其中一塊槳葉小塊,只不過從俯視的角度轉向側視, 從側面的角度觀看分析槳葉小塊的剖面、以及其上的氣流與受力,如圖(Figure 5)所示。 其中槳葉的受到的相對氣流 \(V_b\) 不再完全等同於 \( r \cdot \omega \), 而是由 \( r \cdot \omega \) 和 \(V_\infty\) 這兩個互相垂直的氣流所合成的氣流。 那麼 \(V_b\) 的大小就能夠使用直角三角形邊長的計算法,或由三角函數算法來求得 (很明顯本篇選擇使用三角函數算法,但讀者想要自己計算驗證的話也可以嘗試使用直角三角形算法), 而 \(V_b\) 與槳葉旋轉運動方向之間就會產生一個 \(\varepsilon_b\) 的夾角。 這時槳葉的氣流攻角就不再等同於槳葉安裝角(Pitch Angle (\(\beta\))), 而是 \(\beta\) 減去 \(\varepsilon_b\) 後的夾角。 最後還要注意翼片的升阻力定義是垂直與平行氣流的力, 那麼在當前的情況下這兩個力(也就是示意圖中的 L 和 D 兩力)就和螺旋槳推力方向與轉矩方向產生了一個夾角, 在計算的時候也需要考量到這一點。

那麼在大部份沿用前面描述的算法之下,需要調整變更的算式如下:

\[ \varepsilon_b = \tan^{-1}( \frac{V_\infty}{ r \cdot \omega } ) \] \[ \alpha = \beta - \varepsilon_b \] \[ V_b = \frac{ r \cdot \omega }{ \cos(\varepsilon_b) } \]

\[ dThrust = dLift \cdot \cos(\varepsilon_b) - dDrag \cdot \sin(\varepsilon_b) \] \[ dTorque = r ( dDrag \cdot \cos(\varepsilon_b) + dLift \cdot \sin(\varepsilon_b) ) \]

就這樣經過簡單的計算式調整,至於其它沒調整的部份則全部繼續沿用原有的內容, 然後我們就能夠處理具有飛行前進速度下的螺旋槳性能分析計算了! 有沒有很簡單啊?

考慮誘導氣流

fig5 1 propeller vortices
Figure 6. 螺旋槳誘導渦流示意圖 [3]

我們知道在運轉中的螺旋槳上面是存在誘導渦旋氣流的 [4] 。 如果說這個誘導氣流對螺旋槳造成的影響夠小的話,那麼倒是可以無視它的存在; 問題是在實際的情況中這個誘導渦旋不只存在,影響還佔相當大的比例, 如果忽略的話那結果的誤差還挺大的! 所以接下來我們就要加入考量誘導渦旋存在的情況。 這會讓整個情況變得更加複雜,且讓我們繼續研究下去……

fig5 2 cross measurement
Figure 7. 加入誘導氣流後的槳葉切片剖面幾何與相關氣流參數定義

如同上圖(Figure 6)所表示的那樣, 當螺旋槳葉片在旋轉攪動空氣的時候,槳葉產生高氣壓的一側空氣會從葉片尖端翻越過去, 形成一股從葉尖引發的渦旋,吹襲整片槳葉、以及也會同樣影響其它槳葉。 所有的一切分析概念和計算方法仍舊繼續延續前面已經得到的結果, 只不過同樣需要修改當中的一些東西,加入考量誘導氣流存在的狀況。 讓我們繼續專注於槳葉小塊的剖面視圖(Figure 7)。

在這張圖片(Figure 7)中,雖然看上去好似有些複雜,但其實基本都和前一張圖是一模一樣的, 只不過多了一個由誘導流所產生的氣流(\(V_i\)), 至於 \(V_{i\infty}\) 和 \(V_{i\theta}\) 則是 \(V_i\) 在推力軸上和葉片旋轉方向上的分量。 另外要注意到 \(V_i\) 是垂直於最終氣流 \(V_b\) 的,而不是平行於自由氣流 \(V_\infty\), 原因與升力阻力的方向定義建基自由流相同。 另外還有一個神奇的問題,這個誘導流 \(V_i\) 到底多大呢? 剩下的兩個氣流都很容易取得,一個就是飛機行進的速度而另一個就是螺旋槳旋轉的速度乘上半徑, 但就惟獨不知道這個誘導流的大小到底是何? 關於這部份是有些困擾但不大, 我們先暫時放下誘導流的大小到底多大的這個問題,待到後面再回來想辦法解決。 因此接下來我們就先暫時忽略 \(V_i\) 到底怎麼算的部份,就先假定我們已經使用魔法知道它多大了!

那麼在解決了 \(V_i\) 怎麼得來的問題後, \(V_i\) 就成了個已知數,同樣的誘導角 \(\varepsilon_i\) 也就連帶為已知, 那麼剩下的事情就好辦了! 在延續前面考慮了飛行速度所得出的計算概念和算法之下,進一步我們需要修正下面這幾條計算:

\[ \varepsilon_\infty = \tan^{-1}( \frac{V_\infty}{ r \cdot \omega } ) \] \[ \varepsilon_b = \varepsilon_\infty + \varepsilon_i \] \[ V_i = r \cdot \omega \frac{\sin(\varepsilon_i)}{\cos(\varepsilon_\infty)} \] \[ V_{i\theta} = V_i \sin(\varepsilon_b) \] \[ V_{i\infty} = V_i \cos(\varepsilon_b) \] \[ V_b = r \cdot \omega \frac{\cos(\varepsilon_i)}{\cos(\varepsilon_\infty)} \]

你看,很簡單吧! 建立在前面的基礎之下,僅僅修改這麼一點點東西就能夠套用了! (當然這時候少不了一點點苦笑)

求解誘導流

前面我們蒙著眼睛假裝已經知道誘導流的大小,並且整理完了剩下的所有計算。 然而這個誘導流不能夠一直懸而未解啊! 如果要真實的完成所有的計算去分析一個螺旋槳,總歸還是得面對這個問題。 那麼本節就來繼續解決關於求解誘導流的這個問題,補上最後這一塊拼圖。

關於這個問題我們使用基於環流理論的研究成果來解算 (就是好久以前我曾簡單介紹過的那個 環流理論 [5] , 這次終於給大家演示一遍實際應用了)。 根據 Goldstein’s Vortex Theory [6]

\[ N \Gamma \cong 4 \pi r f V_{i\theta} \] \[ \Gamma = \frac{1}{2} V_b \cdot c \cdot \mathit{C_l}(\alpha) \] \[ f = \frac{2}{\pi} \cos^{-1} \left\{ \exp\left( \frac{ -N \left( 1 - \frac{ 2 r }{D_p} \right) }{ 2 \sin(\beta_t) } \right) \right\} \]

其中:
\(\Gamma\) 就是當下這個槳葉小快所產生的環流強度;
\(f\) 為 Prandtl’s tip loss factor;
\(\beta_t\) 則為槳葉尖端翼型的扭轉角 \(\beta\)。

稍微整理調整一下上面的計算式可得:

\[ N \Gamma - 4 \pi r f V_{i_\theta} = 0 \]

仔細左看右看思考一下就會發現上面這條式子裡面所有的數都是已知的,除了 \(\varepsilon_i\) 之外。 那麼一個方程式只有一個未知數,肯定能夠求解了! 基本上個人覺得上面的方程式對於程式寫作來說算是比較友好的, 但如果讀者不把它展開會犯強迫症,或者不習慣到處來回參閱相關的其它計算式的話, 那麼也是可以將這個方程式所需要用到的前面那些計算式全部代入進來並展開, 那麼就會得到下面這條式:

\[ \frac{N c}{16 r} \mathit{C_l}( \beta - \varepsilon_\infty - \varepsilon_i ) - \cos^{-1} \left\{ \exp \left( \frac{-N \left( 1 - \frac{2 r}{D_p} \right)}{2 \sin(\beta_t)} \right) \right\} \tan(\varepsilon_i) \sin( \varepsilon_\infty + \varepsilon_i ) = 0 \]

把算式展開以後, 應能更加看得清楚整條式裡面真的就只有 \(\varepsilon_i\) 這麼一個數是未知的,肯定可以求解了! 只不過請先別緊張,雖然理論上這條式子能夠求解, 但是這看上去這麼複雜的方程式,真的要分析解的話應該會先去掉半條命吧! 於是面對這種方程式,我們通常會請出真正的魔法工具出來解算。 那麼這種聽起來好像很厲害的解法到底是怎麼解算呢? 說出來可能能讓你正在喝的水噴出來,核心秘訣就一個字:猜! 是的,就是這麼樸實無華。 那個方程式右邊不是零嗎? 那我們就給 \(\varepsilon_i\) 隨便猜一個數字代入方程式左邊算一算,最後算出來的結果肯定不是零; 但是我們一直繼續猜,不斷的猜,最後總會找到一個數字能讓計算的結果等於零或者相當接近於零, 那麼我們就當作最後這個能讓計算結果接近於零的 \(\varepsilon_i\) 就是方程式解了!

Tip
上面的解算方法看著描述好像有點無厘頭, 然而這其實就是所謂的數值計算方法(Numerical Methods)。 那些使用電腦的計算力來求解複雜函式的方法核心其實也就是猜, 只不過使用了可能更有效率,猜的更快的猜法策略而已。

搞定了 \(\varepsilon_i\) 解算的問題之後,剩下來的事情我們都已經知道該如何做了。 把 \(\varepsilon_i\) 數值代入進去,槳葉小塊的各力就能計算出來, 再匡匡一頓操作,整副螺旋槳的性能數據也就順手做出來了! 當然相關的計算量會相當龐大, 除了因為把槳葉大量切成一塊一塊本身就是相當的計算量之外,每一個小塊為了求解誘導角還得反覆橫猜。 不過這時候請千萬不要說什麼用手算要算到天荒地老之類的話, 因為作為我們現代人,這種苦工沒有人在自己用手算的,請妥善利用電腦來做這種苦差事!

效率

至此我們已經有能力把一副螺旋槳的推力、扭力等性能給計算出來,接下來介紹如何計算螺旋槳的效率。

螺旋槳的效率是什麼意思呢?就和齒輪傳動的效率是一樣的! 如果類比套用我從前介紹過發動機效率的原理 [7] , 那麼螺旋槳其實也能是一個黑盒子機器, 它的作用就在於將旋轉形式的機械能量,轉換為向後加速空氣並推動飛機前進的能量。 那麼在這樣的能量轉換過程裡面可能就會產生一些損失, 而存在損失的話,自然就會有損失多還少的問題,也就是轉換效率多少的問題。

fig6 1 prop stream
Figure 8. 管道中的螺旋槳推動氣體向後移動

要計算螺旋槳效率,首先要計算的就是轉換前、後的能量是多少,也就是輸入與輸出的能量是多少? 輸入螺旋槳的功率其實我們已經知道了,就是前面計算式裡面的 Power,也就是螺旋槳的扭力乘上轉速; 那麼輸出呢? 螺旋槳的最終作用就是推動氣體向後移動,如同上圖(Figure 8)所示, 因此螺旋槳的推力乘上氣體移動的速度就是螺旋槳的輸出功率了。 推力多少我們已經知道了,那麼氣體移動速度是多少呢? 欸~這可不就是前面已經設定好的自由氣流的速度了嗎(其實也可以理解為就是飛機前進的速度)? 於是螺旋槳的推進效率(\(\eta\))就是:

\[ \eta = \frac{ Thrust \cdot V_\infty }{ Torque \cdot \omega } \]

係數化

現在我們終於把一副螺旋槳的性能數據都能計算出來了,包含推力、扭矩、功率和效率等, 但是還尚缺少最後的一步,那就是將這些數據給係數化; 至於係數化的意義如同 前篇的介紹 [1] 一樣, 是為了儘量降低螺旋槳性能數據與其它變量的牽扯關係,儘量讓數據只和螺旋槳的設計本身有關係。

首先來對尺寸的部份進行無因次化。 為了讓螺旋槳的尺寸相關數字與具體的尺寸單位、乃至於與具體的螺旋槳大小無關, 我們將所有的尺寸相關數字都轉化為某個螺旋槳最具代表性尺寸的比例關係, 而這個最具代表性的尺寸就是槳盤直徑 \(D_p\)。 因此我們用數值範圍在 0 ~ 1 的比例 R 來取代具體的半徑 r:

\[ R = \frac{ 2 r }{D_p} \]

螺旋槳的螺距或槳距(\(\lambda\))就是把螺旋槳當螺絲來看的話,旋轉一圈所推進的距離, 而這個距離我們也改用與槳盤直徑的比例關係 K 來替代:

\[ K = \frac{\lambda}{D_p} \] \[ \lambda = 2 \pi r \tan(\beta) \]

然後是關於槳葉的旋轉速度與自由氣流速度,從前介紹過槳距以及槳距調整的相關內容 [8] , 我們知道這兩者之間的消長關係與螺旋槳的性能表現可影響太大了。 但是再仔細分析又發現,該二者的具體數值真正是多是少其實影響不大, 真正重要的其實是兩者的比例關係(也就是反應在前面所有算式裡面的 \(\varepsilon_\infty\))。 於是我們用一個兩者速度的比例關係值 J 來取代對於前述兩個速度的表達:

\[ J = \frac{ 2 \pi }{\omega} \frac{V_\infty}{D_p} \]

再來就是整副螺旋槳的推力係數(\(C_{Thrust}\))、扭矩係數(\(C_{Torque}\))、和功耗係數(\(C_{Power}\))了:

\[ C_{Thrust} = \frac{Thrust}{ \rho \left( \frac{w}{ 2 \pi } \right)^2 D_p^4 } \] \[ C_{Torque} = \frac{Torque}{ \rho \left( \frac{w}{ 2 \pi } \right)^2 D_p^5 } \] \[ C_{Power} = \frac{ Torque \cdot \omega }{ \rho \left( \frac{w}{ 2 \pi } \right)^3 D_p^5 } = 2 \pi \cdot C_{Torque} \]

最後的效率(\(\eta\))其實本身已經就是無因次量了,無需多做轉換。 但是除了使用原始的推力功耗等數據來計算之外,在已經擁有上述各項係數值的前提下, 也可以從這些係數簡單計算出來:

\[ \eta = \frac{ Thrust \cdot V_\infty }{ Torque \cdot \omega } = \frac{C_{Thrust}}{C_{Power}} J \]

結語

本篇介紹了在螺旋槳分析用途上相當經典的 Blade Element Theory 演算法, 是學術分析以及早年的設計分析上相當重要的設計分析方法, 可以在直接上材料做風洞實驗之前就能夠先算出來相當具有指標性的大致結果。 當然在現代計算流體力學(CFD)的大量應用之下, 可以更細緻且準確的模擬出實際流場會發生的實際現象,也能讓設計人員更加直觀的看出一些流場細節, 因此讓這個經典分析算法的重要性下降了(從那些參考文獻的時間都在二次大戰之前大概就能夠看出來)。 然而這個經典算法雖然重要性下降但還是相當有用的, 它在現代可能更大的價值在於快速分析一個陌生螺旋槳外型的性能參數估算, 或者在螺旋槳設計的前期可以非常快速的得出幾個不同方案之間的性能估計。 畢竟相比於建模、建網格、輸入條件參數然後正兒八經的跑 CFD, 本篇介紹的這個經典的算法可太簡單快速方便彈性了! 在下一篇將要進行的實際按例分析就可以看出來,若將那些分析全都使用 CFD 去跑,那可真是耗時耗力的啊!

最後再來談談屬於我的心路歷程。 其實本篇所介紹的演算法,就是我在大學時期某一堂課的學期作業。 記得在學期結束的時候,整個年級就兩個人交出了這份作業,在那個時候可讓我相當得意的呢! 時隔多年,為了製做本篇內容,我又將埋藏多年的程式碼給挖了出來。 當時那份程式碼是用 Fortran 寫的,我就以 Python 重寫了一遍, 還順手發現了舊程式碼裡面其實存在有一些小錯誤! 時隔多年重新進行同樣的工作,心中頗有感觸。 想當年在學校偶然聽聞在低年級的同學老師間流傳說我是「Fortran 大神」, 但其實在畢業之後真正做上第一份工作就知道只是個菜鳥中的菜鳥。 多年之後雖然也稱不上什麼真正的大神,倒是肯定自信是個具有相當經驗的老鳥。 再回過頭來寫程式碼,發覺許多心態都變了, 對於設計的思想哲學和各種矛盾取捨之間的調和甚至與以往能是完全相反的!

對於本篇多次提到的這個計算程式, 由於篇幅的關係,本篇就只介紹演算法,待到下一篇再進行一些實際的分析展示。 因此相關的計算程式和結果資料也同樣就放到下一篇再開放下載了。

上一篇:「翼型系列 6:升阻係數」
下一篇:「螺旋槳 7:性能分析案例」