Skip to content

About

PID based ACC design simulation project.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

MATLAB/Simulink ile PID Tabanlı Adaptif Hız Sabitleyici (ACC) Tasarımı

📌 Proje Özeti

Bu proje, otonom ve yarı-otonom araç teknolojilerinin temel taşlarından biri olan Adaptif Hız Sabitleyici (Adaptive Cruise Control - ACC) sisteminin modellenmesini ve simülasyonunu içerir.

Proje, MATLAB/Simulink ortamında geliştirilmiştir. Amaç, öndeki araç (Lider) ile bizim aracımız (Ego) arasındaki güvenli takip mesafesini, aracın hızını otomatik olarak ayarlayarak korumaktır. Tasarımda araç dinamikleri, sensör gecikmeleri ve fiziksel hız limitleri (Saturation) göz önünde bulundurulmuştur.


⚙️ Sistem Mimarisi ve Alt Sistemler (Subsystems)

Model Architecture Simulink modeli, endüstriyel "Model Tabanlı Tasarım" (Model-Based Design) prensiplerine uygun olarak modüler bir yapıda, 3 ana alt sistem halinde tasarlanmıştır:

  1. Traffic Environment (Trafik Ortamı):
    • Fiziksel dünyanın modellendiği kısımdır.
    • Lider aracın hızı (Referans) ile bizim aracımızın hızı arasındaki farkın integralini alarak anlık Takip Mesafesini hesaplar ($x = \int (v_{lider} - v_{ego}) dt$).
  2. ACC Controller (Kontrolcü - Beyin):
    • Sensörden gelen "Gerçek Mesafe" ile kullanıcının belirlediği "Hedef Mesafe"yi (20m) karşılaştırır.
    • Oluşan hatayı (e(t)) PID algoritması ile işleyerek araca ne kadar hızlanması veya yavaşlaması gerektiği komutunu üretir.
  3. Ego Vehicle Dynamics (Araç Modeli):
    • Kontrolcüden gelen komutun fiziksel araca uygulandığı kısımdır.
    • Motor/Şasi gecikmeleri ve hız limitleri burada modellenmiştir.

📐 Matematiksel Model ve Analiz

1. Araç Dinamiği (Transfer Fonksiyonu)

Aracın gaz/fren komutuna verdiği tepki anlık değildir. Motorun tork üretmesi ve kütlenin ivmelenmesi bir zaman alır. Bu durum Birinci Dereceden Gecikmeli Sistem (First Order Lag) olarak modellenmiştir:

$$G(s) = \frac{V_{ego}(s)}{U(s)} = \frac{1}{\tau s + 1}$$

  • $\tau$ (Zaman Sabiti): Aracın komuta tepki verme süresini temsil eder.
  • $1$ (Kazanç): Girilen hız komutuna aracın (sürtünmeler ihmal edildiğinde) birebir ulaşacağını varsayar.

2. Saturation (Fiziksel Sınırlayıcılar)

Teorik matematikte araç sonsuz hızla gidebilir ancak gerçek dünyada sınırlar vardır. Modelde kullanılan Saturation bloğu bu sınırları temsil eder:

  • Üst Limit (60 m/s): Standart bir binek aracın maksimum hızı yaklaşık 216 km/h ($\approx 60 \text{ m/s}$) olarak belirlenmiştir. PID bu değerin üzerinde bir komut üretse bile araç bu fiziksel limiti aşamaz.
  • Alt Limit (-20 m/s): Maksimum frenleme ve geri gidiş kapasitesini temsil eder.

3. PID Kontrol Algoritması

Sistemin kararlılığı için şu kontrol denklemi uygulanmıştır:

$$u(t) = K_p e(t) + K_i \int e(t) dt + K_d \frac{de(t)}{dt}$$

  • Proportional (P): Mesafeyi kapatmak için gereken ana gücü sağlar.
  • Integral (I): Mesafenin tam olarak 20 metreye oturmasını sağlar (Steady-State Error'ı sıfırlar).
  • Derivative (D): Öndeki araç ani fren yaptığında oluşacak çarpışma riskini ve sistemdeki salınımı (Overshoot) sönümler.

🎛️ PID Ayarlama (Tuning) ve Yorumlar

PID katsayıları rastgele seçilmemiştir. MATLAB PID Tuner App kullanılarak sistemin Transfer Fonksiyonu analiz edilmiş ve şu hedeflere göre optimize edilmiştir:

  • Hızlı Tepki Süresi: < 1 saniye (Güvenlik için kritik).
  • Düşük Aşım (Overshoot): %10'un altında (Yolcu konforu için sarsıntısız sürüş).

Elde Edilen Katsayılar:

  • P ≈ 4.97
  • I ≈ 1.50
  • D ≈ 1.59

📊 Simülasyon Sonuçlarının Yorumlanması (Scope Analizi)

Simulation Output

Simülasyon, lider aracın 30 m/s hızla giderken 10. saniyede aniden 20 m/s hıza düştüğü (fren yaptığı) senaryoda gerçekleştirilmiştir.

  1. Sarı Çizgi (Mesafe):

    • Simülasyon başında araç 50m uzaktadır. Kontrolcü devreye girer ve mesafeyi hızla 20 metreye düşürür.
    • t=10. saniyede: Lider araç fren yapınca mesafe anlık olarak azalma eğilimine girer (çukur oluşur), ancak Türev (D) etkisiyle sistem hemen tepki verir ve mesafeyi tekrar 20 metreye sabitler.
    • Sonuç: Kalıcı durum hatası 0'dır.
  2. Mavi Çizgi (Araç Hızı):

    • Araç, 50 metrelik farkı kapatmak için başlangıçta liderden daha hızlı gitmek zorundadır. Grafikte hızın yükseldiği görülür.
    • Mesafe kapandığında araç hızını liderin hızıyla (30 m/s) eşitler.
    • Lider yavaşladığında, bizim aracımız da güvenli mesafeyi korumak için sert bir frenle 20 m/s hıza düşer.

🚀 Kurulum ve Çalıştırma

Projenin parametrik çalışabilmesi için .m dosyası kullanılmıştır. Bu sayede blokların içine tek tek sayı girmek yerine, tüm parametreler tek bir dosyadan yönetilir.

  1. Bu repoyu bilgisayarınıza indirin.
  2. MATLAB'ı açın ve önce acc_parameters.m dosyasını çalıştırın (Değişkenlerin Workspace'e yüklenmesi için şarttır).
  3. ACC_System_Design.slx dosyasını Simulink ile açın.
  4. Run butonuna basın ve Scope ekranından sonuçları inceleyin.

👨‍💻 İletişim

Ayberk Tuncel Elektrik-Elektronik Mühendisliği Bölümü Ege Üniversitesi

LinkedIn Profilim

About

PID based ACC design simulation project.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages