Kontrol Sistemleri
Dr. Uğur Hasırcı
Düzce Üniversitesi
Bu uygulama saatinde, MATLAB’ın sembolik programlama için geliştirdiği Symbolic Math
Toolbox‘da mevcut bazı fonksiyonların ders kapsamında şu ana kadar bahsedilen konulara ilişkin
olanları tanıtılacaktır (belgedeki sarı zeminli kısımlar MATLAB kod parçalarını ve onların çıktılarını
temsil eder).
İkinci dereceden cebirsel bir denklemin genel ifadesi ax2  bx  c  0 şeklindedir. Bugüne kadar
aldığınız programlama derslerinde, basit bir örnek olması sebebiyle, bu denkleme ilişkin verilen a, b
ve c değerleri için denklemin köklerini bulmak amacıyla örnek kod yazmış olmalısınız. Peki
denklemin köklerini a, b ve c‘nin belli (özel) birer değeri için değil de, herhangi bir değer vermeden
doğrudan a, b ve c cinsinden, yani rakamsal değerler yerine “semboller” cinsinden bulmanız
istense buna ilişkin kodu nasıl yazardınız?
Sembolik programlama, sembolik değişkenler tanımlamak suretiyle, bilgisayar programı tarafından
yapılan işlemler sonucu üretilen sonuçların yine bu sembolik değişkenler cinsinden elde edilmesine
olanak sağlar. Örneğin bir diferansiyel denklemin çözümünün, bu diferansiyel denklemdeki
katsayıların belirli değerleri için değil, bu katsayıları da içeren genel ifadesi cinsinden bulmayı
sağlar. Buna ek olarak dönem boyunca göreceğimiz bir sürü ek fonksiyonu da sunar.
Günümüze kadar sembolik programlama için çok sayıda paket program üretilmiştir ve bunlar ticari
olarak erişilebilir durumdadır. Bu ders kapsamında MATLAB’in bir eklentisi olan Symbolic Math
Toolbox kullanılacaktır.
MATLAB ortamında sembolik bir değişken “syms” fonksiyonu ile tanımlanır. Örneğin,
syms a b c
satırı, a, b ve c isimli üç sembolik değişken tanımlar. Sembolik değişkenler de tıpkı nümerik
değişkenler gibi cebirsel işlemlere tabi tutulabilir. Ayrıca sembolik programla Laplace Dönüşümü ve
Ters Laplace Dönüşümünün sembolik değişkenler cinsinden bulunmasına da olanak sağlar.
t ve s etiketli sembolik değişkenler tanımlanıp, MATLAB Symbolic Toolbox kütüphanesinde mevcut
fonksiyonlar yardımıyla, zaman domeninde tanımlı bir fonksiyonun Laplace dönüşümünü ve
frekans domeninde tanımlı bir fonksiyonun ters Laplace dönüşümü hesaplanabilir.
Bunun için aşağıdaki örneklere bakalım:
1
Kontrol Sistemleri
Dr. Uğur Hasırcı
Düzce Üniversitesi
Örneğin aşağıdaki kod parçası, önce s adında bir sembolik değişken tanımlamakta, daha sonra
F ( s) 
2
( s  1)( s  2)2
şeklinde bir fonksiyona ilişkin nesne oluşturmaktadır. ilaplace komutu, tanımlanan fonksiyonun
ters Laplace dönüşümünü hesaplar. pretty komutu ise, elde edilen ters Laplace dönüşümü
ifadesini, kullanıcı için daha okunabilir bir formda ekrana yazar.
syms s
% sembolik degisken tanımlama
F=2/[(s+1)(s+2)^2]
% verilen fonksiyona iliskin nesnenin olusturulmasi
pretty (F)
% ilgili nesnenin ekrana yazdirilmasi
f=ilaplace(F)
% ters Laplace donusumunun hesaplanmasi
pretty(f)
% ters Laplace donusumunun ekrana yazdirilmasi
Yukarıdaki kodun ikinci satırı, frekans domenindeki F(s) fonksiyonuna ilişkin nesneyi oluşturur. İlgili
satırın sonunda noktalı virgül olmadığı için, bu satırın ekran çıktısı şu şekildedir:
F=
2/((s + 1)*(s + 2)^2)
Ancak üçüncü satırdaki pretty fonksiyonu, bu nesneyi ekrana daha okunabilir bir formda yazar:
2
---------------2
(s + 1) (s + 2)
Kodun dördüncü satırı, verilen fonksiyonun ters Laplace dönüşümünü hesaplar ve aşağıdaki gibi bir
ekran çıktısı üretir.
f=
2/exp(t) - 2/exp(2*t) - (2*t)/exp(2*t)
2
Kontrol Sistemleri
Dr. Uğur Hasırcı
Düzce Üniversitesi
Beşinci satır ise, bunu kullanıcı için biraz daha okunabilir formda yazar:
2
2
2t
------ - -------- - -------exp(t)
exp(2 t)
exp(2 t)
Yukarıda t değişkenini bizim tanımlamadığımıza, ilaplace fonksiyonu kullanıldığında bu değişkenin
MATLAB tarafından otomatik olarak üretildiğine dikkat ediniz.
Yukarıda verilen örnek, ters Laplace dönüşümüne ilişkin bir örnekti. Şimdi de Laplace dönüşümüne
ilişkin bir örnek yapalım. Bunun için kullanacağımız MATLAB fonksiyonu laplace dır. Bu fonksiyon,
zaman domeninde tanımlı bir f(t) fonksiyonunun Laplace dönüşümünü kısmi kesirler formunda
verir. İşlem sonucunun kısmi kesirler formunda değil de başka formlarda yazılmasına olanak
sağlayan bazı standart MATLAB komutları da mevcuttur. Örneğin simplify fonksiyonu, elde edilen
sonucu en basit şekilde (mümkün olan en az terimle) ifade eder. vpa(F,basamak) komutu, elde
edilen F(s) fonksiyonundaki kesirli ifadeleri desimal olarak yazar (yani örneğin verilen fonksiyonun
Laplace dönüşümü olan F(s)’de 3/16 şeklinde bir terim veya çarpan varsa, vpa(F,4) komutu bunu
virgülden sonra 4 basamak olacak şekilde 0.1875 olarak yazar).
Aşağıdaki kodu satır satır çalıştırarak, her bir komut satırının fonksiyonunu keşfediniz.
syms t
f=3/5-3/5*exp(-t)*[cos(2*t)+(1/2)*sin(2*t)]
pretty(f)
F=laplace(f)
pretty(F)
simplify(F)
F=vpa(F,3)
pretty(F)
MATLAB Symbolic Toolbox’ın kullanımı Laplace dönüşümü ve ters Laplace dönüşümünün
bulunması ile sınırlı değildir. Dönem içinde bu araç kutusunun ders konularıyla ilişkili diğer
fonksiyonları da tanıtılacaktır.
3
Download

Mavikent KDGPA ilave revizyon nazım imar planına yapılan itirazın