Kazanimlar:
- Bir sistemin diferansiyel denklem modelini AI ile kurup Python'da simüle edebilme
- Simülasyon sonuçlarını (basamak yanıtı, kararlılık) AI yardımıyla yorumlayabilme
- Model varsayımlarının sınırlarını ve gerçek sistemle uyumunu doğrulama disiplinini uygulayabilme
Bir mekatronik sistemi fiziksel olarak kurmadan önce, onu bir model üzerinde anlayabilir, tasarlayabilir ve test edebilirsiniz. Model tabanlı tasarım (Model-Based Design); bir sistemin davranışını diferansiyel denklemlerle veya blok diyagramlarla temsil edip simülasyonda çalıştırma, kontrolcü tasarlama ve doğrulama yaklaşımıdır. Bunun değeri büyüktür: donanımı riske atmadan yüzlerce senaryoyu deneyebilir, kararlılığı önceden görebilir, kontrolcü kazançlarını güvenle ayarlayabilirsiniz. Yapay zeka bu süreçte güçlü bir yardımcıdır: bir sistemin denklemini kurar, Python'da simülasyonunu yazar, sonuçları yorumlar. Ancak model bir haritadır, arazi değil; modelin gerçeği ne kadar temsil ettiği (validasyon) mühendisin sorumluluğundadır. Bu ünitede model kurmayı, simüle etmeyi ve modelin sınırlarını doğrulamayı AI ile işliyoruz.
Model Nedir, Neyi İhmal Eder?
Bir model, gerçeğin amaca yönelik basitleştirilmiş bir temsilidir. Örneğin bir DC motorun basit modeli elektriksel ve mekanik denklemlerle kurulur ama sürtünmenin nonlineer kısmını, dişli boşluğunu (backlash), sıcaklık etkisini ihmal edebilir. Bu ihmaller modeli kullanışlı kılar ama aynı zamanda geçerlilik sınırını belirler.
Modelde var
Sıkça ihmal edilen
Kütle, atalet, direnç, indüktans
Nonlineer sürtünme, backlash
Temel dinamik denklemler
Doygunluk, ölü bölge (dead zone)
İdeal sensör/aktüatör
Ölçüm gürültüsü, gecikme
Sabit parametreler
Sıcaklıkla değişen parametreler
Kilit ilke: "Tüm modeller yanlıştır, bazıları yararlıdır." Modelin işe yarayıp yaramadığı, ihmal ettiği şeylerin sizin çalışma aralığınızda önemli olup olmamasına bağlıdır.
Bir DC Motor Modelini Kurmak ve Simüle Etmek
Bir DC motorun basit bir durum-uzay modeli, açısal hız ω ve akım i durumlarıyla yazılır. AI bu denklemleri kurup Python'da scipy ile simüle edebilir:
import numpy as npfrom scipy.integrate import solve_ivpimport matplotlib.pyplot as plt# DC motor parametreleri (ornek degerler -- gercek datasheet'ten alinmali)J = 0.01 # atalet (kg*m^2)b = 0.1 # viskoz surtunme (N*m*s)K = 0.01 # motor sabiti (Nm/A ve V*s/rad)R = 1.0 # direnc (ohm)L = 0.5 # induktans (H)def motor_dinamigi(t, x, V): """x = [omega, i]. V = uygulanan gerilim.""" omega, i = x domega = (K * i - b * omega) / J # mekanik denklem di = (V - R * i - K * omega) / L # elektriksel denklem return [domega, di]# 12 V basamak girisi ile simulasyonV = 12.0cozum = solve_ivp(motor_dinamigi, [0, 3], [0, 0], args=(V,), dense_output=True, max_step=0.001)t = np.linspace(0, 3, 500)omega = cozum.sol(t)[0]# Kararli-hal hizi teorik kontrolu (dogrulama):omega_ss_teorik = K * V / (R * b + K**2)print(f"Simulasyon son hiz: {omega[-1]:.2f} rad/s")print(f"Teorik kararli hal : {omega_ss_teorik:.2f} rad/s")
Buradaki doğrulama satırı kritiktir: simülasyonun ulaştığı kararlı-hal hızını, elle türetilen teorik formülle (K·V/(R·b+K²)) karşılaştırıyoruz. İkisi uyuşuyorsa simülasyona güvenimiz artar; uyuşmuyorsa ya denklemde ya kodda hata vardır. AI'ın ürettiği her simülasyon için böyle bağımsız bir sağlama noktası bulun.
İpucu: AI'a bir sistem simüle ettirdiğinizde daima "sonucu doğrulayabileceğim bir teorik/analitik kontrol noktası da ver" deyin. Kararlı-hal değeri, korunum yasası, enerji dengesi gibi bir bağımsız sağlama, kod hatalarını yakalamanın en hızlı yoludur.
Basamak Yanıtı ve Kararlılık
Simülasyondan okuyacağınız temel davranışlar:
- Yükselme zamanı (rise time): Çıktının hedefin belirli bir kısmına ulaşma süresi.
- Aşım (overshoot): Hedefi ne kadar aştığı.
- Oturma zamanı (settling time): Hedef bandında kalıcı hale gelme süresi.
- Kararlılık: Yanıt sınırlı mı kalıyor yoksa büyüyerek sonsuza mı gidiyor?
Kararlılık, model tabanlı tasarımın en kritik çıktısıdır. Bir sistemin kutupları (transfer fonksiyonunun paydasının kökleri) sol yarı düzlemdeyse sistem kararlıdır; sağ yarı düzleme geçen bir kutup kararsızlık demektir. AI bir sistemin kutuplarını hesaplayabilir ve kararlılığını yorumlayabilir:
import numpy as np# Ornek: karakteristik polinom katsayilari [1, a2, a1, a0]katsayilar = [1, 3, 3, 1]kokler = np.roots(katsayilar)print("Kutuplar:", kokler)kararli = np.all(np.real(kokler) < 0)print("Sistem kararli mi?", kararli) # tum reel kisimlar negatif mi?
Model Doğrulama (Validasyon)
Bir model kurup simüle etmek yetmez; modelin gerçeği temsil ettiğini kanıtlamanız gerekir. Doğrulama adımları:
- Analitik sağlama: Kararlı-hal, korunum yasaları gibi bağımsız kontrollerle karşılaştır.
- Parametre kaynağı: Model parametreleri (J, K, R...) gerçekten ölçülmüş/datasheet mi, yoksa tahmin mi?
- Deneysel karşılaştırma: Mümkünse gerçek sistemin basamak yanıtını ölç ve modelinkiyle üst üste koy.
- Duyarlılık: Parametreleri ±%20 değiştirdiğinde sonuç ne kadar değişiyor (model ne kadar hassas)?
- Geçerlilik aralığı: Model hangi hız/yük/sıcaklık aralığında geçerli, nerede bozuluyor?
Dikkat: AI'ın verdiği model parametreleri (atalet, sürtünme, motor sabiti) neredeyse her zaman örnek/placeholder değerlerdir. Bunları gerçek sisteminizin datasheet'i veya ölçümleriyle değiştirmeden simülasyon sonuçlarını "gerçeğe" taşımayın. "Simülasyonda çalışıyor" ile "sahada çalışır" arasındaki köprü, parametre doğruluğu ve validasyondur.
Zayıf Prompt / Güçlü Prompt
ZAYIF:"Bir motor simülasyonu yaz."(Hangi model? parametreler? doğrulama? Anlamsız grafik gelir.)GÜÇLÜ:"Bir DC motorun durum-uzay modelini (durumlar: açısal hız ve akım) kur vescipy solve_ivp ile 12 V basamak yanıtını simüle et. Parametreleri en baştadeğişken olarak tanımla (J, b, K, R, L) ki gerçek değerlerimi koyabileyim.Kararlı-hal hızının teorik formülünü de yaz ki simülasyonu doğrulayabileyim.Basamak yanıtından yükselme zamanı, aşım ve oturma zamanını hesapla."
Mini Vaka
Ar-Ge mühendisi Nil, yeni bir konumlandırma ekseni için kontrolcü tasarlamadan önce sistemi modelliyor. AI'a DC motor modelini kurdurup PID kontrolcü ekletiyor; simülasyon güzel, aşımsız bir yanıt veriyor. Ama Nil kararlı-hal hızını teorik formülle karşılaştırınca %15 fark buluyor: AI'ın kullandığı örnek motor sabiti K, gerçek motorunkinden farklı. Datasheet değerlerini koyunca simülasyon teoriyle oturuyor. Sonra gerçek motorun basamak yanıtını ölçüp model çıktısıyla üst üste koyuyor; model hızlı bölgede iyi uyuşuyor ama düşük hızda sapıyor—çünkü model statik sürtünmeyi (stiction) ihmal etmiş. Nil bu sınırı not ediyor: model yüksek hızda güvenilir, çok düşük hızda değil. Kontrolcüyü buna göre tasarlıyor. AI modeli ve simülasyonu hızlı kurdu; ama parametre doğrulaması ve deneysel karşılaştırma, modelin gerçek geçerlilik sınırını mühendise gösterdi.
Yaygın Hatalar
- AI'ın örnek/placeholder parametreleriyle simülasyon yapıp sonucu gerçeğe taşımak.
- Simülasyonu bağımsız bir analitik kontrol noktasıyla doğrulamamak.
- Modelin ihmal ettiği etkileri (sürtünme, backlash, gecikme) unutup her koşulda güvenmek.
- Modeli gerçek ölçümle hiç karşılaştırmadan "doğrulanmış" saymak.
- Kararlılık analizini (kutup yerleri) atlayıp yalnızca "grafik güzel görünüyor" demek.
- Geçerlilik aralığını belirlemeden modeli tüm çalışma bölgesinde kullanmak.
Özetle
- Model, gerçeğin amaca yönelik basitleştirmesidir ve daima bir şeyleri ihmal eder.
- Simülasyon, donanımı riske atmadan tasarım ve kontrolcü ayarı yapmayı sağlar.
- Her simülasyon bağımsız bir analitik sağlama noktasıyla doğrulanmalıdır.
- Model parametreleri gerçek ölçüm/datasheet'ten gelmeli, AI'ın örnek değeriyle bırakılmamalıdır.
- Kararlılık, kutup yerlerine (sol yarı düzlem) bakılarak değerlendirilir.
- Validasyon, modelin geçerlilik aralığını ve sınırlarını mühendise gösterir.
Uygulama görevi
Basit bir dinamik sistem seçin (DC motor, kütle-yay-sönümleyici, RC devre). AI'a durum-uzay veya diferansiyel denklem modelini kurdurup Python'da basamak yanıtını simüle ettirin ve mutlaka bir teorik kararlı-hal/analitik sağlama noktası isteyin. Ardından: (1) simülasyon sonucunu teorik değerle karşılaştırıp uyuşuyor mu kontrol edin, (2) bir parametreyi ±%20 değiştirip sonucun ne kadar değiştiğine (duyarlılık) bakın, (3) modelin ihmal ettiği en az iki fiziksel etkiyi ve bunların hangi çalışma bölgesinde önemli olacağını yazın. Modelinizin geçerlilik aralığını bir cümleyle tanımlayın.