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.