تم النشر 2026-03-18
هل تواجه هذا الموقف كثيرًا عند اللعب به؟مضاعفاتs: تريد توجيه المحور بثبات نحو الهدف، لكنه يستمر في الاهتزاز؛ أم تريدها أن تدور بزاوية محددة لكنها تفشل دائمًا في الدوران في مكانها؟ هذا هو في الواقع عنصر تحكم PID نموذجي لم يتم ضبطه بشكل صحيح. يعتقد العديد من الأصدقاء الجدد في STM32 أن PID معقد للغاية. في الواقع، إنها مجموعة من الأساليب الرياضية التي تساعدنا في حل "كيفية صنع".مضاعفاتمطيعا". سنتحدث اليوم عن كيفية استخدام STM32 لكتابة برنامج PID يمكنه إنشاءمضاعفاتاتبع التعليمات بدقة، مع التأكد من قدرتك على فهمها واستخدامها.
ببساطة، يعتبر PID بمثابة "مصحح" فائق الذكاء. تخيل أنك تمسك جسمًا متحركًا بيديك. ترى عيناك موضع الكائن (قيمة التغذية الراجعة). سوف يحسب دماغك مكان الجسم ومدى سرعة حركته، ثم يوجه اليد لضبط (الإخراج). هذا ما يفعله PID. فهو يحسب الفرق بين موضع الهدف والوضع الفعلي الحالي في الوقت الفعلي، ثم يخبرك بمقدار القوة التي يجب استخدامها لتصحيح الفرق. P هي النسبة التي تحدد شدة التصحيح؛ I متكامل، مما يساعدك على التخلص من الأخطاء المتراكمة على المدى الطويل؛ D هو التفاضلي، والذي يمكن أن يستشعر الاتجاهات المتغيرة مقدمًا ويمنع التجاوز.
هذه هي المشكلة الأكثر إزعاجا. في معظم الحالات، يكون ذلك بسبب ضبط قيمة P بدرجة عالية جدًا. يشبه التحكم النسبي عندما تقود سيارة وترى سيارة أمامك، حيث تحدد قيمة P مدى قوة الضغط على دواسة الوقود. إذا كانت P كبيرة جدًا، فسوف تضغط بشدة على دواسة الوقود بمجرد أن ترى أن المسافة بعيدة قليلاً، وسوف تتجاوز السرعة. ثم تضغط على الفرامل. إذا تحركت ذهابًا وإيابًا بهذه الطريقة، ستتأرجح السيارة ذهابًا وإيابًا. وينطبق الشيء نفسه على المؤازرة. إذا كانت P كبيرة جدًا، فسوف تتسبب في تأرجحها ذهابًا وإيابًا عند الموضع المستهدف. في هذا الوقت، تحتاج إلى تقليل P بشكل مناسب، أو إدخال التحكم التفاضلي D. يمكن أن يلعب D دورًا "التخميد"، وقمع هذا التذبذب، وجعل جهاز التوجيه مستقرًا.
انها ليست صعبة. الكود الأساسي هو في الواقع بضعة أسطر فقط. تحتاج أولاً إلى تحديد ثلاث معلمات (Kp، Ki، Kd) والعديد من المتغيرات (القيمة المستهدفة، القيمة الحالية، الخطأ الأخير، المصطلح المتكامل). في الحلقة الرئيسية، تتم قراءة الموضع الحالي للمؤازرة بشكل مستمر (عادةً ما يتم تغذية قيمة ADC بواسطة مقياس الجهد)، ثم يتم حساب الخطأ. المصطلح النسبي P = خطأكيلو بايت. الحد التكاملي I = الحد التكاملي التراكمي + الخطأكي، والتي يمكن أن تساعدك على تعويض الانحرافات الصغيرة الناتجة عن الاحتكاك وأسباب أخرى ببطء. الحد التفاضلي D = (الخطأ الحالي - الخطأ الأخير) * Kd. أخيرًا، قيمة PWM الناتجة = P + I + D. قم بتعيين قيمة PWM المحسوبة للمؤقت لدفع المؤازرة للدوران. هذا يكمل التحكم الأساسي في الحلقة المغلقة.
للتحكم في جهاز التوجيه، نستخدم عادة PID الموضعي. يحسب PID الموضعي الموضع المطلق (دورة عمل PWM) الذي تريد منحه في النهاية إلى المؤازرة. إنها بديهية وسهلة الفهم. إنه يخبرك حرفيًا "الآن يجب أن تذهب إلى هذه الزاوية". يحسب PID التزايدي "التغيير" في الإخراج الحالي بالنسبة إلى الإخراج السابق. إنها مناسبة لسيناريوهات مثل المحركات السائر التي تتطلب تحكمًا دقيقًا في عدد الخطوات التي يتم اتخاذها في كل مرة. ما نهتم به عند التحكم في المؤازرة هو أين يتوقف، وليس كيف تسير الأمور، لذا فإن PID الموضعي يكون أكثر انسجامًا مع الاحتياجات، ويكون تنفيذ التعليمات البرمجية أبسط، وليس عرضة لمشاكل التشبع المتكامل.
لقد عملت بجد طوال فترة ما بعد الظهر وحصلت أخيرًا على استقرار المؤازرة. لا يمكنك إعادة ضبطه في كل مرة تنقطع فيها الطاقة، أليس كذلك؟ يتطلب ذلك استخدام محاكاة الفلاش الداخلية الخاصة بـ STM32، أو توصيل شريحة خارجية. في البرنامج، يمكنك تحديد المعلمات الثلاثة المعدلة Kp وKi وKd كهياكل. عند اكتمال تصحيح الأخطاء، يتم تشغيل وظيفة الحفظ بالضغط على زر ويتم كتابة بيانات هذه البنية إلى عنوان Flash المحدد. في المرة التالية التي يبدأ فيها تشغيل النظام، اقرأ البيانات من هذا العنوان في رمز التهيئة وقم بتعيينها للمعلمات الثلاثة لمعرف المنتج (PID). بهذه الطريقة، يتم حفظ المعلمات عند إيقاف تشغيل الطاقة، ويتم الاحتفاظ بنتائج تصحيح الأخطاء الخاصة بك إلى الأبد.
وهذا يتطلب استخدام خدعة "الفصل المتكامل". مع PID التقليدي، عندما يبدأ المؤازرة في الدوران ويكون خطأ الموضع كبيرًا، فإن المصطلح المتكامل I سوف يتراكم قيمة كبيرة بشدة. عندما تكون المؤازرة على وشك الاقتراب من الهدف، فإن هذه القيمة المتكاملة الضخمة ستنتج "تجاوزًا" خطيرًا، مما يتسبب في تجاوز المؤازرة. الحل هو تحديد عتبة. على سبيل المثال، عندما يكون الخطأ أكبر من 50 درجة، نقوم بمسح حد التكامل I ونمنعه من العمل. فقط عندما يكون الخطأ أقل من 50 درجة وتكون المؤازرة في مكانها تقريبًا، دع الحد المتكامل I يتدخل لإزالة آخر اختلاف ثابت صغير. وهذا يضمن سرعة بدء التشغيل والدقة عند وجوده في مكانه.
حسنًا، فيما يتعلق ببرنامج PID للتحكم في STM32 بالمؤازرة، فمن المحتمل أن تكون الأفكار والخطوات الأساسية هي هذه. عند إجراء الضبط فعليًا، يعد ضبط المعلمة عملية تتطلب الصبر وقد تستغرق وقتًا أطول من كتابة الكود نفسه. لا أعرف ما إذا كنت تفضل استخدام PID الموضعي عند العمل في مشروع ما، أم أنك جربت خوارزميات تحكم أخرى أكثر ذكاءً؟ مرحبًا بك لمشاركة تجربتك في منطقة التعليق. إذا كنت تعتقد أن هذه المقالة مفيدة لك، فلا تنس الإعجاب بها وحفظها وإرسالها إلى المزيد من الأصدقاء الذين يلعبون الماكينات!
وقت التحديث: 18-03-2026