- BMS state machine'in temel durumlarını ve geçişlerini açıklayabilmek.
- Her durum için giriş/çıkış koşullarını ve izlenen sinyalleri tanımlayabilmek.
- Arıza durumunun state machine'e nasıl girdiğini açıklayabilmek.
- State machine'in seri üretimde nasıl doğrulandığını açıklayabilmek.
BMS-14 — BMS State Machine
1. Sıra ve Koşul Olmadan Güvenlik Olmaz
Önceki derslerde gördüğümüz her işlev — ölçüm, pre-charge, dengeleme, arıza yönetimi — belirli bir sırayla ve belirli koşullar altında çalışmak zorunda. Dengeleme HV aktif değilken güvenle yapılabilirken, pre-charge yalnızca belirli güvenlik koşulları sağlandığında başlayabiliyor. Bu koşulları kodun her köşesinde ayrı ayrı kontrol etmeye kalksan, er ya da geç tutarsızlık ve öngörülemeyen davranış ortaya çıkar. Çözüm: tek bir durum makinesi (state machine) — her durumun ne yapılabileceğini ve hangi koşulda geçiş olacağını tek yerden tanımlayan bir yapı.
2. Durumlar ve Geçişler
OFF → INITIALIZATION → SELF TEST → STANDBY → PRECHARGE → HV ACTIVE → DRIVE / CHARGING → FAULT → SHUTDOWN
ASSUMPTION — Bu durumlar eğitim amaçlı kavramsal bir modeldir; gerçek bir OEM farklı adlandırma veya çok daha fazla ara/alt durum kullanabilir.
| Durum | Giriş Koşulu | İzinli Eylemler | İzlenen Sinyaller |
|---|---|---|---|
| OFF | Uyku/enerji yok | Sadece wakeup algılama | Wakeup sinyali |
| INITIALIZATION | Wakeup | Bellek/çevre başlatma | Besleme, saat |
| SELF TEST | Başlatma tamam | Dahili testler | ADC, haberleşme, HVIL |
| STANDBY | Self test geçti | İzleme, hazır bekleme | Hücre V/T, izolasyon |
| PRECHARGE | HV isteği + güvenli koşullar | Kontaktör sıralaması | DC-link gerilimi, akım |
| HV ACTIVE | Pre-charge tamam | Güç verme/alma | Akım, gerilim, sıcaklık |
| DRIVE | HV aktif + sürüş isteği | Sürüş gücü | SOP, akım |
| CHARGING | HV aktif + şarj isteği | Şarj gücü | Şarj akımı/gerilimi |
| FAULT | Arıza tespiti | Derating/tepki | Arıza durumu |
| SHUTDOWN | Kritik arıza veya kapanma | Kontaktör açma | HVIL, kontaktör durumu |
3. Geçiş Koşulları Neden Açık Olmalı
Her geçiş bir guard condition’a bağlı — mesela PRECHARGE → HV ACTIVE, DC-link gerilimi eşiğe ulaştığında gerçekleşiyor (BMS-06); STANDBY → PRECHARGE, izolasyon ve HVIL güvenli olduğunda (BMS-07). Bu koşullar belirsiz bırakılırsa, yazılımın farklı bölümleri aynı geçişi farklı yorumlayabilir. Her guard condition “DC-link gerilimi ≥ paket geriliminin %95’i VE bu durum en az 50 ms sürdü” gibi açık, test edilebilir bir ifade olmalı.
FAULT durumuna herhangi bir durumdan girilebilir; ciddiyete göre derating veya SHUTDOWN’a geçiliyor. Örneğin DRIVE’dayken bir hücre overvoltage arızası tespit edilirse state machine anlık olarak FAULT’a geçer — sınıflandırma “Critical” ise SHUTDOWN’a, “Derating” ise güç kısıtlamasıyla DRIVE’da kalmaya karar verilebilir. Bu karar mantığı fonksiyonel güvenlik konseptinde (BMS-17) tanımlanıyor.
4. State Machine’in Kendisi Bozulursa
Beklenmeyen bir durumda takılı kalma (stuck state), geçersiz geçiş denemesi veya guard condition’ların çelişkili değerlendirilmesi — bunlar state machine’in kendi yazılım arızaları. Genelde bir watchdog ile yakalanıyor: bağımsız bir zamanlayıcı düzenli “canlı” sinyali bekliyor, süre dolarsa sistem güvenli duruma (genelde SHUTDOWN) zorlanıyor.
5. Üretimde Nasıl Doğrulanır
MIL/SIL aşamasında tüm durum geçişleri ve guard condition’lar sistematik test ediliyor — state coverage, her durum ve geçişin en az bir kez tetiklendiğini garanti ediyor. HIL testinde ise gerçek donanımda beklenmeyen geçiş denemeleri (STANDBY’dan doğrudan DRIVE’a geçmeye çalışmak gibi) enjekte edilip state machine’in bunu reddettiği doğrulanıyor.
6. Diğer Sistemlerle Bağlantısı
State machine; kontaktör/pre-charge sıralamasını (BMS-06) yönetiyor, arıza yönetiminden (BMS-13) girdi alıyor, fonksiyonel güvenlik konseptinin (BMS-17) çalışma zamanı iskeletini oluşturuyor ve yazılım mimarisinde (BMS-16) Application katmanının merkezi bileşenlerinden biri.
Özet
- State machine, BMS davranışını güvenli ve öngörülebilir kılar.
- Guard condition’lar açık ve test edilebilir olmalı; belirsizlik tutarsız davranışa yol açar.
- FAULT’a her durumdan girilebilir; watchdog, state machine’in kendi arızalarını yakalar.
- State coverage testleri, tüm durum ve geçişlerin doğrulandığını garanti eder.
Kaynaklar
- ISO 26262 — güvenli durum ve state machine kavramları.
Teknik Diyagramlar
Quiz
State machine kullanmanın temel amacı nedir?
State machine, her durumda hangi eylemlerin yapılabileceğini ve geçiş koşullarını açıkça tanımlar.
FAULT durumuna hangi durumlardan girilebilir?
FAULT durumuna, arıza tespit edildiği anda herhangi bir durumdan girilebilir.
PRECHARGE → HV ACTIVE geçişinin guard condition'ı genellikle nedir?
DC-link gerilimi eşiğe ulaştığında pozitif kontaktör kapanır ve HV ACTIVE'e geçilir.
Guard condition'ların açık ve test edilebilir olması neden önemlidir?
Açık, test edilebilir guard condition'lar tutarlı ve doğrulanabilir davranış sağlar.
Watchdog mekanizması state machine bağlamında ne işe yarar?
Watchdog, düzenli 'canlı' sinyali beklemediğinde sistemi güvenli duruma (genellikle SHUTDOWN) zorlar.
State coverage testi neyi doğrular?
State coverage, tüm durum ve geçişlerin test sırasında en az bir kez çalıştırıldığını garanti eder.
Sözlük (Glossary)
| English Term | Türkçe | Tanım |
|---|---|---|
| State Machine | Durum Makinesi | Sistemin davranışını durumlar ve geçişlerle modelleyen yapı; BMS kontrolünün omurgasıdır. |
| BMU (Battery Management Unit) | Batarya Yönetim Birimi | BMS'in merkezi karar birimi; CMU verilerini toplar, SOC/SOH/SOP algoritmalarını çalıştırır ve kontaktörleri kontrol eder. |
| Contactor Sequencing | Kontaktör Sıralaması | Negatif, pre-charge ve pozitif kontaktörlerin belirli bir sırayla kapanıp açılmasını tanımlayan mantık. |
| Guard Condition | Geçiş Koşulu | State machine'de bir durumdan diğerine geçişi tetikleyen, açık ve test edilebilir mantıksal koşul. |