السلام عليكم ورحمة الله وبركاته
نعود مرة أخرى أخوانى الأعزاء بعد أنقطاع دام أكثر من سنة لنستكمل دورة السميولينك والتى قد بدءنها معنا
…
Working with Lookup Tables
التعامل مع بلوكات الجداول
ويكون هناك عادة متسلسة او معادلة حسابية وظيفتها اخراج مخرجات معينة نتيجة لمدخلات محددة
مثال بسيط
الدالة التكعيبية
y = x^3
حيث المدخلات تتكون من الفترة 3 الى -3
كما بالجدول الاتى
نجد ان العنصر المدخل 2 يقابله مخرج 8
ولكن فى حالة عدم وجود الدخل المطلوب فمثلا اذا اردنا قيمة y عند x تساوى 1.5 او اذا كان يقع خارج الفترة
هنا سيقوم السميولينك بعملية interpolate or extrapolate لاستخراج هذه القيم بصورة خطية
ونجد ان الجداول فى السميولينك تقدم لنا حلولا بصورة غير رياضية وتكون بالتقدير او التقريب واسرع من الحلول الرياضية وخصوصا عند عملية المحاكاة
تركيب الجداول
من الشكل الاتى وهو عبارة عن جدول ثنائى الابعاد يتضح لنا ان المدخلات هنا تسمى Vectors or breakpoint data sets
1- Lookup Table
وهو أبسط انواع البلوكات حيث يتعامل مع بعد واحد فقط واذا اردنا استخدام بعدين فيجب علينا استخدام النوع الاخر
2-Lookup Table (2-D)
وهو نفس النوع السابق ولكن الجداول به يحتوى على بعدين
ويتكون هذا الجدول من Row index input values وهو الصف الذى يحتوى على قيم X ويكون أفقى
Column index input values وهو الصف الذى يحتوى على قيم Y الرأسية
Table data المصفوفة التى تحتوى قيم الجدول او المخرجات
3-Lookup Table (n-D)
ويستخدم هذا النوع لحل المعادلات التى بها اكثر من متغيرين ويكون حلها رقمى وليس حل رياضى دقيق ويقوم بعمل مختلف عمليات interpolation
ويتكون من الاتى :
Number of table dimensions
لابد قبل استخدام هذا البلوك من تحديد عدد الابعاد التى يتعامل معها
Breakpoints for dimension
قيم المدخلات
Table data
قيم المخرجات
ويمكن ايضا اضافة بعض المعاملات لتحسين النتائج
Index search method
Interpolation method
Extrapolation method
4- Prelookup
يستخدم هذا البلوك مع Interpolation Using Prelookup ويقوم بعملية ال Interpolation حيث يقوم بحساب الدليل
وفترة التقسيم المستخدمة index and interval fraction
5- Direct Lookup Table (n-D)
6-Lookup Table Dynamic
7-Sine, Cosine
أختيار بلوك الجدول المناسب Choosing a Lookup Table
يعتمد اختيار نوعية بلوك الجدول على اساس ابعاد البيانات التى لدينا حيث اذا كنا سنستخدم بيانات فى بعد واحد او بعدين او اكثر من بعدين فان البلوك المستخدم سيختلف فى كل حالة وايضا يعتمد الخيار على نوعية البيانات الرقمية فمثلا نجد ان كل البلوكات لديها القدرة فى التعامل مع الاعداد الحقيقة ولكن اذا اردنا التعامل مع ارقام معقدة فاننا سنستخدم البلوكات الاتية :Direct Lookup Table (n-D) and Lookup Table (n-D) blocks ويعتمد الخيار ايضا على الدقة Accuracy فتختلف الدقة من بلوك الى اخر ومن عملية الى عملية اخرى نتيجة ما يتم من عمليات interpolation and extrapolation وما ينتج عنها من تقريب وايضا نجد نوع عملية interpolation قد يسبب فى اختلاف الدقة مثل العمليات الاتية linear or cubic spline. فى الجدول الاتى نجد مقارنة بين انواع الجداول المختلفة بناء على استخدامتها وخصائصها ليساعدنا فى اختيار البلوك المناسب لنا :
كيفية ادخال نقاط التوقف وبيانات الجدول Entering Breakpoints and Table Data
ويوجد ثلاثة طرق لادخال البيانات الى الجداول سنتعرف عليها الان ------------ Entering Data in a Lookup Table Block’s Parameter Dialog Box نقوم الان بعمل مثال لجدول بسيط وهو الدالة التكعيبية على الفترة من -3 الى 3 اولا سنقوم بفتح برنامج السميولينك وعمل نموذج جديد سنقوم بوضع بلوك Lookup Table به
ومن ثم نقوم بفتح خصائصه كما يلى
ونجد البيانات الاتية Vector of input values وهى تعبر عن قيم المدخلات والتى تكون الفترة من -3 الى 3 Table data وهى المخرجات وتكون القيم التكعيبية للمدخلات
Entering Data in the Lookup Table Editor ادخال البيانات عن طريق محرر الجداول
مثال :: سنقوم الان بعمل هذه المعادلة صورة 7 حيث X من صفر الى 2 و Y من صفر الى 2
وحيث ان المعادلة تحتوى على متغيريين فاننا سنقوم باستعمال البلوك الاتى Lookup Table 2-D ولفتح محرر الجداول : عن طريق الدخول الى قائمة tools واختيار Lookup Table Editor كما فى الصورة الاتية
ونلاحظ وجود القيم الأفتراضية للجدول والان سنقوم بادخال قيم X فى Row Breakpoints وقيم Y فى Column Breakpoints وايضا لا ننسى التعويض فى المعادلة وايجاد قيم الجدول كما فى الصورة الاتية
وبعد ذلك نعمل بعمل Update Block Data من خلال قائمة file
------------- Entering Data Using the Lookup Table Dynamic Block’s Inports ادخال بيانات بلوك الجدول الديناميكى عن طريق استيراد البيانات فى المثال الاتى سنقوم بعملية تقريب للمعادلة الاتية
من الفترة صفر الى 10 سنقوم الان باضافة البلوك الديناميكى والبلوك اللازمة لحل هذه المعادلة كما بالشكل الاتى
خصائص بلوكات الجداول Characteristics of Lookup Table Data
هناك بعض القيود على حجم بيانات الجدول سواء breakpoint data او table data اما الحجم الكلى للجدول فالذى يحدده هو ذاكرة جهاز الكمبيوتر. وايضا يجب ان يكون هناك توافق بين ابعاد الجدول وابعاد متغيرات الادخال breakpoint فى المحاور الثلاثة
Monotonicity of Breakpoint Data Sets
Monotonicity هو اسم لدالة رياضية دائما تحتفظ بترتيب معين مثلا دائما فى تزايد او دائما فى تناقص ويعنى هنا ان يكون هناك ترتيب معين لمدخلات الجداول ويفضل ان يكون دائما monotonically increasing للحصول على معلومات أكثر حول الدالة Monotonic يرجى الدخول هنا http://en.wikipedia.org/wiki/Monotonic_function
Representing Discontinuities تمثيل النقاط الغير المتصلة وهى النقاط التى لا قيمة لها اى تكون عندها قيمة المتغير الافقى او المتغير الراسى تساوى صفر كما فى الصورة الاتية :
فى هذه الصورة نلاحظ اننا لدينا مخرجين لمدخل واحد وهو الصفر فى هذه الحالة فان بلوك الجدول يكون لديه بعض القواعد التى يختار على اساسها الخارج – اولا :: فى حالة ان الدخل المتشابه أصغر من الصفر لدينا الدخل -1 والخرج -1 ولدينا الدخل -1 والخرج -2 وفى هذه الحالة يقوم البرنامج باخراج أخر خرج فقط للقيم المتشابه مثلا فى هذه الحالة يقوم البرنامج باخراج القيمة -2 عندما يكون الدخل -1 ولا يقوم باخراج -1 عند الدخل -1 ولذلك نجد النقطة -1و-1 غير سوداء وذلك لانها ليست نقطة اخراج. ----- ثانيا: فى حالة النقطتان المتشابهتان أكبر من الصفر مثل النقطتان 1و2 1و1 فانه البرنامج يقوم باخراج اول نقطة فقط
-------- ثالثا: فى حالة النقطتان تساوى صفر فان البرنامج يخرج المتوسط الخرج الاول يساوى -2 الخرج الثانى يساوى 2 المتوسط يساوى صفر ----------------- اما فى حالة وجود أكتر من دخلان لهم قيم متشابه
فان البرنامج يخرج قيمة الخرج الخاص بالنقطة المتوسطة فقط
عموما فى أغلب حالات الجداول فاننا نرى انه يحدث عمليه أخراج البيانات اذا وجد لكل عنصر فيها دخل ولكن فى ان الدخل الموجود يقع خارج القيم المحددة لقيم الدخول فى الجدول فاننا نجد ان السميولينك يقوم بتقدير قيمه للخرج المقابل له ويعتمد هذا على عدة طرق
Interpolation Methods عندما يقع قيمة الدخل بين عنصرين من عناصر breakpoint وهى العناصر المحددة للدخل فان البرنامج يقوم بحساب قيمته بدلاله القيم المجاورة ويوجد عدة طرق لعملية interpolation منها : Linear interpolation Cubic spline interpolation ويعتمد نوع عملية ال interpolation على البلوك المستخدم والطريقة الثانية هى :
Extrapolation Methods عندما تقع قيمة الدخل خارج عناصر breakpoint وهى العناصر المحددة للدخل ومنها : Linear extrapolation Cubic spline extrapolation
والطريقة الثالثة من طرق تقدير النقط المفقودة هى : Rounding Methods تتم هذه الحالة عندما يقع العنصر المراد تقدير قيمه خارح حدود breakpoint او يقع بين عنصرين ولم نقوم بتحديد العملية المستخدمه وتوجد عده طرق من عملية ال Rounding منها : Use Input Nearest يقوم البرنامج باخراج قيمه الخرج المقابل للدخل الاقرب للعنصر Use Input Below يقوم البرنامج باخراج قيمه الخرج المقابل للدخل الاقل قيمه بعد العنصر Use Input Above يقوم البرنامج باخراج قيمه الخرج المقابل للدخل الأكبر قيمه بعد العنصر
مثال: نجد فى الجدول الاتى قيم ال breakpoint من -5 الى 5 وقيمه الخرج
sinh([-5:5])
وعند اختيار قيمه للدخل تساوى 1.4 كقيمة داخل breakpoint ونستخدم قيمه 5.1 كقيمة خارج فنجد ان الخرج قيمته تختلف باختلاف الطريقة المستخدمة كما فى الجدول الاتى
العمود الايسر ويحتوى على البلوكات الموجودة فى النموذج المحدد الذى يتم اختياره والجزء الايمن يحتوى على بيانات بلوك الجدول المحدد حيث يمكنك تعديل اى قيمه فى الجدول يدويا كما تشاء كما يمكننا ايضا عمل عملية plotting للقيم الموجودة فى الجدول من خلال قائمة plot
------- مثال : سنقوم فى المثال الاتى بحساب اللوغاريتم من القيمه 1 الى القيمة 10 1- قم بعمل نموذج كما يلى
وضع فى بلوك الجدول ما يلى
والان افتح بلوك الثابت وغير الرقم الذى به على سبيل المثال ضع الرقم 5 ونلاخط هنا ان ال 5 هى من ضمن ال breackpoints الموجودة لدينا والناتج سيكون 0.698
وعندما نختار قمية موجودة داخل حدود ال breackpoints فاننا نجد البرنامج يقوم بعملية linearly interpolation وعندما نختار قيمة موجودة خارج حدود الbreackpoints فاننا نجد البرنامج يقوم بعملية linearly extrapolation
بسم الله الرحمن الرحيم
الاخوة الأعزاء سلام الله عليكم ورحمته وبركاته
اشيد بمجهودكم الكبير واتمنى من الله ان يوفقكم فى اختياركم للموضوعات لتجعلوا من هذا المنتدى الموقر صرحا عاليا فى مساعدة كل طالبى العلم باسلوب مشوق بعيدا عن التعقيدات .
كما اتمنى ان ارى الدروس السابقة على ان تكون حزمة متكاملة لهذا الموضوع.
اخوانى اكرر شكرى وعرفانى بجميل صنيعكم واترككم فى رعاية الله وامنه .
والسلام عليكم ورحمة الله وبركاته .,