DC Motor Hız Kontrolü PID Kontrolör Kullanarak

PID Kontrolör Kullanarak DC Motor Hız Kontrolü

D.C. motorun dinamik denklemleri ve açık çevrim transfer fonksiyonu aşağıdaki gibi yazılabilir.

Image 

Buradan hareketle sistemin kapalı çevrim blok diyagramını çizersek

Image

1 rad/s lik basmak giriş için, tasarım kriterleri;

Yerleşme zamanı 2 saniyeden küçük olmalı

Aşım %5 den küçük olmalı

Sürekli hal hatası %1 olmalı(%2 kriterine göre)

Şimdi PID kontrolörü tasarlayalım ve sisteme  ilave edelim. İlk olarak matlap için bir m-file oluşturalım.

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))];

 PID kontrolörün transfer fonksiyonu

 Image şeklinde yazılabilir.

 Oransal Kontrol

 İlk olarak  kazancı 100 alarak oransal kontrolörle  sistemi kontrol etmeye çalışalım. Bunun için aşağıdaki kodu oluşturduğumuz m-file ın sonuna ekleyelim.

Kp=100;
numa=Kp*num;
dena=den;

 Kapalı çevrim transfer fonksiyonunu hesaplamak için, cloop komutunu kullanacağız. aşağıdaki kodu M-file a ekleyelim.

 [numac,denac]=cloop(numa,dena);

 numac ve denac ifadeleri birer matris olup kapalı çevrim transfer fonksiyonunun pay ve payda katsayılarını içermektedir.

 Şimdi oransal kontrolörlü sitemin birim basamak girişe karşılık gelen cevabını inceleyelim. Bunun için aşağıdaki kodu m-file ın sonuna ekleyip dosyayı komut penceresinde koşturalım.

t=0:0.01:5;
step(numac,denac,t)
title(‘Step response with Proportion Control’) 

 m-file komut penceresinde koşturulduğunda ekran çıktısı aşağıdaki gibi olmaktadır.

 Image

 PID Kontrolör

Yukarıdaki grafikte de görüldüğü gibi sürekli hal hatası ve aşım çok fazla. Şimdi PID kontrolörle sisteme bir integratör ilave ederek sürekli hal hatasını elime etmeye bir türevci ilave ederek de aşımı düzenlemeye çalışalım.

Küçük Ki ve Kd katsayıları ile bir PID tasarlayalım. Bunun için yeni bir m-file oluşturalım.

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)];

Kp=100;

Ki=1;

Kd=1;

numc=[Kd, Kp, Ki];

denc=[1 0];

numa=conv(num,numc);

dena=conv(den,denc);

[numac,denac]=cloop(numa,dena);

step(numac,denac)

title('Küçük Kı ve Kd katsayılı PID Kontrolör')

 Yukarıdaki m-file ı matlap komut penceresinde koşturduğumuzda aşağıdaki grafik elde edilir.

 Image

 Sistem Cevabının İyileştirilmesi

 Yerleşme zamanı çok uzun olduğu için Ki yi artırarak bu süreyi kısaltmaya çalışalım. Şimdi yukarıdaki m-file da Ki yi 200 yapalım ve sistem cevabını yeniden  çizdirelim.

 Image

 Grafikten görüldüğü gibi yerleşme zamanı öncekinden çok daha hızlı, ancak büyük Ki değerinde aşım artmaktadır. Aşımın artışını engellemek için Kd yi artıralım ve sistem cevabına bakalım. Bunu için Kd yi 10 alalım.

Image

 Sonuç olarak PID kontrolörün katsayılarını

Kp=100

Ki=200

Kd=10

 

 gibi seçersek istediğimiz tasarım kriterlerini sağlamış oluruz.

Posted in Uncategorized.

Bir cevap yazın