تم افتتاح مركز رفع الملفات للأعضاء من جديد ..  و نعتذر عن عدم إمكانية دمج المركز السابق مع المركز الحالي لرفع الملفات ........ ( إدارة الملتقى )

العودة   ملتقى المهندسين العرب > الملتقى الهندسي > هندسة الطيران
التسجيل التعليمـــات قائمة الأعضاء التقويم مركز رفع الملفات اجعل كافة الأقسام مقروءة
للتأكد من صحة الحديث قبل نشره اضغط هنا  -   مشاكل التسجيل و تفعيل العضوية اضغط هنا
هندسة الطيران ................ بإشراف : جاسر, م/ مصطفي, م المصري

رد
 
LinkBack أدوات الموضوع تقييم الموضوع
  #1 (permalink)  
قديم 23-12-2007, 02:59 AM
الصورة الرمزية م المصري
مشرف قسم الطيران + E
 
تاريخ التسجيل: May 2006
المشاركات: 5,013
معدل تقييم المستوى: 0
م المصري يستحق التميز
Thumbs up تطوير نظام بدائي يقوم باستخلاص المعلومات المخزنة في الصندوق الأسود الخاص بالطائرات

بسم الله الرحمن الرحيم

سيتم باستخدام أدوات التطوير المتوفرة في برامج الـ 3D لتطوير نظام بدائي يقوم باستخلاص المعلومات المخزنة في الصندوق الأسود الخاص بالطائرات للقيام بمحاكاة ثلاثية الأبعاد لحركة الطائرة إضافة للظروف المحيطة بها.
سنعتمد لتنفيذ هذا المثال على بيئة التطوير المتوفرة في الـ XSI إضافة للـ VB Script كلغة برمجة بسيطة لأتمتة المهمات. بالطبع يمكننا بشكل مماثل تطبيق نفس المفاهيم في البرامج الأخرى مع مراعاة اختلاف لغات البرمجة المتوفرة فيها والتي قمنا باختيار الـ XSI من بينها بسبب اعتماده على لغات scripting نظامية ومتنوعة مثل الـ VB Script والـ Jscript. بينما لا يوفر أي من الـ Maya أو الـ 3Ds MAX لغات برمجة معروفة لأتمتة المهمات حيث يعتمد كل منهم على اللغة الخاصة به (MEL في حال الـ Maya أوالـ MAX Script في حال الـ 3Ds MAX).
الآن بالنسبة للمعلومات المخزنة في الصندوق الأسود سنفترض أنها مخزنة بشكل رقمي بأي صيغة ملفات معروفة. ولسهولة التعامل سنفترض أنها مخزنة ضمن جداول في ملف Excel.
لذلك وقبل البدء بتنفيذ المثال علينا الحصول على ملف Excel يحوي هذه المعلومات إما بافتراضها بشكل وهمي أو بتفجير طائرة واستخلاص الصندوق الأسود الخاص بها من أجل الحصول على معلومات واقعية... أمزح فقط.
المهم سنقوم باستخدام ملف Excel وهمي يحوي معلومات افتراضية عن حركة الطائرة كالتالي:
في العمود الأول سيكون لدينا الفواصل الزمنية المستخدمة في تسجيل معلومات الملاحة الجوية. في العمود الثاني الى الرابع سيتم تخزين إحداثيات الطائرة. بينما في العمود الخامس الى السابع يمكننا إضافة أي معلومات خاصة مثل معلومات عن محركات الطائرة.


الآن بعد أن أصبحت المعلومات الخاصة بالطائرة جاهزة يمكننا البدء ببناء النظام المطلوب في الـ XSI.
الفكرة العامة لهذا النظام بسيطة جداً... كل ما يجب فعله هو جعل الـ XSI يقرء جميع القيم المتوفرة في ملف الـ Excel وتطبيقها على نموذج الطائرة المجسم الوجود في البرنامج بالاعتماد على الفواصل الزمنية المفروضة ثم بعد ذلك يمكننا اضافة أية خوارزميات إضافية عن الظروف الجوية المحيطة بالطائرة بالاعتماد على تطبيق معادلات هيدروليكية ولكن بشكلها العكسي وذلك على افتراض أن حركة الطائرة تتم ضمن وسط هيدروليكي وهو الهواء.
سأبدأ فوراً بكتابة الـ code في Visual Studio مع التعليق على الكتل البرمجية المختلفة ولكن دون الخوض بالتفاصيل البرمجية وذلك بسبب بساطة كل من الفكرة واللغة بحد ذاتها.


بدايةً سنقوم بإنشاء مشهد جديد والحصول على النموذج المجسم للطائرة:
‘// start freshNewSceneSetDisplayMode "Camera", "shaded"‘// Create a light to illuminate the sceneGetPrimLight "Point.Preset", "Point"Translate , .8, 13, 18‘// Create a plane objectCreatePrim "Cube", "MeshSurface", "Airplane"
سنقوم هنا بربط ملف code إضافي "ExcelUpdate" وظيفته تحديث معلومات الطائرة ضمن الفواصل الزمنية المختلفة واستنتاج أي معلومات إضافية:
‘// set a script to run on each frame changeSetValue "PlayControl.OnFrameChangeCommand", "ExcelUpdate"
هنا يمكننا بناء نظام إظهار النتائج الخاص بالطائرة:
‘// create a textual overlayCreateMeshText "CurveListToPlanarMeshForText",siPersistentOperati on' set it to emptySetValue "text.text.text", "_RTF_{\rtf1\ansi\deff0{\fonttbl{\f0\fnil\fcharset 0 Arial;}}" & vbCrLf & "\viewkind4\uc1\pard\lang1033\fs20\par" & vbCrLf & "}" & vbCrLf & ""‘// set it to ignore lighting changesApplyShader "Material\Constant"‘// set the colorSetValue "polymsh.Material.Constant.color.green", 0SetValue "polymsh.Material.Constant.color.blue", 0SetValue "polymsh.Material.Constant.color.red", 1‘// position itScale , .1747,.1747,.1747, siAbsolute, siLocalCOG, siObj, siXYZTranslate , -2.0698, -1.5466, 12.5455, siAbsolute, siGlobalCOG, siObj, siXYZ‘// connect it to the camera so it acts like a titleSetUserPref "SI3D_CONSTRAINT_COMPENSATION_MODE", 1ApplyCns "Pose", "polymsh", "Camera", TrueSetUserPref "SI3D_CONSTRAINT_COMPENSATION_MODE", 0DeselectAll
الآن يمكننا البدء بفتح ملف الـ Excel ومعالجة محتوياته على الشكل التالي:
  • فتح نسخة (instance) من برنامج الـ Excel:
    ‘// Open Excel application instance…dim dataset data = createobject("excel.application")
  • فتح جدول معلومات الطائرة:
    ‘// Open the spreadsheetdata.workbooks.open("c:\blackboxdata.xl s")
  • البحث عن بداية الأعمدة التي تحوي المعلومات:
    Columns where we find informationDataStartRow = 6timeColumn = "a"xColumn = "b"yColumn = "c"zColumn = "d"rColumn = "e"gColumn = "f"bColumn = "g"
  • على عدد الكوادر (Frames) المطلوبة اعتماداً على الفواصل الزمنية في الملف:
    ‘// Got to the start of the animationFirstFrame‘// get the number of frames of animation in the spreadsheetExcelFrameCount = data.range("B2")
  • كل كادر في الـ XSI بمعلومات الصف المقابل له في الـ Excel:
    For i = 1 to ExcelFrameCount ' map the current frame number to a row in Excel FrameNumber = i + DataStartRow - 1 xpos = data.range(xColumn & FrameNumber) ypos = data.range(yColumn & FrameNumber) zpos = data.range(zColumn & FrameNumber) translate "Airplane", xpos, ypos, zpos, siAbsolute, siGlobal SaveKey "Airplane.kine.local.posx, Airplane.kine.local.posy, Airplane.kine.local.posz", i redChannel = data.range( rColumn & FrameNumber) greenChannel = data.range( gColumn & FrameNumber) blueChannel = data.range( bColumn & FrameNumber) SetKey "Airplane.Material.Constant.color.red", i, redChannel SetKey "Airplane.Material.Constant.color.green", i, greenChannel SetKey "Airplane.Material.Constant.color.blue", i, blueChannelnext' close exceldata.quit' update the viewportSetValue "PlayControl.Current", 2PrevFrame
بعد الانتهاء من قراءة المعلومات من ملف الـ Excel ومحاكاة مسار حركة الطائرة في الـ XSI يمكننا الآن من إضافة أي خوارزميات في ملف الـ "ExcelUpdate" لحساب واستنتاج أي معلومات إضافية عن الظروف المحيطة بالطائرة.
لذلك سأقوم الآن في الـ Visual Studio بانشاء ملف vbs جديد باسم "ExcelUpdate" ولكنني لن أقوم هنا باستنتاج وبرمجة أية خوارزميات معقدة لأن هذا سيحتاج إلى مساحة أوسع من مجرد وريقات لشرح الأفكار الهيدروليكية ومن ثم تطبيقها في البرنامج. لذلك سأكتفي باستنتاج وتخريج معلومات وهمية يمكنك استبدالها بما تريد.
Altitude = GetValue("Airplane.kine.local.posy", currentFrame)SetValue "text.text.text", "_RTF_{\rtf1\ansi\deff0{\fonttbl{\f0\fnil\fcharset 0 Arial;}}" & vbCrLf & "\viewkind4\uc1\pard\lang1033\fs20 Altitude " & Altitude & "\par" & vbCrLf & "}" & vbCrLf & ""
حسناً... يمكننا الآن اختبار هذا النظام الصغير في الـ XSI والاستمتاع بنتائج المحاكاة التي سنحصل عليها.


للحصول على المزيد من المتعة يمكنك إضافة Rigid Bodies Simulation أو (محاكاة الأجسام الصلدة) للطائرة بعد تحديد جميع الخصائص الفيزيائية للطائرة اعتماداً على المعلومات المستنتجة للحصول على نظام متكامل لمحاكاة حركة الطائرة لحظة تحطمها بشكل دقيق.
بالطبع لا تتوقع أن تحصل على نتائج واقعية وذلك بسبب عدم دقة المعلومات المفترضة في البداية إضافة الى وجود عدد كبير من العوامل الهامة التي أهملناها في حساباتنا لسهولة العرض والتي تؤثر بشكل كبير على نتائج المحاكاة.
ولكن ما يهمنا من الموضوع في النهاية هو آلية العمل للنظام ككل الذي يمتلك مرونة التحسين والإضافة بالشكل الذي نراه مناسباً.

الآن وبعد أن انتهينا من تجريب هذا المثال أتمنى أن تكون فكرة استثمار الأمكانيات المختلفة في برامج الـ 3D التي بين أيدينا قد أصبحت ملموسة بحيث تكون خيارنا الأول في المجالات العلمية إضافة بالطبع إلى المجالات الفنية أو الترفيهية المعهودة.
لاشك أن المثال المطروح خيالي بعض الشيء وكنت أتمنى أن أطرح أمثلة وأبحاث أخرى أكثر واقعية وإمكانية للتطبيق الفعلي ولكن أي منها يحتاج الى المزيد من الحيز الورقي الذي لا أعتقد أنه متوفر في حالتنا هنا.
أخيراً بعض المراجع العلمية الهامة للمهتمين بمثل هذه الأمور...
Advanced Animation & Rendering Techniques: Theory and Practice. By: Alan Watt & Mark WattApplied Mathematical Science: Level Set Methods & Dynamic Implicit Surfaces. By: Stanley Osher & Ronlad Fedkiw

لمراسلة كاتب المقال لمزيد من المعلومات هذا الرابط:http://www.instructurez.com/papers/research.htm
رد مع اقتباس
  #2 (permalink)  
قديم 24-12-2007, 04:49 AM
عضو
 
تاريخ التسجيل: Dec 2007
المشاركات: 37
معدل تقييم المستوى: 0
اكديد يستحق التميز
موضوع رائع...
جزاك الله خيرا...
رد مع اقتباس
  #3 (permalink)  
قديم 29-12-2007, 01:26 AM
الصورة الرمزية م المصري
مشرف قسم الطيران + E
 
تاريخ التسجيل: May 2006
المشاركات: 5,013
معدل تقييم المستوى: 0
م المصري يستحق التميز
مرور اروع ... أخي راكيد
رد مع اقتباس
رد

مواقع النشر (المفضلة)


أدوات الموضوع
تقييم هذا الموضوع
تقييم هذا الموضوع:

تعليمات المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة
Trackbacks are متاحة
Pingbacks are متاحة
Refbacks are متاحة


الساعة الآن 07:55 AM.


Powered by vBulletin® Version 3.7.1
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd

Content Relevant URLs by vBSEO 3.1.0