Ayar kontrol sistemine ölçülen adım yanıtı nasıl kullanılır


17

PID veya evrişim kontrol şemasını ayarlamak için ölçülen adım yanıtı nasıl kullanılır?

Bu yanıttan * esinlenerek , ölçülen adım yanıtına dayalı bir kontrol sisteminin nasıl uygulanacağı hakkında daha ayrıntılı bir açıklama ile ilgileniyorum.

Tüm etkileri tahmin etmeye çalışmam. Muhtemelen açık olmayan bazı şeyler var ve tüm parametreleri bilemezsiniz.

Adım tepkisini ölçerdim. Topun tüp içindeki ölçülebilir aralıkta olmasına neden olan iki pompa ayarı bulun. Ardından denetleyicinin aniden bir ayardan diğer açık döngüye geçmesini sağlayın. Bu arada topun zaman içinde ne yaptığını ölçün. Bu adım yanıtıdır. Bunun türevini alabilir ve dürtü yanıtını alabilirsiniz. Darbe tepkisinden, doğrusal bir sistem olduğunu varsayarak, pompa ayarlarının herhangi bir geçmişi için topun hareketini tahmin edebilirsiniz. Muhtemelen topu normal aralık dahilinde tutmak için küçük ayar aralığında yeterince doğrusaldır.

Eski moda PID kontrolü için parametreleri bulmak için bunu bir simülasyon tabanı olarak kullanabilirsiniz. Veya bir evrişim kontrolü yapmak için dürtü yanıtını doğrudan kullanabilirsiniz. Kontrol girişini yeterince düşük filtreye geçirmelisiniz, böylece pompanız aslında geri çevrilemez ve topu geri ememezse, evrişim çekirdeği negatif olmaz.

Bu tam olarak nasıl çalışıyor? PID ayarlaması zordur ; Ben "kıvrım kontrolü" kutup sıfır veya transfer fonksiyonunun kullanımı olduğunu varsayıyorum, ama tam olarak nasıl parametreleri almak için görmüyorum.

İLGİLİ: Kontrol Sistemleri için Sistem Modelleme
* Bir tüpte amortisör olarak pinpon topu levitasyonunun modelleme transfer fonksiyonu

Yanıtlar:


23

Giriş

İlk olarak, bu şeyin bir sistemin dürtü yanıtı tam olarak ne olduğunu ve bunun ne anlama geldiğini düşünmeliyiz . Bu, görselleştirilmesi biraz düşünen soyut bir kavramdır. Ben titiz matematiğe girmeyeceğim. Demek istediğim, bu şeyin ne olduğunu bir sezgi vermeye çalışmak, bu da onu nasıl kullanabileceğinize yol açıyor.

Örnek kontrol problemi

Üzerine bir sıcaklık sensörü monte edilmiş büyük bir yağ gücü direncine sahip olduğunuzu düşünün. Her şey başlar ve ortam sıcaklığında başlar. Gücü açtığınızda, sensördeki sıcaklığın sonunda artacağını ve dengeleneceğini bilirsiniz, ancak kesin denklemi tahmin etmek çok zor olacaktır. Diyelim ki, sistemin 1 dakika civarında bir zaman sabiti var, ancak "zaman sabiti" tamamen uygulanamaz, çünkü sıcaklık tek kutuplu bir sistemde olduğu gibi hoş bir üstel olarak yükselmiyor ve bu nedenle tek bir zaman sabiti . Sıcaklığı doğru bir şekilde kontrol etmek istediğinizi varsayalım ve yeni bir seviyeye geçmesini ve uygun güç seviyesinde açıp beklemeniz durumunda ne olacağından çok daha hızlı bir şekilde orada kalmasını istediğinizi varsayalım.

Temel olarak, kontrol sistemi sorununuz var. Açık döngü yanıtı makul şekilde tekrarlanabilir ve bir yerde onu yeterince iyi modelleyen bir denklem vardır, ancak sorun bu denklemi türetmeniz için çok fazla bilinmeyen olmasıdır.

PID kontrolü

Bunu çözmenin klasik bir yolu bir PID denetleyicisidir. Bu, analog elektronikte yapılması gerektiğinde pleistosende, insanlar zeki oldular ve eldeki analog yeteneklerle iyi çalışan bir şema buldular. Bu şemaya Oransal , İntegral ve Türev için "PID" adı verildi .

P terimi

Hatayı ölçmeye başlarsınız. Bu sadece ölçülen sistem tepkisidir (bizim durumumuzda sensör tarafından rapor edilen sıcaklık) eksi kontrol girişi (istenen sıcaklık ayarı). Genellikle bunlar voltaj sinyalleri olarak mevcut olacak şekilde düzenlenebilir, bu nedenle hatayı bulmak sadece analog bir farktı, bu da yeterince kolaydır. Bunun kolay olduğunu düşünebilirsiniz. Yapmanız gereken tek şey, direnci ne kadar yüksek olursa direnci sürmektir. Bu, çok soğuk olduğunda otomatik olarak daha sıcak ve çok sıcak olduğunda daha soğuk yapmaya çalışacaktır. İşe yarıyor, sortof. Bu şemanın sıfır dışında herhangi bir kontrol çıkışına (rezistörü çalıştıran güç) neden olması için bazı hatalara ihtiyacı olduğunu unutmayın. Aslında, ihtiyaç duyulan güç ne kadar yüksek olursa, hata o kadar büyük olur, çünkü yüksek gücü elde etmenin tek yolu budur. Şimdi tek yapmanız gereken kazancı arttırmaktır, böylece hata yüksek güçte bile kabul edilebilir. Sonuçta, opampların birçok devrede nasıl kullanıldığının temeli budur. Haklısınız, ancak gerçek dünya genellikle bundan kurtulmanıza izin vermez. Bu, bazı basit kontrol sistemleri için işe yarayabilir, ancak yanıta her türlü ince kırışıklık olduğunda ve önemli bir zaman alabildiğinde, kazanç çok yüksek olduğunda salınan bir şeyle sonuçlanırsınız. Başka bir deyişle, sistem kararsız hale gelir. ancak tepkiye her türlü ince kırışıklık olduğunda ve önemli bir zaman alabildiğinde, kazanç çok yüksek olduğunda salınan bir şeyle sonuçlanırsınız. Başka bir deyişle, sistem kararsız hale gelir. ancak tepkiye her türlü ince kırışıklık olduğunda ve önemli bir zaman alabildiğinde, kazanç çok yüksek olduğunda salınan bir şeyle sonuçlanırsınız. Başka bir deyişle, sistem kararsız hale gelir.

Yukarıda tarif ettiğim, PID'nin P (proprotional) kısmı idi. Çıkışı hata sinyaliyle orantılı yapabileceğiniz gibi, hatanın zaman türevine ve integraline orantılı terimler de ekleyebilirsiniz. Bu P, I ve D sinyallerinin her birinin, kontrol çıkış sinyalini üretmek için toplanmadan önce kendi ayrı kazancı vardır.

Terim

I terimi, hatanın zaman içinde sıfırlanmasına izin verir. Olumlu bir hata olduğu sürece, I terimi birikmeye devam eder ve sonunda kontrol çıkışını genel hatanın ortadan kalktığı noktaya yükseltir. Örneğimizde, sıcaklık sürekli olarak düşükse, çıkış sıcaklığı nihayet artık düşük olmayana kadar dirençteki gücü sürekli olarak artıracaktır. Umarım bunun yüksek P teriminden bile daha hızlı kararsız olabileceğini görebilirsiniz. AI terimi tek başına kolayca salınımlara neden olabilir, bu da kolayca salınım haline gelir.

D terimi

D terimi bazen dışarıda bırakılır. D teriminin temel kullanımı, P ve I terimlerinin daha agresif olabilmesi için biraz kararlılık eklemektir. D terimi temel olarak şu anda doğru yöne gidersem, şu an sahip olduğumuz şey bizi oraya götürdüğü için biraz gaza yatın diyor .

PID'yi ayarlama

PID kontrolünün temelleri oldukça basittir, ancak P, I ve D terimlerini doğru yapmak doğru değildir. Bu genellikle çok sayıda deneme ve ayarlama ile yapılır. Nihai amaç, çıktının olabildiğince çabuk yanıt verdiği, ancak aşırı aşma veya zil sesi olmadan genel bir sistem elde etmektir ve elbette kararlı olması gerekir (kendi başına salınmaya başlamamak). PID kontrolü üzerine yazılmış çok sayıda kitap var, denklemlere küçük kırışıklıklar nasıl ekleniyor, ama özellikle onları "ayarlayabiliyor". Ayarlama, optimum P, I ve D kazançlarının bölünmesini ifade eder.

PID kontrol sistemleri çalışır ve bunların iyi çalışması için kesinlikle bol miktarda irfan ve püf noktası vardır. Ancak, PID kontrolü bir kontrol sistemi için tek doğru cevap değildir. İnsanlar ilk etapta neden PID'nin seçildiğini unutmuş gibi görünüyor, ki bu bir tür evrensel optimum kontrol şeması olmaktan çok analog elektroniklerin kontrastlarıyla ilgiliydi. Ne yazık ki, bugün çok fazla mühendis "kontrol sistemi" ni küçük düşünen diz sarsıntısı tepkisinden başka bir şey olmayan PID ile eşitliyor. Bu, bugünün dünyasında PID kontrolünü yanlış yapmaz, ancak bir kontrol problemine saldırmanın birçok yolundan sadece biridir.

PID Ötesinde

Günümüzde, bir mikrodenetleyicide sıcaklık örneği gibi bir şey için kapalı bir döngü kontrol sistemi yapılacaktır. Bunlar bir hata değerinin türevini ve integralini almaktan çok daha fazlasını yapabilir. Bir işlemcide bölmeler, kare kökler yapabilir, son değerlerin geçmişini tutabilir ve çok daha fazlasını yapabilirsiniz. PID dışındaki birçok kontrol şeması mümkündür.

Dürtü yanıtı

Bu yüzden analog elektroniklerin sınırlamalarını unutun ve geri adım atın ve ilk prensiplere geri dönen bir sistemi nasıl kontrol edebileceğimizi düşünün. Ya her küçük kontrol çıkışı için sistemin ne yapacağını biliyor olsaydık. Sürekli kontrol çıkışı sadece çok sayıda küçük parçanın toplamıdır. Her bir parçanın sonucunun ne olduğunu bildiğimiz için, önceki kontrol çıktıları geçmişinin sonucunun ne olduğunu bilebiliriz. Şimdi kontrol çıkışının "küçük bir parçasının" dijital kontrole iyi uyduğuna dikkat edin. Kontrol çıkışının ne olacağını hesaplayacak ve buna ayarlayacaksınız, sonra geri dönüp girişleri tekrar ölçecek, yeni kontrol çıkışını hesaplayacak ve tekrar ayarlayacaksınız, vb. Kontrol algoritmasını bir döngüde çalıştırıyorsunuz, ve girişleri ölçer ve her bir döngü yinelemesini kontrol çıkışını yeniden ayarlar. Girişler ayrık zamanlarda "örneklenir" ve çıkış aynı şekilde sabit bir aralıkta yeni değerlere ayarlanır. Bunu yeterince hızlı yapabildiğiniz sürece, bunun sürekli bir süreç içinde olduğunu düşünebilirsiniz. Normalde yerleşmesi birkaç dakika süren bir rezistans ısıtması durumunda, kesinlikle saniyede birkaç kez, sistem doğal olarak, 4 Hz'de çıkışın güncellenmesinin sisteme sürekli görüneceği anlamlı bir şekilde yanıt verdiğinden çok daha hızlıdır. Bu, dijital olarak kaydedilen müzikle tamamen aynıdır, aslında 40-50 kHz aralığında ayrı adımlarla çıkış değerini değiştirir ve o kadar hızlıdır ki kulaklarımız duyamaz ve orijinal gibi sürekli ses çıkarır. bunun sürekli bir süreç içinde olduğunu düşünebilirsiniz. Normalde yerleşmesi birkaç dakika süren bir rezistans ısıtması durumunda, kesinlikle saniyede birkaç kez, sistem doğal olarak, 4 Hz'de çıkışın güncellenmesinin sisteme sürekli görüneceği anlamlı bir şekilde yanıt verdiğinden çok daha hızlıdır. Bu, dijital olarak kaydedilen müzikle tamamen aynıdır, aslında 40-50 kHz aralığında ayrı adımlarla çıkış değerini değiştirir ve o kadar hızlıdır ki kulaklarımız duyamaz ve orijinal gibi sürekli ses çıkarır. bunun sürekli bir süreç içinde olduğunu düşünebilirsiniz. Normalde yerleşmesi birkaç dakika süren bir rezistans ısıtması durumunda, kesinlikle saniyede birkaç kez, sistem doğal olarak, 4 Hz'de çıkışın güncellenmesinin sisteme sürekli görüneceği anlamlı bir şekilde yanıt verdiğinden çok daha hızlıdır. Bu, dijital olarak kaydedilen müzikle tamamen aynıdır, aslında 40-50 kHz aralığında ayrı adımlarla çıkış değerini değiştirir ve o kadar hızlıdır ki kulaklarımız duyamaz ve orijinal gibi sürekli ses çıkarır. kesinlikle saniyede birkaç kez, sistem doğal olarak yanıt verdiğinden çok daha hızlıdır, yani 4 Hz'de çıkışın güncellenmesi sisteme sürekli görünecektir. Bu, dijital olarak kaydedilen müzikle tamamen aynıdır, aslında 40-50 kHz aralığında ayrı adımlarla çıkış değerini değiştirir ve o kadar hızlıdır ki kulaklarımız duyamaz ve orijinal gibi sürekli ses çıkarır. kesinlikle saniyede birkaç kez, sistem doğal olarak yanıt verdiğinden çok daha hızlıdır, yani 4 Hz'de çıkışın güncellenmesi sisteme sürekli görünecektir. Bu, dijital olarak kaydedilen müzikle tamamen aynıdır, aslında 40-50 kHz aralığında ayrı adımlarda çıkış değerini değiştirir ve o kadar hızlıdır ki kulaklarımız duyamaz ve orijinal gibi sürekli ses çıkarır.

Peki, herhangi bir kontrol çıktı örneği nedeniyle sistemin zaman içinde ne yapacağını bilmenin bu sihirli yoluna sahip olsaydık ne yapabilirdik? Gerçek kontrol yanıtı sadece bir örnek dizisi olduğundan, tüm örneklerden yanıtı toplayabilir ve ortaya çıkan sistem yanıtının ne olacağını bilebiliriz. Başka bir deyişle, herhangi bir keyfi kontrol yanıtı dalga formu için sistem yanıtını tahmin edebiliriz.

Bu harika, ama sadece sistem yanıtını tahmin etmek sorunu çözmez. Bununla birlikte, işte aha anı, bunu tersine çevirebilir ve istenen sistem yanıtını almak için alacağı kontrol çıkışını bulabilirsiniz. Bunun kontrol problemini tam olarak çözdüğünü, ancak tek bir keyfi kontrol çıkış örneğine sistem yanıtını bir şekilde bildiğimiz takdirde unutmayın.

Muhtemelen düşünüyorsunuz, bu kolay, sadece büyük bir nabız verin ve ne yaptığını görün. Evet, bu teoride işe yarayabilir, ancak pratikte genellikle işe yaramaz. Çünkü herhangi bir kontrol numunesi, hatta büyük bir örnek bile, sistemin şemasında o kadar küçüktür ki, sistemin neredeyse hiç ölçülebilir bir yanıtı vardır. Unutmayın, her bir kontrol numunesi , şema düzeninde küçük olmalıdır, böylece kontrol numuneleri dizisi sistemde sürekli hissedilir. Bu yüzden bu fikir işe yaramaz, ancak pratikte sistem yanıtı o kadar küçüktür ki ölçüm gürültüsüne gömülür. Direnç örneğinde, dirence 100 ms için 100 W ile vurmak ölçmek için yeterli sıcaklık değişikliğine neden olmaz.

Adım yanıtı

Ama yine de bir yolu var. Tek bir kontrol numunesini sisteme koymak bize bireysel numunelere doğrudan yanıt verirken, yine de sisteme bilinen ve kontrollü bir dizi kontrol yanıtı koyarak ve bunlara cevabını ölçerek bunu çıkarabiliriz. Genellikle bu bir kontrol adımı koyarak yapılırGerçekten istediğimiz, küçük bir düşüşe verilen yanıttır, ancak tek bir adıma verilen yanıt sadece bunun ayrılmaz bir parçasıdır. Direnç örneğinde, her şeyin 0 W'da sabit durumda olduğundan emin olabiliriz, sonra aniden gücü açıp dirence 10 W koyabilirsiniz. Bu, sonuçta çıkışta güzel ölçülebilir bir sıcaklık değişikliğine neden olacaktır. Doğru ölçeklemeyle bunun türevi, bunu doğrudan ölçemesek bile, bireysel bir kontrol örneğine yanıtı bize söyler.

Özetlemek gerekirse, bilinmeyen bir sisteme bir adım kontrol girişi koyabilir ve ortaya çıkan çıktıyı ölçebiliriz. Buna adım yanıtı denir . Sonra dürtü yanıtı adı verilen zaman türevini alırız . Herhangi bir kontrol giriş örneğinden kaynaklanan sistem çıktısı, basitçe, bu kontrol numunesinin mukavemetine uygun şekilde ölçeklenen dürtü tepkisidir. Tüm kontrol numuneleri geçmişine sistem yanıtı, her kontrol girişi için zaman içinde toplanan, ölçeklenen ve eğriltilmiş dürtü yanıtlarının bir demetidir. Bu son operasyon çok ortaya çıkıyor ve özel evrişim adına sahip .

Evrişim kontrolü

Böylece, istediğiniz herhangi bir sistem çıkışı seti için, bu çıkışa neden olacak kontrol girişlerinin sırasını bulabileceğinizi hayal edebilmelisiniz. Ancak, bir gotcha var. Sistemden ne istediğinize karşı çok agresif olursanız, bunu başarmak için kontrol girişlerinin yüksek ve düşük değerlerle elde edilmesi gerekmez. Temel olarak, sistemin ne kadar hızlı tepki vermesini beklerseniz, her iki yönde de kontrol değerlerinin o kadar büyük olması gerekir. Direnç örneğinde, matematiksel olarak hemen yeni bir sıcaklığa gitmesini istediğinizi söyleyebilirsiniz, ancak bu elde etmek için sonsuz bir kontrol sinyali alır. Sıcaklığın yeni değere değişmesine ne kadar yavaş izin verirseniz, dirence atmak için ihtiyacınız olan maksimum güç o kadar düşük olur. Başka bir kırışıklık, dirence giren gücün bazen de düşmesi gerektiğidir. Yapabilirsin'

Bununla başa çıkmanın bir yolu, kontrol sisteminin dahili olarak kullanmadan önce kullanıcı kontrol girişini alçak geçiren filtrelemesidir. Şekil kullanıcıları, kullanıcıların yapmak istediklerini yaparlar. Girişi hızlı bir şekilde çarpmalarına izin verin. Dahili olarak alçak geçiren filtre, onu düzeltmek ve direnç içine koyabileceğiniz maksimum ve minimum güç göz önüne alındığında, gerçekleştirebileceğiniz en hızlı şekilde yavaşlatmak için.

Gerçek dünya örneği

İşte gerçek dünya verilerini kullanan kısmi bir örnek. Bu, diğer şeylerin yanı sıra belirli sıcaklıklarda çeşitli kimyasal rezervuarları korumak için birkaç düzine ısıtıcıyı kontrol etmek zorunda olan gerçek bir üründeki gömülü bir sistemden. Bu durumda, müşteri PID kontrolü yapmayı seçti (rahat hissettikleri şey), ancak sistemin kendisi hala var ve ölçülebilir. Bir adım girişi ile ısıtıcılardan birini sürmek için ham veriler. Döngü yineleme süresi 500 ms idi, bu da sistemin 2 saat sonra hala bu ölçek grafiğine gözle görülür şekilde oturduğunu düşünen çok kısa bir süredir.

Bu durumda, ısıtıcının yaklaşık .35 büyüklüğünde ("Çıkış" değeri) çalıştırıldığını görebilirsiniz. 1.0 adımını uzun süre kullanmak çok yüksek sıcaklıklara neden olabilir. Başlangıç ​​ofseti kaldırılabilir ve sonuç, birim adım yanıtını çıkarmak için küçük giriş adımını hesaba katacak şekilde ölçeklendirilebilir:

Bundan, dürtü yanıtını almanın sadece ardışık adım yanıt değerlerini çıkarmanın olacağını düşünürdünüz. Teoride bu doğru, ancak pratikte sistem 500 ms'de çok az değiştiği için çoğunlukla ölçüm ve niceleme gürültüsü elde edersiniz:

Ayrıca değerlerin küçük ölçeğine de dikkat edin. Dürtü yanıtı 10 ile ölçekli olarak gösterilmektedir 6 .

Bireysel ve hatta birkaç okuma arasındaki açıkça büyük varyasyonlar sadece gürültüdür, bu nedenle yüksek frekanslardan (rastgele gürültü) kurtulmak için bunu düşük geçişli filtreleyebiliriz, bu da umarım daha yavaş altta yatan yanıtı görmemizi sağlar. İşte bir deneme:

Bu daha iyi ve gerçekten anlamlı veriler olduğunu, ancak yine de çok fazla gürültü olduğunu gösteriyor. İşte ham dürtü verilerinin daha düşük geçişli filtrelenmesiyle elde edilen daha faydalı bir sonuç:

Şimdi bu aslında üzerinde çalışabileceğimiz bir şey. Kalan gürültü genel sinyale göre küçüktür, bu yüzden yoluna girmemelidir. Sinyal hala oldukça sağlam görünüyor. Bunu görmenin bir yolu, 240 pikinin hızlı bir görsel kontrol ve bir önceki komployu filtrelemeden göz küresi hakkında olduğunu görmektir.

Şimdi durun ve bu dürtü tepkisinin gerçekte ne anlama geldiğini düşünün. İlk olarak, 1M kez görüntülendiğine dikkat edin, bu yüzden tepe gerçekten 0.000240 tam skaladır. Bu, teoride, sistem yalnızca 500 ms'lik zaman dilimlerinden biri için tek bir tam ölçekli darbe ile sürüldüyse, bunun, yalnız bırakılana göre ortaya çıkan sıcaklık olacağı anlamına gelir. Herhangi bir 500 ms'lik sürenin katkısı, sezgisel olarak anlaşıldığı gibi, çok küçüktür. Bu nedenle, dürtü tepkisini doğrudan ölçmek de işe yaramaz, çünkü tam ölçekli 0.000240 (4000'de yaklaşık 1 parça) gürültü seviyemizin altındadır.

Artık herhangi bir kontrol giriş sinyali için sistem yanıtını kolayca hesaplayabilirsiniz. Her 500 ms'lik kontrol çıkış örneği için, bu kontrol örneğinin boyutuna göre ölçeklendirilmiş bu dürtü yanıtlarından birine ekleyin. Nihai sistem çıkış sinyaline bu dürtü yanıtı katkısının 0 zamanı, kontrol örneğinin zamanıdır. Bu nedenle, sistem çıkış sinyali, her biri o anda kontrol numunesi seviyesine göre ölçeklendirilmiş, birbirinden 500 ms uzaklıktan bu dürtü tepkilerinin art ardadır.

Sistem yanıtı, bu örnekte her 500 ms'de bir olan her kontrol örneğini hesaplayan kontrol girişinin bu dürtü yanıtı ile evrilmesidir. Bundan bir kontrol sistemi yapmak için, istenen sistem çıkışıyla sonuçlanan kontrol girişini belirlemek için geriye doğru çalışırsınız.

Bu dürtü yanıtı, klasik bir PID kontrol cihazı yapmak isteseniz bile oldukça kullanışlıdır. Bir PID kontrol cihazını ayarlamak çok fazla deneme gerektirir. Her yineleme, gerçek sistemde bir veya iki saat sürecek ve bu da yinelemeli ayarlamayı çok yavaş hale getirecektir. Dürtü yanıtı ile, bir saniye içinde bir bilgisayarda sistem yanıtını simüle edebilirsiniz. Artık yeni PID değerlerini değiştirebildiğiniz kadar hızlı deneyebilir ve gerçek sistemin yanıtını göstermesi için bir iki saat beklemek zorunda kalmazsınız. Nihai değerler elbette her zaman gerçek sistem üzerinde kontrol edilmelidir, ancak işin çoğu zamanın çok kısa bir sürede simülasyonla yapılabilir. Sorunuzda belirttiğiniz pasajda "Eski moda PID kontrolü için parametreleri bulmak için bunu bir simülasyon tabanı olarak kullanabilirsiniz" ile kastediyorum .


4
Değil. çok. yıpranmış.
NickHalden

4
Bazı bölüm başlıklarının burada gerçekten değerli olabileceğini düşünüyorum. Ama harika geçerlidir.
Kortuk

Partiye geç kaldım ama yine de: Etkileyici cevap, Olin! :)
bitsmack

7

FIR ve IIR filtreleri, Jon'un belirttiği gibi, adından da anlaşılacağı gibi, doğrudan dürtü tepkisinin konvülsiyonunu uygulayan dijital filtrelerdir (Sonlu \ Sonsuz Darbe Tepkisi).

Bir sinyale (zaman alanında) dürtü tepkisinin dönüştürülmesi, transfer fonksiyonunun sinyalin (frekans alanında) dönüşümü ile çarpılmasıyla tamamen aynıdır; ve temel olarak, filtrenin impuls tepkisini sinyalin aşındırılmış versiyonuna çarpmaktan oluşur (sinyal sürekli olarak değişirken, filtre tepkisinin zaman içinde sabitlendiğini düşünün).

Dijital filtrelerde, dürtü yanıtı, sinyali belirli bir noktada çoğaltan sabit sayıda katsayıya indirgenir; noktalar gecikmelerle ayrılır ve 0 , sinyalin anlık değerini çarpar, k ise aynı sinyali k gecikme birimlerinden sonra çarpar .

resim açıklamasını buraya girin

Şekil, 13 musluğun (gecikme sayısı) FIR filtresinin katsayılarının elde edildiği genel bir filtrenin (bu durumda düşük geçişli) dürtü tepkisini gösterir.

Bazı transfer fonksiyonlarını elde etmek için, FIR filtresi sonsuz sayıda katsayı gerektirir: bu durumlarda IIR (Sonsuz Darbe Tepkisi) filtreleri elde etmek için bir geri bildirim kullanılır. Bu filtreler daha iyi sonuçlar elde etmenizi sağlar aktarım fonksiyonları (örn. Filtrelerde geçiş bandı ve bastırılmış bant arasında daha dar geçiş), ancak FIR filtreleri yapı olarak stabil iken kararsızlığa neden olabilir.

Bu tür filtreler analog devrelerle tasarlanabilir, ancak katsayılara ayarlanmış doğru amplifikatörler ve doğru gecikme devreleri gerektirir ve musluk sayısını arttırırken donanımda büyük bir artışa sahiptir. Daha sıklıkla bu filtreler, işlemlerin dijital sinyaller üzerinde çok daha kolay bir şekilde yürütüldüğü DSP'lere uygulanır.

Yani, sorunuzu doğrudan cevaplamak için : dijital filtrelerin ayarlanması, katsayıları ayrık dürtü yanıtına ayarlayarak yapılır.

Güncelleme

OP adım ve dürtü yanıtı hakkında sorular sordu; iyi, Olin ve Jon'un dediği gibi, dürtü tepkisi adım tepkisinin türevidir ve açık bir şekilde adım tepkisi dürtü tepkisinin integralidir.

Adım yanıtı, kontrol sistemlerinde yaygın olarak kullanılmaktadır, çünkü onlar hakkında en önemli şeyleri gösterir: girişteki hızlı değişikliklere ne kadar hızlı tepki verdikleri ve zaman içinde hatayı en aza indirgeyebilecekleri ve kararlı olup olmadıkları.

Ancak dürtü yanıtı çok önemlidir, çünkü belirli bir anda giriş sinyalinin çıkışta neye neden olacağını hesaplamak için kullanılabilir, bu nedenle dürtü tepkisinin giriş sinyaline çarpımını istifleyerek tam çıkış sinyali elde edilebilir: bu evrişimdir ve büyünün gerçekleştiği yerdir. Evet, çünkü dürtü yanıtı regülatörün transfer fonksiyonunun Fourier anti-dönüşümünden başka bir şey değildir.

Bu, dijital filtrelerin gücüdür: doğrudan dürtü tepkisini uygularlar ve bir adım tepkisi (bir kontrol sistemi durumunda) veya bir transfer fonksiyonu (bir filtre durumunda) yeniden oluşturmak isteyip istemediğimizi dürtü tepkisini türetir ve FIR için katsayıları çıkarır.


Mükemmel cevap! Tamamlamak için adımdan dürtü yanıtını nasıl alacağınızı ekleyebilir misiniz? (@ JonWatte'nin cevabında görüyorum.)
tyblu

4

Konvolüsyon tipik olarak bir FIR filtresidir, geleneksel bir özyinelemeli filtrede kutuplar ve sıfırlarla elde ettiğiniz gibi bir IIR değildir. Şimdi, adım yanıtınız varsa, bunu tersine çevirebilir ve yanıt sinyalinizi bu şekilde önceden kıvrık hale getirebilirsiniz. Nihai sonuç, tüm sistemin tam olarak bir adım yanıtı göstermesidir. Bununla birlikte, genel durumda, bu, bir grup gecikmesi getirir, çünkü ters yanıtı "önceden yüklemeniz" gerekir. Bir kontrol sisteminde, bu istenmeyen gecikmeye yol açabilir.


@JohWatte, bir örnek?
Kortuk

1
Veya yaptığım şey, kontrol sinyaline bir düşük geçiş filtresi uygulamaktır. İdeal olarak bir adım bir adım atma sağlar, ancak bu çıkış fiziksel olarak mümkün değildir çünkü çıktının sonsuz olması gerekir. Bir girişin gerçekleştirebileceğiniz bir şeye dönüşmesi için kontrol girişini filtrelersiniz, yani evrişim değerleri hiçbir zaman çıkış sürücünüzün üretebildiğini aşmaz. Özellikle, negatif değerler genellikle mümkün değildir. Örneğin, bir rezistif ısıtıcı ile sıcaklığı düzenliyorsanız, negatif ısı yapamazsınız (yapabileceğiniz bir Peltier ile değerler negatif olabilir).
Olin Lathrop

Adım yanıtını nasıl tersine çevirirsiniz? "Yanıt sinyali" istenen çıktı mı?
tyblu

Kısaca, doğru hatırlıyorsam: Adım tepkisini dürtü tepkisine dönüştürürsünüz. Daha sonra, giriş sinyaliyle çıkış sinyalinden kıvrık olarak impuls tepkisini (impuls çıkarılmış olarak) çıkarırsınız. Bu gecikme, grup gecikmesi (gecikme) ekler. Bir düzine yıl önce ses DSP'sinde mikrofon ve oda modelleme ile ilgili iyi referanslar gördüğümü hatırlıyorum.
Jon Watte

2

Bunu tersine çeviririm ve sisteminizin adım yanıtını ölçme yeteneğiniz varsa, teorinin çoğunu kısaltabilir ve kontrol parametrelerinizi optimize etmeye devam edebilirsiniz. Açık döngü yanıtını ölçmek ve ideal kontrol parametrelerini hesaplamak yerine (optimizasyon için iyi bir başlangıç ​​noktası bulmak yararlı olsa da), kapalı döngü yanıtını ölçerek sisteminizi ayarlayabilirsiniz.

Ana fikir, adım tepkisinin ölçülmesinin, kontrol sisteminin aşırı sönümlü, aşırı sönümlü veya kritik olarak sönümlü olduğunu (kabaca) görmenizi sağlayacaktır (ideal durum).

Adım tepkisini ölçerseniz ve zil sesi görürseniz, yeterince sönük olduğunuzu bilirsiniz. Adım tepkisini ölçerseniz ve çıkış yavaşça son değere gelirse, yetersiz sönümlü olduğunuzu bilirsiniz. Adım tepkisini tekrar tekrar ölçerken denetleyiciyi ayarlayabiliyorsanız, çalmadan en hızlı yanıtı almak ve en iyi yanıtın yakınında olduğunuzu bilmek için ayarlayabilirsiniz.

Sadece P terimini kullanarak başlayabilirsiniz. Sonuçlar tatmin edici değilse, I ve D terimlerini ekleyin. I terimi, yanıttaki uzun kuyruklardan veya çıktının asla tam olarak olmadığı durumlarda istenilen değere ulaşır. D terimi, girdinin bir sonraki adımın nereye gideceğini "tahmin ederek" yanıtı hızlandırmaya yardımcı olur. (Tahminim, bir kontrol uzmanı olmasam da, P terimi mutlak terimlerle optimize edilebilir, ancak I ve D terimlerinin en iyi seçimi sadece sisteminizin kontrol altındaki tepkisine değil, aynı zamanda giriş sinyalinin frekans içeriği ve genliği gibi özellikler)

Zil çalmadan alabileceğiniz en hızlı cevabı aldıktan sonra, bir sıcaklık değişikliğinin veya sistemi salınım haline getirmeyen her şeyin biraz aşırı sönmesine ayarlayın.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.