21 Ağustos 2018, 19:32:10

Haberler:

Forum kuralları güncellendi LÜTFEN  okuyunuz:  https://bit.ly/2IjR3ME


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

Başlatan Firzen, 22 Temmuz 2018, 21:08:34

Firzen

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.


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.

 
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)

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ü.

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.
 
Ardından elde edilen model ile ilk sistemin giriş ve çıkış cevapları ile karşılaştırıldı.


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.

Elimizdeki bu veri setinden tahmin yapmak için yukarıda gösterildiği gibi process modeli seçildi ve katsayılar tahmin ettirildi.

Yapılan bu işlemler neticesinde aşağıdaki gibi verilen birinci dereceden ölü zamanlı s- domeninde bir formül ve katsayılar bulundu.

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ı.
Istanbul Technical University                                  Control and Automation Engineering

deneme_1234

Merhabalar,

Çok hoş konular zaten ömrümüz bunları uygulamaya işlemekle geçiyor. Şimdi teknikerler saldırsın bizlere; neden mühendislik önemli diye :) Şaka bir yana, bir kaç sözcük de ben eklemek isterim.

Doğadaki sistemlerin hemen hemen çoğu non-lineer, yani zamanla değişken değerler. Tüm mesele küçük bir alanda lineer davranan sistem modelleri elde edip üzerine çalışıp kontrol algoritmaları düzenlemek üzerine. Peki her şeyi bu şekilde çözümleyebiliyor muyuz elbette hayır. Bunun için de ne yapıyoruz, insan oğlu doğa ne yapıyorsa onu. Şartları öğrenmeye çalışıyoruz ve ileriyi kestirip ona göre kontrol sağlıyoruz.

Ne gibi derseniz; örneğin ideal koşullarda bir beyzbol maçında topa vurulduğunda tutucu eleman topun kendisine doğru geldiğini görür ve olası izleyebileceği yollar içerisinde şans olarak en yüksek gördüğü noktada bekler ve topu tutmaya çalışır. Fakat rüzgar, manyetik alan, sıcaklık, adamın görüş açısı vs. milyon tane faktör de topun yoluna gürültü olarak etkiyordur o arada, ama o en olasılıklı olanı seçer.

Hah şimdi oldu mu predictive control sana.

Şimdi masal okuma nerede kullanılıyor bunlar eyyy dediğinizi duyar gibiyim.

En basitini söyleyeyim: Araçlardaki Hız Sabitleme uygulaması. Tork, aracın gücü, yolun kalitesi vs. bir çok etkene karşın hız hep sabit.

Bu konular içerisinde sevdiğim en güzel dal nöral network olmuştu; uyguladığım iki alan oldu birincisi evde kullanılan ocaklarda ikincisi güneş enerjisi alanında MPPT takibinde. İlkinde evdeki kullanıcının her bir ocağı nasıl kullandığını kestirip enerji kazancı yapıyorduk, ikincisinde ise bir çok datayı alıp MPPT taramasını minimuma indirerek koşullar şu şu şuysa nokta burasıdır diyebiliyorduk.

Dip not: Manyak işlemci güçleri gerekmiyordu bile.


foseydon

"feedback systems" kitabını tavsiye ederim, hem de beleş. matematiğe boğmadan anlatıyor, bol matematik olsun diyenler için ise ogata'nın kitabını tavsiye ederim.

http://www.cds.caltech.edu/~murray/books/AM05/pdf/am08-complete_22Feb09.pdf

muhittin_kaplan

Hocam Ellerinize Sağlık.
Sizler Bu tür Konuları Lütfen Paylaşınız.
Bizler Led Yakıp Söndürmeyi Hallederiz.