82
ﺩﻭﺭﺓ ﺍﻟﻤﺤﺎﻛﺎﺓ ﺑﺈﺳﺘﺨﺪﺍﻡ ﺍﻟﺴﻤﻴﻮﻟﻴﻨﻚSIMULINK ﻭﺗﺘﻜﻮﻥ ﺍﻟﺪﻭﺭﺓ ﻣﻤﺎ ﻳﻠﻰ ﻣﻘﺪﻣﺔ ﻓﻰ ﺍﻝ ـSIMULINK ﺃﺳﺎﺳﻴﺎﺕ ﺍﻝ ـSIMULINK ﺍﻟﺘﻌﺎﻣﻞ ﻣﻊ ﺍﻟﺒﻠﻮﻛﺎﺕ ﺍﻟﺘﻌﺎﻣﻞ ﻣﻊ ﺍﻻﺷﺎﺭﺍﺕ ﺍﻟﺘﻌﺎﻣﻞ ﻣﻊ ﺍﻟﺒﻴﺎﻧﺎﺕ ﺍﻟﺘﻌﺎﻣﻞ ﻣﻊ ﺍﻟﺠﺪﺍﻭﻝ ﺍﻟﻨﻤﺬﺟﺔ ﺍﻟﻤﺤﺎﻛﺎﻩ ﺗﺤﻠﻴﻞ ﺍﻟﻨﺘﺎﺋﺞ ﻋﻤﻞ ﻧﻤﺎﺫﺝ ﻓﺮﻋﻴﺔSubsystems ﺍﻟﺘﻌﺎﻣﻞ ﻣﻊsimulink Debugger ﺍﻟﺘﻌﺎﻣﻞ ﻣﻊSimulink Accelerator ﻋﻤﻞ ﺑﻠﻮﻛﺎﺕ ﺗﺤﺘﻮﻯ ﻋﻠﻰ ﺩﻭﺍﻝ ﻣﺎﺗﻼﺏ ﻣﻘﺪﻣﺔ ﻋﻦ ﺍﻝS-function ﻛﺘﺎﺑﺔ ﺍﻝS-function ﺑﺎﺳﺘﺨﺪﺍﻡM-files ﻛﺘﺎﺑﺔ ﺍﻝS-function ﺑﺎﺳﺘﺨﺪﺍﻡC++ codes ﻋﻤﻞ ﺧﺼﺎﺋﺺ ﻟﻠﺒﻠﻮﻙ

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

  • Upload
    anaswn

  • View
    647

  • Download
    7

Embed Size (px)

DESCRIPTION

Matlab Simulink _arabic version_

Citation preview

Page 1: دورة المحاكاة بإستخدام السميولينك SIMULINK

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

وتتكون الدورة مما يلى

SIMULINK ـ مقدمة فى ال

SIMULINK ـ أساسيات ال

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

االشارات التعامل مع

البيانات التعامل مع

الجداول التعامل مع

النمذجة

المحاكاه

تحليل النتائج

Subsystems عمل نماذج فرعية

simulink Debugger التعامل مع

Simulink Accelerator التعامل مع

ماتالب عمل بلوكات تحتوى على دوال

S-function مقدمة عن ال

M-files باستخدام S-function كتابة ال

C++ codes باستخدام S-function كتابة ال

للبلوك عمل خصائص

Page 2: دورة المحاكاة بإستخدام السميولينك SIMULINK

SIMULINK مقدمة فى ال ؟؟ Simulink لنتعرف ما هو ال : اوال

الديناميكية سواء كانت خطية او هو برنامج للنمذجة و المحاكاة و تحليل االنظمة Simulink ال

. المستمر او فى الزمن الغير مستمر غير خطية و يقوم أيضا بنمذجة االنظمة سواء فى الزمنبناء نماذج من البداية او التعديل على انظمة موجودة بالفعل يمكنك simulink وباستخدام ال

دراسة خصائص نظام التحكم اوالمنظومة قبل البدء فى التنفيذ حتى نحدد والفائدة من ذلك هوالنظام لما نقوم بعمله وهو الحاكم وهل نظام التحكم الموجود سيعطى احسن مدى استجابة اخطاء ام ال ؟ استجابة وأقل

مجموعة من البلوكات ليس قاصرا على التحكم وتطبيقاته وانما يحتوى على simulink وال .الطيران والتى تغطى أغلب تطبيقات الهندسة الميكانيكية والكهربية وهندسة

البرنامج وهذا معناه ان Model-Based Design اداة ممتازة لى SIMULINK ويعتبر الوالتى يوجد بها ليس فقط قاصرا على االنظمة المثالية ولكن يمكنك ايضا من نمذجة انظمة حقيقة

االحتكاك ومقامة الهواء وانزالق التروس مثل nonlinear عوامل موثرة لجعلها غير خطية . والظواهر الطبيعية االخرى

يمكنك استخدامها او التعديل الغلب التطبيقات Demo يوجد فى البرنامج العديد من النماذج كما . عليها

graphical user interface بما يسمى سهل جدا فهو يوفر simulink والتعامل مع ال(GUI) حيث تقوم بسحب البلوكات التى تريدها الى صفحة النموذج وتقوم فى بناء النماذج

يمكنك ايضا تغير خصائص البلوكات الموجودة بالضغط عليها بالماوس بتوصيلها بطريقة سهلة و يمكنك ايضا عمل البلوكات الخاصة بك و يكون هذا باستخدام ما يسمى بى وتعديل خصائصها كما

S-function وسوف نتعرض له الحقا . ويمكنك اختيار خصائص ال simulation بناء النموذج نقوم بتشغيل النموذج لعمل ال وبعد

simulation وهذا يكون فى وطريقة التكامل non-real time كما يمكننا ايضا عمل محاكاة الموجودة فى البرنامج باسم وهذا باستخدام مجموعة البلوكات real time للنماذج فى ال

Xpc Target و Real Time Workshop وسوف نتعرض لهذا الحقا . من خالل سطر أوامر الماتالب وهذا يكون مفيد جدا فى Simulation ويمكننا التحكم فى ال

ال ألكثر من نموذج و ويمكن تخزين النتائج و استخدامها مع Simulation حالة الرغبة لعملToolboxs الموجودة فى الماتالب .

والصورة االتية توضح الواجهة الرئيسية للبرنامج

Page 3: دورة المحاكاة بإستخدام السميولينك SIMULINK
Page 4: دورة المحاكاة بإستخدام السميولينك SIMULINK

والصورة االتية توضح صفحة بناء النماذج

Building a Model سنرى كيفية بناء النماذج : ثانيا

النموذج من سنقوم االن بعمل نموذج بسيط لنظام معين و يتكون هذا

signal generator

لتطبيقها على النظام الموجود وسنستخدم منها signals حيث يقوم بتوليد العديد من أنواع ألsquare wave.

Transfer function

الدرجة الثانية وهى تمثل النظام الموجود لدينا وهو نظام بسيط من

Scope

Simulation ويستخدم فى عرض نتائج عملية ال

Page 5: دورة المحاكاة بإستخدام السميولينك SIMULINK

Mux block

scope فى نفس ال signal ويستخدم هنا لعرض اكثر من

: وفى الصورة التالية نرى الشكل العام للنموذج

وللبدء فى العمل

:: وال سنقوم بفتح نموذج فارغا

قم بالكتابة فى سطر أوامر الماتالب ما يلى simulink لفتح برنامج ال

:ودك

>>simulink

بالصورة او بالضغط على هذا الزر فى واجهة الماتالب كما موضح

Page 6: دورة المحاكاة بإستخدام السميولينك SIMULINK

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

البلوكات المطلوبة واالن سنقوم بمرحلة اضافة

اوال أضافة ال

Signal generator

قم بالضغط على قائمة

simulink لتفتح لك مجموعة من االقسام

اختار منها

sources

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

signal generator

البلوك الى النموذج وقم بالضغط على الماوس وسحب

Page 7: دورة المحاكاة بإستخدام السميولينك SIMULINK

الصورة التالية والخطوات السابقة موضحة فى

Page 8: دورة المحاكاة بإستخدام السميولينك SIMULINK

ثانيا

scope اضافة ال :

لتفتح لك مجموعة من االقسام simulink قم بالضغط على قائمة - 1

sinks أختار منها -2 scope أختار من اليمين -3

البلوك الى النموذج وقم بالضغط على الماوس وسحب

الشكل االتى والخطوات السابقة موضحة فى

Page 9: دورة المحاكاة بإستخدام السميولينك SIMULINK

transfer function الضافة ال : ثالثا

االقسام لتفتح لك مجموعة من simulink قم بالضغط على قائمة

continuous اختار منها

transfer function ومن اليمين اختار

البلوك الى النموذج وقم بالضغط على الماوس وسحب

الشكل االتى والخطوات السابقة موضحة فى

Page 10: دورة المحاكاة بإستخدام السميولينك SIMULINK

Mux block رابعا ::الضافة ال

االقسام لتفتح لك مجموعة من simulink قم بالضغط على قائمة

Signal Routing اختار منها

Muxومن اليمين اختار

البلوك الى النموذج وقم بالضغط على الماوس وسحب

الشكل االتى والخطوات السابقة موضحة فى

Page 11: دورة المحاكاة بإستخدام السميولينك SIMULINK

:: لدينا كما يلى واالن سيكون شكل النموذج

بين البلوكات واالن سبدأ فى عملية التوصيل::

قتين للتوصيليوهناك طر

: االولى

وتكون node المباشر و ليس للتوصيل الخطوط اى عمل العقد هى التوصيل السريع و للتوصيل

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

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

Page 12: دورة المحاكاة بإستخدام السميولينك SIMULINK

والثانية :الماوس على طرف البلوك عند النقطة المراد هى التوصيل اليدوى وتكون عن طريق تحريك

توصيلها حتى ياخد شكل الماوس عالمةعلى الماوس و استمر فى الضغط وقم بالسحب حتى النقطة االخرى وبعد ذلك قم بالضغط +

ولكن مذدوجة ثم اترك الماوس ليتم التوصيل + شكل الماوس عالمة المراد توصيلها حتى يأخد . مباشرة كما يلى

Page 13: دورة المحاكاة بإستخدام السميولينك SIMULINK

واالن سنتقل الى مرحلةConfiguring the Model

البلوكات اى التعديل فى خصائص اوالوقم بوضع الخصائص كما signal generator على بلوكdouble click قم بالضغط ::

:: التالية موضح فى الصورة

وايضا بالنسبة للTransfer function

Page 14: دورة المحاكاة بإستخدام السميولينك SIMULINK

واالن سنتقل الى مرحلة عمل الSimulation

قم بتحديد زمن ال اوالsimulation ثوانى 10 وليكن

ثانيا

: كما موضح فى الشكل التالى start simulation قم بالضغط على :

وبعد الضغط علىstart simulation بالضغط قم double click على أل Scope لمشاهدة نتيجة عملية أل

Simulation عن استجابة النظام الموجود وهو نظام من الدرجة الثانية ل وهى عبارة square wave ثواني10 لمدة

Page 15: دورة المحاكاة بإستخدام السميولينك SIMULINK

الصورة االتية كما موجود فى

Page 16: دورة المحاكاة بإستخدام السميولينك SIMULINK

؟؟ كيف يعمل السميولينك

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

. يقوم البرنامج بتنفيذ عملية المحاكاة فى الفترة الزمنية المطلوبة والمرحلة الثانية

المنظومات الديناميكية نمذجة

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

Block Diagram أفتراضى وتنقسمالبلوكات فى السميولنك الى نوعان نوع افتراضى و نوع غير

(nonvirtual block and virtual blocks) . تحويل التى تمثل عناصر النظام الديناميكى اما االنواع االفتراضية وهى التى تستخدم فى االنواع الغير افتراضية هى

. االشارات وغيرها دون ان تدخل فى تكوين النظام او معادالته الرياضية

؟؟؟ "time-based block diagram" ما معنى

اى ان هناك عالقة زمنية بين االشارات وبين المتغيرات -1(state variables) ويكون حل النموذج اوblock diagram الزمن المحدد هو حل لهذه العالقات خالل time

step والذى يمثل بزمن البداية الى زمن النهاية . . تعبر عن كميات تتغير مع الزمن وتكون معرفة خالل الفترة الزمنية المحددة االشارات -2يحتوى على مجموعة من العالقة بين االشارات والمتغيرات تكون عبارة عن مجموعة من المعادالت اى ان كل بلوك -3

. وبين الخارج منه المعادالت وهذه المعادالت توضح العالقة بينه و بين الداخل له

ويوجد نوعان من انواع البلوكات تبعا لنوعية بناءها

built-in blocks البلوكات الموجودة فى البرنامج وتسمى -1 البلوكات التى يقوم المستخدم بعملها وتسمى -2

custom blocks User-defined

States حساب الخرج الخاص التى تمثل قيم النظام الموجود وهى عبارة عن مجموعة من المتغيرات والتى تستخدم فى وهى

continuous و Discrete : وهما states بالبلوك عند الخطوة الزمنية المحدده وهناك نوعان من انواع ال . متقطعة ومستمرة

. intervals محددة والمستمرة هى التى تتغير باستمرار اما المتقطعة هى التى تتغير عند فترات زمنية كما فى الشكل التالى States وتعتبر البلوكات

Page 17: دورة المحاكاة بإستخدام السميولينك SIMULINK

: البلوكات االتية يجب ان تحتوى على احد continuous states والبلوكات التى تعبر

• Integrator

ووظيفة هذا البلوك هو تكامل االشارة الداخلة

• State-Space

State-Space ووظيفة هذا البلوك هو عمل نظام خطى من النوع

• Transfer Fcn

transfer function وظيفة هذا البلوك هو عمل نظام خطى من النوعو

• Zero-Pole

ولكن يحتوى transfer function النوع وهذا البلوك يعتبر حالة خاصة من السابق حيث يعبر عن نظام خطى من . سواء فى البسط او المقام تساوى صفر S اى يوجد قيم ل zero-pole-gain على

Page 18: دورة المحاكاة بإستخدام السميولينك SIMULINK

Continuous States الحاالت المستمرة

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

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

. بها الخطوة الزمنية متغيرة تبعا لمعدل التغير ومن مميزات السميولنك انه يوجد به مجموعة من طرق الحل و تكون

Discrete States الحاالت المتقطعة

فى الفترة الزمنية الحالية وبين قيمتها فى الفترة للتعامل مع الحاالت المتقطعة يجب علينا معرفة العالقة بين قيمتها تسمى فى البرنامج الزمنية السابقة وهذه العالقة

update functions . وتعتمد أيضا على قيمة الدخل للنموذج

االنظمة التى تحتوى على حاالت متقطعة ومستمرة معا نمذجة

Modeling Hybrid Systems

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

Block Parameters قيم معامالت البلوك

ولكل بلوك له Parameter يعتبر وهى التى تعبر عن خصائص اى بلوك فمثال البلوك الخاص باضافة ثابتParameters تعديل هذه الخصائص يكون له خصائص ويمكن استعمال الماتالب فى .

. يمكنك تغيرها اثناء عمل المحاكاة ويقوم السيمولينك بحساب هذه القيم قبل بداية المحاكاة كما تغيرها دون الحاجة الى اعادة ترجمة النموذج الى لغة االلة وهى التى A tunable parameter وتسمى بى

recompiling ان هذا التغيير لن يكون سريع ولكن سوف يقوم باالنتظار الى بداية الفترة الزمنية ويجب العلم . فى سرعة التنفيذ الموجوده غير قابلة للتعديل مما يودى الى زيادة parameters الجديدة ويمكن جعل جميع

Block Sample Times الزمنية الفترة

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

continuous sample time . وبالنسبة للبلوكات الغير متاح بها الفترة الزمنية تسمى

implicit sample time او

fundamental sample time of the inputs

Page 19: دورة المحاكاة بإستخدام السميولينك SIMULINK

. الزمنية تكون مثل الحاالت المستمرة اى يعتمد على نوع الدخل فمثال لو كان الدخل مستمر فان الفترةوتساوى اصغر An implicit discrete sample time الزمنية تسمى اما اذا كان الدخل متقطع فهنا الفترة

. فترة زمنية فى الدخل

Systems and Subsystems

ويوجد نوعان subsystem نظام فرعى يمكن للنموذج فى السيميولنك ان يتكون من عدة طبقات كل طبقة تسمى ومن مميزات البرنامج انه يمكنك عمل virtual and nonvirtual منها ايضا وهما افتراضى وغير افتراضى

Subsystems شروط معينة مثل استعداء دالة معينة او فعل ويكون اغلب االنظمة يكون تنفيذها متوقف على . باى شروط أنظمة أفتراضية الفرعية الغير مرتبطة

Block Methods طرق البلوكات

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

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

Update الفترة الزمنية الحالية وهى الطريقة الخاصة بالبلوكات ذات الحاالت المتقطعة فى

Derivatives الخاصة بالبلوكات ذات الحاالت المستمرة فى الفترة الزمنية الحالية وهى الطريقة

:: ويكون التعبير فى السميولنك عن نوع الطريقة المستخدمة كما يلى

BlockType.MethodType

Page 20: دورة المحاكاة بإستخدام السميولينك SIMULINK

الديناميكية محاكاة االنظمة

Start Simulation الضغظ على ماذا يحدث عند ؟؟؟

Model Compilation اوال

executable form يمكنه حلها اى يقوم السيميولنك بتحويل البرنامج او النموذج الى الصورة التى : ويكون تسلسل خطوات هذه العملية كما يلى

وايجاد قيمتها حساب قيم التعبيرية لخصائص البلوكات -1

block parameter expressions

البيانات و ابعداها تحديد خصائص االشارات مثل نوعها و نوع -2

ويستخدم طريقة ويقوم بتحديد الخصائص الغير موجودة -3attribute propagation

يقوم بعملية تخفيض للبلوكات -4

optimizations

يقوم وضع النموذج فى تسلسل هرمى -5hierarchy

الحقا يقوم بتحديد رتبة كل بلوك وسوف نتعرض له -6

block sorted order

يقوم بتحديد الفترات الزمنية لكل بلوك -7Sample Time

Link Phase : ثانيا يقوم البرنامج بتحديد االماكن الالزمة فى الذاكرة لتنفيذ النموذج وفى هذه المرحلة

Simulation Loop Phase : ثالثا نهاية زمن المحاكاه هذه المرحلة يقوم البرنامج بحساب قيم الحاالت والخرج خالل الفترات الزمنية حتى وفى

: وتحتوى هذه المرحلة على مرحلتين فرعيتين

1- Loop Initialization phase

وهذا يحث مرة واحده فقط فى البداية

2- Loop Iteration phase

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

حساب خرج البرنامج او النموذج -1

حساب حالة البرنامج او النموذج -2

Page 21: دورة المحاكاة بإستخدام السميولينك SIMULINK

المستمرة باستخدام البحث عن حاالت غير مستمرة فى البلوكات -3

zero-crossing detection الحقا هذه الخطوة أختيارية ) وسوف نتعرض لها)

حساب زمن الفترة الزمنية التالية -4

.ويتم تكرار هذه الخطوات طوال زمن المحاكاة

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

successive states الموجودة فى البرنامج وتسمى وطرق الحل هى عبارة عن مجموعة من البرامج

solvers ومن أهم االنواع

1- Fixed-step solvers

step النموذج فى فترات زمنية منتظمة من البداية حتى النهاية وحجم هذه الفترات يعرف بى وهى التى تقوم بحلsize وكما نعلم مع تقليل ال step size فان الدقة سوف تزيد .

2- Variable-step solvers

تتغير حالة النموذج فى فترات زمنية متغيرة فتقوم بتصغير حجم الفترة الزمنية لزيادة الدقة عندما وهى التى تقوم بحل .الحالة بطىء النموذج بسرعة وتقوم بتكبير حجم الفترة الزمنية عندما يكون التغير فى

تبعا للحالة مثل Solvers وهناك ايضا من انواع

1- Continuous solvers

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

2- Discrete solvers

وتقوم بحساب حجم الفترة الزمنية التالية فقط

Zero-Crossing Detection المستمرة فى كل فترة زمنية وعندما يجد البرنامج منطقة بها وهى الطريقة المستخدمة فى البحث عن الحاالت الغير

. بتحديد زمنها بدقة ويقوم بأخد فترات زمنية أضافية قبلها وبعدها عدم استمرارية يقوم لماذا نستخدم هذه الطريقة ؟؟

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

الطريقة بتقليل حجم الفترة الزمنية الى قيم صغيرة جدا مما قد يودى الى زيادة زمن ومن الممكن االستغناء عن هذه .المحاكاة

Algebraic Loops بعض البلوكات فى السميولنك لديها مداخل تسمى

direct feedthrough : يمكن حسابه بدون معرفة قيم االشارات الداخلة ومن أهم هذه البلوكات وهذا معناه ان خارج هذه البلوكات ال

• The Math Function block • The Gain block

• The Integrator block's initial condition ports • The Product block

Page 22: دورة المحاكاة بإستخدام السميولينك SIMULINK

• The State-Space block when there is a nonzero D matrix • The Sum block

• The Transfer Fcn block when the numerator and denominator are of the same order

• The Zero-Pole block when there are as many zeros as poles يحدث عندما يكون الداخل algebraic loop وال

direct feedthrough : وأيضا معرض للخارج كما فى الشكل التالى

z = u/2 ويكون الحل z = u – z ومن الشكل السابق نرى ان ويمكننا أيضا استخدام بلوك

Algebraic Constraint algebraic loop فى عمل

Modeling and Simulating Discrete Systems

المتقطع تكمن مقدرة السميولنك على محاكاة االنظمة ذات الزمن multirate) معدل تغيرها غير ثابت وايضا قدرة على محاكاة االنظمة التى يكون (sampled data) والتى تسمى

systems) - معينة وبلوكات أخرى ذات فترة زمنية مختلفة - ومحاكاة والتى يكون فيها بلوكات ذات فترة زمنية :: فى الخاصيتين التاليتين (hybrid systems) متصلة و متقطعة معا االنطمة التى تجمع بيانات

1- SampleTime block parameter

implicit و explicit وهما block parameter Sample Timeالفترة الزمنية يوجد نوعان من نوع حجم . implicit الزمن المتصل تكون من النوع والبلوكات ذات

2- Sample-time inheritance

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

Determining Step Size for Discrete Systems الزمنية يقوم السميولنك باختيار حجم للفترة

step size sample time hits متزامن مع الزمن الخاص بمعدل تقطيع االشارة

fundamental sample time ويكون أختياره بناء على : مثال sample time هو أكبر عدد صحيح مقسوما عليه ال fundamental sample time ويكون

فيكون0.5و sample times 0.25 لدينا

fundamental sample time 0.25

Page 23: دورة المحاكاة بإستخدام السميولينك SIMULINK

solver فى محاكاة االنظمة ذات الزمن المتقطع استخدام كال النوعين من ال ويمكننا

وهماvariable-step discrete

fixed-step او

fundamental sample time يساوى simulation step size يكون fixed-step وفى حالة

sample time مساوى للمسافة بين نقط التقطيع step size يكون variable-step solver وفى حالة

hits. : التالى والفرق بينهم موضح فى الشكل

Sample Time Propagation توليد زمن التقطيع أو حجم الفترة الزمنية

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

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

بتخصيصه اذا كان الداخل له نفس زمن التقطيع فان السميولينك يقوم -1البلوك نفسه فان السميولينك يقوم اذا كان الداخل له زمن تقطيع مختلف ولكن عدد صحيح و اسرع من زمن -2

بتخصيص الزمن االسرع

Constant Sample Time :: زمن التقطيع الثابت

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

Page 24: دورة المحاكاة بإستخدام السميولينك SIMULINK

:: البلوكات nontunable أثناء المحاكاة غير قابلة للتعديل parameters ان يكون جميع معامالت البلوك -1او تكون قابلة لتوارث زمن التقطيع من بلوكات (inf) ماالنهاية ومن الممكن وضع زمن التقطيع لهذه البلوكات -2

. البلوكات ذات زمن تقطيع ثابت أثناء عملية المحاكاة أخرى بشرط ان تكون تلك عن هذه البلوكات قبل بداية المحاكاة حتى يسهل من عملية الحسابات ويقوم السميولينك عمل بحث

نتيجة وجود معامالت وجد السميولينك بلوكات لديها زمن تقطيع ماالنهاية ولكن ال تعتبر ذات زمن ثابت وذلك أما اذا

من الممكن تعديلهاTunable Parameters

وقد سبق ذكرها Sample Time Propagation عملية فانه يقوم بتنفيذ

كيفية بناء النماذج

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

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

:: كما فى الشكل التالى

Page 25: دورة المحاكاة بإستخدام السميولينك SIMULINK

Model Editor محرر الموديل

:: ويتكون كما بالشكل التالى

1- Menu Bar

القوائم شريط لتعديل وإنشاء ومشاهدة وطباعة النماذج وأيضا محاكاة النماذج ويكون من مجموعة من القوائم

2- Toolbar األدوات شريط

شريط االدوات مجموعة من اوامر السميولينك المستخدمة باستمرار فيمكنك بدال من يوجد فى الى القوائم وعمل نموذج جديد الضغط على نموذج جديد الدخول

3- Canvas

block diagram النموذج وهذا الذى يظهر فيه بلوكات

Page 26: دورة المحاكاة بإستخدام السميولينك SIMULINK

4- Status Bar

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

Updating a Block Diagram

signal بعض خصائص البلوكات على ان يقوم هو بوضعها مثل يتيح لك السميولينك ان تتركdata types و sample times العملية بتعديل النموذج او وتسمى هذه Updating a

Block Diagram وتكون عند بداية المحاكاة واذا وجد خصائص لم يستطيع وضعاها فانهالعملية على ان يقوم المستخدم بوضعها ويمكنك جعل السميولينك يقوم بهذه العملية يوقف هذه

او من خالل لوحة Update Diagram ثم أختيار Edit اى وقت بالدخول الى قائمة فى .. Ctrl+D مباشرة المفاتيح

ثم Format خطوط التوصيل يمكننا الدخول الى قائمة ولمشاهدة انواع البيانات علىPort/Signal Displays التالى كما بالشكل

Page 27: دورة المحاكاة بإستخدام السميولينك SIMULINK

واالن يمكننا البدء فى معرفة

النماذج كيفية عمل

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

االدوات يكون ظاهراالدوات ويمكنك عمل تمبلت كما نشاء فمثال لجعل السميولينك بخلفية زرقاء وبدون شريط

ode3 وبطريقة حل

:: وضع به االتى M-file افتح :كود

function new_model(arab_eng) % NEW_MODEL Create a new, empty Simulink model % NEW_MODEL('MODELNAME') creates a new model with % the name 'MODELNAME'. Without the 'MODELNAME' % argument, the new model is named 'my_untitled'. % the model name is arab_eng if nargin == 0 arab_eng = 'arab_eng'; end % create and open the model open_system(new_system(arab_eng)); % set default screen color set_param(arab_eng, 'ScreenColor', 'blue'); % set default solver set_param(arab_eng, 'Solver', 'ode3'); % set default toolbar visibility set_param(arab_eng, 'Toolbar', 'off'); % save the model save_system(arab_eng);

Page 28: دورة المحاكاة بإستخدام السميولينك SIMULINK

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

تغيير ألوان البلوكات

ولون خلفيته وذلك عن طريق اختيار البلوك المراد تلوينه وتحديده يمكننا تغيير لون البلوكالختيار Foreground color واختيار Format ثم الدخول الى قائمة بالضغط عليه بالماوس

الختيار لون Screen color الختيار لون خلفيته وايضا Background color لون البلوك و خلفية النموذج

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

Page 29: دورة المحاكاة بإستخدام السميولينك SIMULINK

فى صورة اللون كما كان موجود فى المثال السابق او عن طريق وهذه المتغيرات يمكن وضعهاRGB

:: كالمثال التالى

:: السابق باستبدال السطر االتى يمكنك تجربته على البرنامج

:كود

set_param(arab_eng, 'ScreenColor', 'blue');

بهذا السطر

:كود

set_param(arab_eng, 'ScreenColor', '[0.3, 0.9, 0.5]')

Page 30: دورة المحاكاة بإستخدام السميولينك SIMULINK

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

Sample Time Colors واختار Format بالدخول الى قائمة ولتشغيل هذه الخاصية قم . حتى يقوم البرنامج بتغيير االلون Edit من قائمة Update Diagram وتذكر ان تقوم بعمل

Page 31: دورة المحاكاة بإستخدام السميولينك SIMULINK

Annotating

عمل مالحظات فى النموذج

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

بالماوس مرتين فى اى مكان فارغ ثم نقوم بكتابة ما نريد وللتحكم ولعمل مثل هذا نقوم بالضغط Annotation بالضغط عليه بالماوس اليمين ثم اختار من القائمة فى ما تم كتابته قم

Properties قم بتعديل ما تشاء ليظهر لك الشكل التالى واالن ::

Page 32: دورة المحاكاة بإستخدام السميولينك SIMULINK

فعندما تقوم بالضغط عليها Annotation فى صورة M function ويمكنك أيضا وضع اوامر بتنفيذ أمر معين وسوف نتعرض لها بالتفصيل الحقا يقوم البرنامج

Using TeX Formatting Commands in Annotations

الرياضية والرموز وذلك حتى نتمكن من كتابة المعادالت TeX Formatting نقوم باستخدام الالتينية ويكون عن طريق االتى

Page 33: دورة المحاكاة بإستخدام السميولينك SIMULINK

1- Enable القائمة أختار موجود وقم بالضغط كليك يمين بالماوس ومن annotation أختار

TeX Commands كما يلى ::

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

Page 34: دورة المحاكاة بإستخدام السميولينك SIMULINK

ومثال قم بكتابة االتى\alphara\beta-\iteng

وسيكون على الشكل التالى

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

Creating Subsystems

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

& ports ثم simulink المطلوبة إليه ومثال قم بالدخول الى قائمة وإضافة البلوكاتsubsystems ثم subsystem كما بالشكل التالى ::

Page 35: دورة المحاكاة بإستخدام السميولينك SIMULINK
Page 36: دورة المحاكاة بإستخدام السميولينك SIMULINK

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

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

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

Page 37: دورة المحاكاة بإستخدام السميولينك SIMULINK

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

Page 38: دورة المحاكاة بإستخدام السميولينك SIMULINK

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

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

الضغط على الفرعى وcreate subsystem

Page 39: دورة المحاكاة بإستخدام السميولينك SIMULINK

:: كما يلى

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

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

Model Navigation Commands

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

:: بعمل االتى

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

Page 40: دورة المحاكاة بإستخدام السميولينك SIMULINK

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

Open Block In New Window

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

Page 41: دورة المحاكاة بإستخدام السميولينك SIMULINK

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

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

Window Reuse

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

وتكون عن طريق االتى Window reuse من قائمة و اختيار واحده Preferences ثم اختيار File الدخول الى قائمة

type كما يلى ::

Page 42: دورة المحاكاة بإستخدام السميولينك SIMULINK
Page 43: دورة المحاكاة بإستخدام السميولينك SIMULINK

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

Controlling Access to Subsystems

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

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

Page 44: دورة المحاكاة بإستخدام السميولينك SIMULINK

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

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

NoReadOrWrite ReadWrite

Creating Conditionally Executed Subsystems

Page 45: دورة المحاكاة بإستخدام السميولينك SIMULINK

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

االتية من االنطمة الفرعية المتوقف تنفيذها على اشارة دخل ويدعم السميولينك االنواع

Enabled Subsystems

Triggered Subsystems.

Triggered and Enabled Subsystems

A control flow subsystem

Enabled Subsystems ::: اوال

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

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

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

كما يوضح السهم

Page 46: دورة المحاكاة بإستخدام السميولينك SIMULINK

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

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

:: الرسالة االتية نالحظ ظهور

Page 47: دورة المحاكاة بإستخدام السميولينك SIMULINK

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

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

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

Page 48: دورة المحاكاة بإستخدام السميولينك SIMULINK

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

ان هناك خيارينHeld

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

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

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

واالن

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

Page 49: دورة المحاكاة بإستخدام السميولينك SIMULINK

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

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

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

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

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

الثانى ولمعرفة ما هو راجع الدرس

Triggered Subsystems

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

ام ال ؟؟

وهما Trigger ال ويوجد ثالثة انواع لهذاRising

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

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

منها

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

. او االنخفاض

Page 50: دورة المحاكاة بإستخدام السميولينك SIMULINK

: ملحوظة

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

. بسبب عملية التقطيع trigger لتالفى حدوث زمنية واحدة وذلك

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

يجب ان تزيد عن واحد

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

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

Page 51: دورة المحاكاة بإستخدام السميولينك SIMULINK

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

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

Page 52: دورة المحاكاة بإستخدام السميولينك SIMULINK

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

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

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

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

Page 53: دورة المحاكاة بإستخدام السميولينك SIMULINK

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

triggered subsystems ويجب مالحظة ان enabled subsystems تختلف عن االنظمة

اخر قيمة للخرج وال يمكننا استعادة الخرج عند قيمة ابتدائية ماعدا االنواع حيث انها تقوم بحجز يكون استدعائها بأمر وهى البلوكات التى

Function-Call Subsystems بالبلوك الخاصة S-function البلوكات مرتبط بأمر منطقى فى ال ويكون شرط تنفيذ هذه

. وسوف نتعرض لها الحقا

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

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

.بلوك التكامل

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

Page 54: دورة المحاكاة بإستخدام السميولينك SIMULINK

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

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

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

Page 55: دورة المحاكاة بإستخدام السميولينك SIMULINK

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

Triggered and Enabled :: ثالثاSubsystems

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

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

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

Page 56: دورة المحاكاة بإستخدام السميولينك SIMULINK

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

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

Page 57: دورة المحاكاة بإستخدام السميولينك SIMULINK

هى اشارة الدخل وهى عبارة عن باللون السماوى االشارة التى ومن الشكل السابق نجد انsine wave فهى ال االصفر باللون اما االشارة التى trigger وهى عبارة عن step

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

تساوى ثوانى وتكون قيمتها 10 مدتها pulse فهى عبارة عن باللون االحمر االشارة التى اما

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

باالرتفاع وفى هذه trigger مخطط تنفيذ النظام عند حدوث ال وعند الزمن يساوى واحد يبدا

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

. الخرج ممسكة عند هذه القيمة ولذلك ستستمر قيمة

Page 58: دورة المحاكاة بإستخدام السميولينك SIMULINK

Creating Alternately Executing Subsystems

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

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

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

: تحويل التيار المتردد الى تيار مستمر

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

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

Page 59: دورة المحاكاة بإستخدام السميولينك SIMULINK

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

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

Page 60: دورة المحاكاة بإستخدام السميولينك SIMULINK

Conditional Execution Behavior

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

لتنفيذها وهذا البلوكات التى من الممكن تكون غير ضرورية االنظمة الفرعية المرتبطة بشرط يسمى

conditional execution (CE) behavior.

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

Page 61: دورة المحاكاة بإستخدام السميولينك SIMULINK

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

ثم اختيار format قم بالدخول الى قائمة simulation وقبل عمل الBlock displays

:: كما فى الصورة االتية sorted order ثم

Page 62: دورة المحاكاة بإستخدام السميولينك SIMULINK

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

X:Y

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

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

Page 63: دورة المحاكاة بإستخدام السميولينك SIMULINK

بلوكات الPulse generator

يساوى الى صفر X تحتوى على رقم scope و gain و subsystem و constant و كما يلى Y الموديل ويكون ترتيب تنفيذها وهو الرقم اى انها تنتمى الى الطبقة االساسية فى

1- Pulse generator 2- constant

3- subsystem 4- gain

5- scope وهذا معناه انه يحتوى على الطبقة {1}0:2 عليه االتى subsystem ونالحظ هنا ان بلوك

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

Page 64: دورة المحاكاة بإستخدام السميولينك SIMULINK

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

يتم اخراجه

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

Page 65: دورة المحاكاة بإستخدام السميولينك SIMULINK

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

Page 66: دورة المحاكاة بإستخدام السميولينك SIMULINK

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

البلوك تنفيذ النظام الفرعى وعند ايقاف النظام الفرعى غير مهم تنفيذ هذا

: اخرى واالن سنالحظ االرقام على البلوكات واالن قم بعمل المحاكاة مرة

Page 67: دورة المحاكاة بإستخدام السميولينك SIMULINK

الفرعى فقط على الرغم انهم ينفذان مع النظام gain والبلوك constant واالن اصبح البلوك ترتيب التنفيذ كاالتى خارج النظام الفرعى وموجودين فى النظام االساسى ويكون

1- constant 2- subsystem

3- gain او Conditional Execution Behavior وهذا ما يعرف بىCE behavior

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

. النموذج عن مجموعة من البلوكات التى تنفذ مرة واحدة خالل زمن معالجة

Page 68: دورة المحاكاة بإستخدام السميولينك SIMULINK

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

هو مجموعة البلوكات التى يحتويها النظام execution context واى :السميولينك يقوم بالبحث عن الشروط االتية فى كل بلوك وعند تنفيذ المحاكاة فان

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

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

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

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

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

فرع من دخل البلوك بصورة مخفية ويكون لكل فرع يقوم السميولينك بمعالجة كلexecution context

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

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

وضع عالمة صح Optimization ثم Configuration Parameters قم بالدخول ال

Conditional input branch execution عند

خاصية هناك بعض الحاالت ال يستطيع البرنامج استخدام:: ملحوظة

Propagate execution context across subsystem boundary او النظام الفرعى له triggered subsystem الفرعى من النوع وهى عندما يكون النظام

خرج اكثر من مدخل او مخرج ولها شرط ابتدائى غير الصفر وفى هذه الحالة البلوك الموجود فى النظام الفرعى ال يمكنه ان يتوارث

subsystem's execution context

Page 69: دورة المحاكاة بإستخدام السميولينك SIMULINK

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

execution context

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

ويكون شكلها كما يلى

Referencing Models

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

simulink ثم

Ports & subsystems instance وهذا النوع من البلوك يسمى

. االصلى والذى يقوم هذا البلوك بالرجوع له ويقوم هذا البلوك بعرض المداخل والمخارج حسب الموجود فى الموديل the referenced تم عملها اتوماتيكيا وتسمى S-function السميولينك باستحضار واثناء عملية المحاكاة يقوم

model's simulation target وذلك لحساب خرج البلوك عند الحاجة . فان السميولينك يقوم بعمل اعادة توليد لل واذا حدث اى تغيير فى الموديل االصلى

simulation target . Referencing لنموذج به Referencing ان يتم عمل ويمكن ايضا

root model موديل فى التسلسل الهرمى يسمى لنموذج أخر وفى هذه الحالة يكون اعلى model – parent النموذج االساسى والبلوك ويسمى النموذج- الذى يكون فيه

بلوك لنفس الموديل على ان ال Referencing ان يحتوى على اكثر من وهو النموذج االساسى parent ويمكن لل يكون فى هذا الموديل

Global data راجع الماتالب global data هى ال ولمعرفة ما

. هو جعل الموديل الذى سيتم الرجوع اليه يتصرف بأسلوبين مختلفين وفائدة اضافة مرجعيتين لنفس الموديل

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

. بالمميزات االتية Subsystems عن ال Model Referencing تمتاز ال1- Modular development

موديل مستقل وتطويره من موديل سابق او اكثر يمكنك عمل2- Inclusion by reference

ايضا حيث يمكن عمل مرجعية لنموذج أكثر من مرة دون الحاجة من عمل نسخ متعددة من النموذج والعكس حيث يمكن

Page 70: دورة المحاكاة بإستخدام السميولينك SIMULINK

. عمل أكثر من مرجعية لنفس النموذج3- Incremental loading

. عملية المحاكاة تحميل البلوك اال فى حالة الرجوع اليه و يمكننا ترتيب عمليات الرجوع لالسراع من حيث لن يتم4- Incremental code generation

فانها تتفاعل مع السميولينك لعمل تطبيقات تنفذ لوحداها دون الحاجة الى Real-Time Workshop عند استخدام الحالة ان تكون وفى binaries حيث يتم توليد ما يسمى بى stand-alone applications والتى تعرف بى اى برامج

. يقوم بايقاف عملية المحاكاة حتى يتم تعديلها احدث من النموذج التى تم توليدها منه فان السميولينك binaries هذه ال

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

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

Creating a Model Reference

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

set path تفعيل لل اذا كان البلوك االساسى الذى تريد عمل المرجعية فيه هو اصال مرجعيه قم بعمل :: ثانيا

Inline parameters optimization فى التسلسل الهرمى ماعدا اعلى بلوك وذلك عن طريق حيث يجب عملها لكل البلوكات الموجودة

ثم simulation الدخول الى قائمةconfiguration parameters

كما موضح فى الصورة Inline parameters بوضع عالمة صح حول وقم optimization ثم من الشمال اختار

Page 71: دورة المحاكاة بإستخدام السميولينك SIMULINK

االتية

Page 72: دورة المحاكاة بإستخدام السميولينك SIMULINK

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

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

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

:: كما يلى

Page 73: دورة المحاكاة بإستخدام السميولينك SIMULINK

ref1 له هو واسم النموذج المطلوب الرجوع

من النوع solver النموذج المطلوب الرجوع اليه يستخدم ويجب ان يكونFixed step لمعرفة كيفية عمل هذه راجع الفصول السابقة

يفتح لنا النموذج الذى سوف يرجع له واالن عند الضغط على البلوك model reference parameters واختار edit ولتغير خصائصه افتح قائمة

على المخرج وسيصبح شكل النموذج كما scope المدخل و على step واالن سنقوم بتوصيل :: يلى

Page 74: دورة المحاكاة بإستخدام السميولينك SIMULINK

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

global tunable parameters لعمل تعديل فى خصائص نموذج يتم الرجوع عليه أثناء عملية المحاكاة فانه ولذلك عند الحاجة

بتعديل هذه الخصائص وجعلها من النوع يجب ان نقومglobal tunable parameters.

. وسوف نتعرف عليها الحقا

Using Model Arguments

نريد عمل أكثر من مرجعية لنفس النموذج ولكن بسلوك عندماModel Arguments نستخدم مرتان لل reference عمل مختلف ومثال على ذلك اننا نريد

Counter ولكن سنختار قيمة ابتدائية وخطوة عد مختلفة فى كال ال reference

: االتى ولعمل ذلك يجب علينا عمل1- Declare model workspace variables that determine the

model's behavior as model arguments نوعان من workspace حيث يوجد فى ال workspace تعريف للمتغيرات فى نقوم بعمل

المتغيرات وهماglobal nontunable parameters

global tunable parameters

2- Assign values to the model arguments in each reference to the parameterized model

الخاصة بكل مرجعية واالن سنعرف كيفية عمل ما سبق ذكره وهذه القيم

Model Arguments اوال لتعريفثم view النموذج عن طريق اختيار قائمة قم بقتح النموذج المرجع ثم قم بالدخول الى متصفح

model explorer اختيار :: االتى وسيظهر لنا الشكل

Page 75: دورة المحاكاة بإستخدام السميولينك SIMULINK

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

Page 76: دورة المحاكاة بإستخدام السميولينك SIMULINK

فارغة ولذلك سنقوم بعمل المتغيرات فى ال workspace نجد ان ال وفى الشكل السابقworkspace الدخول الى قائمة عن طريق add فى متصفح النموذج ثم اختيار MATLAB

variable كما يلى

Page 77: دورة المحاكاة بإستخدام السميولينك SIMULINK

نريد متغيران احدهما بقيمة صفر counter كما تريد فمثال فى ال ثم قم بتعديل المتغير واسمه

1واالخر هو الخطوة ولتكن قيمتها تساوى وهو القيمة االبتدائية :: كما بالشكل االتى

الموجود فى اليمين Model Arguments هذه االسماء فى خانة واالن قم بادخال

كما بالشكل االتى :: مع مراعاه استخدام فاصلة بينهما

Page 78: دورة المحاكاة بإستخدام السميولينك SIMULINK

من قائمة Model block's parameter النموذج االصلى وقم اختيار واالن اذهب الى

edit :: الخاصة بهذه المرجعية كما بالشكل االتى Model Argument واالن قم بادخال قيم

:: تمرين

بسيط مع counter يحتوى على مرجعيتين لنموذج واحد وليكن لى حاول ان تقوم بعمل نموذج !كما سبق وفى انتظار حلولكم ؟ تغير خصائص المرجعيتين

Model Block Sample Times

Page 79: دورة المحاكاة بإستخدام السميولينك SIMULINK

البلوك هو زمن التقطيع للنموذج الذى يرجع له ويتم تحديد ذلك فى ال يكون زمن التقطيع لهذاsimulation target ويتم تحديد ايضا اذا كان هذا النموذج يحتاج الن يتوارث زمن التقطيع

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

sample time propagation او وهذا الزمن ال يشمل الثوابت triggered sample time

بلوكات تعوق عملية توارث زمن التقطيع ال يوجد بالنموذج اى -6

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

استخدام بلوكات مرجعية لها زمن تقطيع مستخدم فى وبالمثل ال يمكنناTriggered subsystem

Function call iterator subsystem

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

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

Blocks That Preclude Sample-Time Inheritance

البلوكات التى تعوق عملية توارث زمن التقطيع

يعتمد خرجها على زمن تقطيع متوارث من نظام مرجعى فان البرنامج عند استخدام البلوكات التىفان السميولينك يقوم بالبحث عن simulation target وعند بناء ال يقوم باعطاء اخطاء

بزمن التقطيع ال simulation target وجدها فانه يقوم بعمل ال هذه البلوكات واذاdefault ويقوم بعرض خطأ

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

Discrete-Time Integrator

From Workspace (if it has input data that contains time)

Probe (if probing sample time)

Rate Limiter

Sine Wave

Page 80: دورة المحاكاة بإستخدام السميولينك SIMULINK

:: تمرينيرجع الى نموذج اخر وقم بوضع احد من model يحتوى على بلوك حاول القيام بعمل نموذج

توارث زمن التقطيع فى النظام المرجعى البلوكات التى تعوق عملية

Referenced Model I/O

: وهى model مداخل و مخارج بلوك هناك بعض القيود على توصيلBus I/O Limitations

فى حالة bus يمكن توصيل البلوك المرجعى بمداخل او مخارج من النوع bus object انه ان يكون المدخل معرف على -1على انه مرئى فى النظام workspace معرف فى ال bus object ال ان يكون -2

المرجعى والنظام االساسى Bus Creator block تم عمله بواسطة bus يجب ان يكون ال -3

Index I/O Limitations

السميولينك ال يستطيع ان يقوم بعملية توليد لل فى بعض االحيان فان

:كود

0 - or 1- based indexing

الى فان الدخل يكون موصل for فمثال فى البلوك

:كود

0- or 1-based indexing

حالة النظام المرجعى فان البرنامج ال يستطيع تخصيص نفس القيم للخرج فى

Matching I/O Rates

rate وبلوكات االخراج فى النظام المرجعى لها نفس ال يجب ان تكون بلوكات االدخال

Building Simulation Targets تقوم بحساب خرج النظام المرجعى فى حالة S-function هى Simulation Targets ال

تنفيذ النظام االصلى فى اى وقت باستخدام simulation targets يقوم بتوليد ويمكننا جعل السميولينك ان

updating the model's diagram من قائمة edit او من خالل تنفيذ امر slbuild .

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

الموجودة targets التغلب على هذا بجعل البرنامج يقوم دائما بعمل اعادة بناء لكل ومن الممكن.

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

Simulink Accelerator و Real-Time Workshop

Page 81: دورة المحاكاة بإستخدام السميولينك SIMULINK

Function-Call Models

ان يقوم بالتحكم فى عمل النظام المرجعى مثل هناك بعض البلوكات من الممكنFunction-Call Generator

.function-call modelالمرجعى هو ويسمى البلوك الذى يقوم بهذه العملية فى حالة النظام

وسنقوم االن بعمل مثال على هذا النوع function من النوع trigger ال فى النظام المرجعى ثم قم بوضع trigger قم بوضع بلوك

call وفى هذا الحالة نالحظ ظهور سهم على بلوك Model الموجود فى function call controller واالن قم بوضع بلوك

ports & subsystem model ثم قم بتوصيله ببلوك

configure parameters واختار simulation واالن قم بالدخول الى قائمة واختار من قائمة fixed step اختار solver وفى خانه ال

Periodic sample time constraint Ensure sample time independent اختار

scalar يجب ان تكون ويجب مالحظة ان اشارة الدالة : النموذج على الشكل االتى وسيكون

Browsing Model Reference Dependencies

االنظمة المرجعية فى صورة هرمية من خالل الدخول على قائمة يمكننا عرض شكل لتسلسل

Tools ثم اختيار Model Reference Graph او عن طريق ادخال االمر االتى فى الماتالب

view_mdlrefs

Page 82: دورة المحاكاة بإستخدام السميولينك SIMULINK

وسيظهر لنا الشكل االتى

Converting Subsystems to Model References

الى نظام مرجعى من خالل الظغط كليك يمين واختيار يمكننا تحويل النظام الفرعى

Convert to Model Block ولكن فى حالة atomic subsystem فقط