PID Nedir?

Arkadaşlar herkese selamlar. Ben normalde endüstri mühendisiyim. Fakat yıllardır yazılım işi ile uğraşmaktayım. .net c# ve vb dillerini kullanıyorum. Elektronik ile ilgilenen bir arkadaşım bana PID ve modbus haberleşmeyi çözmem gerektiğini söyledi bir iş için. Anladığım kadarıyla hiç kolay olmayacak :) Sizlere bir kaç sorum olucak. Bilgim olmadığı için komik sorularım olursa lütfen maruz görün. Cevaplar için şimdiden teşekkürlerimi sunuyorum.
- Anladığım kadarıyla PID için PCL programlama yapmak gerekiyor. Programlamayı yapabilmek için hangi programları önerirsiniz. Ayrıca bir simülasyon yazılımı varmı(yani devre vs. kullanmadan direk bilgisayar ortamında deneyebilirmiyim). PCL programlama yapabilmek için .net c# veya vb kullanılabiliyormu?

- PID içerisindeki integral ve türev fonksiyonları cihazların içerisinde zaten bulunan fonksiyonlarmıdır? Yani siz bir değer veriyorsunuz o size bir değer döndürüyor ve siz bunu yorumlayıp ne yapmak istediğinize mi kara veriyorsunuz? yoksa bu integral ve türev içeren fonksiyonları kendimmi yazmak zorundayım? Dolayısıyla integral ve türevi iyi bilmelimiyim bu işe başlamadan önce?
- modbus sanırım bir haberleşme protokolü, teorik olarak pid ve modbus haberleşmesi ile ilgili bir örnek verebilirmisiniz(kullanım alanlarını anlayabilmek açısından)
- Kitap web sitesi gibi kaynaklar önerebilirmisiniz
- Önerileriniz var ise lütfen esirgemeyin
Umarım abzürt sorular sormamışımdır. Teşekkürler...
 
Son düzenleme:
modbus piyasadaki hemen hemen bütün dijital kontrol cihazlarında kullanılan bir ücretsiz açık bir protokoldür. bu protokolü destekleyen bütün cihazlar hangi modbus komutlarını desteklediğini kullanım kitapçıklarında yazar ve senin yapman gereken sadece bu komutları bilgisayar yazılımında yerine koyman. pid soruna gelince, pid yapabilen bütün dijital kontrol cihazlarında auto tuning denen bir özellik vardır ve bunu sen aktif hale getirdiğinde bütün değerleri kendi kendine hesaplar ama sen bu değerleri kendinde hesaplayabilir ve cihaza girebilirsin. ama pid hesaplamasında bir sürü değer vardır ve senin bunları bilgisayar yazılımı üzerinde ayarlayıp veya yapabilmen için kontrol cihazında bunlar için modbusta veya başka bir programlama dilince yer ayrılmış veya her pid değeri için komut veya fonksiyon bloğu olması gerekiyor ki ben buna yaptığım işlerde ve kullandığım cihazlarda pek rastlamadım. genellikle sahada dijital kontrol cihazına auto tuning veya el ile girilerek yaptırılarak değerler hesaplanır ve sen sadece kontrol cihazının set değerini değiştirisin zaten diğer değerleride uzaktan izlemek çok gereksiz. modbus komutlarını kullanımına gelince: cihazların pek çoğu (standart dijital kontrol cihazları) 5-6 komut desteğini verir. read coil, write coil, read integer, write integer gibi ama diğer modbus komutları içinde hafızalarında reserve denen yerler bırakırlar ve sen bu cihazları alırken aldığın firmaya istediğin komutlarıda aktif hale getirmesinide isteyebilirsin.
 
modbus piyasadaki hemen hemen bütün dijital kontrol cihazlarında kullanılan bir ücretsiz açık bir protokoldür. bu protokolü destekleyen bütün cihazlar hangi modbus komutlarını desteklediğini kullanım kitapçıklarında yazar ve senin yapman gereken sadece bu komutları bilgisayar yazılımında yerine koyman. pid soruna gelince, pid yapabilen bütün dijital kontrol cihazlarında auto tuning denen bir özellik vardır ve bunu sen aktif hale getirdiğinde bütün değerleri kendi kendine hesaplar ama sen bu değerleri kendinde hesaplayabilir ve cihaza girebilirsin. ama pid hesaplamasında bir sürü değer vardır ve senin bunları bilgisayar yazılımı üzerinde ayarlayıp veya yapabilmen için kontrol cihazında bunlar için modbusta veya başka bir programlama dilince yer ayrılmış veya her pid değeri için komut veya fonksiyon bloğu olması gerekiyor ki ben buna yaptığım işlerde ve kullandığım cihazlarda pek rastlamadım. genellikle sahada dijital kontrol cihazına auto tuning veya el ile girilerek yaptırılarak değerler hesaplanır ve sen sadece kontrol cihazının set değerini değiştirisin zaten diğer değerleride uzaktan izlemek çok gereksiz. modbus komutlarını kullanımına gelince: cihazların pek çoğu (standart dijital kontrol cihazları) 5-6 komut desteğini verir. read coil, write coil, read integer, write integer gibi ama diğer modbus komutları içinde hafızalarında reserve denen yerler bırakırlar ve sen bu cihazları alırken aldığın firmaya istediğin komutlarıda aktif hale getirmesinide isteyebilirsin.


Çok teşekkür ederim. Programlama olayına nerden başlayabileceğim ve similasyon olayının bir çözümü olup olmadığı konusunda da cevap verebilecek arkadaşlar var ise çok memnun olurum
 
teşekkür mevzusuna gelince 'teşekkürler' butonunuda tıklayabilirsin:)

vb bullanıyorsan önce internette modbus ile ilgili dokümanları incele. mesela fultek firmasının sayfasına girer isen modbus ile ilgili birsürü açıklayıcı, okumasıda kolay ve zevkli olan bilgiler var.

pid kullanımına basit bir örnek verir isek: sıcaklık değeri 70 derecede tutulmak istenen bir devre var diyelim. sensörünü ve dijital kontrol cihazını bağladın oransal kontrolü seçtin ve çalıştırdın. dijital kontrol cihazları senin vereceğin oransal banda göre çalışır. mesela sen set değerini 70 dedin ve oransal bandı 10 seçtin. cihazın kendi konfigrasyonuna bağlı olarak seninverdiğin oransal bandı 2 ye böler (atıyorum burayı bu özellik kontrol cihazına bağlıdır ve farklı hesaplarıda olabilir) -5, +5 yapar bu nedemektir. senin oransal çalışma bandın artık 65 ve 75 dir. sistem ilk dvreye alındığında su soğuk olduğu ve oransal band içinde olmadığı için tam ısıtılır oransal banda girdiğinde yani 65 derecede sıcaksu vanası kılmaya başlar 70 derecede minumundadır. sitem minimumda çalışmaya devam eder. 75 derecede tam olarak kapatılır. genellikle 75 derece için haricen bir limit termostatta vardır.
 
Mantıksal olarak olayları idrak edebiliyorum bu süper ama iş programlamaya geliyor. Programlamada özellikle algoritma oluşturmada kendime çok güvenirim fakat, kodlama yapacağım platformu bilmediğim için ve tamamen bu işlere yabancı olduğum için açıkçası dötüm yusuf yusuf atıyor :) rica etsem lütfen bana hangi platformda kodlayıp hangi platformda similasyon olayını gerçekleştirdiğinizi de (tabi varmı bilmiyorum)anlatabilirseniz, hatta sadece yol gösterebilirseniz gerçekten benim açımdan çok güzel bir başlangıca vesile olabilirsiniz. Pic programlama ile ilgili araştırma yapmıştım. Pic programlama da hangi programları kullanabileceğim konusunda fikrim var fakat pid programlama diince kafamda birşey oluşamıyor. Bunlar aynı şeylermi sadece cihazlarmı farklı nedir ne diildir orda bi karmaşa var boğydu beni
 
ben profesyonel bir yazılımcı değilim ama kendi çapımızdada yaptığımız işler yok değil yani. sana bu konuda ORDEL firmasını aramanı tavsiye ederim. yerli firma ve çok sağlamlar. sana bu programlama ve simülasyon konusunda yardımcı olabilirler.
 
Anladığım kadarıyla mühendislik okumayan biri için PID kontrol sisteminin tam olarak kavranabilmesi çok zor görünüyor. Aslında şöyle bir yapı oluşturulsa mesela S7300'de FB58 bloğu var PID için fakat içeriğinde ne olduğu görünmüyor zaten hazır blok. Bu şekilde bir blok hazırlansa ve hangi değerin nereye yazılacağı hatanın nasıl hesaplanacağı formüllerin nasıl kullanılaağı belirtilse ve kullanacak olan kişi orada kendi prosesine göre değerleri nasıl koyabileceği anlatılsa biraz daha yararlı olucak gibi. Sanırım buradaki arkadaşların çoğu işin bu kısmını öğrenmek istiyor. Zaten bu şekilde öğrendikten sonra daha kolay anlaşılacağı düşüncesindeyim. Yardımcı olan arkadaşlara teşşekür ederim.
 
PID içinde yeralan P harfi Proportional(oransal), I harfi Integral(integral), D harfi ise Differential(türev) anlamını taşımaktadır. PID olarak adlandırılmasının nedeni budur.

P : ORANSAL CONTROL
Bu kontrol şeklinde çıkış frekansı kontrol edildiği için çıkış ve sapma arasında oransal bir bağ vardır.
Bu çıkış frekansını kontrol eder ve çıkış frekansı ile sapma arasında oranı düzenler. Sapma katsayısı ve çıkış frekansı (% olarak açıklanmış)arasındaki bağıntıya biz Proportional Gain (Kp) (oransal kazanç) olarak adlandırılır.

I : Integral Kontrol
Bu çıkış frekansını sapmanın integralini alarak düzelten bir kontrol şeklidir. Oransal ayarlanmasında, büyük sapmalar büyük çıkış frekans ayarını, küçük sapmalar daha küçük frekans ayarına neden olacaktır.Buna rağmen sapmayı sıfır yapamayız. Integral performansı bu problemi kompanze edecektir.

Çıkış frekansının integral olarak düzeltilmesi sapmaların geçen zamana göre hesaplanmasıyla ortaya çıkar. Sonuç olarak sapma sıfırdır.

D: Türevsel Kontrol
Bu kontrolde sapmanın farklılaşmasıyla (differentiating) çıkış frekansının düzeltilmesi şeklinde bir kontroldür. P oransal kontrolde sapmanın gerçek değeri baz alınarak, I kontrolde sapmanın bir önceki değeri baz alındığından dolayı daima bir gecikme ile bir kontrol yapılacaktır. Türevsel kontrol bu problemi kompanze edecektir.
Geçen zamana karşı sapma oranındaki değişime göre çıkış frekansının düzeltilir. Bu nedenden dolayı, D türevsel kontrolde sapmada herhangi bir değişik olduğu zaman çıkış frekansı hızlı bir şekilde D ile düzeltilir.

PID kontrol P (Oransal), I (integral), D (türevsel) kontrollün birleştirilmesinden oluşmuştur. Burada P-kazanç, I-kazanç, D-kazançların her birini ayarlanarak en uygun kontrol elde edilebilir. P-kontrol ile düzgün yumuşak bir kontrol elde edilir, I kontrol ile steady-state düzeltebilirisiniz, D kontrol ile geri besleme değerini etkileyen gürültülere kısa sürede cevap verilecektir. Büyük sapmalar P kontrol ile sindirilir . Küçük sapmalar I kontrol ile düzeltilir.
D kontrol sapmanın differentiation baz alınarak performansın göstermektedir. Bu nedenden dolayı gereksiz sinyaller için bir tepki verecektir.Örneğin dışarıdan gelen gürültülere.

 
artık kimse routh kriteri iye bir şey hesaplamıyor kardeş. auto tuning dene bir şey var. bunu aktif hale getiriyorsun cihaz herşeyi hesaplıyor. yok illede ben hesaplayıp öğrenicem dersen sayfa sayfa formülleri var istersen sana onlarıda anlatayım. sıcaklık kontrolünde oransal kontrol yapılmaz deme çünkü piyasada bu işten ekmek yiyen çok insan var.

merak ettim, o sayfa sayfa formülleri anlatırsan sevinirim. mühendislik kitaplarında bile bir paragraflık yazıyla esgeçilmiş önemli bir konuda bizi aydınlatın lütfen. hatta konuyu tek bir soruyla daraltayım: PID katsayılarını nasıl hesaplar-buluruz?
 

Forum istatistikleri

Konular
127,950
Mesajlar
913,864
Kullanıcılar
449,598
Son üye
kadir12366

Yeni konular

Geri
Üst