Z dönüşümü kaynaklı PID uygulamasının avantajı nedir?


29

Ben gibi birçok PID makaleler, gördüğüm bu Z sonra yazılımda uygulanabilir bazı çılgın fark denklemi (veya bu durumda bir FPGA olarak) türetmek için jenerik PID denklemin dönüşümü kullanın. Sorum şu ki, doktora olmadan geleneksel ve çok daha sezgisel PID'ye karşı böyle bir uygulamanın avantajı nedir?tip uygulaması? İkincisi anlamak ve uygulamak daha kolay görünüyor. P terimi düz çarpımdır, integral bir çalışan toplam kullanır ve türev, önceki numunenin mevcut numuneden çıkarılmasıyla tahmin edilir. Integral Windup koruma gibi bir özellik eklemeniz gerekirse, doğrudan ileri cebirdir. Integral Windup Protection veya başka özellikleri, yukarıdaki gibi bir fark tipi algoritmasına eklemeye çalışmak, çok daha karmaşık olacak gibi görünüyor. Böyle bir uygulamayı kullanmak için, onunla birlikte gelen "Z'nin eğlence için dönüşümünü yapmaktan hoşlanan kötü bir kıçım" tipi haricinde herhangi bir sebep var mı?

EDIT: Bağladığım bir PHD makalesi olmayan PID, integral terimi için bir koşu toplamı ve türev terimi için ardışık örnekler arasındaki farkı kullanan daha basit bir uygulama örneğidir. Sabit nokta matematiği ile deterministik bir şekilde uygulanabilir ve istenirse hesaplamada gerçek zamanlı zaman sabiti bilgisini içerebilir. Temelde Z dönüşüm yönteminin pratik bir avantajını arıyorum. Nasıl daha hızlı olabileceğini ya da daha az kaynak kullanabileceğini göremiyorum. İntegralin çalışan bir toplamını tutmak yerine, Z yönteminin önceki çıktıyı kullandığı ve önceki P ve D bileşenlerini çıkardığı (hesaplama yoluyla integral toplamına ulaşmak için) görünmektedir. Bu yüzden, birileri eksik olduğum bir şeye işaret edemezse, AngryEE'nin yorumunu aslında aynı olduklarını kabul edeceğim.

NİHAİ EDİT: Cevaplarınız için teşekkürler. Sanırım her biri hakkında biraz şey öğrendim ama sonunda, Angry bunun doğru bir tercih meselesi olduğu konusunda doğru olduğunu düşünüyorum. İki form:

e(k-2)

u(k)=u(k1)+Kp(e(k)e(k1)+KiTie(k)+KdTi(e(k)2e(k1)+e(k2))
u ( k - 1 ) = u ( k )
e(k2)=e(k1),e(k1)=e(k)
u(k1)=u(k)

veya

sum=sum+e(k)
u(k)=Kpe(k)+KiTisum+KdTi(e(k)e(k1))
e(k1)=e(k)

esas olarak aynı şeyi değerlendirecektir. Bazıları ilkinin bir DSP veya FPGA'da daha hızlı uygulanabileceğinden bahseder, ancak bunu satın almıyorum. Her ikisi de vektörleştirilebilir. Birincisi iki post operasyonu gerektirir, ikincisi bir pre pre ve bir post operasyonu gerektirir, bu yüzden düzgün görünüyor. Birincisi, gerçek hesaplamada 1 çarpma daha gerektirir.


"Diferansiyel denklem" mi demek istediniz?
Kevin Vermeer

En azından yaptığım geri bildirimlere dayanarak yorumlarınızı yanlış anlamış olmalıyım. Yorumumu kaldıracağım!
Kortuk, 3

1
Lütfen dsp.stackexchange.com adresine gidin
Jason S

Yanıtlar:


7

Z-dönüşümünün tüm fantezileriyle şaşırıyorsunuz. İki yaklaşım temelde aynıdır - PHD yaklaşımı olmayan PID'nin daha az aboneliği vardır. Aynı temel işlevi yerine getirirler ve aynı temel matematiği kullanırlar.

İkisi arasında görebildiğim tek büyük fark, doktora yapmayan PID'in örnekleme zamanını hesaba katmamasıdır. Kararsız olabilecek bir şey yapmak için, örnekleme zamanı çok önemlidir. Bu durumda Z-dönüşümü yaklaşımının avantajı, örnekleme zamanını dikkate almadan kullanamayacağınızdır - çalışmanızı göstermeye zorlar ve daha istikrarlı bir sistem tasarlamanıza yardımcı olur.

Aynı zamanda, Z-dönüşümü yaklaşımını uyguladığınız tespit edilen vaka çalışmasının çok belirleyici olacak şekilde tasarlandığı görülüyor. Bu onların FPGA kullanımlarını açıklar - hesaplamalar her zaman aynı miktarda zaman alacaktır. PHD uygulaması olmayan PID kesinlikle belirleyici değildir. Sabit nokta uygulaması yerine değişkenler olarak çiftlerin kullanılması, herhangi bir mikrodenetleyicide kayan nokta birimi olmayan (ve muhtemelen de FPU'lu uC'lerde) deterministik olmayan davranışlara neden olacağından emin olabilirsiniz. Vaka çalışması, PHID w / o PHD yaklaşımı ile karşılaştırıldığında tamamen farklı bir karmaşıklık seviyesi üzerinde çalışıyor.

Dolayısıyla, temelde matematik ve kontrol yaklaşımı aynıdır, ancak vaka çalışması / Z-dönüşümü yaklaşımı daha titiz ve teorik olarak temellidir. PHID olmayan PID yaklaşımı yalnızca nispeten kararlı olan çok basit, kritik olmayan sistemler için çalışacaktır.


Bir PHD makalesi olmayan PID, integral için bir çalışma toplamı ve türev için ardışık örnekler arasındaki farkı kullanan daha basit uygulamanın bir örneğidir. Makale, örnekleme zamanının tutarlı olması gerektiğini belirtir. Örnekleme süresi kolayca I ve D hesaplamalarına eklenebilir, ancak çoğu durumda gerçek hesaplamada yapılmaz. Kontrol cihazının GUI'si (veya başka bir arayüz), döngü zamanına bağlı olarak saniye cinsinden I ve D terimlerini kullanıcıya saniye cinsinden sunacaktır.
bt2

@ bt2, doktora derecesine sahip olmayan PID'nin en iyi yaklaşım olduğu çok özel bir vakanın olduğu anlaşılıyor. Çoğu sistemde hiçbir şekilde I ve D terimleri gösterilmez. Bu, sistem üzerinde bir bütün olarak daha sonra kendi üzerine geri çevrilen bir değişiklik olan PID kontrol cihazının sonucudur. Sadece bir kullanıcıya görüntülüyorsanız, istikrar konusunda endişelenmeniz için herhangi bir neden yoktur.
Kellenjb

"PHID olmayan PID yaklaşımı sadece çok basit çalışacak," - Ben katılmıyorum. Dijital kontrol sistemlerini Z-dönüşümü analizini kullanarak kesinlikle optimize edebilirsiniz, ancak kapak tarafı, sisteminizi modellemeye yetişebilmenizdir, böylece ağaçlar için ormanı özlüyorsunuz.
Jason S

10

PID kontrol cihazını tasarlamanın Z-dönüşümü yöntemi sonunda çok daha verimli bir uygulama sağlayacaktır. Uygulamanız için en küçük FPGA / DSP / Mikrodenetleyici için tasarım yapıyorsanız bu çok önemlidir.

Bahsedilen "Doktora olmadan PID" muhtemelen yazılımda bir PID kontrolünü uygulamak için en kolay yaklaşımdır, ancak daha yüksek örnekleme oranlarında hantal hale gelir.

Ek olarak, Z-dönüşümü ayrı (dijital) bir alanda tasarım yapmak için kendisini daha iyi ödünç vermektedir. Geleneksel (Laplace dönüşümü) tasarım yöntemi, sürekli zaman için daha fazladır. İkisi (Sıfır Sıralı Tutma, Doğrusal İnterpolasyon, Kutup Yerleştirme, Bilinear / Tustin) arasında dönüşüm yapmanın birçok yolu vardır, her biri sistemin kararlılığı ve tepkisi açısından güçlü ve sakıncaları ile birlikte gelir. Tüm tasarımı ayrı alanda yapmak genellikle daha kolaydır.

Uzun lafın kısası, nispeten "yavaş" bir sistem kullanıyorsanız (tüm ana davranışlar önemli ölçüde 100kHz veya altında gerçekleşir), o zaman ilk tasarım muhtemelen iyi olur. Bir mikrodenetleyicide veya PC'de uygulayabilir ve onunla yapılabilir. Sistemler hızlandıkça, ihtiyaç duyduğunuz hızları elde etmek için Z-transform yöntemini kullanmanız gerekebilir (makale 9.5MHz'den bahsediyor, A / D ve DAC'lere sahip olduğunuzu varsayarsak).


1
Aynı matematik işlem sayısı, sayıların farklı gösterimi. Çiftler, vaka çalışmasında kullanılan sabit nokta yönteminden çok daha karmaşık sayıların bir gösterimidir. Daha az karmaşık, daha az işlem (silikonda) anlamına gelir.
AngryEE

2
@ bt2, DSP yongalarının SIMD (Tek Yönerge, Çoklu Veri) komut setleri için ayarlanmış olması bakımından daha verimli olduğunu söyleyebilirim. Aynı sayıda matematik işlemi olsa da, Z dönüşümü tüm çarpımları bir komut döngüsünde yapmanıza izin verir, ardından sonuç vektörünün tüm elemanlarını bir döngüde toplar (platforma bağlı). Yani matematik aynı olsa da, zaman karmaşıklığı önemli ölçüde düşüktür ve bu da daha yüksek hızlanma sağlar.
mjcarroll

1
@ bt2, z-formunun, bir noktada taşma (veya taşma) yapacak bir toplam toplam gerektirmeden yalnızca geçmiş çıkışlara ve mevcut girişe bağlı olan bir fark denklemi olarak uygulanmasına katkıda bulunur. DSP'ler, dijital denklemlerin farklılık denklem yaklaşımı ile verimli bir şekilde uygulanmasını sağlamak için tasarlanmıştır. Bakınız en.wikipedia.org/wiki/Digital_filter esp. doğrudan formlar - DSP’ler bunun için optimize edilmiştir.
Freespace

1
Sanırım bir şeyleri özlüyorsun. Normal toplamlar altında akan toplam asla taşmaz. IIR filtreleri her zaman doygun hale gelmez ve PID kontrolü durumunda normalde böyle olmaz. Bir algoritma ile olacağını ama başka bir ile olmayacağını söylemek yanlış. Koşu toplamı, önceki çıktılara göre de aynı şekildedir. Biri taşmaya neden olursa, ikisi de olacaktır. Bu şekilde düşünün, 2. implantasyon birincisidir, bazı matematik faktörü ile ... u (k-1) - kp (e (k-1) - kd / Ti (e (k-1) - e ( k-2) == (koşu toplamı)
bt2

1
-1: Z-dönüşümleri size daha verimli uygulama sağlamaz. Aslında, "naif" dijital yöntemi kullanarak 1 kutuplu düşük geçişli bir filtreyi bilinear dönüşümü kullanarak 1 kutuplu düşük geçişli filtreyle karşılaştırırsanız, bu yaklaşımla biraz daha az etkili bir uygulama elde edersiniz. Filtre türevine bakılmaksızın, aynı durum değişkeni sayısı = aynı uygulama etkinliği hakkında. Büyük oranda bu, filtrenin tasarlanma şeklinden bağımsız bir miktardır.
Jason S

5

İşte benim deneyimim:

  • Z dönüşümleri bazı analizler için yardımcı olur: ayrık zamanlı örneklemeli sistemlerin teorisi en iyi şekilde Z dönüşümleriyle modellenmiştir.
  • PID kontrolörlerinin veya düşük geçişli filtrelerin tasarımı, hem Z dönüşümleri hem de klasik analiz yoluyla, türevleri / integralleri sürekli zamandan ayrık zamana dönüştürmek için kullanılan birkaç yaklaşımdan biriyle yapılabilir. Eğer kutuplarınız ve sıfırlarınız örnekleme oranına kıyasla düşük frekanstaysa, fark etmez. En çok güvendiğiniz yaklaşıma uyun.
  • Z dönüşümü filtre ve kontrolörlerin türevini sıklıkla bu filtrelerin ve kontrolörlerin parametrelerinin fiziksel anlamını gizler. İntegral kazanç, orantılı kazanç ve diferansiyel kazanç içeren bir PID döngüsüne sahipsem, bu parametrelerin her birinin doğrudan ne yaptığını biliyorum. Z-dönüşümü kullanırsam, sadece bir şekilde türetmem gereken sayılardır.
  • Filtrelerin ve denetleyicilerin uygulanması , bu filtrelerin ve denetleyicilerin parametrelerinin fiziksel anlamını gizleyebilir veya gizlemeyebilir. Bu kalite, büyük ölçüde bir önceki noktadan bağımsızdır: Eğer Z-dönüşümü tabanlı bir tasarımım varsa, onu klasik görünümlü bir uygulamaya ve tam tersine dönüştürebilirim. NİHAİ DÜZENLEME altındaki örneğiniz iyi bir örnek çünkü ikinci uygulama entegratörü (" sum") kendi durum değişkeninde ayrı tutuyor . Bu durum değişkeninin anlamı var. İlk uygulama, durum değişkenini hatanın geçmiş geçmişi olarak tutar; bunun bir anlamı var, ama bence daha az içgörü sağlıyor.

Sonunda, genellikle bir uygulamayı diğerine seçmenizi sağlayan doğrusal olmayan veya analiz içeren başka konular da var (benim için her zaman kontrolörler için klasik bir yaklaşımdır, FIR filtreleri için Z dönüşümüdür ve 1 veya 2 kutuplu IIR filtreleri için genellikle klasik yaklaşım):

  • Kontrolörler için bir entegratörü daima geçmiş hata örneklerinden ziyade durum değişkeni olarak tutarım. Bunun nedeni, gerçek sistemlerin çoğu zaman, entegrali çok fazla veya çok fazla olumsuz yönde gitmesini engellemeniz gereken sargı önleme gerektirir. (Ve eğer sabit noktaya uyguluyorsanız, yine de bunu yapmak zorundasınız çünkü taşma çarptığında sarmalama koşulu kontrol döngünüzün davranışına Kötü Şeyler yapar)

  • Aynı nedenle, ben de hep örneğin: bir çıkış-sevk şekilde entegratörü hesaplamak sum += Ki*error; out = stuff + sumyerine sum += error; out = stuff + Ki*sum. İkinci yaklaşımla, Ki kazancını değiştirirseniz, bu, entegratörün çıktı üzerindeki etkisini yukarı ve aşağı ölçeklendirir, bu muhtemelen istediğiniz şey değildir ve limit, kazanca bağlı olarak değişir. Entegre etmeden önce Ki ile hatayı çarparsanız, entegratör üniteleriniz kontrol döngüsü çıktısının üniteleriyle aynıdır ve daha belirgin fiziksel anlamı vardır.

(güncelleme: Bu konuyla ilgili daha ayrıntılı bir blog yazısı yazdım .)


4

Düzenle :

Z-dönüşümü kullanmak, analiz için LTI sistemlerinin birleştirilmesini ve basitleştirilmesini kolaylaştırır . Örneğin, H1, H2, ..., Hk transfer fonksiyonlarına sahip kademeli bir k LTI sistemleri serisi basit bir ürün olarak birleştirilecektir H = H1*H2*...*Hk. Ayrıca, negatif bir geri besleme döngüsünün transfer fonksiyonu, T = G/(1 + G*H)H'nin geri besleme yolunda olduğu yerdir. Genel bir aktarma işlevine sahip olduğunuzda, tasarımı optimize etmek için ek filtreler ve geri bildirim ekleyerek kararlılığı (kutupların konumu) ve performansı (geçici, sabit durum hatası) analiz edebilirsiniz.

Daha yüksek dereceli alt sistemler için, sistem işlevini bölümlendirebilir ve nicelleştirmeden kaynaklanan kararsızlığı azaltan bir dizi basamaklı biquad (yani, karmaşık eşlenikler veya tekrarlanan kökler gibi çiftler ve sıfırlar) halinde uygulayabilirsiniz. Bir kanonik biçim biquad'ı:

biquad bölümü


Cevabınız etkileyici geliyor, ama ne dediğiniz hakkında hiçbir fikrim yok. Örneğin, niceleme kararlılığı nedir ve denklemin bir formu için diğerinden daha üstündür?
bt2

1
H (z) transfer fonksiyonu rasyonel bir fonksiyon B (z) / A (z) 'dir. Z'deki her polinom, bir Nci derece sistem için bir N sıfır faktörüdür. Payda bulunanlar (A) 'nın sıfırlarına kutup denir (geri besleme yolu budur). Sabit bir ölçeklendirme faktörüne göre, bir Lineer Zaman Değişmeyen (LTI) sistemi, sıfırları ve kutupları ile tanımlanmaktadır.
Eryk Sun

1
Tüm kutupları z düzlemindeki birim dairenin içindeyse, ayrık zamanlı bir LTI sistemi kararlıdır. Ancak sonlu dijital hassasiyetle miktar ölçümü, bir sistemin marjinal olarak istikrarlı olmasına, dengesiz olmasına veya zamanla kararsızlığa sürüklenmesine neden olabilecek gürültülere neden olur. H (z) 'nin bir ürün biquadratics (biquads)' e çarpanlara bölünmesiyle bu hata en aza indirgenir.
Eryk Sun

2
Bir biquad, tercih edilen asgari bölümdür, çünkü gerçek katsayıları olan bir polinomun sıfırları ya gerçek ya da kompleks konjugat çiftlerindedir. B (z) / A (z) biquad değeri (b0 + b1z ^ -1 + b2z ^ -2) / (a0 + a1z ^ -l + a2z ^ -2).
Eryk Sun

Ben doğrudan dördüncü dereceden bir poli ile kuadratik kademeli olarak karşılaştırarak nicelendirme gürültüsü için bir örnek ekledim ve sonra çıkardım. Ama çok fazlaydı. Biraz uyumam lazım. Üzgünüm Tyblu.
Eryk Sun

3

PID denetleyicisinin zor kısmı kodun kendisi değil. Sorunlar denetleyiciyi en iyi duruma getirmeye çalışırken ortaya çıkıyor. Elbette deneme yanılma ve oldukça iyi bir denetleyici alabileceğinizden emin olun, ancak bazı sistemler deneme yanılma yönteminin gerçekleştirilmesi için çok karmaşıktır. Bu aynı sistemler, sadece nezih bir sistem yerine çok iyi bir kontrolöre ihtiyaç duyan sistemler olma eğilimindedir. Bu durumda, Z dönüşümü analiz etmek çok daha kolaydır.

Düşünülmesi gereken bir diğer şey, sistemin istikrarıdır. Kararsız hale gelmesi oldukça zor olan bir sistemle ya da bir şeye zarar vermese bile başa çıkabilirsiniz. Ancak, denetleyici kararsız kalmasına neden olursa, feci sonuçlara yol açabilecek birçok sistem vardır. Z dönüşümü, sorun çıkıp çıkmayacağını belirlemenin daha kolay olduğu başka bir yerdir.

Ve 1 final notu. Bir sistemi bir bütün olarak analiz ederken, sisteminizdeki tüm bileşenlerin denklemlerini elde etmeniz gerekir. Elbette onu doktoralı PID'den edinebilirsiniz, ancak Z-transform yönteminde onunla zaten çalışıyorsanız, yapmanız gereken çok daha az ileri ve geri çalışma var.

Şimdi, kişisel bir tercih olarak PID'i her zaman doktora yöntemiyle kullanıyorum. Bunun nedeni, sadece denetleyiciye çok bağımlı olmayan sistemleri olan mikro denetleyicileri kullanıyorum.


2

Z-dönüşümü formunun neden daha fazla işe yaradığını gösteren birkaç nokta var.

Kd teriminin neye ayarlandığı zamana dayalı / basit / sans-PHD yaklaşımını teşvik eden herkese sorun. 'Sıfır' cevapları muhtemeldir ve D'nin kararsız olduğunu (düşük geçiş filtresi olmadan) söylemeleri muhtemeldir. Bütün bunların nasıl bir araya geldiğini öğrenmeden önce, böyle şeyler söyler ve söylerdim.

Kd'yi ayarlamak zaman diliminde zordur. Aktarım işlevini (PID alt sisteminin Z-dönüşümü) görebildiğinizde, ne kadar kararlı olduğunu kolayca görebilirsiniz. Ayrıca, D teriminin diğer parametrelere göre denetleyiciyi nasıl etkilediğini de kolayca görebilirsiniz. Kd parametreniz z-polinom katsayılarına 0.00001 katkısı veriyorsa, ancak Ki teriminiz 10.5'i koyuyorsa, D teriminiz sistem üzerinde gerçek bir etkiye sahip olacak kadar küçüktür. Kp & Ki terimleri arasındaki dengeyi de görebilirsiniz.

DSP'ler sonlu fark denklemlerini (FDE) hesaplamak için tasarlanmıştır. Bir katsayıyı çarpacak, bir toplayıcıya toplayacak ve bir komuttaki bir değeri bir komut döngüsünde değiştirecek olan op kodlarına sahiptir. Bu, FDE'lerin paralel doğasını kullanır. Makine bu koddan yoksunsa ... bu bir DSP değil. Gömülü PowerPC'ler (MPC), FDE'lerin hesaplanmasına adanmış bir çevre birimine sahiptir (buna decimation ünitesi diyorlar). DSP'ler, FDE'leri hesaplamak için tasarlanmıştır, çünkü bir transfer fonksiyonunu FDE'ye dönüştürmek çok önemlidir. 16 bit, katsayıları kolayca ölçmek için yeterince dinamik aralık değildir. Birçok erken dönem DSP’nin bu nedenle aslında 24 bit kelimesi vardı (32 bit kelimelerin bugün yaygın olduğuna inanıyorum.)

IIRC, bilinear dönüşümü olarak adlandırılan bir transfer işlevi (zaman-etki alanı denetleyicisinin z dönüşümü) alır ve FDE'ye dönüştürür. Bunu kanıtlamak 'zor', bir sonuç elde etmek için kullanmak önemsiz - sadece genişletilmiş forma ihtiyacınız var (her şeyi çarpın) ve polinom katsayıları FDE katsayılarıdır.

PI denetleyicisi harika bir yaklaşım değildir - sisteminizin nasıl davrandığına dair bir model oluşturmak ve PID'yi hata düzeltmek için kullanmaktır. Model basit olmalı ve yaptığınız şeyin temel fiziğine dayanmalıdır. Bu kontrol bloğunun ileri beslemesidir. Bir PID bloğu daha sonra kontrol altındaki sistemden gelen geri bildirimleri kullanarak hatayı düzeltir.

Normalleştirilmiş değerler, [-1 .. 1] veya [0 ... 1], set değeri (referans), geri besleme ve ileri besleme için kullanıyorsanız, bir 2-kutuplu 2-sıfır algoritması uygulayabilirsiniz. optimize edilmiş DSP montajını ve PID ve en temel düşük geçişli (veya yüksek geçişli) filtreyi içeren herhangi bir 2. dereceden filtre uygulamak için kullanabilirsiniz. Bu nedenle DSP'lerin normalize edilmiş değerlere sahip op kodları vardır, örn. Aralık için ters kare kökünün bir tahminini verecek (0.1) Seriye iki 2p2z filtresi koyabilir ve bir 4p4z filtresi yaratabilirsiniz. 4p düşük geçişli Butterworth filtresini uygulamak için 2p2z DSP kodunuzdan yararlanabilirsiniz.

Çoğu zaman alanı uygulaması dt terimini PID parametrelerine dönüştürür (Kp / Ki / Kd). Çoğu z-domain uygulaması yoktur. dt, Kp, Ki ve Kd'yi alan ve bunları [] & b [] katsayılarına dönüştüren denklemlere konur, böylece PID kontrol cihazının kalibrasyonunuz (ayarlama) şimdi kontrol oranından bağımsızdır. On kat daha hızlı çalışmasını sağlayabilir, [] & b [] matematiğini kırabilir ve PID denetleyicisi tutarlı bir performansa sahip olur.

FDE kullanmanın doğal bir sonucu olarak, algoritma dolaylı olarak "glitchless" dir. Çalışırken anında kazancınızı (Kp / Ki / Kd) değiştirebilirsiniz ve iyi durumda - zaman alanı uygulamasına bağlı olarak bu kötü olabilir.

Entegre sarımı önlemek için genellikle zaman alanlı PID kontrol cihazlarına çok fazla çaba harcanır. PID'nin güzel davranmasını sağlayan FDE formuyla basit bir numara var, bunun değerini tarih arabelleğinde kapatabilirsiniz. Bunun filtrenin davranışını nasıl etkilediğini görmek için matematiği yapmadım (Kp / Ki / Kd parametreleriyle ilgili olarak), ancak ampirik sonuç bunun 'pürüzsüz' olmasıdır. Bu, FDE formunun 'aksaksız' doğasını kullanıyor. İleri beslemeli bir model, entegral kurumu önlemeye katkıda bulunur ve D teriminin kullanımı I terimini dengeler. PID gerçekten bir D kazanç ile amaçlanan şekilde çalışmaz. (Çevirme ayar noktaları, aşırı sarılmayı önlemek için başka bir önemli özelliktir.)

Son olarak, Z-dönüşümleri "Doktora" değil bir alt konu başlığıdır. Kompleks Analiz'de onlar hakkında her şeyi öğrenmeliydin. Bu, gittiğiniz üniversitenin, sahip olduğunuz öğretmenin ve matematiği öğrenmeye ve mevcut araçları nasıl kullanacağınıza öğrenme çabanıza, endüstride performans gösterme becerinizde önemli bir fark yaratabilir. (Karmaşık Analiz sınıfım korkunçtu.)

Defacto sanayi aracı Simulink'tir (bilgisayar cebir sisteminden yoksun olan CAS, bu yüzden genel denklemleri çıkarmak için başka bir araca ihtiyacınız vardır). MathCAD veya wxMaxima PC'de kullanabileceğiniz sembolik çözücülerdir ve TI-92 hesap makinesini kullanarak nasıl yapılacağını öğrendim. Bence TI-89'un bir de CAS sistemi var.

Z-domain veya laplace-domain denklemlerini PID ve low-pass filtreler için wikipedia'da bulabilirsiniz. Burada grok yapmadığım bir adım var, PID kontrol cihazının ayrık zaman-alan formuna ihtiyacınız olduğuna ve sonra bunun z-dönüşümünü almanız gerektiğine inanıyorum. Laplace dönüşümü, z dönüşümüne çok benzemeli ve PID {s} = Kp + Ki / s + Kd · s şeklinde verilmelidir. Dt delta-t'dir [d], bu sabiti bir tür 'dt' ile karıştırmamak için Dt'yi kullanıyorum.

b[0] = Kp + (Ki*Dt/2) + (Kd/Dt)
b[1] = (Ki*Dt/2) - Kp - (2*Kd/Dt)
b[2] = Kd/Dt

a[1] = -1
a[2] = 0

Ve bu 2p2z FDE:

y[n] = b[0]·x[n] + b[1]·x[n-1] + b[2]·x[n-2] - a[1]·y[n-1] - a[2]·y[n-2]

DSP'ler genellikle yalnızca bir çarpma ve ekleme (çarpma ve çıkarma) yapmazlardı, dolayısıyla olumsuzlamanın bir [] katsayılarına döndüğünü görebilirsiniz. Daha fazla kutup için daha fazla b ekleyiniz, daha fazla sıfır için bir daha ekleyiniz.


1

Z dönüşümü yöntemini genel olarak kullanmak daha iyidir, çünkü bunu yaparak, eşdeğer analog sistemin tam davranışını korursunuz. Analog alanda da yayınlandığı gibi çalışan Ziegler-Nichols gibi iyi bilinen ayarlama yöntemleri vardır. Z dönüşümü yöntemini kullanırsanız, sonuç kontrolörünüzün, P, I ve D kazançlarının aynı değerleri için aynı şeyi yapması, bu kazanımlar göz önüne alındığında, analog alanda yapacağının matematiksel olarak kesin bir beklentisine sahip olursunuz. Ayrıca, sistem için ayrı bir kök odağı çizebilir ve belirli bir kazanç kümesi için kararlılığı tahmin edebilirsiniz;

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.