دورات هندسية

 

 

دورة المحاكاة بإستخدام السميولينك Simulink

صفحة 2 من 4 الأولىالأولى 1 23 4 الأخيرةالأخيرة
النتائج 11 إلى 20 من 35
  1. [11]
    ahmedeldeep
    ahmedeldeep غير متواجد حالياً
    عضو متميز


    تاريخ التسجيل: Aug 2005
    المشاركات: 410
    Thumbs Up
    Received: 4
    Given: 0

    الدرس الرابع :: السبت 17/6/2006

    عمل أنظمة فرعية
    Creating Subsystems


    نقوم بعمل أنظمة فرعية لتقليل حجم الموديل وتبسيطه ويتم ذلك عن طريق عمل نظام فرعى وإضافة البلوكات المطلوبة إليه ومثلا قم بالدخول الى قائمة simulink ثم ports & subsystems ثم subsystem كما بالشكل التالى ::






    وبعد ذلك قم بالسحب بالماوس الى صفحة النموذج وسيكون شكله كما يلى ::



    وعند الضغط عليه بالماوس سيكون لدينا الشكل التالى ::


    وبعد ذلك قم بعمل النموذج المطلوب فى النظام الفرعى باستخدام بلوكات input للدخل من النموذج الاصلى و ايضا بلوكاتoutport للخرج للنظام الاصلى
    وسنقوم بوضع المثال السابق عمله داخل نظام فرعى فيكون لدينا كما بالشكل التالى ::


    ويكون شكل الموديل الاصلى كما يلى ::



    ويمكن عمل أنظمة فرعية بطريقة أخرى حيث نقوم بتحديد البلوكات المطلوب وضعها فى النظام الفرعى و الضغط على
    create subsystem
    كما يلى ::





    ويمكن أيضا عمل طبقات متعددة من النماذج الفرعية وتكون كما سبق حيث نقوم بعمل النموذج الفرعى داخل نموذج فرعى فى مستوى اعلى .

    ويمكن كتابة اسم للنظام الفرعى واخفاءه او اظهاره


    0 Not allowed!


    Eng Ahmed El Deep
    Mechatronics Engineer

  2. [12]
    ahmedeldeep
    ahmedeldeep غير متواجد حالياً
    عضو متميز


    تاريخ التسجيل: Aug 2005
    المشاركات: 410
    Thumbs Up
    Received: 4
    Given: 0

    تابع الدرس الرابع


    Model Navigation Commands


    يتيح لنا عمل الانظمة الفرعية من طبقات متعددة فى تسلسل هرمى ويمكننا استعراض هذه الطبقات باستخدام Simulink Model Browser والذى سنتعرض له لاحقا والان سنقوم بعمل الاتى ::

    افتح البلوك Open Block

    وذلك عن طريق تحديد البلوك ثم الدخول الى قائمة edit واختيار open block كما يلى ::




    Open Block In New Window

    وتكون عن طريق تحديد النظام الفرعى او كليك يمين واختيار افتح البلوك فى نافذه جديدة كما يلى ::




    Go To Parent
    يستخدم للعودة الى النظام الاصلى ويكون عن طريق الضغط كليك يمين فى اى مكان فى النظام الفرعى واختيار العودة الى النظام الاصلى كما يلى ::





    Window Reuse


    يمكنك من هذه الخاصية تحديد عرض النظام الفرعى فى نافذه جديدة او فى نفس النافذة الحالية وتكون عن طريق الاتى
    الدخول الى قائمة File ثم اختيار Preferences و اختيار واحده من قائمة Window reuse type كما يلى ::




    والجدول التالى يوضح خصائص كل اختيار من الاربعة ::





    Controlling Access to Subsystems

    يمكنك من منع المستخدمين فى الوصول الى محتويات النظام الفرعى والتعديل فيها ويكون هذا عن طريق الاتى
    قم بتحديد النظام الفرعى و كليك يمين واختار subsystem's parameter كما يلى

    وبعد الدخول ستفتح لنا النافذة الاتية ::

    ويمكننا اختيار التصريحات المناسبة من قائمة Read/Write permissions واختيار
    ReadOnly
    NoReadOrWrite
    ReadWrite

    0 Not allowed!


    Eng Ahmed El Deep
    Mechatronics Engineer

  3. [13]
    ahmedeldeep
    ahmedeldeep غير متواجد حالياً
    عضو متميز


    تاريخ التسجيل: Aug 2005
    المشاركات: 410
    Thumbs Up
    Received: 4
    Given: 0

    Creating Conditionally Executed Subsystems


    وهى الانظمة الفرعية المتوقف عملها على تنفيذ اشارة داخلة وتسمى control signal

    ويدعم السميولينك الانواع الاتية من الانطمة الفرعية المتوقف تنفيذها على اشارة دخل
    Enabled Subsystems
    Triggered Subsystems.
    Triggered and Enabled Subsystems
    A control flow subsystem

    اولا ::: Enabled Subsystems

    وهى الانظمة التى يتم تنفيذها كل فترة زمنية عندما تكون اشارة التحكم موجبة سواء كانت كمية قياسية scalar او كمية متجهة vector

    واذا كانت كمية قياسية فان النظام الفرعى يتم تنفيذه فى حالة اذا كان الدخل اكبر من الصفر
    واذا كانت كمية متجهة فان النظام الفرعى يتم تنفيذه فى حالة اذا كان اى عنصر من المتجه اكبر من الصفر
    وفى الشكل التالى نجد اشارة تحكم عبارة عن sine wave ويكون تنفيذ النظام الفرعى او توقفه كما يوضح السهم

    ولعمل انظمة بهذا الشكل نقوم باستخدام Enable block الموجود Ports & Subsystems الموجودة فى subsystem كما يلى :


    ونقوم بسحب البلوك الى النموذج ولكن يجب عليك وضع هذا البلوك او اى بلوكات من هذا النوع الى النظام الفرعى نفسه وليس النظام الاساسى وعند محاولة سحب البلوك الى النظام الاساسى نلاحظ ظهور الرسالة الاتية ::


    وعند وضع هذا البلوك فى اى مكان فارع مع عدم توصيله باى شى فى النظام الفرعى نلاحظ شكل البلوك الخاص بالنظام الاساسى كما يلى ::



    والان سنقوم بوضع خرج البلوك فى حالة عدم تنفيذه

    قم بالضغط مرتين بالماوس على البلوك الخرج وسيظهر لنا الشكل التالى :


    ونلاحظ من قائمة Output when disabled

    ان هناك خيارين
    Held
    وفى هذه الحالة يكون الخرج ثابت عند اخر قيمة قبل عملية ايقاف تنفيذه
    Reset
    وفى هذه الحالة يتحول خرج البلوك عند ايقاف تنفيذه الى قيمة ابتدائية يتم تحديدها فى Initial output اسفل هذه القائمة .

    ويمكننا ايضا من وضع قيمة اخرى جديدة عند اعادة تنفيذه

    والان
    قم بالضغط مرتين على Enable block سيظهر لنا الشكل التالى ::


    ومن قائمة States when enabling نختار
    Held
    اذا كنا نريد ان يكون الخرج مثل ما كان قبل البدء فى عملية التنفيذ
    Reset
    اذا كنا نريد استعادة قيمة الخرج الى قيمة ابتدائية نقوم بوضعها فى السطر اسفل هذه القائمة
    ويوجد ايضا خيارين وهما
    Outputting the Enable Control Signal.
    وهذا الخيار فائدته ان بقوم بخرج اشارة التحكم ويمكننا استقبالها على scope

    والخيار الثانى هو Zero-Crossing Detection

    ولمعرفة ما هو راجع الدرس الثانى
    ونكمل المرة القادمة مع النوع الثانى Triggered Subsystems.




    0 Not allowed!


    Eng Ahmed El Deep
    Mechatronics Engineer

  4. [14]
    سامي*
    سامي* غير متواجد حالياً
    جديد


    تاريخ التسجيل: Mar 2006
    المشاركات: 2
    Thumbs Up
    Received: 0
    Given: 0
    بارك الله فيك وجعله في ميزان حسناتك
    :) وإلى الأمام إن شاء الله

    0 Not allowed!



  5. [15]
    ahmedeldeep
    ahmedeldeep غير متواجد حالياً
    عضو متميز


    تاريخ التسجيل: Aug 2005
    المشاركات: 410
    Thumbs Up
    Received: 4
    Given: 0

    الدرس الخامس 24/6/2006 :: تكملة الانظمة الفرعية

    ثانيا : Triggered Subsystems


    وهى نوع من انواع الانظمة الفرعية والتى يتم تنفيذها عند حدوث ال Trigger وهذه الانظمة الفرعية يكون لها مدخل تحكم واحد ويسمى trigger input والذى يحدد هل يتم تنفيذ النظام ام لا ؟؟

    ويوجد ثلاثة انواع لهذا ال Trigger وهما
    Rising
    وهذه الحالة عندما ترتفع اشارة التحكم من قيمة سالبة او صفر الى قيمة موجبة واذا كانت القيمة الابتدائية سالبة فانه يتم تنفيذ النظام الفرعى عندما ترتفع الى الصفر
    Falling
    وهذا عكس الحالة السابقة اى عندما تنخفض اشارة التحكم من قيمتها الابتدائية الى قيمة اقل منها
    Either
    وهذه الحالة تجمع الحالتين السابقتين ويتم تنفيذ النظام الفرعى فى كلتا الحالتين سواء بالارتفاع او الانخفاض .

    ملحوظة :

    فى حالة الانظمة ذات الزمن المتقطع عندما تتغير الاشارة من الصفر سواء بالارتفاع او الانخفاض فانه يتم تنفيذ حدوث النظام الفرعى عندما تكون قيمة الاشارة صفر لاكثر من فترة زمنية واحدة وذلك لتلافى حدوث trigger بسبب عملية التقطيع .

    وفى الشكل الاتى نرى تنفيذ لل trigger اما بالارتفاع R او بالانخفاض F ونلاحظ انه فى الفترة الزمنية 3 لم يحدث trigger لان الاشارة كانت قيمتها صفر لفترة زمنية واحده ولذلك يجب ان تزيد عن واحد


    وبتطبيق هذا على المثال الموجد لدينا
    قم بالدخول الى قائمة السميولينك ثم الى ports & subsystems وقم بسحب بلوك
    trigger
    الى النظام الفرعى وسيكون كما يلى :



    وسيكون شكل النظام الاصلى كما يلى



    ولاختيار نوع ال trigger قم بالضغط على البلوك
    وستظهر لنا نافذه الاختيارات يمكننا منها اختيار نوعه كما فى الرسم التالى :



    ونلاحظ بعد الاختيار بتغيير شكل البلوك بعد كل اختيار كما يلى :

    فى حالة الارتفاع



    وفى حالة الانخفاض



    اما فى كلتا الحالتين



    وفى حالة استدعاه بأمر


    0 Not allowed!


    Eng Ahmed El Deep
    Mechatronics Engineer

  6. [16]
    ahmedeldeep
    ahmedeldeep غير متواجد حالياً
    عضو متميز


    تاريخ التسجيل: Aug 2005
    المشاركات: 410
    Thumbs Up
    Received: 4
    Given: 0
    ويجب ملاحظة ان triggered subsystems
    تختلف عن الانظمة enabled subsystems
    حيث انها تقوم بحجز اخر قيمة للخرج ولا يمكننا استعادة الخرج عند قيمة ابتدائية ماعدا الانواع التى يكون استدعائها بأمر وهى البلوكات
    Function-Call Subsystems
    ويكون شرط تنفيذ هذه البلوكات مرتبط بأمر منطقى فى ال S-function الخاصة بالبلوك وسوف نتعرض لها لاحقا .

    ملحوظة ::
    جميع البلوكات فى الانظمة الفرعية التى تستخدم الTrigger يجب ان يكون زمن تقطيعها متوارث (-1) او مالانهاية وهذا معناه ان البلوكات الموجودة فى النظام الفرعى يتم تشغيلها عند تشغيل النظام الفرعى اى يجب ان لا يحتوى النظام الفرعى على بلوكات ذات زمن متصل مثل بلوك التكامل.


    ونقوم الان بعمل هذا المثال البسيط كما يلى ::



    والنظام الفرعى



    وستكون نتيجة تنفيذ هذا المثال كما يلى :



    ومن الشكل السابق نجد الاشارة التى باللون الاصفر ترمز على اشارة التحكم trigger والاشارة التى باللون السماوى هى اشارة الدخل واللون البنفسجى يرمز الى اشارة الخرج ونلاحظ ايضا حدوث تنفيذ البلوك اى حدوث خرج فى حالة ارتفاع اشارة التحكم فقط ثم يتم امساك للقيمة حتى الارتفاع الثانى


    تابع

    0 Not allowed!


    Eng Ahmed El Deep
    Mechatronics Engineer

  7. [17]
    ahmedeldeep
    ahmedeldeep غير متواجد حالياً
    عضو متميز


    تاريخ التسجيل: Aug 2005
    المشاركات: 410
    Thumbs Up
    Received: 4
    Given: 0

    ثالثا :: Triggered and Enabled Subsystems

    وهذا النوع الثالث من انواع الانظمة الفرعية وهو يجمع النوعان السابقان حيث يقوم فى البداية بانتظار حدوث ال trigger ثم يقوم بالتعامل معه اذا كانت اشارة التحكم المستخدمة مع الجزء enabled موجودة ويمكن توضيح هذه الخطوات فى الشكل الاتى ::



    والان سنقوم بعمل مثال بسيط على هذا النوع
    قم بتكوين المثال كما بالرسم الاتى ::



    ويكون النظام الفرعى كما فى الرسم الاتى



    ونتيجة تنفيذ المثال الاتى موجودة فى الشكل التالى ::



    ومن الشكل السابق نجد ان الاشارة التى باللون السماوى هى اشارة الدخل وهى عبارة عن sine wave اما الاشارة التى باللون الاصفر فهى ال trigger وهى عبارة عن step input وتبدا عند الزمن واحد ثانية لتصبح قيمتها تساوى واحد وتستمر حتى أخر زمن المحاكاه وهذه الاشارة تستخدم فى محاكاة الانظمة الديناميكية والتى تعبر عن تغير مفاجى فى قيم النظام .

    اما الاشارة التى باللون الاحمر فهى عبارة عن pulse مدتها 10 ثوانى وتكون قيمتها تساوى واحد فى 50% من الفترة الزمنية duty cycle وهنا نستخدمها للتعبير عن اشارة التحكم enable

    وعند الزمن يساوى واحد يبدا مخطط تنفيذ النظام عند حدوث ال trigger بالارتفاع وفى هذه النقطة تكون اشارة التحكم موجودة فيحدث تنفيذ للنظام الفرعى وتكون قيمة الخرج مساوية لقيمة ال sine عند الزمن يساوى واحد وبعد ذلك لا نجد ارتفاع اخر لاشارة التحكم trigger ولذلك ستستمر قيمة الخرج ممسكة عند هذه القيمة .


    تابع


    0 Not allowed!


    Eng Ahmed El Deep
    Mechatronics Engineer

  8. [18]
    ahmedeldeep
    ahmedeldeep غير متواجد حالياً
    عضو متميز


    تاريخ التسجيل: Aug 2005
    المشاركات: 410
    Thumbs Up
    Received: 4
    Given: 0

    Creating Alternately Executing Subsystems

    يمكننا استخدام الانظمة الفرعية المتوقف تنفيذها على اشارة تحكم مع بلوك merge الذى يستخدم لدمج اشارتين معا لعمل انظمة فرعية يتم تنفيذها بالتبادل ويتم اعتمادها على حالة الموديل

    والان سنقوم بتطبيق المثال الاتى وهو موديل لعمل full-wave rectifier والتى تستخدم فى تحويل التيار المتردد الى تيار مستمر :



    ويتكون من نظامان فرعيان كما يلى

    النظام الفرعى الاول



    النظام الفرعى الثانى



    وتكون نتيجة التنفيذ كما يلى ::



    تابع

    0 Not allowed!


    Eng Ahmed El Deep
    Mechatronics Engineer

  9. [19]
    ahmedeldeep
    ahmedeldeep غير متواجد حالياً
    عضو متميز


    تاريخ التسجيل: Aug 2005
    المشاركات: 410
    Thumbs Up
    Received: 4
    Given: 0


    Conditional Execution Behavior

    يقوم السميولينك بتجنب البلوكات الغير ضرورية اثناء عملية تنفيذ المحاكاة ومن امثلة هذه البلوكات Switch او Multiport Switch وهما يستخدمان فى تحويل الاشارات وايضا من البلوكات التى من الممكن تكون غير ضرورية الانظمة الفرعية المرتبطة بشرط لتنفيذها وهذا يسمى

    conditional execution (CE) behavior.

    وفى المثال الاتى سوف نقوم بمعرفة هذه الخاصية :



    والنظام الفرعى كما فى الصورة الاتية :



    وقبل عمل ال simulation قم بالدخول الى قائمة format ثم اختيار
    Block displays
    ثم sorted order كما فى الصورة الاتية ::



    وبعد عمل ال simulation نلاحظ وجود ارقام فوق كل بلوك وهذه الارقام تكون على الصورة الاتية :

    X:Y

    حيث يعبر عن X على انها الطبقة layer الموجود فيها البلوك فكل البلوكات الموجودة فى الطبقة الاساسية يكون لها ال X=0

    اما Y فترمز الى ترتيب تنفيذ البلوك ففى الشكل الاتى نجد :



    بلوكات ال
    Pulse generator
    و constant و subsystem و gain و scope تحتوى على رقم X يساوى الى صفر اى انها تنتمى الى الطبقة الاساسية فى الموديل ويكون ترتيب تنفيذها وهو الرقم Y كما يلى
    1- Pulse generator
    2- constant
    3- subsystem
    4- gain
    5- scope
    ونلاحظ هنا ان بلوك subsystem عليه الاتى 0:2{1} وهذا معناه انه يحتوى على الطبقة الاولى وهى تاتى بعد الطبقة الاساسية
    وبالدخول الى النظام الفرعى نجد الاتى ::



    ونجد بلوك الادخال يحتوى على الرقم الاتى 1:0 وهذا معناه انه موجود فى الطبقة الاولى و سيكون تنفيذه فى البداية وبلوك الاخراج لا يحتوى على اى ارقام لانه لم يتم تنفيذه لعدم وجود ما يتم اخراجه

    والان قم بالضغط كليك يمين على بلوك subsystem واختيار
    Subsystem parameters


    وعندما تفتح لك نافذه الاختيار قم بوضع علامة صح حول
    Propagate execution context across subsystem boundary



    وهذا فائدته ان يقوم بجعل تنفيذ البلوكات الموجودة حول النظام الفرعى مرتبط بتنفيذ النظام الفرعى وهذا يعمل على زيادة سرعة المحاكاة مثلا لدينا بلوك gain لن نحتاجه الا عندما يتم تنفيذ النظام الفرعى وعند ايقاف النظام الفرعى غير مهم تنفيذ هذا البلوك



    تابع

    0 Not allowed!


    Eng Ahmed El Deep
    Mechatronics Engineer

  10. [20]
    ahmedeldeep
    ahmedeldeep غير متواجد حالياً
    عضو متميز


    تاريخ التسجيل: Aug 2005
    المشاركات: 410
    Thumbs Up
    Received: 4
    Given: 0
    والان قم بعمل المحاكاة مرة اخرى والان سنلاحظ الارقام على البلوكات :



    والان اصبح البلوك constant والبلوك gain ينفذان مع النظام الفرعى فقط على الرغم انهم خارج النظام الفرعى وموجودين فى النظام الاساسى ويكون ترتيب التنفيذ كالاتى
    1- constant
    2- subsystem
    3- gain
    وهذا ما يعرف بى Conditional Execution Behavior او
    CE behavior


    Propagating Execution Contexts
    عموما برنامج السميولينك يقوم بتعريف ما يسمى بى execution context وهذا عبارة عن مجموعة من البلوكات التى تنفذ مرة واحدة خلال زمن معالجة النموذج .

    ويقوم ايضا بعمل execution context للنظام الاساسى وايضا لكل نظام فرعى .

    واى execution context هو مجموعة البلوكات التى يحتويها النظام
    وعند تنفيذ المحاكاة فان السميولينك يقوم بالبحث عن الشروط الاتية فى كل بلوك:
    1-
    هل خرج البلوك مطلوب فقط لتنفيذ نظام فرعى او دخله يتغير فقط نتيجة تنفيذ نظام فرعى
    2-
    هل هذا البلوك مرتبط فى تنفيذه مع نظام فرعى وهذه الحالة عندما يكون هذا البلوك على حدود النظام الفرعى
    3-
    هل خرج البلوك ليس نقطة أختبار testpoint وسوف نعرف ما هى نقط الاختبار لاحقا
    4-
    هل مسموح للبلوك ان يتوارث execution context
    5-
    هل البلوك ليس من النوع multirate block
    6-
    هل زمن التقطيع sample time متوارث او ثابت

    واذا فعلا وجد ان هذه الشروط محققة ومسموح ان يتم توليد execution context

    فان السميولينك يقوم بنقل البلوك الى execution context الخاص بالنظام الفرعى وهذا للتاكد ان هذا البلوك يتم تنفيذه فقط عندما يتم تنفيذ النظام الفرعى

    وللتعامل مع بلوك Switch

    يقوم السميولينك بمعالجة كل فرع من دخل البلوك بصورة مخفية ويكون لكل فرع
    execution context
    الخاص به والذى يتم تفعيله عندما يتم اختيار تنفيذ الفرع وعموما فان كل فرع من هذا البلوك يتم تنفيذه فقط عندما يتم اختياره كدخل .


    ملحوظة :: لالغاء خاصية conditional execution behavior

    قم بالدخول ال Configuration Parameters ثم Optimization وضع علامة صح عند Conditional input branch execution


    ملحوظة ::هناك بعض الحالات لا يستطيع البرنامج استخدام خاصية
    Propagate execution context across subsystem boundary
    وهى عندما يكون النظام الفرعى من النوع triggered subsystem او النظام الفرعى له اكثر من مدخل او مخرج ولها شرط ابتدائى غير الصفر وفى هذه الحالة البلوك الموجود فى خرج النظام الفرعى لا يمكنه ان يتوارث
    subsystem's execution context

    ويكمننا اظهار مستطيلات حول المداخل التى لا يستخدم خاصية
    Propagate
    execution context

    وهذا عن طريق الضغط اختيار قائمة format ثم Block Displays ثم
    Execution Context Indicator
    ويكون شكلها كما يلى

    انتهى الدرس ..


    0 Not allowed!


    Eng Ahmed El Deep
    Mechatronics Engineer

  
صفحة 2 من 4 الأولىالأولى 1 23 4 الأخيرةالأخيرة
الكلمات الدلالية لهذا الموضوع

عرض سحابة الكلمة الدلالية

RSS RSS 2.0 XML MAP HTML