جدول المحتويات:
- الخطوة 1: الأدوات والمواد
- الخطوة 2: حفر ثنائي الفينيل متعدد الكلور
- الخطوة 3: جندى المكونات
- الخطوة 4: برمجة المتحكم الدقيق
- الخطوة 5: التجميع والمعايرة
- الخطوة 6: ضبط PID
- الخطوة 7: حزمه
فيديو: متحكم درجة الحرارة PID: 7 خطوات
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:41
يقوم صديقي ببناء آلة بثق بلاستيكية لإعادة تدوير البلاستيك (https://preciousplastic.com). يحتاج إلى التحكم في درجة حرارة البثق. لهذا الغرض ، فإنه يستخدم فرقة سخان فوهة. في هذه الفوهة ، يوجد مزدوج حراري ووحدة تسخين تسمح لنا بقياس درجة الحرارة والوصول أخيرًا إلى درجة الحرارة المطلوبة (عمل حلقة رجعية).
عندما سمعت أنه بحاجة إلى العديد من وحدات التحكم PID للتحكم في جميع فرق تسخين الفوهة ، فقد أعطاني على الفور الرغبة في محاولة صنع منطقتنا.
الخطوة 1: الأدوات والمواد
أدوات
- لحام الحديد وأسلاك اللحام والتدفق
- ملقط
- آلة طحن (النقش الكيميائي ممكن أيضًا لنماذج PCB الأولية) (يمكنك أيضًا طلب PCB مع ملف النسر الخاص بي)
- مقياس حرارة (للمعايرة)
- اردوينو (أي نوع) أو مبرمج AVR
- كابل USB TTL-232 تسلسلي من FTDI
- قاطع ليزر (اختياري)
- متعدد (الأومتر والفولتميتر)
مادة
- لوح نحاسي أحادي الجانب من الباكليت (60 * 35 مم كحد أدنى) (لقد دمرت المنشار الخاص بي بشراء الألياف الزجاجية ، لذا كن حذرًا: الباكليت)
- متحكم Attiny45
- منظم الجهد LM2940IMP-5
- مضخم تشغيل AD8605
- الترانزستور NDS356AP
- مجموعة من المقاومات والمكثفات (لدي كتاب SMT 0603 adafruit)
- 230V-9V AC-DC محول
- 1N4004 الثنائيات
- تتابع الحالة الصلبة
- طلاء أظافر (اختياري)
الخطوة 2: حفر ثنائي الفينيل متعدد الكلور
لقد استخدمت Proxxon MF70 CNC الخاص بي المحول وقمة نهاية مخروطية لطحن PCB. أعتقد أن أي جزء نهاية نقش سيعمل. تم إنشاء ملف Gcode مباشرة بواسطة eagle والمكوِّن الإضافي pcb-gcode. تم إجراء ثلاث تمريرات فقط لضمان فصل جيد للمسار ولكن دون قضاء ساعات في طحن كل النحاس. عندما خرج PCB من آلة CNC ، قمت بتنظيف المسارات بقاطع واختبارها بمقياس متعدد.
المعلمات: معدل التغذية 150 مم / دقيقة ، العمق 0.2 مم ، سرعة الدوران 20 ألف طن / دقيقة
الخطوة 3: جندى المكونات
باستخدام الملقط ومكواة اللحام ، ضع المكونات في الأماكن الصحيحة وقم بلحامها باستخدام التدفق (يساعد) والبدء بأصغر المكونات. مرة أخرى ، تحقق باستخدام مقياس متعدد من عدم وجود أي دوائر قصيرة أو عناصر غير متصلة.
يمكنك اختيار كسب مكبر الصوت عن طريق اختيار المقاوم الذي تريده (الكسب = (R3 + R4) / R4). لقد أخذت 1M و 2.7k ، لذا في حالتي ، فإن الكسب يساوي تقريبًا 371. لا يمكنني معرفة القيمة الدقيقة لأنني أستخدم مقاومة تحمل 5٪.
المزدوجات الحرارية الخاصة بي هي من النوع J. هذا يعني أنه يعطي 0.05mV لكل درجة. مع كسب 371 ، أحصل على 18.5mV لكل درجة من خرج مكبر الصوت (0.05 * 371). أريد قياس حوالي 200 درجة مئوية لذا يجب أن يكون خرج مكبر الصوت حوالي 3.7 فولت (0.0185 * 200). يجب ألا تتجاوز النتيجة 5 فولت لأنني أستخدم الجهد المرجعي 5 فولت (خارجي).
تتوافق الصورة مع الإصدار الأول (لا يعمل) الذي صنعته ولكن المبدأ هو نفسه. في هذا الإصدار الأول ، استخدمت مرحلًا ووضعته في منتصف اللوحة. بمجرد أن كنت أقوم بالتبديل بجهد عالٍ ، كان لدي مسامير أعادت تشغيل وحدة التحكم.
الخطوة 4: برمجة المتحكم الدقيق
باستخدام اردوينو مثل هذه التعليمات: https://www.instructables.com/id/How-to-Program-a … يمكنك تحميل الكود.
لقد استخدمت trinket احترافيًا مع كبل FTDI-USB لبرمجة Attiny 45 ولكن هذه الطريقة مكافئة. ثم قمت بعد ذلك بتوصيل الدبوس PB1 و GDN مباشرة في RX و GND لكابل FTDI-USB لتلقي البيانات التسلسلية والقدرة على التصحيح.
يجب عليك وضع جميع المعلمات على الصفر (P = 0 ، I = 0 ، D = 0 ، K = 0) في رسم اردوينو. سيتم ضبطها أثناء خطوة الضبط.
إذا كنت لا ترى دخانًا أو رائحة محترقة ، يمكنك الانتقال إلى الخطوة التالية!
الخطوة 5: التجميع والمعايرة
تحذير: لا تقم أبدًا بتوصيل مصدر الطاقة و 5 فولت من المبرمج في نفس الوقت! وإلا سترى الدخان الذي كنت أتناوله في الخطوة السابقة. إذا لم تكن متأكدًا من قدرتك على احترام ذلك ، يمكنك ببساطة إزالة دبوس 5 فولت للمبرمج. لقد سمحت بذلك لأنه كان أكثر ملاءمة بالنسبة لي لبرمجة وحدة التحكم بدون مصدر طاقة واختبار وحدة التحكم دون تسخين السخان مثل الجنون أمام وجهي.
يمكنك الآن تفريع المزدوجة الحرارية على مكبر الصوت ومعرفة ما إذا كنت تقيس شيئًا ما (احترم القطبية). إذا كان نظام التدفئة الخاص بك في درجة حرارة الغرفة ، فيجب أن تقيس الصفر. يجب أن يؤدي تسخينها باليد إلى بعض القيم الصغيرة.
كيف تقرأ هذه القيم؟ ما عليك سوى توصيل المسامير PB1 و GDN مباشرة في RX و GND لكابل FTDI-USB وافتح شاشة اردوينو التسلسلية.
عندما تبدأ وحدة التحكم ، فإنها ترسل القيمة الحمراء بواسطة مقياس الحرارة الداخلي للرقاقة. هذه هي الطريقة التي أعوض بها درجة الحرارة (بدون استخدام شريحة مخصصة). هذا يعني أنه إذا تغيرت درجة الحرارة أثناء العملية ، فلن يتم أخذها في الاعتبار. تختلف هذه القيمة تمامًا من شريحة إلى أخرى ، لذا يجب إدخالها يدويًا في تعريف REFTEMPERATURE في بداية الرسم التخطيطي.
قبل توصيل مرحل الحالة الصلبة ، تحقق من أن خرج الجهد في النطاق الذي يدعمه المرحل (3 فولت إلى 25 فولت في حالتي ، تولد الدائرة حوالي 11 فولت). (احترام القطبية)
هذه القيم ليست درجات حرارة بالدرجة أو فهرنهايت ولكنها نتيجة التحويل التناظري إلى الرقمي لذا فهي تختلف بين 0 و 1024. أستخدم الجهد المرجعي 5 فولت وبالتالي عندما يكون خرج مكبر الصوت بالقرب من 5 فولت ، تكون نتيجة التحويل قريبة من 1024.
الخطوة 6: ضبط PID
أحتاج أن أذكر أنني لست خبيرًا في التحكم ، لذلك وجدت بعض المعايير التي تناسبني ولكني لا أضمن أنها تعمل مع الجميع.
بادئ ذي بدء ، يجب أن أشرح ما يفعله البرنامج. لقد نفذت نوعًا من برنامج PWM: يتم زيادة العداد في كل تكرار حتى يصل إلى 20000 (في هذه الحالة يتم إعادة تعيينه إلى 0). يؤدي التأخير إلى إبطاء الحلقة إلى ميلي ثانية. سيلاحظ أكثرنا تمييزًا أن فترة التحكم تبلغ حوالي 20 ثانية. تبدأ كل حلقة بمقارنة بين العداد والعتبة. إذا كان العداد أقل من العتبة ، فقم بإيقاف تشغيل الترحيل. إذا كان أكبر ، فأنا أقوم بتشغيله. لذلك أقوم بتنظيم القوة من خلال تحديد العتبة. يحدث حساب العتبة كل ثانية.
ما هي وحدة تحكم PID؟
عندما تريد التحكم في عملية ما ، لديك القيمة التي تقيسها (analogData) ، والقيمة التي تريد الوصول إليها (tempCommand) وطريقة لتعديل حالة تلك العملية (seuil). في حالتي ، يتم ذلك باستخدام العتبة ("seuil" باللغة الفرنسية ولكن أسهل بكثير في الكتابة والنطق (نطق "sey")) والتي تحدد المدة التي سيتم فيها تشغيل المفتاح وإيقافه (دورة التشغيل) وبالتالي مقدار الطاقة ضع في النظام.
يتفق الجميع على أنه إذا كنت بعيدًا عن النقطة التي تريد الوصول إليها ، فيمكنك إجراء تصحيح كبير ، وإذا كنت قريبًا ، فستحتاج إلى تصحيح بسيط. هذا يعني أن التصحيح هو دالة للخطأ (الخطأ = analogData-tempComand). نعم ولكن كم؟ لنفترض أننا نضرب الخطأ بعامل (P). هذه وحدة تحكم تناسبية. ميكانيكيًا ، يقوم الزنبرك بإجراء تصحيح نسبي لأن قوة الزنبرك تتناسب مع ضغط الزنبرك.
ربما تعلم أن أنظمة تعليق سيارتك تتكون من زنبرك ومخمد (ممتص الصدمات). يتمثل دور هذا المخمد في تجنب ارتداد سيارتك مثل الترامبولين. هذا هو بالضبط ما يفعله المصطلح المشتق. باعتباره المخمد ، فإنه يولد تفاعلًا يتناسب مع اختلاف الخطأ. إذا كان الخطأ يتغير بسرعة ، يتم تقليل التصحيح. يقلل من التذبذبات والتجاوزات.
مصطلح التكامل موجود هنا لتجنب الخطأ الدائم (يدمج الخطأ). بشكل ملموس ، هو عداد يتزايد أو ينقص إذا كان الخطأ موجبًا أو سالبًا. ثم يتم زيادة التصحيح أو خفضه وفقًا لهذا العداد. ليس لها معادلة ميكانيكية (أو لديك فكرة؟). ربما يكون هناك تأثير مماثل عند إحضار سيارتك إلى الخدمة ولاحظ الميكانيكي أن الصدمات منخفضة جدًا بشكل منهجي وتقرر إضافة المزيد من التحميل المسبق.
يتم تلخيص كل هذا في الصيغة: التصحيح = P * e (t) + I * (de (t) / dt) + D * متكامل (e (t) dt) ، P ، I و D كونها ثلاث معلمات لها ليتم ضبطها.
في الإصدار الخاص بي أضفت مصطلحًا رابعًا وهو الأمر "بديهيًا" (التغذية إلى الأمام) اللازم للحفاظ على درجة حرارة معينة. لقد اخترت أمرًا متناسبًا مع درجة الحرارة (إنه تقدير تقريبي جيد لخسائر التسخين. صحيح إذا أهملنا خسائر الإشعاع (T ^ 4)). مع هذا المصطلح ، يتم تفتيح عامل التكامل.
كيف تجد هذه المعلمات؟
لقد جربت طريقة تقليدية يمكنك العثور عليها عن طريق googling "وحدة التحكم في درجة حرارة ضبط pid" ولكني وجدت صعوبة في التطبيق وانتهى بي الأمر بطريقي الخاص.
طريقتي
ضع أولاً P و I و D على الصفر وضع "K" و "tempCommand" على قيم صغيرة (على سبيل المثال K = 1 و tempCommand = 100). قم بتشغيل النظام وانتظر ، انتظر ، انتظر … حتى تستقر درجة الحرارة. في هذه المرحلة ، أنت تعلم أنه باستخدام "seuil" 1 * 100 = 100 ، تميل درجة الحرارة إلى X. لذا فأنت تعلم أنه بأمر 100/20000 = 5٪ يمكنك الوصول إلى X. لكن الهدف هو الوصول إلى 100 لأنه "tempCommand". باستخدام نسبة يمكنك حساب K للوصول إلى 100 (tempCommand). كإجراء احترازي ، استخدمت قيمة أصغر من القيمة المحسوبة. في الواقع ، من الأسهل تسخين أكثر من التبريد. حتى النهاية
Kfinal = K * tempCommand * 0.9 / X
الآن عند بدء تشغيل وحدة التحكم ، يجب أن تميل بشكل طبيعي إلى درجة الحرارة التي تريدها ولكنها عملية بطيئة حقًا لأنك تعوض فقط خسائر التدفئة. إذا كنت تريد الانتقال من درجة حرارة إلى أخرى ، فيجب إضافة كمية من الطاقة الحرارية في النظام. يحدد P المعدل الذي تضع فيه الطاقة في النظام. اضبط P على قيمة صغيرة (على سبيل المثال P = 10). جرب بداية باردة (تقريبًا). إذا لم يكن لديك تجاوز كبير ، فجرّب المضاعفة (P = 20) إذا كان لديك الآن واحد جرب شيئًا ما بينهما. إذا كان لديك تجاوز بنسبة 5٪ ، فهذا جيد.
الآن قم بزيادة D حتى لا يكون لديك تجاوز. (دائمًا التجارب ، أعلم أن هذا ليس علمًا) (أخذت D = 100)
ثم أضف I = P ^ 2 / (4 * D) (يعتمد على طريقة Ziegler-Nicholts ، يجب أن يضمن الاستقرار) (بالنسبة لي أنا = 1)
لماذا كل هذه التجارب ، لماذا ليس العلم؟
اعلم اعلم! هناك نظرية ضخمة ويمكنك حساب دالة النقل والتحويل Z و blablabla. كنت أرغب في إنشاء قفزة موحدة ثم تسجيل رد الفعل لمدة 10 دقائق وكتابة وظيفة النقل وماذا بعد ذلك؟ لا أريد إجراء عمليات حسابية باستخدام 200 مصطلح. لذلك إذا كان لدى أي شخص فكرة ، فسأكون سعيدًا لمعرفة كيفية القيام بذلك بشكل صحيح.
فكرت أيضًا في أعز أصدقائي زيجلر ونيكولز. أخبروني أن أجد حرف P الذي يولد التذبذبات ثم يطبق طريقتهم. لم أجد هذه التذبذبات أبدًا. الشيء الوحيد الذي وجدته هو إطلاق النار على السماء.
وكيف نمذجة حقيقة أن التسخين ليس نفس عملية التبريد؟
سأواصل بحثي ولكن الآن دعنا نحزم وحدة التحكم الخاصة بك إذا كنت سعيدًا بالأداء الذي تحصل عليه.
الخطوة 7: حزمه
لقد تمكنت من الوصول إلى fablab موسكو (fablab77.ru) وقاطع الليزر الخاص بهم وأنا ممتن. سمحت لي هذه الفرصة بإنشاء حزمة لطيفة تم إنشاؤها بنقرة واحدة بواسطة البرنامج المساعد الذي يصنع مربعات بالأبعاد المطلوبة (h = 69 l = 66 d = 42 mm). يوجد فتحتان (بقطر 5 مم) في الجزء العلوي للمصباح والمفتاح وشق واحد على الجانب لمسامير البرمجة. لقد قمت بتأمين المحول بقطعتين من الخشب وثنائي الفينيل متعدد الكلور ببراغي. لقد قمت بلحام الكتلة الطرفية بالأسلاك ولوحة PCB ، وأضفت المفتاح بين المحول ومدخل طاقة PCB ، وقمت بتوصيل الصمام بـ PBO بمقاوم (300 أوم) على التوالي. كما أنني استخدمت طلاء الأظافر للعزل الكهربائي. بعد الاختبار الأخير ، قمت بلصق الصندوق. هذا كل شيء.
موصى به:
قراءة درجة الحرارة باستخدام مستشعر درجة الحرارة LM35 مع Arduino Uno: 4 خطوات
قراءة درجة الحرارة باستخدام مستشعر درجة الحرارة LM35 مع Arduino Uno: مرحبًا يا رفاق في هذه التعليمات ، سوف نتعلم كيفية استخدام LM35 مع Arduino. Lm35 هو مستشعر لدرجة الحرارة يمكنه قراءة قيم درجة الحرارة من -55 درجة مئوية إلى 150 درجة مئوية. إنه جهاز ثلاثي الأطراف يوفر جهدًا تناظريًا يتناسب مع درجة الحرارة. عالية
جهاز مراقبة الطقس ESP32 Based M5Stack M5stick C مع DHT11 - مراقبة درجة الحرارة والرطوبة ومؤشر الحرارة على M5stick-C مع DHT11: 6 خطوات
جهاز مراقبة الطقس ESP32 Based M5Stack M5stick C مع DHT11 | مراقبة درجة الحرارة والرطوبة ومؤشر الحرارة على M5stick-C مع DHT11: مرحبًا يا رفاق ، في هذه التعليمات سوف نتعلم كيفية واجهة مستشعر درجة حرارة DHT11 مع m5stick-C (لوحة تطوير بواسطة m5stack) وعرضها على شاشة m5stick-C. لذلك في هذا البرنامج التعليمي سوف نقرأ درجة الحرارة والرطوبة وأمبير. الحرارة أنا
التحكم في درجة الحرارة في المنزل مع PID و Labview: 4 خطوات
التحكم في درجة الحرارة في المنزل مع PID و Labview: PID merupakan suatu sistem pengontrolan yang biasa digunakan pada dunia indusri yang telah bukti keandalannya disini kita akan mengimplementasikan kontrolloer PID pada pengatur suhu ruangan menggunakan labview
ميزان حرارة للطهي بمسبار درجة الحرارة ESP32 NTP مع تصحيح Steinhart-Hart وإنذار درجة الحرارة: 7 خطوات (بالصور)
ميزان حرارة للطهي بمسبار درجة الحرارة ESP32 NTP مع تصحيح Steinhart-Hart وإنذار درجة الحرارة: لا يزال في رحلة لإكمال & quot؛ المشروع القادم & quot ؛، & quot؛ ESP32 NTP ميزان حرارة للطهي بمسبار درجة الحرارة مع تصحيح Steinhart-Hart وإنذار درجة الحرارة & quot؛ هو Instructable يوضح كيف يمكنني إضافة مسبار درجة حرارة NTP ، بيزو ب
متحكم شبكة مستشعر درجة الحرارة المتسامح مع الخطأ: 8 خطوات
وحدة تحكم شبكة مستشعر درجة الحرارة المتسامحة مع الخطأ: يوضح لك هذا Instructable كيفية تحويل لوحة Arduino Uno إلى وحدة تحكم ذات غرض واحد لمجموعة من مستشعرات درجة الحرارة DS18B20 القادرة على عزل المستشعرات المعيبة تلقائيًا. يمكن لوحدة التحكم إدارة ما يصل إلى 8 مستشعرات باستخدام Arduino أونو. (أ