تحسين أداء التوأم الرقمي للرافعة العلوية: من 12fps إلى 58fps
حلول التحسين الفوري للعرض في الحافة لتوأم الرافعة العلوية الرقمي يقدم تحسينًا عميقًا للأداء على الحواسيب الصناعية منخفضة المواصفات (i5-8500، رسومات مدمجة، ذاكرة 4GB). من خلال أربع تقنيات: تقليل عدد المضلعات (من 500,000 إلى 50,000)، التحميل المتدرج حسب مستوى التفاصيل (LOD)، ضغط الأنسجة (من 200MB إلى 45MB)، وإخفاء الأجزاء غير المرئية (Occlusion Culling)، تم رفع معدل الإطارات من 12 إطارًا في الثانية إلى 58 إطارًا في الثانية بشكل ملحوظ، مما يلبي متطلبات المراقبة السلسة للرافعة العلوية عند 30 إطارًا في الثانية دون الحاجة لترقية العتاد.
هندسة التوأم الرقمي، نموذج بيانات AAS، معايرة المحاكاة، وفي هذا المقال سنتناول المشكلة الأكثر عملية — كيفية جعل التوأم الرقمي يعمل بسلاسة على الحاسوب الصناعي.
مشهد التوأم الرقمي ثلاثي الأبعاد للرافعة العلوية لا يعمل على محطات عمل عالية الأداء، بل على حاسوب صناعي في الورشة (i5-8500، رسومات مدمجة، ذاكرة مشتركة 4GB). هذا التكوين، لتقديم نموذج الرافعة العلوية ذي 200,000 مثلث مع بيئة المبنى بسلاسة، يحتاج إلى تحسينات جوهرية. قبل التحسين كان معدل الإطارات 12 إطارًا في الثانية، وبعده أصبح 58 إطارًا في الثانية — وهذا الفارق البالغ 46 إطارًا هو ما سنقوم به في هذا المقال.

تقليل المضلعات: من 500,000 إلى 50,000 مثلث
عادةً ما يأتي نموذج الرافعة العلوية ثلاثي الأبعاد في التوأم الرقمي من نماذج CAD المُصدَّرة من ملفات BOM التصميمية أو STEP، والتي غالبًا ما تحتوي على 500,000 إلى 1,000,000 مثلث. هذه الدقة مقبولة في محاكاة البنى، لكنها تمثل تحديًا كبيرًا عند عرضها في متصفح الويب. لذا، فإن تقليل عدد المضلعات هو الخطوة الأولى والأكثر أهمية.
| منطقة النموذج | عدد الأسطح الأصلي | بعد تقليل الأسطح | نسبة تقليل الأسطح | الطريقة |
|---|---|---|---|---|
| العارضة الرئيسية(صندوقي) | 15عشرة آلاف | 1.5عشرة آلاف | 90% | مستويالكشفدمج |
| العربة الطرفية/هيكل العربة | 10عشرة آلاف | 1عشرة آلاف | 90% | مستويالكشفدمج |
| محرك/مخفض السرعة | 8عشرة آلاف | 1.2عشرة آلاف | 85% | تناظر مع الحفاظ على المظهر |
| حبل سلكي/خطاف | 5عشرة آلاف | 0.5عشرة آلاف | 90% | line render |
| خزانة كهربائية/ممر/سياج حماية | 12عشرة آلاف | 0.8عشرة آلاف | 93% | نمذجة بديلة بالنسيج |
| الرافعة كاملةرافعة علويةالإجمالي | 50عشرة آلاف | 5عشرة آلاف | 90% | — |
١.١ استراتيجية تقليل المضلعات
المبدأ الأساسي لتقليل المضلعات هو "الأولوية للأسطح المستوية" — حيث تُدمج المساحات المسطحة الكبيرة في النموذج (جدار العارضة الرئيسية، لوح الغطاء، جوانب العربة الطرفية) باستخدام كشف المستويات، مع الحفاظ على حواف المحيط؛ أما الأسطح المنحنية ومناطق خط اللحام فتُخفَّض نسبة تقليلها لتجنب التشوه. سير العمل الموصى به: ابدأ باستخدام Planar decimation لخفض أسطح المناطق المستوية إلى أدنى عدد ممكن من المضلعات، ثم استخدم Collapse decimation لتحسين المناطق المتبقية، مع استهداف إجمالي أقل من 50,000 مضلع.
١.٢ الأدوات الموصى بها
- Blender Decimate Modifier: مجاني، يدعم كلاً من Planar decimation وCollapse decimation، مع تحكم دقيق في نسبة التقليل
- Simplygon: أداة تقليل مضلعات صناعية آلية، تدعم التوليد التلقائي لسلسلة LOD، سعرها مرتفع لكن نتائجها ممتازة
- MeshLab: مفتوح المصدر، مناسب للمعالجة الدفعية
١.٣ حدود تقليل المضلعات
ليس كلما قلّ عدد المضلعات كان أفضل. فالإفراط في التقليل يؤدي إلى تشوه محيط النموذج بشكل ملحوظ. القاعدة العملية: يجب ألا يكون الفرق البصري بين النموذج المُخفَّض والنموذج الأصلي في حالة السكون ملحوظاً بالعين المجردة. عند التنفيذ، قم بمطابقة النموذجين معاً وافتح وضع الشفافية للمقارنة، فإذا كان انحراف المحيط أقل من 1 بكسل يُعتبر النموذج مقبولاً.
تحميل متدرج بمستويات التفاصيل LOD
LOD (مستوى التفاصيل) هو الأسلوب الأكثر نضجاً لتحسين الأداء في العرض ثلاثي الأبعاد — حيث تُعرض التفاصيل عند الاقتراب والمحيط عند الابتعاد. في سيناريو التوأم الرقمي، لا يركز المشغل عادةً على تفاصيل خط اللحام لرافعة علوية واحدة، بل يقضي معظم الوقت في مراقبة حالة تشغيل الرافعات المتعددة من منظور بانورامي.
٢.١ تصميم مستويات LOD
تُقسم مستويات LOD حسب مسافة الرؤية إلى 4 مستويات: LOD0 (دقيق، 0~50م)، LOD1 (متوسط، 50~200م)، LOD2 (تقريبي، 200~500م)، LOD3 (بعيد، 500م+). عدد المضلعات ودقة النسيج لكل مستوى كالتالي:
| LODالمستوى الهرمي | نطاق مسافة الرؤية | عدد الأسطح الأصلي | النسيجالدقة | طريقة العرض |
|---|---|---|---|---|
| LOD0(دقيق) | 0~50m | 5عشرة آلاف | 1024×1024 | كاملPBR |
| LOD1(متوسط) | 50~150m | 2عشرة آلاف | 512×512 | مادة مبسطة |
| LOD2(المحيط) | 150~300m | 0.5عشرة آلاف | 256×256 | كتلة لونية بدون إضاءة |
| LOD3(أيقونة) | >300m | مكعب+علامة | — | CSS2DRenderer |
٢.٢ استراتيجية التبديل
إذا تم التبديل بين مستويات التفاصيل (LOD) بشكل مفاجئ (أي تغيير النموذج عند بلوغ العتبة)، فسيظهر تأثير "قفزة" بصرياً. يُنصح باستخدام مكوّن LOD من three.js مع انتقال تلاشي (fade)، أو ضبط عتبة التبديل كفاصل زمني متحرك (مثلاً عمل مزج تدريجي للشفافية عند المسافة ٤٨-٥٢ متراً). بالإضافة إلى ذلك، لا حاجة لفحص تبديل LOD في كل إطار؛ يكفي الفحص كل ٢٠٠ مللي ثانية لتوفير استهلاك المعالج.
ثالثاً: ضغط الأنسجة
تُعد الأنسجة المصدر الرئيسي لاستهلاك ذاكرة الرسوميات. إذا تم استخدام مواد PBR كاملة (baseColor + roughness + metallic + normal + AO) بدقة 2048×2048 بدون ضغط، فإن رافعة علوية واحدة ستستهلك 200 ميغابايت من ذاكرة الرسوميات. وعند عرض 5 رافعات علوية في نفس الوقت، سيتم استنفاد الذاكرة مباشرة.
الحلول المقترحة:
- ASTC 6×6: تنسيق ضغط أنسجة طورته ARM، بنسبة ضغط تبلغ حوالي 4:1، مع فقدان جودة مقبول. مدعوم جيداً في WebGL2.
- KTX2 + Basis Universal: ضغط أنسجة عبر المنصات، يتم فك ضغطه مباشرة بواسطة وحدة معالجة الرسوميات دون تدخل من المعالج الرئيسي. يتوفر له محمّل جاهز في Three.js.
- تقليل دقة الأنسجة: دقة 1024×1024 كافية لـ baseColor، و512×512 لكل من roughness/metallic، و1024×1024 لـ normal، و256×256 لـ AO.
بعد التحسين، ينخفض استهلاك ذاكرة الأنسجة للرافعة الواحدة من 200 ميغابايت إلى 45 ميغابايت.
رابعاً: إزالة الأسطح المخفية (Occlusion Culling)
في مشهد التوأم الرقمي، يكون نصف الأجسام على الأقل غير مرئي من زاوية الرؤية الحالية — الجدران الخلفية، الأعمدة على الجانب الآخر، أو العربة المحجوبة بالعارضة الرئيسية. إرسال جميع الأجسام إلى وحدة معالجة الرسوميات لرسمها هو إهدار واضح للموارد.
لا تتضمن Three.js خاصية Occlusion Culling مدمجة، لذا يجب تنفيذها يدوياً أو باستخدام مكتبة خارجية:
- البوابات (Portals): تقسيم مبنى المصنع إلى عدة غرف/مناطق، حيث يتم رسم الأجسام داخل منطقة فقط عندما تكون تلك المنطقة مرئية. هذا مناسب للمشاهد ذات الهيكل الثابت للمبنى.
- استعلامات الإخفاء عبر العتاد (Hardware Occlusion Queries): استخدام EXT_disjoint_timer_query أو Occlusion Query من WebGL2 للتحقق من رؤية الأجسام. يوفر دقة عالية لكنه يضيف تأخيراً بمقدار إطار واحد، وهو مناسب للأجسام الثابتة الكبيرة.
- اقتطاع المخروط (Frustum Culling): مفعل افتراضياً في Three.js، حيث يتم رسم الأجسام داخل مخروط الرؤية فقط. هذا أساسي لكنه غير كافٍ — فالأجسام داخل المخروط قد تكون محجوبة بأجسام أخرى.
في التطبيقات العملية، يُنصح باستخدام استراتيجية البوابات (Portals). يتم تقسيم مبنى المصنع إلى عدة مناطق على طول البحر، وتنتمي كل رافعة علوية إلى منطقتها الحالية والمناطق المجاورة لها فقط. عندما يكون المشغل في المنطقة A، لا يتم رسم الروافع في المنطقتين B وC إطلاقاً، ويتم فقط تحديث نصوص حالة البيانات الخاصة بها.
خامساً: تحسين نقل البيانات
الرسم ليس مسؤولية الواجهة الأمامية فقط — فكيفية نقل البيانات من الخادم إلى الواجهة، وكميتها، وسرعتها، تؤثر مباشرة على تجربة المستخدم.
٥.١ التحديث التزايدي
يتم تحديث بيانات حالة الرافعة العلوية كل 100 مللي ثانية، لكن 95% من نقاط البيانات تبقى كما هي مقارنة بالإطار السابق (مثل الحمولة المقدرة، البحر، وغيرها من المعلمات التقنية التي لا تتغير أبداً). إرسال جميع البيانات في كل مرة هو إهدار لعرض النطاق ووقت معالجة المعالج.
الحل: يقوم الخادم بإرسال الخصائص المتغيرة فقط. في كل إرسال، يتم استخدام خريطة بتات (bitmap) لتحديد الخصائص التي تغيرت، وتقوم الواجهة الأمامية بتحديث حالة الكائنات ثلاثية الأبعاد المقابلة فقط. النتيجة العملية: انخفاض استهلاك النطاق من 50 كيلوبايت/ثانية لكل رافعة إلى 8 كيلوبايت/ثانية.
٥.٢ ضغط البيانات
- JSON + gzip: نسبة ضغط تبلغ حوالي 6:1.
- JSON + Brotli (مدعوم أصلياً في Chrome/Firefox): نسبة ضغط تبلغ حوالي 8:1، وفك الضغط أبطأ قليلاً من gzip لكنه مقبول.
- Protocol Buffers (موصى به): ترميز ثنائي، حجمه يعادل 1/5 من JSON، وسرعة تحليله أسرع بـ 10 مرات من JSON. تتوفر مكتبة protobuf.js جاهزة، وتكامله مع Three.js سلس.
٥.٣ WebSocket مقابل SSE
- WebSocket: اتصال مزدوج الاتجاه، بأقل زمن استجابة، ومناسب لتدفقات البيانات اللحظية.
- SSE (Server-Sent Events): دفع أحادي الاتجاه، مدعوم أصلياً في المتصفح، مع آلية إعادة اتصال مدمجة.
- يُنصح باستخدام WebSocket مع إعادة اتصال تلقائية (فاصل زمني للحفاظ على النشاط 15 ثانية)، مع التبديل إلى SSE كخطة احتياطية إذا كان اتصال الموقع غير مستقر.
سادساً: تحسين خيط المعالجة للرسم
جوهر تحسين خيط معالجة الرسم هو فصل معالجة البيانات عن الخيط الرئيسي:
| عنصر التحسين | قبل التحسين | بعد التحسين | الوصف |
|---|---|---|---|
| معالجة البيانات | الخيط الرئيسي | WebWorker | وضع تحليل البيانات فيWorker |
| حلقة الحركة | rAF | rAF(ثابت) | تقليلDOMعملية |
| تجمع الكائنات | متكررnew Object3D | إعادة استخدام التجمع | تقليلGCتوقف |
| CSS2Dعلامة | تحديث الكل كل إطار | علامة التعديل+دفعة | التحديث فقط عند تغير البيانات |
| دمج الهندسة | مستقلGeometry | دمجBufferGeometry | draw call 20020 |
سابعًا: توصيات تكوين الأجهزة
| إعدادالدرجة | CPU | الذاكرة | GPU | التزامنرافعة علوية | معدل الإطارات المستهدف |
|---|---|---|---|---|---|
| مبتدئ(حاسوب صناعي) | i5-8500 | 8GB | UHD 630معالج رسوميات مدمج | 5الرافعة كاملة | 30fps |
| المعيار(حاسوب صناعي) | i7-10700 | 16GB | GTX 1650 | 15الرافعة كاملة | 60fps |
| أداء عالي(خادم) | Xeon+T4 | 32GB | NVIDIA T4(16GB) | 50الرافعة كاملة | 60fps |
ما هو التكوين الموصى به للحاسوب الصناعي لتوأم رقمي؟
تتراوح معظم تكوينات الحواسيب الصناعية القياسية في المصانع بين المستوى "الأساسي" والمستوى "القياسي". بعد تنفيذ خطة التحسين المذكورة أعلاه بالكامل، ارتفع متوسط معدل الإطارات لتشغيل 5 رافعات علوية باستخدام الرسومات المدمجة لمعالج i5-8500 من 12 إطارًا في الثانية إلى 58 إطارًا في الثانية. إذا كان الموقع يحتوي على رافعة أو رافعتين فقط، فإن التكوين الأساسي كافٍ تمامًا.
الخلاصة: ثلاث ركائز لتحسين العرض الطرفي
تحسين العرض على الحافة ليس أمرًا معقدًا؛ فهو يقوم على ثلاثة أمور أساسية: تقليل نقل البيانات، وتقليل رسم النماذج، والاستفادة القصوى من وحدة معالجة الرسومات. بخفض عرض النطاق الترددي لكل رافعة علوية من 50 كيلوبايت/ثانية إلى 8 كيلوبايت/ثانية، وعدد الأسطح من 500,000 إلى 50,000، واستهلاك الذاكرة من 1.8 جيجابايت إلى 480 ميجابايت، يمكن تشغيل التوأم الرقمي بسلاسة بمعدل 60 إطارًا في الثانية على الحاسوب الصناعي.
تنتهي سلسلة التوأم الرقمي هنا مؤقتًا. غطت المقالات الأربع الجوانب الأساسية الأربعة لتطبيق التوأم الرقمي للرافعات العلوية: تصميم البنية، ونمذجة البيانات، ومعايرة المحاكاة، وتحسين العرض. إذا توفرت خبرات تقنية جديدة لاحقًا، فسنواصل التحديث.
الأسئلة الشائعة
س: هل يمكن تشغيل التوأم الرقمي بحاسوب صناعي بإمكانيات محدودة؟
ج: نعم، يمكن ذلك. يعمل حل تحسين العرض الطرفي لدينا بسلاسة على حاسوب صناعي بمعالج i5-8500 ورسومات مدمجة وذاكرة مشتركة 4 جيجابايت. يعتمد الحل على أربع تقنيات رئيسية: تقليل أسطح النموذج (من 500,000 إلى 50,000 سطح)، والتحميل المتدرج حسب مستوى التفاصيل LOD (تبديل الرؤية على 4 مستويات)، وضغط الأنسجة (ASTC/KTX2، من 200 ميجابايت إلى 45 ميجابايت)، وإخفاء الأجزاء غير المرئية (رسم الجزء المرئي فقط). أظهرت الاختبارات تحسنًا من 12 إطارًا في الثانية قبل التحسين إلى 58 إطارًا في الثانية بعده، وهو ما يتجاوز متطلب مراقبة الرافعات البالغ 30 إطارًا في الثانية.
س: هل يؤثر تقليل الأسطح من 500,000 إلى 50,000 على جودة العرض؟
ج: المبدأ الأساسي هو "الأولوية للأسطح المستوية" — حيث يتم دمج المساحات المسطحة الكبيرة (مثل لوح الويب للعارضة الرئيسية وألواح الغطاء) باستخدام كشف المستوى، مع الحفاظ على الحواف البارزة، وتقليل نسبة تقليل الأسطح في الأسطح المنحنية ومناطق خطوط اللحام. عمليًا، يتم وضع النموذج الأصلي والنموذج المخفف فوق بعضهما مع شفافية للمقارنة، ويعتبر الانحراف في المحيط أقل من 1 بكسل مقبولاً. النتيجة النهائية لا يمكن تمييزها بالعين المجردة عند العرض بملء الشاشة في المتصفح.
س: لماذا نحتاج إلى تحسين العرض الطرفي لتوأم الرافعة الرقمي؟
ج: لا يعمل المشهد ثلاثي الأبعاد للتوأم الرقمي للرافعة على محطات عمل عالية الأداء، بل على حاسوب صناعي في ورشة العمل — بمعالج i5-8500 ورسومات مدمجة وذاكرة مشتركة 4 جيجابايت. نموذج غير محسّن بـ 500,000 سطح مع مشهد مبنى المصنع يحقق 12 إطارًا في الثانية فقط على هذا التكوين، مما يجعله بطيئًا جدًا للتفاعل. من خلال التحسينات الأربعة — تقليل الأسطح، والتحميل المتدرج LOD، وضغط الأنسجة، وإخفاء الأجزاء غير المرئية — يمكن رفع معدل الإطارات إلى 58 إطارًا في الثانية دون التضحية بجودة العرض.