مشاهدة النسخة كاملة : الدرس الرابع عمل أنظمة فرعية
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
مجهود رائع ياباشا
بس انا شايف الرجاله مش مهتمه مش عارف ليه
vBulletin v3.6.10, Copyright ©2000-2008
Translated by www.hostarab.com