Ters Sarkaç (inverted pendulum) Tasarımı ve Kontrolü

Ters çevrilmiş sarkaç sistemleri, kütle merkezi pivot noktasının üzerinde olan bir adet sarkaçtan oluşmaktadır. Bu sistemler kararsız durumda olduğu için yapı üzerine ek bir müdahele gerçekleştirilmediği takdirde sarkaç düşecektir. Sarkaç sisteminin denge durumuna geçebilmesi için yapının pivot noktası üzerinden doğrusal ve rotasyonel hareketleri sağlayacak kontrol sistemleri ve denetleyiciler kullanılmalıdır.

Bu tip sistemler robot kolu, yürüyen robot vb. denge problemlerinin bulunduğu sistemlerin geliştirilmesi sürecinde sıklıkla tercih edilmektedir.

Bu yazıda bu tarz bir sistemin Altair yazılımları kullanılarak nasıl modellendiği gösterilecektir.

Örneğimizde hareketli mekanizma modeli Altair Inspire, kontrol sistemi Altair Activate yazılımında oluşturulmuştur. Her iki yazılımın eş zamanlı (co-simulation) çözümüyle sonuç elde edilmiştir.

Kullanması ve öğrenmesi kolay Altair Inspire yazılımı, mekanik sistem simülasyonunu arka planda Altair MotionSolve çözücüsünü kullanarak gerçekleştirmektedir. ( Sadece Altair Inspire yazılımını kurmanız yeterlidir) Altair Activate, multi disipliner dinamik sistem modellerinin hızlı şekilde bir boyutlu (sinyal ve fiziksel tabanlı) modellerinin oluşturulması ve simülasyonuna imkan sağlayan, gerektiğinde 3D modellerle birlikte kullanılabilen bir yazılımdır.

Modelleme adımlar ve detayları:

Ters sarkaç sistemi mekanizmasının kurulması ve çözdürülmesi Altair Inspire yazılımında gerçekleştirilmiştir. Tüm işlem adımlarını aşağıdaki videonun ilk 01:43 dakikalık bölümünde bulabilirsiniz.

Kontrol Sisteminin Altair Activate Yazılımında Oluşturulması

Tüm işlem adımları aşağıdaki videoda yer almaktadır.

Inspire içerisinde hazırlanan modelde motor ve aktüatör tanımlamalarında eş zamanlı simülasyon için gerekli olan girdi ve çıktı parametreleri Provide Signals to Plant seçeneği aktif edilerek otomatik olarak tanımlanmaktadır.

Altair Activate – MotionSolve çözücüsü eş zamanlı simülasyon ayarları
  • Altair Activate yazılımında bu parametrelere erişim sağlayabilmek için eş zamanlı simülasyon bloğu olan MotionSolveSignals bloğunu sürükle bırak yöntemi ile tasarım ekranına taşıyınız. [1]
  • Oluşturulan blok üzerine çift tıklayarak ayarlar penceresini açıp Inspire içerisinden dışarı aktarılan model dosyasını seçiniz. İşlem tamamlandığında girdi ve çıktı parametrelerini bu pencere üzerinde görebilirsiniz. [2]
  • Ardından eş zamanlı simülasyon sonuç dosyalarının kayıt edileceği dosya yolunu belirtiniz. [3]
  • OK butonuna basarak pencereyi kapatınız. [4]

Hazırlanan modelin hareketi için gerekli olan denetim ve kontrolleri PID denetleyiciler vasıtasıyla sağlanacaktır.

PID Denetleyici Nedir ?

PID Denetleyiciler (Proportional Integral Derivative – Oransal Integral Türevsel) kontrol sistemlerinde yaygın olarak kullanılan bir geri besleme denetleyicisi yöntemidir. Bir PID denetleyici sürekli olarak bir hata değerini, yani amaçlanan sistem durumu ile mevcut sistem durumu arasındaki farkı hesaplar. Denetleyici süreç kontrol girdisini ayarlayarak hatayı en aza indirmeye çalışır.

Çalışmada sarkaç çubuğu üzerine tanımlanan motorun dik bir konumda durabilmesi için motora aktarılması gereken voltaj değeri PID Denetleyici vasıtasıyla hesaplanacaktır.

  • Sarkacın dik durumda olacağı açısal deplasman değerini Constant bloğu yardımıyla tanımlayınız. Örnek çalışma için sarkaçın dik olduğu açısal deplasman değeri 0.165 rad’dır. [1]
  • Hedef açısal deplasman ile gerçek açısal deplasman değeri arasındaki hatayı belirleyebilmek adına bir adet Sum bloğu tanımlayarak iki deplasman verisi arasındaki farkı hesaplayınız. [2]
  • Kontrol sistemi için PID bloğunu tanımlayıp aşağıdaki tabloda yer alan katsayıları giriniz. [3]
  • Kontrol sisteminin hazırlanması için Gain bloğunu tanımlayıp değerini 8 olarak belirleyiniz. [4]

Sarkaç üzerinde bulunan motorun blok diagramlar kullanılarak modellenip, PID Denetleyici ile bağlantısının gerçekleştirilmesi.

  • Motor için gerekli olan gerilimi sağlıyabilmek için SignalVoltage bloğu oluşturunuz. [1]
  • PID denetleyici hesaplanan hata değerine bağlı olarak motor için gerekli olan voltaj değerini hesaplayacaktır. 4. adımda tanımlayacağınız DCMotor 24V gerilim değerinde çalışacağı için sistemi güvene almak adına Saturation bloğu oluşturunuz ve gerilim değerini 24V ile -24V arasında sınırlandırınız. [2]
  • Topraklama için Ground bloğunu oluşturunuz. [3]
  • Altair Inspire içerisinde hazırladığınız motor modelini temsil etmek için DC_PermanentMagnet tipinde bir adet motor tanımlayınız ve aşağıdaki parametreleri giriniz. [4]
  • Motor üzerine gelen karşı yükün bu süreçte modellenmesi gerekmektedir. Bunun için bir adet doğrusal Position bloğu açınız. MotionSolve içerisinden aldığınız deplasman verisini doğrudan bu blok üzerine tanımlayarak cisim modelinde yer alan yapılar üzerinden motor üzerine gelen yükleri temsil edebilirsiniz. [5]
  • 4. adımda oluşturulan DCMotor bloğu ile 5. adımda oluşturulan Position bloğunu tork sensörü (Torque Sensor) vasıtasıyla birbirine bağlayınız. Elde edilen tork değerini doğrudan MotionSolve bloğu üzerinde Motor 4 – Torque girdisine bağlayınız. [6]
  • Inspire içerisinde Motor ve Aktüatör tanımlamaları sonucu otomatik olarak bir kontrol sistemi oluşturulmaktadır. Mevcut modelde denetim ve kontrolleri Altair Activate yazılımı içerisinde sağlayacağınız için Inspire kontrolcüsünü deaktif etmeniz gerekmektedir. Bunun için 1 adet Constant bloğu oluşturunuz ve değerini 1 olarak belirleyiniz. [7]

Not: Değer 0 olarak belirlendiği takdirde çözücü Inspire içerisinde otomatik olarak hazırlanan kontrol ve denetim sistemlerini kullanılacaktır.

Yapı üzerinde doğrusal hareket bir adet kart vasıtasıyla sağlanmaktadır. Bu kartın doğrusal hareketini bir adet Aktüatör tanımlayarak Inspire içerisinde kontrol altına almıştık. Motor için oluşturulan PID denetleyici sistemi ve motor tanımlamaları aynı zamanda aktüatör içinde tanımlanacağı için aşağıdaki ekran görüntüsünde yer alan sarı pencere içerisindeki diagramları ilk sistem içerisinden çoğaltabilir, tekrardan uygun parametreler ile düzenleyebilirsiniz.

  • Motorun çalışması sonucu rotasyonel bir hareket oluşacaktır. Kartın hareketi ise doğrusal olarak gerçekleşmektedir. Rotasyonel hareketi, doğrusal harekete dönüştürmek için IdelGearR2T bloğunu tanımlayınız. Dişli oranını ise 0.001 rad/m olarak belirlemelisiniz. [1]
  • Aktüatör üzerine gelen yükleri temsil etmek için doğrusal Position bloğu tanımlayınız. [2]
  • ForceSensor tanımlayarak PID denetleyici vasıtasıyla hesaplanan kuvvet değerini aktüatör üzerine girdi olarak tanımlayınız. [3]
  • Eş zamanlı simülasyon sonucu deplasman, hız, ivme gibi verileri okuyup grafiğe bastırmak için Scope’lar tanımlayınız. [4]

Ters sarkaç sisteminin 250 mm hareketinden sonra dik konuma gelmesini istediğimiz için aktüatör için hazırlanan PID Denetleyicisin hedef deplasman değeri 250 mm olarak belirlenmiştir.

Tasarım ekranında alan açmak ve karmaşık yapıların anlaşılabilirliğini kolaylaştırmak için SuperBlock’lar oluşturup alt sistemler oluşturabilirsiniz. Örnek çalışmada 8 adet Scope SuperBlock vasıtasıyla 1 adet bloğa indirgenmiştir.

Eş zamanlı simülasyon için MotionSolve çözücüsü ile Activate çözücüsü arasındaki simülasyon ayarlarının belirlenmesi gerekmektedir.

  • Final time’ı Inspire içerisinde hazırladığınız modelin simülasyon süresiyle aynı değer olarak belirlemelisiniz. Gerçekleştirilen çalışmada simülasyon süresi 20sn olarak belirlenmiştir. [1]
  • Relative tolerance MotionSolve çözücüsü üzerinde değişiklik yapmadığınız takdirde default olarak 0.001 değerine sahip olucaktır. [2]
  • Maximum step size değerini Inspire içerisinde hazırladığınız modelin maksimum adım değerine eşit olarak tanımlayınız. [3]

    Not: Maximum Step Size değerini Inspire içerisinde belirlediğiniz maksimum adım değerinden daha küçük bir değer olarak da tanımlayabilirsiniz. Fakat bu durum çözüm süresini uzatacaktır.

Eş zamanlı simülasyon sonucu ;

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir