وحدة 10 / 11

أتمتة الحسابات الهندسية مع بايثون

المكاسب:

  • القدرة على أتمتة الحسابات الهندسية وإدارة الوحدات ومعالجة البيانات باستخدام كود Python المدعوم بالذكاء الاصطناعي
  • القدرة على التحقق من صحة كود الذكاء الاصطناعي من خلال فحص الوحدة واختبار النتائج المعروفة وحالات الحافة
  • القدرة على اكتساب عادة إنتاج مستندات حساب قابلة للتكرار ويمكن تتبعها والتحكم في إصدارها

في الهندسة الميكانيكية، يتم إجراء نفس الحساب مرارًا وتكرارًا: ضغوط مجموعة من الأجزاء، وقدرة المضخة لمجموعة من نقاط التشغيل، وجداول الخصائص عند درجات حرارة مختلفة. يعد القيام بذلك يدويًا بطيئًا وعرضة للخطأ. تقوم لغة بايثون (لغة برمجة سهلة التعلم تحتوي على مكتبات غنية بالهندسة) بأتمتة هذه التكرارات؛ فهو يجعل الحساب قابلاً للتكرار ويمكن تتبعه والتحكم في الإصدار. الذكاء الاصطناعي (AI) تتميز لغة Python بالسرعة المذهلة في إنشاء التعليمات البرمجية: تحويل الصيغة إلى دالة، وإضافة إدارة الوحدات، وقراءة البيانات، ورسم الرسوم البيانية. ولكن هناك مفهوم خاطئ خطير هنا: فمجرد أن الكود يعمل بدون أخطاء لا يعني أنه يتم حسابه بشكل صحيح. قد يُرجع كود الذكاء الاصطناعي نتائج غير صحيحة بصمت بسبب تحويل وحدة غير صحيح، أو صيغة غير صحيحة، أو في حالات الحافة، وسيستمر البرنامج في العمل دون أي أخطاء. ولهذا السبب يتم إنتاج كل كود هندسي باستخدام الذكاء الاصطناعي؛ لا يمكن الاعتماد على مدخلات الاختبار ذات النتائج المعروفة دون التحقق منها عن طريق فحص الوحدة (الحجم) وتجارب حالة الحافة. ستتعلم في هذه الوحدة كيفية إعداد أتمتة حساب Python بأمان باستخدام الذكاء الاصطناعي.

لماذا حساب الكود؟ التتبع والاستنساخ

الحساب اليدوي هو لمرة واحدة. عندما يتغير أحد المدخلات، يتم ذلك من البداية ويتم فقدان الخطوات المتوسطة. الحساب الذي يتم إجراؤه في التعليمات البرمجية يشبه المستند: تتم كتابة المدخلات والصيغ والمخرجات بوضوح؛ يمكنك تغيير المدخلات والحصول على نتيجة جديدة في غضون ثوان؛ باستخدام التحكم في الإصدار (مثل git)، يمكن تتبع "ما قمت بحسابه وبأي قيمة وفي أي تاريخ". وهذا أمر لا يقدر بثمن من حيث الرقابة والمساءلة. لكن هذه القوة تعتمد على صحة الكود؛ يؤدي الرمز الخاطئ إلى نتيجة خاطئة، وبشكل متكرر وبسرعة أيضًا.

نصيحة: اكتب اختبارًا لكل دالة حسابية مع وجود نتيجة صحيحة معروفة بجوارها (أكد في Python). على سبيل المثال، يجب أن تعطي دالة الإجهاد 28.1 ميجا باسكال في عينة معروفة. يحذرك هذا الاختبار على الفور في حالة كسر شيء ما عند تغيير الكود في المستقبل. الرمز الهندسي الذي لم يتم اختباره هو حساب لم يتم التحقق منه.

إدارة الحجم: المصدر الأكثر شيوعًا للخطأ

في الكود الهندسي، تأتي معظم الأخطاء من الوحدات: N مع kN، m مع mm، Pa مع MPa، والتي يمكن الخلط بينها بعامل 1000 أو 1,000,000. هناك نوعان من الدفاعات. الأول هو الانضباط: اختيار نظام الوحدة الواحدة من البداية (مثل N، mm، MPa) وتحويل جميع المدخلات إليه وإضافة الوحدات إلى أسماء المتغيرات (length_mm، force_N). والثاني هو الأداة: مكتبة مثل pint تحمل الوحدات الموجودة داخل الكود وتكتشف العملية غير المتسقة كخطأ.

النهج

كيف يعمل؟

ميزة

انضباط التسمية

مثل force_N، length_mm

بسيطة، لا التبعيات

نظام الوحدة الواحدة

تم تحويل جميعها إلى N-mm-MPa

البساطة والسرعة

مكتبة باينت

ينقل الوحدة حسب المتغير

يكتشف التناقض تلقائيًا

اختبار النتيجة المعروفة

مرجع مع تأكيد

يلتقط خطأ في الصيغة/الوحدة

تحذير: قد يكون تحويل الوحدة مفقودًا أو غير صحيح في الكود الذي تم إنشاؤه بواسطة الذكاء الاصطناعي وسيظل الكود "يعمل". على سبيل المثال، إذا كان القطر مم ومن المتوقع أن تكون المساحة م²، فسوف تنحرف النتيجة بمقدار 1,000,000 مرة، لكن البرنامج لن يعطي خطأ. قبل تشغيل التعليمات البرمجية، قم بالتعليق على وحدات المدخلات والمخرجات؛ ثم قدم النتيجة بمثال معروف.

خطوة بخطوة: رمز الحساب الذي يمكن التحقق منه بواسطة الذكاء الاصطناعي

  1. توضيح المشكلة ونظام الوحدة. المدخلات والمخرجات والوحدات.
  2. إنشاء الدالة. مسؤول واحد، تفسيري، متحد.
  3. إضافة اختبار النتائج المعروفة. التأكيد مع المثال المرجعي.
  4. جرب حالات الحافة. صفر، سلبي، مدخلات كبيرة/صغيرة جدًا.
  5. قم بفحص الوحدة. هل تتطابق وحدة الإخراج مع ما هو متوقع؟
  6. الوثيقة والنسخة. الافتراضات، المصدر، التاريخ؛ التتبع مع بوابة.

موجه الذي يولد الوظائف والاختبارات

الدور: مطور بايثون ذو خبرة في كتابة الحسابات الهندسية. المهمة: اكتب دالة تحسب أقصى إجهاد الانحناء في عارضة ناتئة ذات مقطع عرضي مستطيل. الإدخال: F (N)، L (مم)، ب (مم)، ح (مم). الإخراج: سيجما (MPa). الاتفاقية: نظام الوحدة N-mm-MPa؛ قم بالتعليق على وحدة كل إدخال. القاعدة: استخدم I = b*h^3/12 وsigma = M*c/I; التعليق على الخطوات. القاعدة: أضف اختبارًا بالنتيجة المعروفة: sigma ~28.1 MPa for F=500,L=300,b=20,h=40; تحقق مع التأكيد (التسامح الصغير).

مطالبة حالة الحافة

أضف عمليات فحص حالة الحافة إلى الوظيفة المذكورة أعلاه: - إذا كانت قيمة b أو h أو L صفرًا أو سالبة، فامنح خطأً كبيرًا (ارفع ValueError). - قم بالتعليق إذا كانت هناك مشكلة تجاوز السعة/الدقة مع المدخلات الكبيرة/الصغيرة جدًا. أضف أيضًا 3 مدخلات اختبار مختلفة واكتب النتيجة المتوقعة؛ شرح النتائج بطريقة يمكنني التحقق منها يدويًا.

موجه أمان الوحدة (باينت).

وحدة آمنة نفس الحساب مع مكتبة "باينت". دع المدخلات يتم تعريفها بالوحدات (على سبيل المثال 500 * ureg.newton). تحويل الإخراج إلى MPa وطباعته. أضف مثالًا صغيرًا يوضح كيفية فشل نصف لتر عند إعطاء مدخلات بوحدة خاطئة.

موجه التحقق من الكود

انتقد كود الحساب الهندسي الخاص بي أدناه من منظور مراجعة الكود، لا تتفق معي. على وجه الخصوص: هل تحويل الوحدة صحيح، هل الصيغة صحيحة، هل تم أخذ الحالات الحدية (صفر، سلبية) في الاعتبار، هل الاختبارات مؤكدة حقًا؟ لكل نتيجة، اكتب كيفية إصلاحها.[code]

موجه ضعيف / موجه قوي

حث ضعيف:

كتابة كود بايثون لحساب الإجهاد.

لا يوجد خيار للوحدات والصيغ وتعريفات المدخلات والاختبارات؛ يقوم الذكاء الاصطناعي بإنشاء كود يعمل ولكن لم يتم التحقق منه ووحدته غير معروفة.

مطالبة قوية:

اكتب دالة إجهاد الانحناء في العارضة الكابولية. الإدخال F(N)، L(mm)، b(mm)، h(mm)؛ سيجما الإخراج (MPa). نظام N-mm-MPa، حدد كل وحدة في التعليق. أضف اختبارًا ذو نتائج معروفة (F=500، L=300، b=20، h=40 → ~28.1 ميجا باسكال، تأكيد). إعطاء خطأ عند الإدخال صفر/سلبي. تفسير حالات الحافة.

يتطلب الموجه الثاني نظام الوحدة، والصيغة، والمدخلات، والاختبار، وحالات الحافة؛ يجعل الكود قابلاً للتحقق.

ثلاث حالات صغيرة (بالأرقام)

الحالة 1 - خطأ صامت في مستوى الصوت. حساب المساحة الذي ينتجه الذكاء الاصطناعي يأخذ القطر بالملليمتر ويعطي mm² بـ pi*d**2/4، لكن السطر التالي يضعه في صيغة تتوقع m²؛ يعمل الكود بدون أخطاء ويخفض الضغط بمقدار مليون مرة. عندما يقوم المهندس بإجراء الاختبار بنتيجة معروفة (assert abs(sigma-28.1)<0.5)، ينفجر الاختبار ويتم اكتشاف الخطأ. ولو لم يكن هناك اختبار، لكانت النتيجة الخاطئة قد دخلت التقرير دون أن يلاحظها أحد. الدرس: كود العمل ≠ الكود الصحيح.

الحالة 2 - تعطل حالة الحافة. في الكود الذي يتكرر لعائلة الأجزاء، يتم إدخال السُمك h=0 في سطر واحد؛ عندما = b*h**3/12 = 0، sigma = M*c/I يعطي خطأ القسمة على صفر. بفضل عنصر التحكم if h<=0: rise ValueError الذي أضافه الذكاء الاصطناعي، يتوقف الكود برسالة ذات معنى ولا ينتج inf بصمت. الدرس: التعامل مع حالات الحافة مسبقًا.

الحالة 3 - كسب التكرار. استغرق المهندس نصف يوم لحساب قوة المضخة يدويًا لـ 40 نقطة تشغيل مختلفة. يقرأ البرنامج النصي المكتوب بالذكاء الاصطناعي ملف CSV، ويحسب الطاقة لكل سطر، ويتحقق من نقطة معروفة من خلال التأكيد، مما يقلل العمل إلى دقيقتين تقريبًا ويكتب النتائج إلى ملف يمكن تتبعه. عندما يتغير أحد الإدخالات، يتم تحديث الجدول بأكمله كل ثانية. الدرس المستفاد: الأتمتة التي تم التحقق منها سريعة وموثوقة.

الأخطاء الشائعة

  • مغالطة "العمل = صحيح": الاعتقاد بأن الكود الذي يعمل بدون أخطاء هو الصحيح.
  • عدم كتابة الاختبارات: الاعتماد على الكود دون اختبار مرجعي ذو نتيجة معروفة.
  • غموض الوحدة: ترك وحدات الإدخال/الإخراج دون تفسير، وتخطي التحويل.
  • تجاهل حالات الحافة: خطأ صامت أو تعطل عند الإدخال الصفري/السلبي.
  • عدم توثيق المصدر/الافتراض: عدم تدوين المصدر وافتراض الصيغة المستخدمة.
  • عدم إصدار الإصدار: ترك الحساب كملف لمرة واحدة دون جعله قابلاً للتتبع (git).

باختصار

  • تجعل Python الحسابات الهندسية قابلة للتكرار وقابلة للتتبع والتحكم في الإصدار.
  • الذكاء الاصطناعي سريع جدًا في إنشاء التعليمات البرمجية؛ لكن حقيقة أن الكود يعمل بدون أخطاء لا يعني أنه يتم حسابه بشكل صحيح.
  • يجب التحقق من صحة كل رمز من خلال اختبار النتائج المعروفة، وفحص الوحدة، وحالات الحافة.
  • أخطاء الوحدة هي مصدر الخطأ الأكثر شيوعًا والأكثر خبثًا؛ الدفاع عن طريق نظام وحدة واحدة، والتسمية أو نصف لتر.
  • التشغيل الآلي المعتمد يوفر الوقت ويمنح الثقة؛ رمز لم يتم التحقق منه خطير.

مهمة التطبيق

اختر حسابًا هندسيًا متكررًا (مثل الإجهاد، وطاقة المضخة، والحمل الحراري). اكتب دالة بايثون إلى الذكاء الاصطناعي الذي يقوم بهذه العملية الحسابية؛ قم بالتعليق على وحدة كل مدخلات ومخرجات وأضف اختبار تأكيد بنتيجة معروفة. قم بإجراء الاختبار ومعرفة ما إذا كان سينجح. ثم قم بإجراء عمليتي تحقق إضافيتين: جرب حالة الحافة (إدخال صفر أو سلبي) للتأكد من أن الكود يُرجع خطأً كبيرًا، وقم بتوفير وحدة الإخراج يدويًا في مثال. إذا أمكن، احصل أيضًا على نسخة آمنة للوحدة يتم إنتاجها في نصف لتر. أخيرًا، أضف افتراضات الحساب ومصدر الصيغة والتاريخ إلى الكود كعنوان قصير واكتب لماذا لا يزال هذا الكود يتطلب موافقة المهندس.

قائمة مرجعية

  • [ ] وحدات الإدخال والإخراج موثقة بشكل واضح في الكود؛ تم اختيار نظام الوحدة الواحدة.
  • [ ] تمت إضافة اختبار (تأكيد) ذو نتيجة معروفة واجتيازه.
  • [ ] تمت محاولة حالة حافة واحدة على الأقل (صفر/سلبي)؛ أعطى الرمز خطأ كبيرا.
  • [ ] تم توفير وحدة الإخراج من خلال مثال يدوي (لا يفترض أن "العمل = صحيح").
  • [ ] مصدر الصيغة والافتراضات والتاريخ المذكور في الكود.
  • [ ] إبقاء الحساب قابلاً للتتبع/التتبع؛ وتركت الموافقة النهائية للمهندس.