MATLAB Sisotool Aracı ile Optimizasyon Temelli PID Denetleyici Tasarımı

Merhaba arkadaşlar bu makalemde MATLAB programına ait araçlardan bir tanesi olan “sisotool” aracı kullanılarak PID denetleyici tasarımı gerçekleştireceğim.

MATLAB programı bilindiği üzere, günümüzde çok sayıda mühendislik alanında bilimsel ve teknik hesaplamalar yapmak için yaygın olarak kullanılan ve kabul görmüş bir yazılımdır. Şu anda özellikle kontrol mühendisliğinde en temel tasarım ve analiz aracı olarak kullanılmaktadır. “sisotool” aracı da MATLAB programında tek giriş tek çıkışlı doğrusal sistemlerde analiz ve tasarım işlemlerini gerçekleştirmek için hazırlanmış bir grafiksel kullanıcı arayüzüdür.

Bu çalışmamda  “sisotool” aracı önce PID katsayılarının Ziegler – Nichols (ZN) ve Chien –
Hrones – Reswick (CHR) metodları ile belirlenmesinde sonrasında da istenen çalışma şartlarının sağlanması için PID katsayılarının optimize edilmesinde kullanacağım.


PID Tasarımına başlamadan öncelikle MATLAB'ın sunmuş olduğu "sisotool" aracını tanıyalım.

SİSOTOOL ARACI TANITIMI 

sisotool”, Matlab programındaki tek giriş-tek çıkışlı doğrusal sistemlerin zaman ve frekans boyutundaki yöntemler ile tasarlanmasına ve analiz edilmesine olanak sağlayan bir kullanıcı arayüzüdür. “sisotool” Matlab çalışma ekranına “sisotool” yazılarak açılır. “sisotool” çalıştığında aşağıdaki arayüz açılmaktadır. Bu kullanıcı arayüzü aşağıdaki beş sekmeden oluşmaktadır:

-”Architecture”
-”Compensator Editor”
-”Graphical Tuning”
-”Analysis Plot”
-”AutomatedTuning”



“Architecture” kısmında sistemde bulunan blok diyagram yerleşimleri ve döngü yapıları belirlenebilir. İstenen bloklar için dışarıdan veri aktarma ve tanımlama işlemleri de bu sekmede gerçekleştirilir.

“Compensator Editor”  kısmında sisteme yeni kazançlar, kutuplar veya sıfırlar eklenebilir ya da değerleri değiştirilebilir.

“Graphical Tuning” sekmesinde altı adet farklı grafik üzerinden, açık döngü yapılarda kök yer eğrisi, açık döngü Bode ve Nichols diyagramları, kapalı döngü yapılarda kapalı döngü Bode diyagramı kullanılarak grafiksel ayarlama ile analiz ve tasarım yapmak mümkündür.

“Analysis Plot” kısmında sistemler için basamak ve impuls cevapları, Bode, Nyqyist, Nichols diyagramları ve kutup sıfır haritaları elde edilerek sistemlerin analizi gerçekleştirilebilir.

“AutomatedTuning” sekmesinde tasarlanan denetleyicinin ayarlanması için otomatik ayarlama yapan beş farklı yöntem bulunmaktadır.


 “Optimization Based Tuning” metodunda kullanıcı tarafından belirlenen sistemin performans kriterlerini sağlayacak şekilde denetleyici parametrelerini otomatik olarak ayarlanır. Bu metodun kullanılabilmesi için “MATLAB Simulink® Design Optimization™ ” aracının yüklü olması gerekmektedir.

“Internal Model Control(IMC) Tuning” metodu matematiksel modeli hatasız olarak bilinen sistemler için daha uygundur. Çünkü sistemin modeli hatasız ise IMC metodunda oluşturulacak geribesleme ile oluşan kapalı-döngü sistem kararlı olacaktır. Bu metod hem kararlı hem de kararsız sistemler için uygulanabilir.

”LQG Synthesis” yönteminde de oluşturulacak geribesleme ile oluşan kapalı-döngü sistem kararlıdır. Bu yöntemde ise modelin hatasız olarak bilinmesine gerek yoktur.

“Loop Shaping” metodunu kullanabilmek için “MATLAB Robust Control Toolbox™” yazılımı yüklü olmalıdır. Bu yöntemde döngü şekli bantgenişliği ya da açık döngü frekans cevabı olarak tanımlanabilir.

“PID Tuning” metodunda temel olarak iki farklı ayarlama söz konusudur. Bunlarda “Robust response time” seçeneği ile denetleyici tasarımı yapılırsa denetleyici parametreleri sistemin robust ve kararlı olmasını sağlayacak şekilde hesaplanır. Eğer bu seçenek altında tasarım metodu olarak “Interactive” seçilmiş ise PID parametreleri kullanıcı tarafından belirlenen bandgenişliği ve faz payına göre hesaplanır. “Classical design formulas” ayarlama metodunda hesaplamalar için aşağıda kısaca açıklanmış altı farklı yöntem ile tasarım yapılabilir.


-”Approximate MIGO frequency response” seçeneğinde kapalı döngü sistemlerin frekans boyutunda MConstrained Integral kazancının yakınsaması kullanılır.

-”Approximate MIGO step response” seçeneğinde açık döngü sistemlerin zaman boyutunda M-Constrained Integral kazancının yakınsaması kullanılır.

-“Skogestad IMC“ seçeneği kullanılırsa sistem, zaman gecikmeli birinci derece modele yakınsar ve denetleyici parametreleri Skogestad formülü ile hesaplanır.

- “Ziegler – Nichols frequency response” seçeneğinde denetleyici parametreleri ZN frekans cevabı tablosuna göre hesaplanır.

- “Ziegler - Nichols step response” seçeneğinde denetleyici parametreleri ZN basamak cevabı tablosuna göre hesaplanır.

-“Chien – Hrones - Reswick” seçeneğinde denetleyici parametreleri CHR metodunun 0 aşım ve yük dağılım tablosuna göre hesaplanır.


SİSOTOOL İLE PID TASARIMI UYGULAMASI

“sisotool” aracı ile herhangi bir işlem gerçekleştirmeden önce kullanılacak sistemin matematiksel modeli MATLAB programına girilmesi gerekmektedir. Doğrusal bir transfer fonksiyonu olarak DC Motorun lineerleştirilmiş transfer fonksiyonunu örnek alalım. Amacımız DC Motoru istenilen tasarım kriterlerine göre kontol eden bir PID kontrolör tasarlamak.

Tasarım Kriterleri şu şekilde olsun; 

Yüzde aşım %10’un altında, yükselme zamanı 0.5 s, yerleşme zamanı 5s’den küçük ve kararlı durum hatası 0 olacak şekilde performans kriterleri belirlenmiş olsun. Verilen üçüncü dereceden bir sistem için, belirlenen çalışma şartlarını sağlayan PID denetleyici tasarımı yapılacaktır. Tasarım için önce Ziegler – Nichols sonrasında Chien – Hrones – Reswick metodları kullanılacak, her iki metod ile elde edilen parametreler optimize edilerek sistemin belirlenen şartlarda çalışması sağlanacaktır.

Problemin Çözüm Adımları

1. Adım: Sistemin MATLAB programına girilmesi ve sisotool aracının çalıştırılması

Şekilde verilmiş transfer fonksiyonunun tf() komutu ile MATLAB programına girilerek ardından komut penceresine “sisotool” yazılarak aracı çalıştırıyoruz.

sys=tf([1 5],[1 25 11 25])
sisotool

Araç çalıştırıldığında ekrana ilk olarak aşağıdaki pencere gelir. Bu pencere “sisotool” aracının temel penceresidir ve pencerede görülen şekil o anda kullanılmakta olan blok diyagram yerleşimini göstermektedir. Gerçekleştirilen uygulamada Şekilde görülen blok diyagram kullanılmıştır.



2. Adım: Transfer Fonksiyonunun Sisotool Aracına Tanıtılması

Aşağıdaki soldaki şekilde “System Data” penceresinde G bloğu seçilip “Browse” butonuna basıldığında sağdaki pencere açılır. Bu pencerede istenen blok için “workspace” (çalışma alanı) içerisinde tanımlı modeller seçilir. Burada G (kontrol edilen sistem) bloğu için daha önce tanımlanan “sys” modelinin seçimi görülmektedir. Seçim işlemi yapıldıktan sonra “Import” butonuna tıklanarak sistem tanımlama işlemi tamamlanmış olur.


Uygulamanın bu kısmında herhangi bir denetleyici yapısı eklenmemiştir. Bununla birlikte “Analysis Plots” sekmesinden kapalı döngü sisteme ait “Step” grafiği çizdirildiğinde Aşağıdaki şekilde pencerede görülen birim basamak cevabı oluşmaktadır. Bu grafik incelendiğinde denetleyicisiz kapalı döngü sistemin 0.83 gibi oldukça büyük bir kararlı durum hatasına, %54 gibi oldukça yüksek bir yüzde aşım değerine ve 17.7 s gibi oldukça uzun bir yerleşme zamanına sahip olduğu görülmektedir. Bu tip bir sistemde daha iyi bir çıkış cevabı elde etmek için PID tasarımı yapmak uygun bir işlemdir.


3.Adım: Otomatik PID Tasarımı

Bu işlemlerden sonra PID tasarımı için “Automated Tuning” sekmesine geçilerek “Design Methods” kısmından “PID Tuning” seçeneği seçilir. Bu uygulamada birim basamak cevabı üzerinden ZN ve CHR metodları kullanılarak PID katsayıları belirleneceği için aşağıdaki şekilde görülen “Tuning Methods” kısmında “Classic desing formulas”, “Controller Type” kısmında PID ve “Formula” kısmında “Ziegler – Nichols step response” seçenekleri seçilerek “Update Compensator” butonuna basılır.


Bu durumda ZN metodu için PID katsayıları otomatik olarak hesaplanır ve birim basamak cevabı aşağıdaki şekildeki gibi elde edilir. Şekilde görülen birim basamak cevabında kararlı durum hatası giderilmiş ancak ZN metodundan kaynaklı yüksek yüzde aşım ve çok salınımlı bir çıkış cevabı elde edilmiştir.


“sisotool” aracı ile istenen çalışma şartlarını sağlayan bir PID tasarımı için istenen şartlara göre katsayılar optimize edilecektir. Bu işlem için yine “Automated Tuning” sekmesinde “Design Methods” kısmında “Optimization Based Tuning” seçeneği seçilmelidir.


Ardından “Optimize Compensator” butonuna tıklandığında aşağıdaki şekildeki gibi pencere ekrana gelir.


Optimizasyon işlemine geçmeden önce ilk olarak “Compensators” sekmesinde PID denetleyicide optimize edilecek parametreler seçilmelidir. Şekilde görüldüğü üzere PID denetleyicide integratör olarak görülen kutup dışında kazanç ve sıfır değerleri optimize edilmek için seçilmiştir.

Sonraki işlem olarak “Design Requirements” sekmesinde “Add new design requirement” butonuna tıklanarak istenen performans kriterleri girilir. Aşağıdaki şekilde görülen küçük pencerede istenen çalışma şartları girilmektedir. Bu uygulamada basamak cevabı temel alındığından yükselme zamanı, yüzde aşım, durulma zamanı gibi kriterler tasarım kriteri olarak girilmiştir. Farklı çalışma kriterleri için “Design requirement type” kısmından farklı seçenekler seçilebilir.

Rise Time (Yükselme Zamanı): 0.5 s
Settling Time (Yerleşme Zamanı): 5 s
Overshoot: (Yüzde Aşım): 10

Bu tasarım kriterlerini uyguluyoruz.


“OK” butonuna basıldığında karşımıza aşağıdaki şekil elde edilecektir. Dikkat edilirse alttaki grafikte girilen tasarım kriterlerine göre belirlenmiş sınır değerleri görülmektedir. Buradaki amaç bu sınır değerleri içinde kalacak PID parametrelerini hesaplamaktır. Bu alan tasarım kriterlerine göre değişkenlik göstermektedir. Optimizasyon işlemi sonucunda basamak cevabı bu sınırlar içinde kalacaktır.



4.Adım: Optimize Edilmiş PID Tasarımı

Son olarak “Optimization” sekmesine geçilerek “Start Optimization” butonuna tıklanır ve optimizasyon işlemi başlatılır . Bu uygulama için optimizasyon işlemi 6 iterasyon sürmüştür. Aşağıdaki şekilde basamak cevabının belirlenen sınırlar içerisinde olduğu görülmektedir.

Görüldüğü üzere yüzde aşım %10’un altında, yerleşme zamanı 5s’den küçük ve kararlı durum hatası 0 olacak şekilde belirlenen performans kriterleri sağlanmıştır.

“Optimization options” butonuyla optimizasyon işlemi ile ilgili ayarlama işlemleri yapılmaktadır. İstendiği takdirde optimizasyon işleminde kullanılan optimizasyon yöntemi, algoritması, toleranslar ve iterasyon sayıları değiştirilebilir. Bu çalışmada aracın varsayılan ayarları kullanılmıştır.


Optimizasyon işlemi sonrası elde edilen grafikler aşağıda verilmiştir.


İstenilen tasarım kriterlerine göre PID tasarımını yaptık. Bundan sonraki adımda Kp, Kd,Ki katsayılarının nasıl bulunduğunu anlatmaya...

5.Adım: Kp, Kd, Ki Parametrelerin Bulunması



Elde edilen optimize edilmiş denetleyiciye ait parametre değerleri ise yukarıdaki şekilde görülmektedir. Tabi burada Kp, Ki ve Kd nin değerleri açık bir şekilde verilmemiştir. Biz bunu açık bir şekilde görmek istersek eğer; "File" > "Export" a tıklayarak C (compensator) ' e tıklayarak "Export to Workspace" e tıklıyoruz. Bu sayede değişkenimiz çalışma alanına geliyor.



Çalışma ekranımıza geri dönüp pid(C) komutunu yazarak, Matlab bize Kp, Kd, Ki değerlerini sorunsuz bir şekilde veriyor.

Sonuç olarak; 

Bir sistemin istenen şartlarda çalışması için PID tasarımı MATLAB “sisotool” aracı ile gerçekleştirilmiştir. Özellikle karmaşık sistemler için tasarım işlemi elle yapılmak için oldukça külfetlidir. Herhangi bir program kullanılarak PID tasarımı gerçekleştirilmek istendiğinde MATLAB programı kadar kullanımı kolay, esnek ve görsel değildir. Bununla birlikte MATLAB programında “sisotool” aracı kullanılmaksızın PID tasarımı ve optimizasyonu yapmak için belirli kodları yazmak ve sonuçları bu şekilde elde etmek gerekir. “sisotool” aracı ise tamamen görsel bir kullanıcı arayüzü olduğundan herhangi bir hesaplama ve kod karmaşasına girmeksizin sadece istenen parametreler girilerek veya grafikler üzerinden analiz ve tasarım yapmak mümkün olmaktadır. Bu özellikler düşünüldüğünde “sisotool” aracı mühendislik uygulamaları dışında eğitimsel uygulamalarda da rahatlıkla kullanılabilir.
Ad

Arduino Autocad Bilim-Teknoloji Biyomedikal Sistemler C-Programlama C# C# Programlama Diferansiyel Denklemler Dijital Kontrol Sistemleri Elektrik Devreleri 1 Elektrik Devreleri 2 Elektrik Makineleri 1 Elektrik Makineleri 2 Elektrik Tesislerinde Koruma Elektromantetik Alan Teorisi Elektromantetik Dalga Teorisi Elektronik 1 Elektronik 2 Elektronik-Devreler EmguCV Genel Fizik Genel Kimya Genel Matematik Gömülü Linux Güç Elektroniği Haberleşme Sistemleri İşaret ve Sistemler Lineer-Cebir Lojik Devreler Malzeme Bilimi MATLAB Mikroişlemciler Olasılık ve İstatistik Otomatik Kontrol Sistemleri PLC-Otomasyon Proje Yönetimi ve Girişimcilik Raspberry Pi Sayısal Analiz Sayısal İşaret İşleme Teknik-Kutuphane Termodinamik Yüksek Gerilim Tekniği
false
ltr
item
Çağlar GÜL: MATLAB Sisotool Aracı ile Optimizasyon Temelli PID Denetleyici Tasarımı
MATLAB Sisotool Aracı ile Optimizasyon Temelli PID Denetleyici Tasarımı
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEheOp14P3ONfyzxv_meJX3c1Fkkk87SsQsmDC5IKGTWBs_X5ujJhmgLfpjrXd1FO314NX5g63JUQ7xHMp1yJSVUh6AaCYdPTYdRdhD5XOtub023L51S0DElBgTSU7lKd07SPJ0KZiU7L9w/s1600/1.PNG
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEheOp14P3ONfyzxv_meJX3c1Fkkk87SsQsmDC5IKGTWBs_X5ujJhmgLfpjrXd1FO314NX5g63JUQ7xHMp1yJSVUh6AaCYdPTYdRdhD5XOtub023L51S0DElBgTSU7lKd07SPJ0KZiU7L9w/s72-c/1.PNG
Çağlar GÜL
http://elektronikafa.blogspot.com/2016/09/matlab-sisotool-arac-ile-optimizasyon.html
http://elektronikafa.blogspot.com/
http://elektronikafa.blogspot.com/
http://elektronikafa.blogspot.com/2016/09/matlab-sisotool-arac-ile-optimizasyon.html
true
871250089272898028
UTF-8
Not found any posts Not found any related posts VIEW ALL Readmore Reply Cancel reply Delete By Home PAGES POSTS View All RECOMMENDED FOR YOU Tag ARCHIVE SEARCH ALL POSTS Not found any post match with your request Back Home Contents See also related Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sun Mon Tue Wed Thu Fri Sat January February March April May June July August September October November December Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec just now 1 minute ago $$1$$ minutes ago 1 hour ago $$1$$ hours ago Yesterday $$1$$ days ago $$1$$ weeks ago more than 5 weeks ago Followers Follow THIS CONTENT IS PREMIUM Please share to unlock Copy All Code Select All Code All codes were copied to your clipboard Can not copy the codes / texts, please press [CTRL]+[C] (or CMD+C with Mac) to copy