TEKNİK YAZILAR

Makaleler

Otomasyon ve mekatronikte sık karşılaşılan konuları, teoriyi ezberletmeden ve sahada işe yarayacak şekilde anlatmaya çalışıyorum.

PID Kontrol Robot Kinematiği MQTT Protokolü
Kontrol Sistemleri·~8 dk okuma

PID Kontrol: Teoriden Pratiğe

Bir fırının sıcaklığını 180 °C'de tutmak istiyorsunuz. En basit yaklaşım şu: sıcaklık 180'in altındaysa ısıtıcıyı aç, üstündeyse kapat. Buna on-off kontrol denir ve çalışır — ama sıcaklık sürekli 175 ile 185 arasında salınır, ısıtıcı sürekli açılıp kapanır, kontaktör ömrü kısalır.

PID bu salınımı ortadan kaldırır. Isıtıcıyı tam açıp tam kapatmak yerine, ne kadar gerektiğini hesaplayarak sürer. Üç terimden oluşur ve her biri farklı bir soruya cevap verir.

Hata nedir?

Her şey tek bir sayıyla başlar: hata = hedef − ölçüm. Fırın 170 °C ise hata +10'dur. PID'in tüm işi bu hatayı sıfıra indirmektir.

P — Oransal: "Şu an ne kadar uzaktayım?"

Hatayla orantılı bir düzeltme uygular. Hata büyükse çok bastırır, hedefe yaklaşınca kısar. Tek başına kullanıldığında bir sorunu vardır: hedefe tam oturmaz. Çünkü hata sıfıra yaklaştıkça düzeltme de sıfıra yaklaşır — ama fırın ısı kaybettiği için sıfır güçle 180'de kalamaz. Sonuçta 176 °C civarında takılı kalır. Buna kalıcı hata denir.

I — İntegral: "Ne kadar süredir uzaktayım?"

Hatayı zaman içinde toplar. Küçük bir hata bile uzun süre devam ederse integral terimi büyür ve çıkışı yukarı iter. Kalıcı hatayı bu terim yok eder.

Bedeli var: fazlası salınıma yol açar. Ayrıca integral windup denen tuzağı vardır — çıkış zaten %100'e dayanmışken (örneğin ısıtıcı tam güçte) integral toplamaya devam ederse, hedefe ulaşıldığında birikmiş dev bir değer çıkışı gereksiz yere yüksek tutar ve sistem hedefi aşar. Çözüm, çıkış doyuma ulaştığında integrali dondurmaktır (anti-windup). Modern PLC blokları bunu kendiliğinden yapar, ama kendi PID'inizi yazıyorsanız atlamayın.

D — Türev: "Ne kadar hızlı yaklaşıyorum?"

Hatanın değişim hızına bakar ve fren görevi görür. Sistem hedefe çok hızlı yaklaşıyorsa erkenden gücü kısar, böylece aşımı azaltır.

Pratikte en az kullanılan terimdir. Sebebi şu: türev, gürültüyü büyütür. Ölçümde ufak bir titreşim varsa D terimi bunu devasa bir değişim sanıp çıkışı zıplatır. Bu yüzden sıcaklık ve seviye gibi yavaş, gürültülü proseslerde genellikle sadece PI kullanılır.

Pratik kural: Sıcaklık, seviye, basınç → PI yeterlidir. Hızlı ve temiz ölçümlü konum/hız kontrolü → PID mantıklı olur. Kararsızsanız D'yi sıfır bırakıp başlayın.

Elle ayarlama: işe yarayan sıra

  1. I ve D'yi sıfırla. Sadece P ile başla.
  2. P'yi kademeli artır — sistem hafifçe salınmaya başlayana kadar. Sonra bu değeri yaklaşık yarıya indir.
  3. I'yı yavaşça ekle. Kalıcı hata kapanana kadar artır. Salınım başlarsa geri çek.
  4. Gerekiyorsa D ekle. Aşım fazlaysa küçük bir D aşımı kırar. Ölçüm gürültülüyse hiç ekleme.
  5. Bozucu ile test et. Fırının kapağını aç, tanka soğuk sıvı ekle — kontrol toparlanabiliyor mu? Asıl sınav budur.

TIA Portal tarafında

Siemens S7-1200/1500'de PID işi PID_Compact bloğuyla yapılır. Kritik nokta şudur: bu blok bir çevrimsel kesme (OB30 gibi) içinde, sabit periyotta çağrılmalıdır. OB1'in içine koyarsanız tarama süresi değiştikçe integral ve türev hesapları bozulur.

Giriş  : Setpoint (hedef)  ·  Input (ölçüm, ölçeklenmiş)
Çıkış  : Output (0–100 %) veya Output_PWM
Ayar   : PID_Compact'ın otomatik ayar (pretuning) fonksiyonu
         çoğu proseste elle ayardan daha iyi sonuç verir — önce onu deneyin.
Sık yapılan hata: Analog ölçümü ölçeklemeden doğrudan PID'e vermek. Ham değer 0–27648 aralığındadır; NORM_X ve SCALE_X ile önce gerçek mühendislik birimine (°C, bar) çevirin. Aksi halde ayarladığınız katsayılar hiçbir fiziksel anlam taşımaz.
Robotik·~12 dk okuma

Robot Kinematiğine Giriş

Bir robot kolunda iki temel soru vardır. Birincisi: eklem açılarını biliyorum, uç nerede? İkincisi: ucun gitmesini istediğim nokta belli, eklemler kaç derece olmalı? Birincisine ileri kinematik, ikincisine ters kinematik denir. İkincisi çok daha zordur ve robotun işe yarar olmasını sağlayan da odur.

İleri kinematik: kolay yön

Her eklemi sırayla takip edersiniz. Taban döner, omuz eğilir, dirsek bükülür — her adımda bir dönüşüm uygularsınız ve sonunda uç noktanın konumunu bulursunuz. Tek bir cevabı vardır, her zaman çözülür.

İki eklemli düzlemsel bir kol için (üst kol L1, ön kol L2), omuz açısı θ1 ve dirsek açısı θ2 iken uç konumu şöyledir:

r = L1·sin(θ1) + L2·sin(θ1 − θ2)      ← yatay uzaklık
y = L1·cos(θ1) + L2·cos(θ1 − θ2)      ← yükseklik

Taban dönüşü θ0 eklendiğinde bu düzlem uzayda döner: x = r·cos(θ0), z = −r·sin(θ0).

Ters kinematik: zor ve ilginç olan

Hedef noktayı verip açıları geri hesaplamak gerekir. Üç zorluk vardır:

İki eklemli kol için kosinüs teoremiyle analitik çözüm bulunur. Hedefe olan mesafe d iken:

cos(β) = (L1² + L2² − d²) / (2·L1·L2)
θ2 = π − arccos(β)                    ← dirsek bükülmesi
θ1 = atan2(dx, dy) + atan2(L2·sin θ2, L1 + L2·cos θ2)
Doğrulama alışkanlığı: Ters kinematiğinizi yazdıktan sonra çıkan açıları ileri kinematiğe verin. Aynı noktaya dönmüyorsa hata vardır. Bu geri kontrol beş dakika alır ve saatlerce hata aramaktan kurtarır.

Neden 6 eksen?

Üç eksen uzayda bir noktaya ulaşmaya yeter. Ama gerçek işlerde ucun hangi yönde durduğu da önemlidir: kaynak torcunun açısı, tutucunun kutuya paralel olması, tornavidanın vidaya dik gelmesi. Yönelim de üç serbestlik derecesi ister — toplam altı.

Endüstriyel robotlarda son üç eksen genellikle tek noktada kesişir. Buna küresel bilek denir ve muazzam bir kolaylık sağlar: konum ile yönelim matematiksel olarak ayrışır. Önce bilek merkezini üç eksenle konumlandırırsınız, sonra kalan üç eksenle yönelimi ayarlarsınız. Bu ayrışma olmasaydı altı bilinmeyenli denklem takımını sayısal yöntemlerle çözmek gerekirdi.

PTP ve LIN farkı

Robot programlarken en sık kullanılan iki hareket tipi vardır ve aralarındaki fark kritiktir:

HareketNasıl çalışırNerede kullanılır
PTPEklemler doğrudan hedef açıya gider; uç yay çizerHavada hızlı taşıma
LINUç düz çizgi izler; her adımda ters kinematik çözülürDikey iniş/kalkış, kaynak, tutkal

Bir kutuyu almak için dikey inerken PTP kullanırsanız uç yay çizer ve kutunun kenarına çarpar. Bu yüzden yaklaşma ve uzaklaşma hareketleri her zaman LIN olur.

Hız profili: görsel farkın kaynağı

Eklemleri doğrusal olarak interpole ederseniz robot aniden başlar ve aniden durur — hem mekanik olarak yıpratıcıdır hem de gözle bakıldığında "oyuncak gibi" görünür. Gerçek robotlar yamuk hız profili kullanır: hızlanma rampası, sabit hız bölgesi, yavaşlama rampası. Bu tek değişiklik, hareketin doğallığını en çok artıran şeydir.

Uygulamalı deneyin

Bu yazıda anlatılan her şey — 6 eksenli kol, ters kinematik, PTP/LIN farkı, yamuk hız profili — sitedeki simülatörde çalışır durumda. Eksen sürgülerini oynatıp TCP koordinatlarının nasıl değiştiğini canlı görebilirsiniz.

Simülatörü Aç
Endüstriyel IoT·~6 dk okuma

Endüstriyel IoT'de MQTT Protokolü

Sahadaki verinin üst sistemlere taşınması gerektiğinde ilk akla gelen yöntem, sunucunun her cihazı tek tek sorgulamasıdır. Modbus böyle çalışır ve on cihazla sorun çıkarmaz. Beş yüz sensöre çıktığınızda ise sorgulama döngüsü uzar, ağ tıkanır ve veri tazeliğini kaybeder.

MQTT bu modeli tersine çevirir. Cihaz sorgulanmayı beklemez; değişiklik olduğunda kendisi bildirir. Buna publish/subscribe denir.

Üç kavram

Yeni bir gösterge paneli eklemek istediğinizde hiçbir sahadaki cihaza dokunmazsınız — panel ilgili topic'e abone olur, o kadar.

QoS: mesaj gerçekten ulaştı mı?

SeviyeGarantiUygun kullanım
QoS 0En fazla bir kez — ulaşmayabilirSaniyede bir gelen sıcaklık; biri kaybolsa önemsiz
QoS 1En az bir kez — tekrarlanabilirAlarm, sayaç. Alıcı tekrarı tolere edebilmeli
QoS 2Tam olarak bir kezKomut, faturalama verisi. En yavaş seçenek
Yaygın yanılgı: "En güvenlisi olsun" diyerek her şeyi QoS 2 yapmak. Bu, her mesaj için dört adımlı el sıkışma demektir; yoğun veride broker'ı gereksiz yorar. Sensör verisi için QoS 0 veya 1 fazlasıyla yeterlidir.

İki özellik ki endüstride hayat kurtarır

Retained message: Broker, her topic'in son değerini saklar. Yeni bağlanan bir panel, bir sonraki güncellemeyi beklemek yerine son bilinen değeri anında alır. Bu olmadan ekran açılışta boş görünür.

Last Will and Testament: Cihaz bağlanırken broker'a "benden haber kesilirse şu topic'e şu mesajı yayınla" der. Kablosu koparsa ya da elektriği giderse broker bunu otomatik yapar. Böylece sessiz ölümler fark edilir — endüstride en tehlikeli arıza türü, bozulduğunu söylemeyen cihazdır.

PLC ile nasıl kullanılır?

S7-1200/1500 doğrudan MQTT konuşmaz. Pratikte iki yol vardır: aradaki bir edge cihazı (Raspberry Pi, endüstriyel gateway) PLC'den Modbus/S7 protokolüyle veri okuyup MQTT'ye yayınlar; ya da bir IoT gateway ürünü bu dönüşümü hazır yapar.

Kritik nokta: MQTT bir izleme ve raporlama yoludur, kontrol yolu değil. Gerçek zamanlı ve güvenlik kritik kontrol her zaman PLC'de kalmalıdır. Ağ gecikmesine bağlı bir kontrol döngüsü kurmak, ağ koptuğu gün makineyi kontrolsüz bırakır.

Güvenlik: Şifresiz MQTT (port 1883) fabrika ağının dışına asla çıkmamalıdır. İnternete açılacaksa TLS (port 8883), kullanıcı doğrulaması ve topic bazlı yetkilendirme şarttır.