دورات هندسية

 

 

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

صفحة 1 من 4 12 3 4 الأخيرةالأخيرة
النتائج 1 إلى 10 من 35
  1. [1]
    ahmedeldeep
    ahmedeldeep غير متواجد حالياً

    عضو متميز

    تاريخ التسجيل: Aug 2005
    المشاركات: 410
    Thumbs Up
    Received: 4
    Given: 0

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

    السلام عليكم ورحمة الله وبركاته



    بسم الله الرحمن الرحيم

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




    وستكون مجموعة من الدروس الاسبوعية وسوف يكون الدرس كل يوم سبت ان شاء الله وسيكون هذا الموضوع مغلق وللرد او الاستفسارات او المداخلات يرجى الدخول على الرابط الاتى:
    http://www.arab-eng.org/vb/showthread.php?t=19692



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


    مقدمة فى ال SIMULINK


    أساسيات ال SIMULINK


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

    التعامل مع الاشارات
    التعامل مع البيانات
    التعامل مع الجداول
    النمذجة
    المحاكاه
    تحليل النتائج
    عمل نماذج فرعية Subsystems


    التعامل مع simulink Debugger


    التعامل مع Simulink Accelerator


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

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


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


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


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





    والان سبدأ فى الدرس الاول ليوم السبت 26/5/2006



  2. [2]
    ahmedeldeep
    ahmedeldeep غير متواجد حالياً
    عضو متميز


    تاريخ التسجيل: Aug 2005
    المشاركات: 410
    Thumbs Up
    Received: 4
    Given: 0

    الدرس الاول :: ما هو ال Simulink ؟؟

    مقدمة فى ال SIMULINK







    اولا : لنتعرف ما هو ال Simulink ؟؟



    ال Simulink هو برنامج للنمذجة و المحاكاة و تحليل الانظمة الديناميكية سواء كانت خطية او غير خطية و يقوم أيضا بنمذجة الانظمة سواء فى الزمن المستمر او فى الزمن الغير مستمر .
    وباستخدام ال simulink يمكنك بناء نماذج من البداية او التعديل على انظمة موجودة بالفعل والفائدة من ذلك هو دراسة خصائص نظام التحكم اوالمنظومة قبل البدء فى التنفيذ حتى نحدد مدى استجابة النظام لما نقوم بعمله وهو الحاكم وهل نظام التحكم الموجود سيعطى احسن استجابة وأقل اخطاء ام لا ؟
    وال simulink ليس قاصرا على التحكم وتطبيقاته وانما يحتوى على مجموعة من البلوكات والتى تغطى أغلب تطبيقات الهندسة الميكانيكية والكهربية وهندسة الطيران.
    ويعتبر ال SIMULINK اداة ممتازة لى Model-Based Design وهذا معناه ان البرنامج ليس فقط قاصرا على الانظمة المثالية ولكن يمكنك ايضا من نمذجة انظمة حقيقة والتى يوجد بها عوامل موثرة لجعلها غير خطية nonlinear مثل الاحتكاك ومقامة الهواء وانزلاق التروس والظواهر الطبيعية الاخرى .
    كما يوجد فى البرنامج العديد من النماذج Demo لاغلب التطبيقات يمكنك استخدامها او التعديل عليها .
    والتعامل مع ال simulink سهل جدا فهو يوفر بما يسمى graphical user interface (GUI) فى بناء النماذج حيث تقوم بسحب البلوكات التى تريدها الى صفحة النموذج وتقوم بتوصيلها بطريقة سهلة و يمكنك ايضا تغير خصائص البلوكات الموجودة بالضغط عليها بالماوس وتعديل خصائصها كما يمكنك ايضا عمل البلوكات الخاصة بك و يكون هذا باستخدام ما يسمى بى S-function وسوف نتعرض له لاحقا .
    وبعد بناء النموذج نقوم بتشغيل النموذج لعمل ال simulation ويمكنك اختيار خصائص ال simulation وطريقة التكامل وهذا يكون فى non-real time كما يمكننا ايضا عمل محاكاة للنماذج فى ال real time وهذا باستخدام مجموعة البلوكات الموجودة فى البرنامج باسم Xpc Target و Real Time Workshop وسوف نتعرض لهذا لاحقا .
    ويمكننا التحكم فى ال Simulation من خلال سطر أوامر الماتلاب وهذا يكون مفيد جدا فى حالة الرغبة لعمل Simulation لأكثر من نموذج و ويمكن تخزين النتائج و استخدامها مع ال Toolboxs الموجودة فى الماتلاب .
    والصورة الاتية توضح الواجهة الرئيسية للبرنامج











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















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








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






    signal generator






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



    Transfer function


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

    Scope


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




    Mux block


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






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














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






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






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






    كود:
    >>simulink






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













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












    تابع


    0 Not allowed!


    Eng Ahmed El Deep
    Mechatronics Engineer

  3. [3]
    ahmedeldeep
    ahmedeldeep غير متواجد حالياً
    عضو متميز


    تاريخ التسجيل: Aug 2005
    المشاركات: 410
    Thumbs Up
    Received: 4
    Given: 0

    تابع الدرس الاول






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






    اولا أضافة ال




    Signal generator






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




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






    اختار منها




    sources






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




    signal generator






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






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













    ثانيا




    : اضافة ال scope






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






    2- أختار منها sinks






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






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






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














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






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






    اختار منها continuous






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






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







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















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






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






    اختار منها Signal Routing






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






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






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








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




    تابع






    0 Not allowed!


    Eng Ahmed El Deep
    Mechatronics Engineer

  4. [4]
    ahmedeldeep
    ahmedeldeep غير متواجد حالياً
    عضو متميز


    تاريخ التسجيل: Aug 2005
    المشاركات: 410
    Thumbs Up
    Received: 4
    Given: 0

    تابع الدرس الاول


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



    والان سنتقل الى مرحلة
    Configuring the Model
    اى التعديل فى خصائص البلوكات
    اولا
    :: قم بالضغط double clickعلى بلوك signal generator وقم بوضع الخصائص كما موضح فى الصورة التالية ::



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



    والان سنتقل الى مرحلة عمل ال
    Simulation
    اولا قم بتحديد زمن ال
    simulation وليكن 10 ثوانى

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



    وبعد الضغط على
    start simulation قم بالضغط double click على أل Scope لمشاهدة نتيجة عملية أل Simulation وهى عبارة عن استجابة النظام الموجود وهو نظام من الدرجة الثانية ل square wave
    لمدة
    10 ثوانى كما موجود فى الصورة الاتية




    أنتهى الدرس الاول والى اللقاء فى الدرس القادم وهو أساسيات السيمولنيك

    0 Not allowed!


    Eng Ahmed El Deep
    Mechatronics Engineer

  5. [5]
    ahmedeldeep
    ahmedeldeep غير متواجد حالياً
    عضو متميز


    تاريخ التسجيل: Aug 2005
    المشاركات: 410
    Thumbs Up
    Received: 4
    Given: 0

    الدرس الثانى :: كيف يعمل السميولينك ؟؟

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


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

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

    من المعروف ان المنظومات الديناميكية تتكون من مجموعة من المعادلات الرياضية ويتم تمثيل هذه المعادلات فى السميولنك على هيئة بلوكات وهذه الفكرة مأخوذة من مبادى التحكم الالى والمعروف بى
    Block Diagram
    وتنقسمالبلوكات فى السميولنك الى نوعان نوع افتراضى و نوع غير أفتراضى
    (nonvirtual block and virtual blocks) .
    الانواع الغير افتراضية هى التى تمثل عناصر النظام الديناميكى اما الانواع الافتراضية وهى التى تستخدم فى تحويل الاشارات وغيرها دون ان تدخل فى تكوين النظام او معادلاته الرياضية .

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

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

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

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

    States
    وهى التى تمثل قيم النظام الموجود وهى عبارة عن مجموعة من المتغيرات والتى تستخدم فى حساب الخرج الخاص بالبلوك عند الخطوة الزمنية المحدده وهناك نوعان من انواع ال states وهما : Discrete و continuous متقطعة ومستمرة .
    والمستمرة هى التى تتغير باستمرار اما المتقطعة هى التى تتغير عند فترات زمنية محددة intervals .
    وتعتبر البلوكات States كما فى الشكل التالى





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

    · Integrator









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



    · State-Space










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



    · Transfer Fcn









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



    · Zero-Pole






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


    الحالات المستمرة 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

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


    Systems and Subsystems


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


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


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

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

    BlockType.MethodType

    تابع

    0 Not allowed!


    Eng Ahmed El Deep
    Mechatronics Engineer

  6. [6]
    ahmedeldeep
    ahmedeldeep غير متواجد حالياً
    عضو متميز


    تاريخ التسجيل: Aug 2005
    المشاركات: 410
    Thumbs Up
    Received: 4
    Given: 0

    تابع الدرس الثانى

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

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

    اولا Model Compilation

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

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

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

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

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

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

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

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


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


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

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

    1- Loop Initialization phase

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

    2- Loop Iteration phase

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

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

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

    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
    وهى الطريقة المستخدمة فى البحث عن الحالات الغير المستمرة فى كل فترة زمنية وعندما يجد البرنامج منطقة بها عدم استمرارية يقوم بتحديد زمنها بدقة ويقوم بأخد فترات زمنية أضافية قبلها وبعدها .
    لماذا نستخدم هذه الطريقة ؟؟
    وذلك لان عند مناطق عدم الاستمرارية يحدث تغير هام جدا فى الخصائص الديناميكية للنظام وغالبا تتزامن مناطق عدم الاستمرارية مع الاحداث المهمة فى النظام .
    ومن الممكن الاستغناء عن هذه الطريقة بتقليل حجم الفترة الزمنية الى قيم صغيرة جدا مما قد يودى الى زيادة زمن المحاكاة.

    0 Not allowed!


    Eng Ahmed El Deep
    Mechatronics Engineer

  7. [7]
    ahmedeldeep
    ahmedeldeep غير متواجد حالياً
    عضو متميز


    تاريخ التسجيل: Aug 2005
    المشاركات: 410
    Thumbs Up
    Received: 4
    Given: 0

    تابع الدرس الثانى


    Algebraic Loops
    بعض البلوكات فى السميولنك لديها مداخل تسمى
    direct feedthrough
    وهذا معناه ان خارج هذه البلوكات لا يمكن حسابه بدون معرفة قيم الاشارات الداخلة ومن أهم هذه البلوكات :
    · The Math Function block
    · The Gain block
    · The Integrator block's initial condition ports
    · The Product block
    · 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 – z ويكون الحل z = u/2
    ويمكننا أيضا استخدام بلوك
    Algebraic Constraint
    فى عمل algebraic loop



    Modeling and Simulating Discrete Systems
    تكمن مقدرة السميولنك على محاكاة الانظمة ذات الزمن المتقطع
    والتى تسمى (sampled data) وايضا قدرة على محاكاة الانظمة التى يكون معدل تغيرها غير ثابت (multirate systems) - والتى يكون فيها بلوكات ذات فترة زمنية معينة وبلوكات أخرى ذات فترة زمنية مختلفة - ومحاكاة الانطمة التى تجمع بيانات متصلة و متقطعة معا (hybrid systems) فى الخاصيتين التاليتين ::

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

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

    Determining Step Size for Discrete Systems
    يقوم السميولنك باختيار حجم للفترة الزمنية
    step size
    متزامن مع الزمن الخاص بمعدل تقطيع الاشارة sample time hits
    ويكون أختياره بناء على fundamental sample time
    ويكون fundamental sample time هو أكبر عدد صحيح مقسوما عليه ال sample time مثلا :

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

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

    او fixed-step

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

    وفى حالة variable-step solver يكون step size مساوى للمسافة بين نقط التقطيع sample time hits.
    والفرق بينهم موضح فى الشكل التالى :





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






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

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

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

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

    أما اذا وجد السميولينك بلوكات لديها زمن تقطيع مالانهاية ولكن لا تعتبر ذات زمن ثابت وذلك نتيجة وجود معاملات من الممكن تعديلها
    Tunable Parameters
    فانه يقوم بتنفيذ عملية Sample Time Propagation وقد سبق ذكرها

    والان انتهى الدرس الثانى والى اللقاء فى الدرس القادم مع أساسيات السميولينك

    0 Not allowed!


    Eng Ahmed El Deep
    Mechatronics Engineer

  8. [8]
    ahmedeldeep
    ahmedeldeep غير متواجد حالياً
    عضو متميز


    تاريخ التسجيل: Aug 2005
    المشاركات: 410
    Thumbs Up
    Received: 4
    Given: 0

    الدرس الثالث :: السبت 10/6/2006

    الدرس الثالث
    كيفية بناء النماذج

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







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



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











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


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

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


    3- Canvas


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


    4- Status Bar

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



    Updating a Block Diagram

    يتيح لك السميولينك ان تترك بعض خصائص البلوكات على ان يقوم هو بوضعها مثل signal data types و sample times وتسمى هذه العملية بتعديل النموذج او Updating a Block Diagram وتكون عند بداية المحاكاة واذا وجد خصائص لم يستطيع وضعاها فانه يوقف هذه العملية على ان يقوم المستخدم بوضعها ويمكنك جعل السميولينك يقوم بهذه العملية فى اى وقت بالدخول الى قائمة Edit ثم أختيار Update Diagram او من خلال لوحة المفاتيح مباشرة Ctrl+D ..



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












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


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

    اولا عمل تمبلت لنموذج جديد
    عند فتح السميولينك فان الوضع الاساسى يكون بخلفية بيضاء و طريقة حل 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);


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







    0 Not allowed!


    Eng Ahmed El Deep
    Mechatronics Engineer

  9. [9]
    ahmedeldeep
    ahmedeldeep غير متواجد حالياً
    عضو متميز


    تاريخ التسجيل: Aug 2005
    المشاركات: 410
    Thumbs Up
    Received: 4
    Given: 0

    تابع الدرس الثالث

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


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








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



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



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


    كود:
    set_param(arab_eng, 'ScreenColor', 'blue');

    بهذا السطر
    كود:
    set_param(arab_eng, 'ScreenColor', '[0.3, 0.9, 0.5]')


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





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



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




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






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









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


    Using TeX Formatting Commands in Annotations



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



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









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







    ومثلا قم بكتابة الاتى


    \alphara\beta-\iteng



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




    0 Not allowed!


    Eng Ahmed El Deep
    Mechatronics Engineer

  10. [10]
    ahmedeldeep
    ahmedeldeep غير متواجد حالياً
    عضو متميز


    تاريخ التسجيل: Aug 2005
    المشاركات: 410
    Thumbs Up
    Received: 4
    Given: 0

    ملفات pdf لدروس الدورة

    ملفات pdf لدروس الدورة موجودة فى المرفقات

    0 Not allowed!


    الملفات المرفقة
    Eng Ahmed El Deep
    Mechatronics Engineer

  
صفحة 1 من 4 12 3 4 الأخيرةالأخيرة
الكلمات الدلالية لهذا الموضوع

عرض سحابة الكلمة الدلالية

RSS RSS 2.0 XML MAP HTML