渦噴發動機閉環穩態分析工具箱(TTECTrA)
MATLAB代碼
大致框架
讀取控制器數據
首先是選擇讀取控制器數據(默認爲TTECTrA_example_design.mat裏的數據),或者選擇默認TTECTrA_Inputs裏的值,數據包括:
- 環境變量:高度、馬赫數、與標準大氣的溫度差、仿真總時間
- 設計點功能配置:燃油流量範圍、慢車推力、起飛推力和設計點個數
- 設計點控制器配置:線性狀態空間模型、反饋濾波器的帶寬、預濾波器的帶寬、控制器帶寬、相角裕度、燃油作動筒的帶寬等
- 瞬態限制器配置:最小HPC喘振裕度、最小LPC喘振裕度
- 預定義的加速控制計劃
具體變量名和定義可參見文檔3.1節。
設計點計算
這裏可以自行設置飛行條件以及控制量和摺合推力之間的關係。
設計點計算兩種模式:推力定值模式(loop=2)和燃油定值模式(loop=3)。推力定值模式需要指定慢車推力、最大起飛推力以及設計點的個數。在每個設計點會根據推力或燃油計算相應的控制量;燃油定值模式則需要指定最小燃油量、最大燃油量和設計點個數。除了燃油定值模式(loop=3),其他兩種模式都按照推力的需求來進行設計點的數據計算。
點擊Calculate按鈕時,會根據設定的輸入和模式通過sim函數運行simulink模型,模型輸出的結果會保存至工作區,最後會畫出控制量(風扇轉速或EPR)與推力之間的關係。如果不合適,可以繼續重新設定輸入和模式計算。
控制器增益計算
該工具裏的設計點的控制器是一個帶有積分飽和的PI控制器,其中的比例積分系數是利用Matlab控制工具箱裏的pidtune和pidtuneOptions函數、根據設計點的控制量來規劃的。在規劃之前,需要指定迴路的帶寬和相位裕度。
加減速限制器計算
最大最小選擇器:最大不能超過加速調節規劃值(acceleration schedule),這個加速調節規劃是爲了滿足最小的高壓壓氣機喘振裕度;最小不能小於和(高壓壓氣機出口壓力)的乘積,這個乘積是爲了滿足低壓壓氣機的喘振裕度。
Simulink模型
TTECTrA Simulink Block
瞬態性能分析工具箱的核心模塊,主要是設計點控制器、瞬態限制邏輯兩部分。
Setpoint Controller
CV_dmd,即control variable demand是控制量的需求量,這個變量的數值線性化模型中沒有直接給出,是通過設計點計算得出。它與控制量的反饋值做差後,得到控制量的誤差值。如果用戶設置了反饋濾波的帶寬,那麼Fdbk_flag標誌位爲1,誤差經離散傳遞函數再進入後面帶積分飽和的PI控制器中得到控制所需的燃油量,否則直接進入。這裏的離散傳遞函數的分子和分母都默認爲。
Transient Limiter Logic
就是一個一般的最小最大選擇器。
模式選擇
從這個模塊可以很明顯看出loop這個模式選擇參數的作用。
Engine Model
在Engine Model這個子模塊中,有三個重要的S函數。S函數的參數通過Mask中的S-function parameters一欄裏面的參數將Matlab工作區間的變量傳遞給S函數。
sfun_weights_C
計算每個線性模型的權重,用來構建分段線性模型。如果mode=1,那麼權值的計算方式爲,其中,人爲選取,爲狀態到線性化狀態的距離。如果mode=2,直接選取狀態變量距離最近的線性化模型。
sfun_xdot_C
根據以及加權係數來計算狀態的變化量。
狀態變量爲[Nf Nc Tm_LPC Tm_HPC Tm_burner Tm_HPT Tm_LPT]
輸入變量爲[ Wf VSV VBV ]
輸出變量爲狀態變量
sfun_output_C
根據以及加權係數來計算輸出的變化量。
狀態變量和輸入變量與xdot中一致
輸出變量爲[ Nf Nc T2 T25 T50 P2 Ps3 P50 Fnet Wf VSV VBV EPR T30 P25 tauPX T40 T48 tauLP tauHP 0 LPC_SM HPC_SM Fdrag Fnet Fgross]
數據含義
LM_PWL.mat
C-MAPSS40k模型的線性化狀態方程的參數,一共對8個點進行了線性化。
fn:線性化點處的推力值。
nfr:線性化點處的參考轉速。
PWL_mods.mat
該數據在setup_workspace函數中讀取,默認讀取x,u,y,A,B,C,D,matrix_axes。
x:狀態變量[Nf Nc Tm_LPC Tm_HPC Tm_burner Tm_HPT Tm_LPT],前兩個是風扇和壓氣機摺合轉速,後五個(我猜測)是代表高低壓壓氣機、燃燒室、高低壓渦輪的共同工作線的係數。
u:輸入量[ Wf VSV VBV],分別是燃油量、可調靜止葉片和可調放氣活門。
y:一共包含36個量,不一一列舉。具體可以看Simulink模型中Outputs那個模塊,主要的還是狀態變量。
A,B,C,D:狀態方程和輸出方程的係數。
beta:分段線性模型的縮放因子。
mode:分段線性模型的加權方式。
matrix_axis:部件級模型線性化參考的變量,默認設爲參考轉速。
trim_axis:暫沒用到,含義待知。
Ad,Bd,Cd,Dd,L,M:待知。
重要常數
在setup_workspace裏還定義的一些重要常數有:
C_TSTD:標準大氣溫度,518.67°R。
C_PSTD:標準大氣壓強,14.695951psia。
Ts:時間步長,0.015s,這個參數在很多Mask中都用到。
註解
- 這裏面很多GUI程序,注意這種Matlab程序的特點,重點看function。
- S函數有三個重要變量:S函數參數(Mask)、S函數輸入和S函數輸出(Block)。
psia。
Ts:時間步長,0.015s,這個參數在很多Mask中都用到。
註解
- 這裏面很多GUI程序,注意這種Matlab程序的特點,重點看function。
- S函數有三個重要變量:S函數參數(Mask)、S函數輸入和S函數輸出(Block)。
最後有一點說明,這個工具箱基於的是C-MAPSS40k模型的分段線性化數據,而現在這個模型NASA已經不對外開放。