You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 12 Next »

PID-säätimen suunnittelu DC-moottorin nopeussäätimeen

Dynaamiset yhtälöt ja avoimen silmukan siirtofunktiot DC-moottorille ovat:




Järjestelmän tilakaavio näyttää seuraavalta:

Alkuperäisen ongelman yhtälöt ja derivoinnit löytyvät edellisestä esimerkistä DC-moottorin malli. Käy malli läpi, jos yhtälöt ovat hepreaa.

Jos laitetaan askelvasteen vaatimukseksi  1rad/s, perusteet ovat:

  • Asettumisaika alle 2 sekuntia
  • Ylitys on alle 5 %
  • Paikallaan ollessa virhe on alle 1 % (vakaa tila)

Seuraavaksi suunnitellaan PID-säädin ja lisätään se järjestelmään. Luo ensin uusi m-tiedosto ja syötä seuraavat komennot (katso DC-moottorin mallia, josta löytyy tiedot miten kyseinen malli on tehty)

function Moottori()
J=0.01;
b=0.1;
K=0.01;
R=1;
L=0.5;
num=K;
den=[(J*L) ((J*R)+(L*b)) ((b*R)+K^2)];
motor=tf(num,den);

Muista että, siirtofunktio PID säätimelle on:

Suhteellinen säätö (proportional control)

Katsotaan ensin suhteellisen säädön vaikutusta. Käytetään aluksi vahvistuksena (gain) arvoa 100. Suljetun kierron siirtofunktion määrittämiseen käytämme palauta komentoa (feedback). Lisää seuraava koodi m-tiedostosi loppuun:

Kp=100;
saadin=Kp;
sys_cl=feedback(saadin*motor,1);

Jotta näytölle saadaan aikaiseksi kuvaaja tarvitsee lisätä seuraavat komennot. Lisää komennot m-tiedoston loppuun ja suorita ohjelma.Tämän jälkeen voidaan tutkia askelvastetta.

t=0:0.01:5;
step(sys_cl,t)
title('Askelvaste suhteellisella säädöllä')

Sinun pitäisi saada seuraavanlainen kuvaaja:


PID-säädin

Yläpuolella olevasta kuvaajasta näemme, että sekä vakaan tilan että ylityksen virhe on liian suuri. Aiemmista esimerkeistä tiedämme että PID-säätimen integraali kertoimen (Ki) lisääminen poistaa vakaan tilan virheen ja derivointi kerroin (Kd) alentaa ylitystä. Testataan PID-säädintä pienillä Ki ja Kd arvoilla. Muuta m-tiedostoa seuraavanlaiseksi:

 J=0.01;
b=0.1;
K=0.01;
R=1;
L=0.5;
num=K;
den=[(J*L) ((J*R)+(L*b)) ((b*R)+K^2)];
motor=tf(num,den);

Kp=100;
Ki=1;
Kd=1;
saadin=tf([Kd Kp Ki],[1 0]);
sys_cl=feedback(saadin*motor,1);
step(sys_cl)
title('PID_säädin pienellä Ki ja Kd arvolla')

Suorittamalla muutetun m-tiedoston saat seuraavanlaisen kuvaajan

Vahvistuksen säätäminen (gain)

Nyt asettumisaika on liian pitkä. Ki termiä kasvattamalla voimme alentaa asettumisaikaa. Muuta m-tiedostossa Ki arvoon 200. Suorita jälleen komentoikkunassa ja kuvaajan pitäisi näyttää seuraavalta:

Nyt näemme että reagointi on paljon nopeampaa kuin aikaisemmin. Suuri Ki:n arvo on kuitenkin huonontanut ylitystä. Seuraavaksi suurennetaan Kd arvoa jolla voidaan pienentää ylitystä. Muuta m-tiedostossa Kd arvo 100. Suorita ohjelma ja kuvaajan pitäisi näyttää seuraavanlaiselta:

Tämän jälkeen tiedämme että jos käytämme PID-säätimelle arvoja

Kp=100;
Ki=200;
Kd=10;

Tulevat kaikki vaatimukset täytetyksi

  • No labels
You must log in to comment.