04 — İçinde neler var
Alt sistemler
Sayılar illüstratif ve elle ayarlıdır ("TUNABLE") — gerçek bir motordan türetilmemiştir. Her alt sistem hem ne yaptığıyla hem de neden öyle tasarlandığıyla anlamlıdır.
Plant modeli deterministik
Yakıttan spool'a birinci-derece gecikmeler (τ_FMV=0.25 s, τ_N2=1.3 s, τ_N1=3.5 s) ile motorun dinamiği modellenir. N1 ve N2 spool'ları arasında mekanik bağ yoktur; N1 aerodinamik olarak N2'yi izler (N1 ≈ (N2−18)×1.15), bu yüzden gaz atınca N2 önce, N1 ataletle sonra oturur. EGT iki zaman-sabitli bir termal modeldir: hızlı yanma (τ=1.5 s) ile yavaş metal soak (τ=60 s) %85/%15 harmanlanır.
Neden: sabit gazda bile EGT'nin hafifçe sürüklenmesi kasıtlıdır — gerçek bir motorun termal davranışı tek gecikmeyle yakalanamaz, ve EGT limitleme bu davranış olmadan gerçekçi sınanamaz.
WF_MAX 2600N2_IDLE 60N2_MAX 112WF_MIN 120 kg/h
Kontrol yasası — min-max limit seçici control
Yakıt komutu Wf, denge yakıtı (feedforward) ile bir PI trim'in (anti-windup: yalnızca doymamışken integre eder) toplamıdır. Bunun üzerinde limitler yarışır: accel limiti, N2 limiti (108→112 arası lineer kısma) ve EGT limiti (900→950 arası lineer kısma). Altta ise decel tabanı (denge yakıtının %55'i) ve WF_MIN flameout-emniyet tabanı bulunur. Hangi limit o an bağlıyorsa o kazanır.
Neden: bu tek bir PID değil, çok-limitli bir emniyet mimarisidir. Koruma asla WF_MIN altına inmediği için motor sönmez; ve "kazanan limit" mantığı sayesinde hangi fizik sınırın aktif olduğu her an okunabilir.
KP 22KI 9N2 limit 108→112EGT limit 900→950
Autothrottle control
Otonom uçuşta hedef N2 artık bacaklar arasında ışınlanmaz: sonlu bir kol hızıyla kayar (yukarı 7, aşağı 4, acilde 12 %N2/s) — kalkışta 63→100% ≈5,3 sn sürer, shutdown gerçekçi bir throttle-chop olur. İrtifa 350 m/s ile rampalar; devreye girme bumpless'tır — kol o anki hedeften yürümeye başlar.
Neden: süpervizörler anında karar verir, eyleyiciler anında hareket edemez. Kararı (ACİL için hâlâ anlık) uygulanışından ayırmak, emniyet mantığını keskin tutarken fiziği inandırıcı kılar.
AT_UP 7 %/sAT_DN 4 %/sAT_EMERG 12 %/sİrtifa rampası 350 m/s
2oo3 oylama ve sağlık FDIR
Her kanal (A/B/C) her kritik parametreyi (N2/EGT/N1) iki bağımsız instance ile okur; kanal başına ε'nin çok altında sabit bir kalibrasyon offset'i ve bağımsız gürültü vardır. Median-of-3 oylanır, aykırı lane (|lane−median| > ε) izole edilir. Arızalar HARD (aralık-üstü, aralık-altı, sinyal-yok) ve SOFT (sapma, spike, gürültü, sürüklenme) olarak ayrılır; HARD arıza sensör pill'ini kırmızıya çevirir. Merkezî bir voter yoktur — oylama dağıtıktır ve kanallar arası veri hattı (CCDL) ile yürür.
Gerçek dünya gürültülüdür; tezgâh bunu da modeller: seed'li nadir gürültü sıçramaları (F-BLIP) bir lane'i tek çevrimliğine sarsar. Bu yüzden izolasyon 3 ardışık çevrim teyidi ister (ISO_DEBOUNCE) — blip kendiliğinden toparlanır, gerçekten sürüklenen kanal ise bakım reset'ine kadar oydan latch'lenerek çıkar. Yedeklilik ikiye düştüğünde ikinci katman bir miscompare monitörü kalan iki kanalı izler — yalnız tespit; çünkü iki oyla suç dürüstçe atfedilemez.
Neden: tek bir merkezî voter, tek hata noktasıdır. Oylamayı kanallara dağıtmak voter'ın kendisini de redundant yapar. Bir kanal "sağlıklı" sayılır ancak CPU'su canlıysa, izole değilse ve tüm instance'larını kaybetmemişse.
ε(N2) 2.5ε(EGT) 18ε(N1) 2.5
OBM — analitik redundans FDIR
Paralel bir motor modeli, beklenen N2 ve EGT'yi üretir. Voted değer ile beklenen değer arasındaki residual banttan (N2 ±6, EGT ±60) çıkarsa bir flag düşer. Üç kanal da hemfikir olduğunda (degrade=3) oylama hata göremez — ama OBM banttan dışarıdaysa, bu oylamanın yapısal olarak göremeyeceği bir ortak-mod (common-mode) arızadır. Sağlıklı kanal sayısı bire indiğinde, OBM N2 ve EGT'yi doğrudan modelden sentezler.
Ortak-mod bayrakları da disiplinlidir: mürettebat annunciator'ına ve kara kutuya yalnız RUN fazında ve aynı 3-çevrim teyidiyle ulaşırlar — temiz bir motor start'ı bakım loguna artık sahte ortak-mod izi bırakmaz.
Neden: oylama "çoğunluk ne diyor" sorusunu sorar; OBM "fizik ne diyor" sorusunu. İkisi farklı kör noktaları kapatır.
Reversiyoner kontrol, lider tahkimi ve overspeed FDIR
Kontrol, sensör sağlığıyla değil CPU canlılığıyla kapılıdır: sensörlerini kaybetmiş ama hesaplaması ayakta olan bir lane, OBM-sentez N2 üzerinden yakıt komutlamaya devam eder. Lider seçimi önce tam-sağlıklı kanalı, yoksa CPU'su canlı herhangi birini tercih eder; bir tutma süresiyle (SWITCH_HOLD=0.3 s) chatter önlenir ve devretme bumpless olur. Bunlardan tamamen ayrı, dissimilar ve latch'li bir overspeed koruması ham max N2 > 115%'te yakıtı keser ve reset'e kadar kilitler.
Lider seçimi motor kapalıyken de çalışır — gerçek ECU'lar uçak gücü gelir gelmez tahkim yapar, EGEMEN de öyle: kanallar daha bir damla yakıt akmadan, yerde arızalanabilir, latch'lenebilir ve liderliği devredebilir.
Neden: ölçüm kaybı, kontrol kaybı anlamına gelmek zorunda değildir. Ve overspeed koruması ana kontrol yasası tamamen bozulduğunda en çok gerekendir — bu yüzden ondan bağımsız olmalı; latch ise geçici bir trip'in tehlikeyi gizlemesini engeller.
overspeed >115%SWITCH_HOLD 0.3 smerdiven 3oo3→2oo3→1·K11→SAFE
Start sekansı FSM
Start, eşik-uydurma değil gerçek bir durum makinesidir: OFF → CRANK (kuru çevirme, yakıt yok; N2 ≥ 18'de ateşleme) → LIGHT-OFF → ACCEL (starter %50'de kesilir) → RUN (idle %58, kontrol yasası devralır). İki abort yolu modellenmiştir: HUNG (idle altında >2 sn tırmanamama) ve HOT (start EGT > 720 °C).
Motor kapalıyken kurulan arıza enjeksiyonları start anındaki oto-reset'ten korunur (sakla-geri-yaz) — yerde kurulan bir HUNG/HOT senaryosu bir sonraki start'ta gerçekten ateşlenir; "ARMED · SONRAKİ START'TA" sözü tutulur.
Neden: gerçek motorların gerçek start arıza modları vardır; bunları modellemek, simülasyonu "açılır ve döner" seviyesinin ötesine taşır.
FAB süpervizörü — araç-seviyesi otonomi control
Ana Uçuş Bilgisayarı (FADEC'in dışında) sağlık okur ve hedef N2 üretir; 10 misyon bacağını (TAXI'den SHUTDOWN'a) yürütür. Karar önceliği nettir: ACİL > RTB > DERATE > SCRIPT. İki sağlıklı kanal kaldığında %88 derate (DASH inhibit), bir veya daha aza inince RTB latch, overspeed/open-loop durumunda acil idle devreye girer. Her karar, hangi bacakta ve hangi sebeple alındığı denetlenebilir bir logda durur.
Süpervizör tasarım gereği gürültüye bağışıktır: RTB ve derate tetikleri kanal izolasyonuyla aynı 3-çevrim teyidini ister (derate histerezisle temizlenir); ACİL ise bilinçli olarak teyitsizdir — anlıktır. MISSION NO-GO kapısı, motor zaten tek sağlıklı kanala düşmüşse görevi daha başlamadan reddeder: başlamaması gereken misyon, başlamaz.
Neden: sağlık her zaman script'ten önce işler — uçuş planı, motorun o anki durumunu asla ezemez.
Fault word, kara kutu ve IETM observability
Arızalar 16-bit bir fault word'de taşınır: [ALAN:3 | KOD:4 | CH:2 | VOTER:2 | COMP:5], 1553-hizalı çerçeveleme ile. Bir bakım logu (kara kutu / PFR) fault word'leri dedup'lu olarak latch'ler; canlı bir decode paneli ve bit-seviye görünüm sunulur. IETM ise interaktif teknik kılavuzdur: arayüzdeki bir göstergeye tıklayınca tanımını ve o anki duruma dayalı canlı bir "neden" analizini verir.
Mürettebat-uyarı katmanı da aynı disiplindedir: Master Caution neden bazında acknowledge edilebilir — lambaya tıkla, söner; yeni bir neden yeniden yakar. Uçuş verisi .xlsx raporuna aktarılır (özet, zaman serisi, arızalar, parametre başına arıza-darbe sütunları); uygulama-içi uçuş grafiğinde ise en yakın örneğe kenetlenen bir imleç, değerleri grafiğin çizildiği verinin ta kendisinden okur.
Neden: gözlemlenebilirlik sonradan eklenen bir özellik değil, tasarımın parçasıdır — tek bir sıkıştırılmış kelimeyle hata, kanal, voter ve bileşen tek frame'de taşınır.