<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Achievement | خالد حميدي</title><link>https://khaledhamidi.com/ar/tags/achievement/</link><atom:link href="https://khaledhamidi.com/ar/tags/achievement/index.xml" rel="self" type="application/rss+xml"/><description>Achievement</description><generator>Hugo Blox Builder (https://hugoblox.com)</generator><language>ar</language><lastBuildDate>Mon, 06 Jul 2026 10:00:00 +0300</lastBuildDate><image><url>https://khaledhamidi.com/media/sharing.jpg</url><title>Achievement</title><link>https://khaledhamidi.com/ar/tags/achievement/</link></image><item><title>تصميم أداة لضبط متحكمات PID في الزمن الحقيقي للأنظمة الميكاترونية والتحقق منها</title><link>https://khaledhamidi.com/ar/writing/pid-tuning-tool-paper/</link><pubDate>Mon, 06 Jul 2026 10:00:00 +0300</pubDate><guid>https://khaledhamidi.com/ar/writing/pid-tuning-tool-paper/</guid><description>&lt;div dir="ltr" style="text-align: left;">
&lt;div class="flex px-4 py-3 mb-6 rounded-md bg-primary-100 dark:bg-primary-900">
&lt;span class="pr-3 pt-1 text-primary-600 dark:text-primary-300">
&lt;svg height="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">&lt;path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="m11.25 11.25l.041-.02a.75.75 0 0 1 1.063.852l-.708 2.836a.75.75 0 0 0 1.063.853l.041-.021M21 12a9 9 0 1 1-18 0a9 9 0 0 1 18 0m-9-3.75h.008v.008H12z"/>&lt;/svg>
&lt;/span>
&lt;span class="dark:text-neutral-300">&lt;strong>Hamidi, K., &amp;amp; Abdulkerim, S. (2026).&lt;/strong> &lt;em>Design and Validation of an Online PID Tuning Tool for Mechatronic Systems: Application to a Dual-BLDC Balancing Platform.&lt;/em> &lt;strong>Turkish Journal of Engineering, 10&lt;/strong>(3), 748–757.&lt;/span>
&lt;/div>
&lt;/div>
&lt;p>يسعدني أن أشارككم نشر بحثي العلمي في &lt;strong>المجلة التركية للهندسة (Turkish Journal of Engineering – TUJE)&lt;/strong>، وقد أعددته مع المشرف &lt;strong>صهيب عبد الكريم (Sohayb Abdulkerim)&lt;/strong> في &lt;strong>قسم هندسة الطيران والفضاء بجامعة غازي عنتاب&lt;/strong>.&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>&lt;/th>
&lt;th>&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>&lt;strong>المجلة&lt;/strong>&lt;/td>
&lt;td>Turkish Journal of Engineering (e-ISSN 2587-1366)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>المجلد / العدد / الصفحات&lt;/strong>&lt;/td>
&lt;td>المجلد 10، العدد 3، الصفحات 748–757&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>المسار الزمني&lt;/strong>&lt;/td>
&lt;td>الاستلام 15.12.2025 · المراجعة 06.02.2026 · القبول 09.03.2026 · النشر تموز/يوليو 2026&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>النوع&lt;/strong>&lt;/td>
&lt;td>مقالة بحثية، وصول مفتوح (CC BY-SA 4.0)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>&lt;strong>الكلمات المفتاحية&lt;/strong>&lt;/td>
&lt;td>التحكم في الزمن الحقيقي · أداة ضبط PID · النمذجة السريعة للتحكم · تعريف الأنظمة&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;hr>
&lt;h2 id="البحث-في-فقرة-واحدة">البحث في فقرة واحدة&lt;/h2>
&lt;p>ما زالت متحكمات PID تدير &lt;strong>أكثر من 90% من حلقات التحكم الصناعية&lt;/strong>. لكن ضبطها على العتاد المدمج عالق في مسار عمل بطيء ومتسلسل: تعديل الكود، ثم إعادة الترجمة، ثم الرفع، ثم الاختبار، ثم من جديد. يقدّم هذا البحث &lt;strong>أداة سطح مكتب مستقلة ومفتوحة المصدر&lt;/strong> تضبط متحكم PID &lt;strong>أثناء عمله على المتحكم الدقيق&lt;/strong>، مع عرض حي واتصال ثنائي الاتجاه وتسجيل للبيانات. ثم يتحقق منها على مرحلتين: أولاً مقابل &lt;strong>نظام افتراضي في MATLAB&lt;/strong>، ثم على &lt;strong>منصة توازن غير مستقرة فيزيائياً بمحركي BLDC&lt;/strong>. وإلى جانب إثبات أن الأداة تعمل، &lt;strong>تقيس مرحلة العتاد كيف يحدّ معدل حلقة المتحكم الدقيق والتداخل الكهرومغناطيسي الناتج عن المحركات من استقرار الحلقة المغلقة&lt;/strong>.&lt;/p>
&lt;hr>
&lt;h2 id="الفجوة-البحثية">الفجوة البحثية&lt;/h2>
&lt;p>فكرة الضبط التفاعلي لـ PID ليست جديدة. ما ينقص هو نسخة منها تكون &lt;strong>متاحة، وجاهزة للعتاد، وفي الزمن الحقيقي فعلاً&lt;/strong> في آن واحد. والأدوات التي راجعتها تقع في ثلاث فئات:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>منظومات مغلقة.&lt;/strong> بيئات MATLAB/Simulink وLabVIEW تعمل جيداً لكنها مقيّدة بالتراخيص (مثل PIDTOOL، وواجهات التحكم بالسرعة المبنية على LabVIEW).&lt;/li>
&lt;li>&lt;strong>أدوات محصورة بالمحاكاة.&lt;/strong> كثير من الواجهات التعليمية لا تلمس العتاد الحقيقي أبداً، أو تعمل في ظروف محاكاة فقط.&lt;/li>
&lt;li>&lt;strong>حلول مرتبطة بمنصة محددة.&lt;/strong> مقيّدة بروبوت أو إعداد واحد، أو تحتاج إعدادات أنظمة تشغيل زمن حقيقي معقدة (مثل Scilab/Scicos مع Linux-RTAI).&lt;/li>
&lt;/ul>
&lt;p>وبما أن المتحكمات المتقدمة مثل MPC والتحكم التنبؤي المعمّم تحتاج غالباً حسابات تفوق قدرة المتحكمات الدقيقة منخفضة الكلفة، &lt;strong>يبقى PID الخيار العملي على المنصات المدمجة، بشرط أن يُضبط بكفاءة&lt;/strong>. والفجوة التي يعالجها هذا البحث هي غياب &lt;strong>إطار عمل مستقل عن المنصة، ومفتوح المصدر، لضبط PID في الزمن الحقيقي&lt;/strong> مع تبادل بيانات ثنائي الاتجاه وعرض حي.&lt;/p>
&lt;hr>
&lt;h2 id="المساهمات">المساهمات&lt;/h2>
&lt;ol>
&lt;li>&lt;strong>أداة سطح مكتب عامة الاستخدام&lt;/strong> لضبط PID على الأنظمة المبنية على المتحكمات الدقيقة، مستقلة عن MATLAB وLabVIEW.&lt;/li>
&lt;li>&lt;strong>معمارية متعددة الخيوط وغير متزامنة بنمط المنتج–المستهلك&lt;/strong> تحافظ على سلاسة العرض مع &lt;strong>صفر فقدان للحزم&lt;/strong> أثناء تبادل البيانات بمعدل عالٍ.&lt;/li>
&lt;li>&lt;strong>بروتوكول اتصال تسلسلي ثنائي الاتجاه&lt;/strong> لتحديث المعاملات وبث القياسات مباشرة.&lt;/li>
&lt;li>&lt;strong>منهجية تحقق على مرحلتين&lt;/strong>، البرنامج داخل الحلقة ثم نظام فيزيائي غير مستقر بطبيعته، &lt;strong>تقيس كمياً&lt;/strong> العلاقة بين معدل التحديث وزمن تأخر الاتصال والاستقرار.&lt;/li>
&lt;/ol>
&lt;div class="flex px-4 py-3 mb-6 rounded-md bg-primary-100 dark:bg-primary-900">
&lt;span class="pr-3 pt-1 text-primary-600 dark:text-primary-300">
&lt;svg height="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">&lt;path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="m11.25 11.25l.041-.02a.75.75 0 0 1 1.063.852l-.708 2.836a.75.75 0 0 0 1.063.853l.041-.021M21 12a9 9 0 1 1-18 0a9 9 0 0 1 18 0m-9-3.75h.008v.008H12z"/>&lt;/svg>
&lt;/span>
&lt;span class="dark:text-neutral-300">يُقصد بـ &lt;em>الزمن الحقيقي&lt;/em> في البحث &lt;strong>الزمن الحقيقي المرن (Soft Real-Time)&lt;/strong>، أي أن التوقيت مهم لأداء التحكم لكنه غير مضمون على مستوى العتاد. ويُقصد بـ &lt;em>Online&lt;/em> و&lt;em>التفاعلي&lt;/em> الضبط والعرض المستمرين &lt;strong>أثناء تشغيل النظام&lt;/strong>.&lt;/span>
&lt;/div>
&lt;hr>
&lt;h2 id="المنهجية-تحقق-على-مرحلتين">المنهجية: تحقق على مرحلتين&lt;/h2>
&lt;div class="mermaid">flowchart LR
T["PID Tuning Tool&lt;br/>(C# host)"]
subgraph S1["Stage 1: Software-in-the-Loop"]
M["MATLAB virtual plant&lt;br/>G(s) of the BLDC seesaw"]
end
subgraph S2["Stage 2: Hardware validation"]
A["Arduino Uno&lt;br/>PID @ 100 Hz design"] --> P["Dual-BLDC&lt;br/>balancing platform"]
P -- "MPU6050 angle" --> A
end
T &lt;-- "virtual serial bridge" --> M
T &lt;-- "USB serial 115200 bps" --> A
&lt;/div>
&lt;p>&lt;strong>المرحلة الأولى&lt;/strong> تعزل البرنامج. نموذج MATLAB للمنصة:&lt;/p>
$$
G(s) = \frac{0.5\, L\, C_T}{J s^2 + D s},
$$&lt;p>يبث البيانات إلى الأداة عبر جسر منافذ تسلسلية افتراضي. بهذا تُقاس إنتاجية الأداة نفسها وفقدان البيانات وأداء الرسم في ظروف قابلة للتكرار، دون أي تأثيرات من العتاد.&lt;/p>
&lt;p>&lt;strong>المرحلة الثانية&lt;/strong> تضع النظام الكامل على عتاد حقيقي: Arduino Uno يشغّل حلقة PID متقطعة مع تقدير للوضعية بمرشح تكاملي وتوزيع تفاضلي للدفع، على أرجوحة غير مستقرة يقودها محركا BLDC. التصميم العتادي الكامل والمعادلات في
، ومعمارية البرنامج في
.&lt;/p>
&lt;hr>
&lt;h2 id="النتائج-الرئيسية">النتائج الرئيسية&lt;/h2>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th>النتيجة&lt;/th>
&lt;th>القيمة&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td>زمن حلقة النظام الافتراضي (متوسط 25,000 دورة)&lt;/td>
&lt;td>&lt;strong>0.25 ms&lt;/strong>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>معدل معالجة البيانات في الأداة (SIL)&lt;/td>
&lt;td>&lt;strong>66 Hz&lt;/strong>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>معدل الرسم في الأداة (SIL)&lt;/td>
&lt;td>&lt;strong>54 Hz&lt;/strong>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>فقدان الحزم&lt;/td>
&lt;td>&lt;strong>0%&lt;/strong>&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>معدل حلقة التحكم الفعلي على Arduino Uno&lt;/td>
&lt;td>&lt;strong>≈ 33 Hz&lt;/strong> (مصممة لـ 100 Hz)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td>زيادة ضجيج IMU عند دفع التوازن (σ / من القمة إلى القمة)&lt;/td>
&lt;td>&lt;strong>37× / 48×&lt;/strong> مقارنة بالمحركات المتوقفة&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;p>&lt;strong>على جهة البرنامج&lt;/strong>، صمدت المعمارية: عولجت كل عينة، وواكب الرسم سرعة الاستقبال، فلم يتراكم أي تأخير في الجلسات الطويلة.&lt;/p>
&lt;p>&lt;strong>على جهة العتاد&lt;/strong>، نجح الضبط المباشر: طُبقت أوامر المعاملات ونقطة الهدف والنظام فوراً، وثُبّتت المنصة بالضبط اليدوي عبر الأداة. ثم كشفت القياسات المختومة زمنياً حدّين فيزيائيين:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>التوقيت.&lt;/strong> كان على ATmega328P تنفيذ القياس والتحكم والتشغيل والاتصال التسلسلي بالتتابع، فانخفض معدل الحلقة الفعلي إلى ≈ 33 Hz. هذا أقل من نحو 50 Hz المطلوبة عموماً للتوازن المتين في أنظمة البندول المقلوب، وتسبب في تذبذبات مستمرة صغيرة السعة. إيقاف بث القياسات (&amp;ldquo;وضع إيقاف العرض&amp;rdquo;) حسّن السلاسة لكنه لم يُزل التذبذب، فعنق الزجاجة الرئيسي هو المتحكم الدقيق لا البروتوكول.&lt;/li>
&lt;li>&lt;strong>التداخل الكهرومغناطيسي.&lt;/strong> ازداد ضجيج الحساس مع قدرة المحركات، من σ = 0.014° والمحركات متوقفة إلى σ = 0.534° عند دفع التوازن، وكانت حلقة PID تقرأ هذا الضجيج كحركة حقيقية وتستجيب له.&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="لماذا-يهم-هذا-العمل">لماذا يهم هذا العمل&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>للمهندسين:&lt;/strong> أداة مجانية تحوّل ضبط PID المدمج من دورة إعادة ترجمة إلى عملية حية ومرئية، وتجعل مشكلات التوقيت والضجيج &lt;em>مرئية&lt;/em>.&lt;/li>
&lt;li>&lt;strong>للمعلّمين:&lt;/strong> منصة منخفضة الكلفة وقابلة للتكرار لتدريس التحكم في الزمن الحقيقي على عتاد حقيقي، لا في المحاكاة فقط.&lt;/li>
&lt;li>&lt;strong>للباحثين:&lt;/strong> خط أساس مُقاس يُظهر أنه على العتاد منخفض الكلفة، &lt;strong>كثيراً ما يحدد معدل الحلقة وسلامة الإشارة سقف الأداء أكثر من قانون التحكم نفسه&lt;/strong>.&lt;/li>
&lt;/ul>
&lt;p>وتتجه الأعمال المستقبلية إلى نقل الإطار إلى متحكمات دقيقة أعلى أداءً، وتوسيع طبقة الاتصال المفصولة نحو بروتوكولات إنترنت الأشياء (MQTT/HTTP) للمراقبة عن بُعد.&lt;/p>
&lt;hr>
&lt;h2 id="الملخص-abstract">الملخص (Abstract)&lt;/h2>
&lt;div dir="ltr" style="text-align: left;">
&lt;blockquote>
&lt;p>This paper presents the design, implementation, and experimental validation of an online Proportional–Integral–Derivative (PID) tuning and visualization tool applied to a Dual Brushless DC (BLDC) motor balancing platform. The proposed system integrates an Arduino-based embedded controller with a C# desktop application to enable dynamic adjustment of control parameters and online visualization of system responses. A custom bidirectional serial communication protocol was developed to ensure data exchange, while a multithreaded asynchronous architecture maintained continuous operation, high responsiveness, and robust data integrity. The system was validated using both a MATLAB-based virtual plant and a physical dual-BLDC balancing platform. Experimental results demonstrated closed-loop operation, real-time gain adjustment, and stable visualization performance. Hardware testing further revealed that communication latency and electromagnetic interference from the BLDC motors influenced sensor accuracy and control smoothness, highlighting the significance of controller update rate and hardware shielding. The tool demonstrates a robust communication architecture, achieving a sustained data rate of 66 Hz with zero packet loss, enabling effective manual tuning that stabilized a dual-BLDC platform. Experimental results quantify the critical relationship between Arduino processing capability and achievable stability.&lt;/p>&lt;/blockquote>
&lt;/div>
&lt;hr>
&lt;h2 id="التحميل-والفهرسة">التحميل والفهرسة&lt;/h2>
&lt;div class="flex px-4 py-3 mb-6 rounded-md bg-primary-100 dark:bg-primary-900">
&lt;span class="pr-3 pt-1 text-primary-600 dark:text-primary-300">
&lt;svg height="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
&lt;path d="M12 2L2 7l10 5 10-5-10-5z"/>
&lt;path d="M2 17l10 5 10-5"/>
&lt;path d="M2 12l10 5 10-5"/>
&lt;/svg>
&lt;/span>
&lt;span class="dark:text-neutral-300">📥 &lt;strong>البحث الكامل متاح للتحميل حصراً من صفحة المجلة الرسمية على
.&lt;/strong>&lt;/span>
&lt;/div>
&lt;p>والبحث مفهرس ومدرج أيضاً على:&lt;/p>
&lt;ul>
&lt;li>
&lt;/li>
&lt;li>
&lt;/li>
&lt;li>
&lt;/li>
&lt;li>
&lt;/li>
&lt;li>
&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="طريقة-الاستشهاد">طريقة الاستشهاد&lt;/h2>
&lt;div dir="ltr" style="text-align: left;">
&lt;p>&lt;strong>APA&lt;/strong>&lt;/p>
&lt;blockquote>
&lt;p>Hamidi, K., &amp;amp; Abdulkerim, S. (2026). Design and Validation of an Online PID Tuning Tool for Mechatronic Systems: Application to a Dual-BLDC Balancing Platform. &lt;em>Turkish Journal of Engineering, 10&lt;/em>(3), 748–757.
&lt;/p>&lt;/blockquote>
&lt;p>&lt;strong>IEEE&lt;/strong>&lt;/p>
&lt;blockquote>
&lt;p>K. Hamidi and S. Abdulkerim, &amp;ldquo;Design and Validation of an Online PID Tuning Tool for Mechatronic Systems: Application to a Dual-BLDC Balancing Platform,&amp;rdquo; &lt;em>TUJE&lt;/em>, vol. 10, no. 3, pp. 748–757, Jul. 2026, doi: 10.31127/tuje.1842568.&lt;/p>&lt;/blockquote>
&lt;p>&lt;strong>BibTeX&lt;/strong>&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bibtex" data-lang="bibtex">&lt;span class="line">&lt;span class="cl">&lt;span class="nc">@article&lt;/span>&lt;span class="p">{&lt;/span>&lt;span class="nl">hamidi2026online&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="na">author&lt;/span> &lt;span class="p">=&lt;/span> &lt;span class="s">{Hamidi, Khaled and Abdulkerim, Sohayb}&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="na">title&lt;/span> &lt;span class="p">=&lt;/span> &lt;span class="s">{Design and Validation of an Online PID Tuning Tool for Mechatronic Systems:
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s"> Application to a Dual-BLDC Balancing Platform}&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="na">journal&lt;/span> &lt;span class="p">=&lt;/span> &lt;span class="s">{Turkish Journal of Engineering}&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="na">volume&lt;/span> &lt;span class="p">=&lt;/span> &lt;span class="s">{10}&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="na">number&lt;/span> &lt;span class="p">=&lt;/span> &lt;span class="s">{3}&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="na">pages&lt;/span> &lt;span class="p">=&lt;/span> &lt;span class="s">{748--757}&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="na">year&lt;/span> &lt;span class="p">=&lt;/span> &lt;span class="s">{2026}&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="na">doi&lt;/span> &lt;span class="p">=&lt;/span> &lt;span class="s">{10.31127/tuje.1842568}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">}&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;/div>
&lt;div class="flex px-4 py-3 mb-6 rounded-md bg-primary-100 dark:bg-primary-900">
&lt;span class="pr-3 pt-1 text-primary-600 dark:text-primary-300">
&lt;svg height="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
&lt;path d="M12 2L2 7l10 5 10-5-10-5z"/>
&lt;path d="M2 17l10 5 10-5"/>
&lt;path d="M2 12l10 5 10-5"/>
&lt;/svg>
&lt;/span>
&lt;span class="dark:text-neutral-300">&lt;p>&lt;strong>تعرّف على الجانب الهندسي وراء البحث&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>💻
&lt;/li>
&lt;li>🛠️
&lt;/li>
&lt;li>📦
&lt;/li>
&lt;/ul>&lt;/span>
&lt;/div></description></item></channel></rss>