TTECTrA

渦噴發動機閉環穩態分析工具箱(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),這個加速調節規劃是爲了滿足最小的高壓壓氣機喘振裕度;最小不能小於WfPs3\frac{W_f}{Ps_3}Ps3Ps_3(高壓壓氣機出口壓力)的乘積,這個乘積是爲了滿足低壓壓氣機的喘振裕度。

Simulink模型

Simulink模型

TTECTrA Simulink Block

瞬態性能分析工具箱的核心模塊,主要是設計點控制器、瞬態限制邏輯兩部分。

TTECTrA Simulink Block

Setpoint Controller

Setpoint Controller

CV_dmd,即control variable demand是控制量的需求量,這個變量的數值線性化模型中沒有直接給出,是通過設計點計算得出。它與控制量的反饋值做差後,得到控制量的誤差值。如果用戶設置了反饋濾波的帶寬,那麼Fdbk_flag標誌位爲1,誤差經離散傳遞函數再進入後面帶積分飽和的PI控制器中得到控制所需的燃油量,否則直接進入。這裏的離散傳遞函數的分子和分母都默認爲1eωBTs1-e^{-\omega_BTs}

Transient Limiter Logic

Transient Limiter Logic
就是一個一般的最小最大選擇器。

模式選擇

模式選擇

從這個模塊可以很明顯看出loop這個模式選擇參數的作用。

Engine Model

Engine Model

在Engine Model這個子模塊中,有三個重要的S函數。S函數的參數通過Mask中的S-function parameters一欄裏面的參數將Matlab工作區間的變量傳遞給S函數。

sfun_weights_C

計算每個線性模型的權重,用來構建分段線性模型。如果mode=1,那麼權值的計算方式爲wi=eβdimw_i=e^{-\frac{\beta d_i}{m}},其中m=min(di)m=min(d_i),β\beta人爲選取,did_i爲狀態到線性化狀態的距離。如果mode=2,直接選取狀態變量距離最近的線性化模型。

sfun_xdot_C

根據x˙=Ax+BU\triangle \dot x=A\triangle x+B\triangle U以及加權係數來計算狀態的變化量。

狀態變量爲[Nf Nc Tm_LPC Tm_HPC Tm_burner Tm_HPT Tm_LPT​]

輸入變量爲[ Wf VSV VBV ]

輸出變量爲狀態變量

sfun_output_C

根據x˙=Cx+DU\triangle \dot x=C\triangle x+D\triangle U以及加權係數來計算輸出的變化量。

狀態變量和輸入變量與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

LM_PWL

C-MAPSS40k模型的線性化狀態方程的參數,一共對8個點進行了線性化。

fn:線性化點處的推力值。

nfr:線性化點處的參考轉速。

PWL_mods.mat

PWL_mods

該數據在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中都用到。

註解

  1. 這裏面很多GUI程序,注意這種Matlab程序的特點,重點看function。
  2. S函數有三個重要變量:S函數參數(Mask)、S函數輸入和S函數輸出(Block)。

psia。

Ts:時間步長,0.015s,這個參數在很多Mask中都用到。

註解

  1. 這裏面很多GUI程序,注意這種Matlab程序的特點,重點看function。
  2. S函數有三個重要變量:S函數參數(Mask)、S函數輸入和S函數輸出(Block)。

最後有一點說明,這個工具箱基於的是C-MAPSS40k模型的分段線性化數據,而現在這個模型NASA已經不對外開放。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章