الدرس الثامن ج2

وفى الجدول التالى نجد توقيت حدوث كل أمر من اوامر ال Callbacks pane

ويمكن ايضا عمل Callbacks خاصة ببلوك معين وايضا عمل Callbacks خاصة بى port معين فى هذا البلوك
.. إقرأ المزيد…

مشاركة الروابط These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google
  • Furl
  • Live
  • De.lirio.us
  • MyShare
  • e-mail
  • blogmarks
  • BlogMemes
  • Book.mark.hu
  • YahooMyWeb

الدرس الثامن ج1

الدرس الثامن
Using Callback Functions

يمكنك تعريف أوامر ماتلاب يتم تنفيذها عند تفعيل نموذج معين وتسمى هذه الاوامر بى callback functions

Tracing Callbacks

وهذه الخاصية تمكننا من معرفة الاوامر المستدعاه (Tracing Callbacks ) التى يستحضرها السميولينك وما هى كيفية تنفيذ هذه الاوامر وتوقيتها ولتفعيل هذه الخاصية ادخل على Simulink Preferences ثم اختار Callback tracing كما يلى :
.. إقرأ المزيد…

مشاركة الروابط These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google
  • Furl
  • Live
  • De.lirio.us
  • MyShare
  • e-mail
  • blogmarks
  • BlogMemes
  • Book.mark.hu
  • YahooMyWeb

الدرس السابع ج3

Modeling While and For Loops

اولا :

Modeling While Loops

فى هذه الانظمة يوجد لدينا بلوكين وهما

While subsystem

والذى سيستمر تنفيذه الى ان يحقيق الشرط الموجود فى بلوك While Iterator

ويجب ملاحظة ان زمن المحاكاة لا يتقدم خلال تنفيذ بلوك While subsystem

وذلك لان كل فترة يتم تنفيذها تعبر عن وحده زمن .

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

والان سنقوم بتنفيذ مثال بسيط

وقبل البدء فى المثال يجب علينا معرفة ان While subsystems مثل ال
Triggered subsystems لا يمكننا وضع بلوك بها ذات زمن تقطيع

sample مستمر وانما يكون متوارث (-1 ) او ثابت (inf)

والان سنضع خطوات البرنامج المطلوب تنفيذها
.. إقرأ المزيد…

مشاركة الروابط These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google
  • Furl
  • Live
  • De.lirio.us
  • MyShare
  • e-mail
  • blogmarks
  • BlogMemes
  • Book.mark.hu
  • YahooMyWeb

الدرس السابع ج2

Modeling Switch Control Flow

وكما سبق فى حالة if سنقوم الان بعمل نموذج بسيط لتوضيح switch

1- قم بعمل نموذج جديد وقم بسحب بلوك switch case من ports &

subsystems ثم قم بالضغط على البلوك لتعديل خياراته

ففى case condition نحدد عدد الحالات فمثلا نختار 2 ويمكننا تحديد اكثر من

حالة واحده معنا فمثلا لو قمنا بكتابة الاتى :

كود

{1,[2,3]}

سيقوم فى الحالة الاولى بوضح قيمة true فى البورت 1

وفى الحالة الثانية سيقوم بوضع قيمة true فى البورت 2 و 3

ويكون ايضا هناك حالة تسمى default وتكون true فى حالة عدم تنفيذ اى من

الحالات السابقة .
.. إقرأ المزيد…

مشاركة الروابط These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google
  • Furl
  • Live
  • De.lirio.us
  • MyShare
  • e-mail
  • blogmarks
  • BlogMemes
  • Book.mark.hu
  • YahooMyWeb

الدرس السابع ج1

Modeling Control Flow Logic

يتيح لنا السميولينك باستخدام بلوكات البرمجة مثل المستخدمة فى لغة السى وهى

for

if-else

switch

While

اولا

Modeling If-Else Control Flow

والان سنقوم بعمل نموذج بسيط لتوضيح كيفية محاكاة if

قم بعمل نموذج جديد وضع فيه بلوك if من مكتبة ports & subsystems

قم بوضع دخل للبلوك وليكن دالة جيب باقصى ارتفاع 10

ثم قم بالضغط على بلوك if وقم بتعديل if expression وليكن u1>0

ثم قم بادراج بلوك action subsystem

وقم بتوصيل خرج البلوك على بلوك action subsystem

وقم بتوصيل دخل بلوك action subsystem بدالة ال sine

كما بالشكل الاتى ::
.. إقرأ المزيد…

مشاركة الروابط These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google
  • Furl
  • Live
  • De.lirio.us
  • MyShare
  • e-mail
  • blogmarks
  • BlogMemes
  • Book.mark.hu
  • YahooMyWeb

الدرس السادس ج5

Function-Call Models

هناك بعض البلوكات من الممكن ان يقوم بالتحكم فى عمل النظام المرجعى مثل
Function-Call Generator
ويسمى البلوك الذى يقوم بهذه العملية فى حالة النظام المرجعى هوfunction-call model.
وسنقوم الان بعمل مثال على هذا النوع
قم بوضع بلوك trigger فى النظام المرجعى ثم قم بوضع ال trigger من النوع function call وفى هذا الحالة نلاحظ ظهور سهم على بلوك Model
والان قم بوضع بلوك function call controller الموجود فى
ports & subsystem
ثم قم بتوصيله ببلوك model
والان قم بالدخول الى قائمة simulation واختار configure parameters
وفى خانه ال solver اختار fixed step واختار من قائمة
Periodic sample time constraint
اختار Ensure sample time independent
ويجب ملاحظة ان اشارة الدالة يجب ان تكون scalar
وسيكون النموذج على الشكل الاتى :
.. إقرأ المزيد…

مشاركة الروابط These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google
  • Furl
  • Live
  • De.lirio.us
  • MyShare
  • e-mail
  • blogmarks
  • BlogMemes
  • Book.mark.hu
  • YahooMyWeb

الدرس السادس ج4

Model Block Sample Times

يكون زمن التقطيع لهذا البلوك هو زمن التقطيع للنموذج الذى يرجع له ويتم تحديد ذلك فى ال simulation target ويتم تحديد ايضا اذا كان هذا النموذج يحتاج لان يتوارث زمن التقطيع ام لا من النموذج الاساسى ويكون ذلك فى الحالات الاتية
1- لا يوجد به بلوكات لها زمن تقطيع (متوارثة او ثوابت )
2- لا يوجد به اى حالات مستمرة
3- لا يوجد به بلوكات تحتوى تستخدم الزمن المطلق
4- يستخدم fixed-step solver ولكن ليس fixed step size
5- البلوكات التى يكون لدينا زمن تقطيع واحد بعد عملية توليد زمن التقطيع
sample time propagation وهذا الزمن لا يشمل الثوابت او triggered sample time

.. إقرأ المزيد…

مشاركة الروابط These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google
  • Furl
  • Live
  • De.lirio.us
  • MyShare
  • e-mail
  • blogmarks
  • BlogMemes
  • Book.mark.hu
  • YahooMyWeb

الدرس السادس ج3

اولا لتعريف Model Arguments
قم بقتح النموذج المرجع ثم قم بالدخول الى متصفح النموذج عن طريق اختيار قائمة view ثم اختيار model explorer
وسيظهر لنا الشكل الاتى ::

قم باختيار model workspace كما فى الشكل الاتى ::

.. إقرأ المزيد…

مشاركة الروابط These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google
  • Furl
  • Live
  • De.lirio.us
  • MyShare
  • e-mail
  • blogmarks
  • BlogMemes
  • Book.mark.hu
  • YahooMyWeb

الدرس السادس ج2

وعندما نقوم بوضع بلوك model فى نموذج فارغ يكون شكله كما يلى

والان سنقوم بعمل نموذج اخر جديد اسمه ref1وليكن كما فى الشكل الاتى :

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

.. إقرأ المزيد…

مشاركة الروابط These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google
  • Furl
  • Live
  • De.lirio.us
  • MyShare
  • e-mail
  • blogmarks
  • BlogMemes
  • Book.mark.hu
  • YahooMyWeb

الدرس السادس ج1

Referencing Modelsالمقصود بها هو ادراج نماذج تم عملها سابقا الى الموديل الحالى ويتم اعتبارها على انها بلوكات .
ويتم ذلك عن طريق اضافة بلوك model الموجود فى
simulink
ثم
Ports & subsystems
وهذا النوع من البلوك يسمى instance
ويقوم هذا البلوك بعرض المداخل والمخارج حسب الموجود فى الموديل الاصلى والذى يقوم هذا البلوك بالرجوع له .
واثناء عملية المحاكاة يقوم السميولينك باستحضار S-function تم عملها اتوماتيكيا وتسمى the referenced model’s simulation target وذلك لحساب خرج البلوك عند الحاجة .
واذا حدث اى تغيير فى الموديل الاصلى فان السميولينك يقوم بعمل اعادة توليد لل
simulation target .
ويمكن ايضا ان يتم عمل Referencing لنموذج به Referencing
لنموذج أخر وفى هذه الحالة يكون اعلى موديل فى التسلسل الهرمى يسمى root model
ويسمى النموذج- الذى يكون فيه النموذج الاساسى والبلوك model - parent
ويمكن لل parent وهو النموذج الاساسى ان يحتوى على اكثر من Referencing بلوك لنفس الموديل على ان لا يكون فى هذا الموديل
Global data
ولمعرفة ما هى ال global data راجع الماتلاب
وفائدة اضافة مرجعيتين لنفس الموديل هو جعل الموديل الذى سيتم الرجوع اليه يتصرف بأسلوبين مختلفين .

ما الفرق بين Model Referencing و Subsystems ؟؟

تمتاز ال Model Referencing عن ال Subsystems بالمميزات الاتية .
1- Modular development
يمكنك عمل موديل مستقل وتطويره من موديل سابق او اكثر
2- Inclusion by reference
حيث يمكن عمل مرجعية لنموذج أكثر من مرة دون الحاجة من عمل نسخ متعددة من النموذج والعكس ايضا حيث يمكن عمل أكثر من مرجعية لنفس النموذج .
3- Incremental loading
حيث لن يتم تحميل البلوك الا فى حالة الرجوع اليه و يمكننا ترتيب عمليات الرجوع للاسراع من عملية المحاكاة .
4- Incremental code generation
عند استخدام ال Real-Time Workshop فانها تتفاعل مع السميولينك لعمل تطبيقات تنفذ لوحداها دون الحاجة الى اى برامج والتى تعرف بى stand-alone applications حيث يتم توليد ما يسمى بى binaries وفى حالة ان تكون هذه ال binaries احدث من النموذج التى تم توليدها منه فان السميولينك يقوم بايقاف عملية المحاكاة حتى يتم تعديلها .

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

والان سنقوم بعمل Model Reference

Creating a Model Reference

اولا لعمل مرجعية لبلوك معين يجب ان يكون هذا البلوك فى مسار الماتلاب ولم يكن فى المسار يمكنك اضافته عن طريق set path
ثانيا :: اذا كان البلوك الاساسى الذى تريد عمل المرجعية فيه هو اصلا مرجعيه قم بعمل تفعيل لل
Inline parameters optimization
حيث يجب عملها لكل البلوكات الموجودة فى التسلسل الهرمى ماعدا اعلى بلوك وذلك عن طريق
الدخول الى قائمة simulation ثم
configuration parameters
ثم من الشمال اختار optimization وقم بوضع علامة صح حول Inline parameters كما موضح فى الصورة الاتية

__________________

مشاركة الروابط These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google
  • Furl
  • Live
  • De.lirio.us
  • MyShare
  • e-mail
  • blogmarks
  • BlogMemes
  • Book.mark.hu
  • YahooMyWeb