Teknik Blog

Prototip Gelmeden Doğrulanan Kontrol Yazılımı: Model Tabanlı Tasarım ve HIL

Mekanik donanım altı ay sonra gelecekse, yazılımı o zamana kadar bekletmek zorunda değilsiniz. Ama modelin ne kadarına güvenebileceğinizi bilmek zorundasınız.

Karşılıklı duran iki HIL rack'i arasında düzenli kablo demetleri; konnektör sıraları ile yeşil ve sarı durum ışıkları loş laboratuvarda derinleşiyor

Problem: kritik yol her zaman mekanikte

Bir gimbal ya da konumlandırma sistemi projesinde takvimi belirleyen genellikle yazılım değil, mekanik parçaların tedariki ve imalatıdır. Klasik akışta yazılım ekibi donanımı bekler, donanım geldiğinde entegrasyon başlar ve projenin en yoğun hata ayıklama dönemi, takvimin en gergin olduğu ana denk gelir.

Model tabanlı tasarımın (MBD) buradaki iddiası mütevazı ama etkili: kontrol algoritmasının doğrulanmasını, fiziksel donanımın kritik yolundan çıkarmak.

Sistem (plant) modeli: neyi modellemek gerçekten işe yarar?

Her şeyi modellemek gereksizdir; yanlış şeyi modellemek ise tehlikelidir. Bir motor-yük ekseni için pratikte fark yaratan kalemler şunlardır:

  • Elektriksel dinamik — PMSM için d-q ekseninde faz direnci, endüktans ve ters EMK sabiti. Akım çevrimi ayarının doğru çıkması bunlara bağlıdır.
  • Sürtünme — viskoz terim kolaydır; asıl belirleyici olan Coulomb ve Stribeck bölgesidir. Düşük hızda takip performansını ve limit çevrim davranışını bu belirler.
  • Dişli boşluğu (backlash) ve tahrik esnekliği — dişli veya kayış varsa, iki kütleli model tek kütleli modelden niteliksel olarak farklı davranır ve rezonansı buradan görürsünüz.
  • Yük ataleti ve dengesizlik torku — eğik konumlanan bir yükte yer çekimi torku konuma bağlı bir bozucudur.
  • Sensör gerçekliği — enkoder kuantalaması, gecikme ve gürültü. Bunlar modelden çıkarılırsa kontrolcü sahada ilk gün beklenenden daha titrek çıkar.

Model parametreleri tahmin edilmez, ölçülür: kilitli rotor testi, serbest yavaşlama testi ve frekans tepkisi ölçümü ile. Bu adım atlanırsa geri kalan her şey iyi görünen ama yanlış bir simülasyondur.

Bir parametre kendi başına bir uyarıyı hak ediyor. Sürtünme, çoğu ekibin bir kez belirleyip sonra sabit muamelesi yaptığı terimdir ve bu muameleyi en az hak eden terimdir. Rulman ön yüklemesi çalışmanın ilk saatlerinde oturur, yağ viskozitesi ise çalışma sıcaklığı aralığı boyunca değişir. Ilık bir laboratuvarda yeni bir ünitede ölçülen Stribeck eğrisi, o ünitenin bir yıl sahada kaldıktan sonra aralığın soğuk ucundaki eğrisi değildir. Sürtünme yalnızca bir kez belirlenerek doğrulanmış bir düşük hız takip sonucu, makinenin ömründeki tek bir noktaya karşı doğrulanmıştır.

MIL → SIL → PIL → HIL zinciri

Doğrulama tek bir adımda değil, giderek gerçekliğe yaklaşan dört katmanda yapılır:

Katman Neyi doğrular Tipik yakalanan hata
MIL (Model-in-the-loop) Algoritma mantığı, kazanç seçimi Kararlılık payı, aşım, doyum davranışı
SIL (Software-in-the-loop) Üretilen C kodunun modelle eşdeğerliği Sabit nokta taşması, mantık farkı
PIL (Processor-in-the-loop) Kodun hedef işlemcide sayısal davranışı Yuvarlama, çevrim süresi aşımı
HIL (Hardware-in-the-loop) Gerçek sürücü kartının çevre birimleriyle davranışı Zamanlama, kesme çakışması, arıza tepkisi

Kritik nokta, HIL’in diğerlerinin yerine geçmemesidir. HIL pahalı ve yavaştır; algoritma hatalarını orada aramak zaman kaybıdır. Onun asıl değeri arıza senaryolarındadır: faz kaybı, enkoder kablosu kopması, besleme çökmesi, aşırı sıcaklık. Bunlar gerçek donanımda ya tehlikeli ya da tekrarlanamazdır; HIL’de her sabah otomatik olarak koşturulabilir.

HIL asıl hangi hatayı yakalamak için var

Bir mühendise HIL ne işe yarar diye sorun, cevap genellikle “fizik” olur. Pratikte masrafını çıkardığı arızalar zamanlama arızalarıdır ve en öğreticisi, akımın nerede örneklendiğidir.

Bir motor sürücüsü faz akımını bir ADC ile ölçerken aynı fazı PWM köprüsü yüksek frekansta kıyıyordur. O fazdaki akım bir değer değil, bir üçgendir. Anahtarlama periyodunun tam ortasında örneklerseniz ortalamaya yakın bir şey elde edersiniz. Birkaç mikrosaniye kaymış bir anda örneklerseniz — bir kesme geç geldiği ya da derleyici iki komutu farklı sıraladığı için — ortalamayı değil dalgalanmayı ölçersiniz. ADC dönüşümü datasheet’teki zamanlama diyagramının ima ettiği yerde değilse sonuç yine aynıdır. Akım çevrimi bu durumda sistematik olarak yanlış bir sayı üzerine kapanır ve yine de kararlı görünür. Kendini açıklanamayan tork dalgalanması, sessiz kalabilmek için gevşetilmek zorunda kalan bir akım çevrimi ya da yanlış yükte atan bir arıza eşiği olarak gösterir.

Bunların hiçbiri MIL veya SIL’de yoktur; çünkü o katmanlarda ölçüm tam ve anlıktır. Yalnızca gerçek bir çevirici ve gerçek bir kesme denetleyicisi taşıyan, tepki veren bir şeyi süren bir kartta vardır. HIL’in var olma sebebi o katmandır; giriş-çıkış yolu yavaş ya da ortalamalı bir HIL tezgâhının bu hatayı olduğu gibi geçirmesi de bundandır.

Otomatik kod üretimi: nerede kazandırır, nerede kazandırmaz

Modelden C kodu üretmek, elle kodlanan katmanı azaltır ve model ile kod arasındaki izlenebilirliği somutlaştırır — kalifikasyon dosyası hazırlarken bu doğrudan zaman kazandırır. Ancak üretilen kod, mimari kararların yerini tutmaz: kesme yapısı, zamanlama, sürücü katmanı ve hata yönetimi hâlâ elle tasarlanır. Pratikte iyi bir ayrım şudur: kontrol çekirdeği üretilir, çevre yazılımı yazılır.

Yöntemin dürüst sınırları

  • Model gerçeğin yerine geçmez; model, gerçeğin ölçülmüş bir özetidir. Parametreler belirlenmeden MBD, süslü bir tahmindir.
  • Kontrolcüyle aynı varsayım üzerine kurulmuş bir model, kontrolcüyü onaylar. Kimsenin fark etmediği arıza modu budur; çünkü bütün testler geçer. Yükün tek bir rijit kütle sayılabileceğine karar veren mühendis, sistem modelini de tek rijit kütle olarak yazdıysa, simülasyon hiç görmediği bir rezonansla karşılaşacak bir kontrolcüyü onaylayacaktır. Savunması daha çok simülasyon değildir; gerçek eksenden ölçülmüş bir frekans tepkisinin, hâlâ bir şey değiştirebilecek kadar erken bir aşamada modelinkiyle karşılaştırılmasıdır.
  • Kararsız hâle gelemeyen bir sistem modeli, arıza tepkisini doğrulayamaz. Model her yerde yumuşak biçimde doyuma gidiyorsa, durdurma mantığı gerçekte hiç çalıştırılmamış olur.
  • Termal davranış, uzun süreli sürünme ve montaj toleransları modelde nadiren doğru temsil edilir. Bunlar donanım testinde kalır.
  • HIL tezgâhının kendisi bakım isteyen bir üründür. Modeli güncel tutmayan bir ekip, bir süre sonra gerçekle ilgisi olmayan testleri yeşile boyar.

Pratikte ne değişiyor

Inventra’nın gözlemi, bu akışın entegrasyon süresini belirgin biçimde kısalttığı ve — belki daha önemlisi — ilk prototipi yakmama oranını artırdığı yönünde. Sürücü kartı ilk kez gerçek motora bağlandığında, akım limitleri, hata durumları ve durdurma mantığı çoktan yüzlerce kez test edilmiş oluyor.