Sistem Tanımlama Hakkında (Kısaca)

firzen

Bölüm Yöneticisi
Yönetici
Bölüm Yöneticisi
Katılım
14 Tem 2010
Mesajlar
363
Puanları
6
Yaş
33
Konum
Sheffield
Merhabalar Değerli Forum Üyeleri;
Genelde sitede elektronik konuları ağırlık olmasından dolayı biraz daha farklılık olsun yeni konularda olması amacıyla Sistem Tanımlama ve Kontrol üzerine yaptığım bir çalışmayı sizlere anlatmak istiyorum. Farklı alanlarda farklı işler için kullanılması açısından yararlı olacağına (Muhittin Hocam dedi) inanıyorum.

Öncelik olarak sistem tanımlama nedir?
Normal şartlarda elektronikçiler, elektrikçiler, bilgisayarcılar, yazılımlcılar vs mekanik elektronik veya yazılımsal bir sistem üzerinde kontrol sahibi olmak ve bu kontrolün mümkünse otomatik olmasını isterler. Örneğin; sıcaklık değerinin belirli bir değere yavaşça oturması, bir grafikteki değerlerin diğerine yakınsaması, mekanik bir sistemin hızlı cevap verirken emniyet sınırlarında olması gibi...

Bunları yaparken herkesin bildiği matematiksel formülleri kullanarak önce bilgisayarda tanımlarız. Tanımlamaları aslında liseden beri biliyoruz ama günlük hayatta kullanmadığımız için anlamıyoruz. Örneğin, bir devreyi tasarlarken kullanılan formüller:

Bu formüller bize t zamanındaki sistemi tanımlar. Peki madem t zamanında elimde bir sistem varsa neden "fourier" , "s-domain" ve "z-domain" var? Neden sinyaller ve sistemler dersi aldık?

İşte asıl nokta buradan sonra başlıyor. Bir sistemi (sinyal ile sistemi karıştırmayın sinyal bir değerdir) konvolüsyon yapacaksak ve buna uygulanan sinyaller t zamanında çok işlem ve zaman kaybı yapıyorsa, bu sistemi "w-domain"'e geçirip yani Fourier Transform yapıp hızlı bir şekilde anlaşılır bir cevap elde edebiliriz. Güç elektroniği çalışanlar, manyetikçiler hele ki titrasyon çalışanlar FFT üzerinden yorum yapıp sisteme uygun kontrol yapısı kurabilirler, zaten bu alanlarda çok kullanılır.

Sıkıntı ise Z-S arasındaki kavgadır. Sistemin modelini biliyorsak belirli bir çalışma aralığı için (0-5V arası gibi) kontrol oluşturması S-Domianinde inanılmaz kolaydır. Sistemin transfer fonksiyonu var. Başına kullanılacak kontrol yöntemi katsayıları çarp eşitle ve bul. Aşağıda bir motorun modeli ve transfer fonkiyonunu verdim (Norman Nise). Uygulanması gereken işaret burada belliyor.

1541670066705.png
Fakat z-domaini ise s-domaininden farklı (bu ikisini uzun uzun anlatmak istemiyorum, çünkü hem lisansta uzun uzun gördük ve gördünüz hemde beya bir vakit alır anlatması. O yüzden REF: Automatic Control System - Benjamin C.KUO, Control Engineering - Norman Nise, System Dynamics - OGATA, Modern Control - Bishop). Neyse z-domaininde örnekleme zamanı ve çalışma ve kararlılık önemlidir. Zaten kontrol sistemlerinde 2 ÖNEMLİ konu vardır: Gözlenebilirlik, Kontrol Edilebilirlik. Zaten forumda da dikkatinizi çektiyse genelde soru Hangi işlemci ve nedeni. Aslında buradaki sorunun kontroldeki karşılıkları şu:
1- Hangi işlemci ile sistem gözlenebilir?
2- Bu işlemci ile kontrol edilebilirlik ne derece kararlı olur?
a. Örnekleme zamanı ne olmalı?
b. Örnek sayısı ne olmalı?
Kontrolde kararlılık s domaini ise açık çevrim root-locus' bakarak RouthHurwitz, z-domaininde ise birim çember veya Jury testi ile yapılabilir (Farklı metodlarda var pole-spread color vs...)

Konumuza geri dönersek elimizde bir modelin iç yapısı varsa matematiksel tanımlamalarla kontrol edebiliyoruz. Denklem varsa çözebiliyoruz. Linear ise continuous veya discrete model ile yorumlayabiliyoruz.

Ya sistem nonlinear ise ve içini bilmiyorsak? Burada devreye sistem tanımlama, linearleştirme yöntemleri giriyor. Bunu derste yaptığımız bir proje üzerinden açıklayacağım. Yanlışlarım olabilir şimdiden bilgi vereyim. 

PROJE:

Elimizde bir sisteme uygulanan giriş işaretine karşılık çıkış işaretleri var. Bu sinyalleri Matlab, LabVIEW, Mathematica, Python, SciLab kullanarak oluşturabilirsiniz. Ben her ne kadar LabVIEW'ci olsamda, proje için Matlab kullandık.
1541670094433.png

1541670110181.png
Böyle bir sistemi modellemek için öncelik olarak sistemi tanımamız lazım. Bunun için giriş çıkışa bağlı bir modeli matrix olarak oluşturduk. Bu oluşturuan Z-Regresör matrisi NARX(ARX,NARMAX vs.. başka yapılarda var) yapısı kullanılarak yapıldı.(ref: IEEE-System identification, NARX Structure)
1541670136954.png
Yapılan denemelerde NARX yapısında girişin ve çıkışın bir önceki ve iki önceki değerlerinin kullanılmasının daha iyi sonuç verdiği görüldü.
1541670148804.png
Modeli çıkarmak için Neuro- Fuzzy Designer Toolbox kullanıldı.
Üyelik fonksiyonları Gauss tipinde seçilmiştir. Üyelik fonksiyonları [4 4 4 4] olacak şekilde ayarlanmış ve 256 adet kural oluşturuldu. Bu işlem sonucunda aşağıdaki görüntü elde edildi.
1541670186382.png
Ardından elde edilen model ile ilk sistemin giriş ve çıkış cevapları ile karşılaştırıldı.
1541670206005.png

Bu grafikler bize ne ifade etti .Yukarıdaki grafikelerde görüldüğü gibi ilk önce her bir giriş için üçer üyelik fonksiyonu kullanıldığında model ve gerçek sistem çıkışları arasında küçük bir miktar fark olduğu görülmektedir. Herbir giriş için dörder üyelik fonksiyonu kullanıldığında model ymodel ve y değerleri karşılaştırıldığında neredeyse birebir örtüştüğü görülmüştür. Buradan anlaşılıyor ki verilerden elde ettiğimiz model ile basamaktaki y-u değerleri karşılaştırılması gayet başarılı bir değerle sonuçlanmıştır.
Şimdi elimizdeki modeli linearleştirme işlemine devam edebiliriz. Bunun için yine Matlab System Identification Toolbox'ını kullanacağız. Elimizdeki sistemi s-domaininde tanımlıyorsak zaman gecikmesi olmaz fakat zaman gecikmesi olan sistemleri (process gibi) tanımlarken Pade açılımından yararlanırız. Bu bize sistemde zaman gecikmesi olduğunu ve işleme katılacağını gösterir.
1541670234044.png
Elimizdeki bu veri setinden tahmin yapmak için yukarıda gösterildiği gibi process modeli seçildi ve katsayılar tahmin ettirildi.
1541670359818.png
Yapılan bu işlemler neticesinde aşağıdaki gibi verilen birinci dereceden ölü zamanlı s- domeninde bir formül ve katsayılar bulundu.
1541670387604.png
Kısacası artık elimizde bir model var. Hatta bu modeli kararlı kılacak birde PID var . Şimdi aklınıza şu gelebilir. ZATEN TOOLBOX KULLANDIN. Önemli olan doğru bilgiyi doğru şekilde kullanmaktır. Hepimizin bilgisayarında Matlab yüklüdür. Ama kaçımız Simulink üzerinden tasarım yapıp doğru toolbox'ı kullanıyor. Size kimse elinizle 6.dereceden bir sistemin katsayılırını bulun demez. Bulamazsınız demiyorum bulursunuz. Ama matlab bunu sizin yerinize yapar. Nasıl yapıldığını bildikten sonra yazılıma da hükmedebilirsiniz.

Teknik Tavsiye:
Kesinlikle yazdığım referans kitaplara bakın gerçekten çok zevkli konular.
Yazılımsal ve Donanımsal Tavsiye:
Matlab, LabVIEW, Mathematica ... bir tanede olsun sağlam bir matematiksel mühendislik programı öğrenin ve veri toplama kartı edinin (DAQ kartı gibi, bir diğer projemizde bu kart sayesinde motor tekerlerinden veri topladık ve segway boyutunda bir ters sarkaç sistem tasarladık)
Kişisel Tavsiye:
İTÜ-Kontrol ve Otomasyon Mühendisliği bölümünde bir yüksek lisans yapın. Gerçekten çok zevk alarak okudum. Teorik ve pratik bilgi açısından bana kattığı inanılmazdı.
 

Yeni mesajlar

Forum istatistikleri

Konular
127,964
Mesajlar
913,940
Kullanıcılar
449,609
Son üye
cherrywine

Yeni konular

Geri
Üst