الدرس الرابع فى دورة برنامج السميولينك - عمل أنظمة فرعية - ج١

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



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







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





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




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


[font=Times New Roman]
[/font]
ويكون شكل الموديل الاصلى كما يلى ::






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

create subsystem



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


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

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

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


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




[font=Times New Roman][center]
Open Block In New Window

[/font]

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





Go To Parent

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




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











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




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



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


[size=4][color=royalblue][font=Times New Roman]

[/font][/color][/size]

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

ReadOnly
NoReadOrWrite
ReadWrite

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.

الدرس الرابع فى صورة pdf

part04.pdf (273.9% u)