المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : الدرس الرابع عمل أنظمة فرعية


ahmedeldeep
24-07-2006, 04:08 AM
عمل أنظمة فرعية
Creating Subsystems





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

http://ahmedeldeep.jeeran.com/simulink/simulink04/1.gif










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

http://ahmedeldeep.jeeran.com/simulink/simulink04/2.gif




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

http://ahmedeldeep.jeeran.com/simulink/simulink04/3.gif



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





http://ahmedeldeep.jeeran.com/simulink/simulink04/5.gif
ويكون شكل الموديل الاصلى كما يلى ::





http://ahmedeldeep.jeeran.com/simulink/simulink04/6.gif
ويمكن عمل أنظمة فرعية بطريقة أخرى حيث نقوم بتحديد البلوكات المطلوب وضعها فى النظام الفرعى و الضغط على
create subsystem
كما يلى ::
http://ahmedeldeep.jeeran.com/simulink/simulink04/7.gif







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



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

ahmedeldeep
24-07-2006, 04:09 AM
Model Navigation Commands


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

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

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

http://ahmedeldeep.jeeran.com/simulink/simulink04/8.gif



Open Block In New Window


وتكون عن طريق تحديد النظام الفرعى او كليك يمين واختيار افتح البلوك فى نافذه جديدة كما يلى ::
http://ahmedeldeep.jeeran.com/simulink/simulink04/9.gif




Go To Parent

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

http://ahmedeldeep.jeeran.com/simulink/simulink04/10.gif



Window Reuse



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

http://ahmedeldeep.jeeran.com/simulink/simulink04/11.gif

http://ahmedeldeep.jeeran.com/simulink/simulink04/12.gif


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


http://ahmedeldeep.jeeran.com/simulink/simulink04/13.gif


Controlling Access to Subsystems


يمكنك من منع المستخدمين فى الوصول الى محتويات النظام الفرعى والتعديل فيها ويكون هذا عن طريق الاتى
قم بتحديد النظام الفرعى و كليك يمين واختار subsystem's parameter كما يلى
http://ahmedeldeep.jeeran.com/simulink/simulink04/14.gif
وبعد الدخول ستفتح لنا النافذة الاتية ::
http://ahmedeldeep.jeeran.com/simulink/simulink04/15.gif

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

ahmedeldeep
24-07-2006, 04:10 AM
Creating Conditionally Executed Subsystems


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


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


اولا ::: Enabled Subsystems




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



واذا كانت كمية قياسية فان النظام الفرعى يتم تنفيذه فى حالة اذا كان الدخل اكبر من الصفر
واذا كانت كمية متجهة فان النظام الفرعى يتم تنفيذه فى حالة اذا كان اى عنصر من المتجه اكبر من الصفر
وفى الشكل التالى نجد اشارة تحكم عبارة عن sine wave ويكون تنفيذ النظام الفرعى او توقفه كما يوضح السهم
http://ahmedeldeep.jeeran.com/simulink/simulink04/16.gif



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



http://ahmedeldeep.jeeran.com/simulink/simulink04/17.gif



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



http://ahmedeldeep.jeeran.com/simulink/simulink04/18.gif



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



http://ahmedeldeep.jeeran.com/simulink/simulink04/19.gif




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




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



http://ahmedeldeep.jeeran.com/simulink/simulink04/20.gif



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



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




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

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



http://ahmedeldeep.jeeran.com/simulink/simulink04/21.gif



ومن قائمة States when enabling نختار
Held

اذا كنا نريد ان يكون الخرج مثل ما كان قبل البدء فى عملية التنفيذ
Reset

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



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



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

mohamed shouman
24-07-2006, 04:24 AM
مجود اكثر من رائع يا باشموهندس احمد

و الي الامام دائما

ENG:AMR
06-08-2006, 12:39 PM
مجهود رائع ياباشا

بس انا شايف الرجاله مش مهتمه مش عارف ليه