مدلسازی Machine Vision توسط سیمولینک
مقدمه
در این فصل به نحوه مدلسازی سیستمهای دینامیکی و سیمولیشن آنها توسط سیمولینک پرداخته میشود در ادامه همین فصل مفهوم، طرز کار و نحوه پیاده سازی S-functionها (بعنوان یکی از اساسیترین بلوکهای سیمولینک) بیان میشود. و در نهایت چگونگی بهینهسازی مدل برای اجرای سریع و طرز کار شتابدهنده سیمولینک توضیح داده میشود. عناوین این فصل بشرح زیر میباشد:
1 - معرفی سیمولینک
2 - نحوه مدلسازی سیستمهای دینامیکی
3 - نحوه سیمولیشن سیستمهای دینامیکی
4 - معرفی S-function
5 - طرز کار S-function
6 - پیادهسازی S-function
7 - انواع S-functionهای موجود در سیمولینک
8 - شتابدهنده سیمولینک
1 - معرفی سیمولینک
سیمولینک نرمافزاری است که قابلیتهای مدلسازی، سیمولیشن وآنالیز سیستمهای متغیر با زمان را فراهم میسازد به این سیستمها اصطلاحا سیستمهای دینامیکی گفته میشود. این نرمافزار عموما برای شبیهسازی سیستمهایی مثل مدارهای الکتریکی، مکانیکی و هیدرولیکی بکار میرود.
سیمولیشن یک سیستم دینامیکی توسط سیمولینک پروسهای دو مرحلهای میباشد:
مرحله اول: طراحی مدل گرافیکی سیستم توسط امکانات محیط نرمافزار
مرحله دوم: آنالیز سیستم در بازه زمانی مورد نظر توسط سیمولینک
2 – مدلسازی سیستمهای دینامیکی
سیمولینک کتابخانهای از انواع بلوکهای استاندارد تدارک دیده که کاربر میتواند بکمک آنها و محیط طراحی سیمولینک سیستم دینامیکی مورد نظر را طراحی کند. در زیر کلمات کلیدی در مدلسازی سیمولینک تعریف شده است.
بلوک دیاگرام: بلوک دیاگرام نمایشی گرافیکی از مدل سیستم دینامیکی است. هر سیستم دینامیکی تشکیل شده است از چندین بلوک که توسط یکسری خطوط بهم وصل شدهاند.
بلوک: هر بلوک بیانگر یک المان سیستم دینامیکی است که با توجه به ورودیها و توابع حالت تعریف شده در هر زمان سیگنال خاصی را تولید و ارسال میکند.
حالت: بلوکها میتوانند دارای بردار حالت باشند. بردار حالت متغیری است که خروجی بلوک را با توجه به مقدار بردار ورودی و مقدار بلوک در زمان قبلی تعیین میکند. بلوکی که دارای بردار حالت است، همواره نتایج بردار حالت در مرحله قبلی را ذخیره میکند تا در محاسبات زمان حال خود از آنها استفاده کند. به همین خاطر این بلوکها دارای نوعی حافظه برای ذخیره نتایج مرحله قبلی خود هستند. بعنوان مثال بلوک انتگرالگیر سیمولینک که از بردار حالت استفاده میکند برای انتگرالگیری از ورودی از لحظه شروع سیمولیشن تا زمان حال استفاده میشود. واضح است که مقدار
انتگرال در هر لحظه به نتیجه انتگرالهای زمان قبلی بستگی دارد البته بلوکهایی مثل بلوک Gain وجود دارد که فاقد بردار حالت هستند. خروجی این بلوک حاصلضرب مقدار ورودی در یک مقدار ثابت است.
تابع سیستم(System Function): هر بلوک سیمولینک دارای یک مجموعه توابع سیستم است که روابط متغیر با زمان بین ورودیها، بردار حالت و خروجی بلوک را مشخص میکند این توابع عبارتند از:
1-تابع خروجی(Output Function): تابعی است که خروجی را بکمک مقادیر ورودی بردار حالت و زمان مشخص میکند.
2-Update Function: تابعی است که برای محاسبه بردار حالت گسسته در استپ بعدی مورد استفاده قرار میگیرد. ورودیهای این تابع بردار حالت زمان حال و مقادیر ورودی بلوک میباشد.
3- Derivative Function: تابعی است که رابطه بین مشتقات تابع حالت سیستم پیوسته و مقادیر فعلی تابع حالت و بردار ورودی را تعریف میکند.
بطور سمبلیک توابع سیستم بصورت زیر تعریف میشود:
Output Function
Update Function
Derivative Function
که در آن :
که t زمان، Xبردار حالت بلوک، u بردار ورودی بلوک، y بردار خروجی بلوک،Xd مشتق بردار حالت گسسته و مشتق بردار حالت پیوسته میباشد.
هنگام سیمولیشن، سیمولینک در هر استپ زمانی با احضار این توابع مقادیر بردار حالت و بردار خروجی را حساب میکند.
پارامترهای بلوک: بسیاری از مشخصات بلوکها پارامتری هستند. تعریف پارامتریک این مشخصات امکان تغییر مقادیر این مشخصات را در حین آنالیز مدل فراهم میسازد که در دستیابی به یک مدل بهینه بسیار مفید میباشد.
بلوکهایی که دارای این قابلیت باشند بلوکهای tunable گفته میشود بلوکهایی که فاقد این خاصیت باشند فقط میتوان قبل از شروع آنالیز مقادیر پارامتریک آنها را تعیین کرد.
بلوکهای Continues & Discrete: بلوکهای سیمولینک به دو نوع پیوسته و گسسته تقسیمبندی میشوند. در بلوکهای پیوسته مقادیر خروجی بلوک با تغییر مقدار ورودی تغییر میکند اما در بلوکهای گسسته زمان پاسخگویی به ورودی فقط در لحظات خاصی امکانپذیر است که به Block Sample Time معروف است. در این نوع بلوکها مقادیر خروجی بلوک بین هر دو استپ همواره مقدار ثابت استپ قبلی است. هر بلوک گسسته دارای پارامتری تحت عنوان زمان نمونهبرداری است که در آن زمانها عملیات نمونهبرداری و بهنگامسازی نتایج بلوک را انجام میدهد. نمونهای از اینگونه بلوکها، بلوکDiscrete Pulse Generator میباشد.
البته بعضی از بلوکها، مثل بلوک Gain، بسته به اینکه توسط بلوکهای پیوسته یا گسسته راهاندازی شده باشند، میتوانند متناظرا پیوسته یا گسسته عمل کنند.
زیرسیستمها(Subsystems): برای کاهش میزان پیچیدگی سیستمهای دینامیکی بزرگ بلوکهایی تحت عنوان زیرسیستم در نظر گرفته شده است. این بلوکها مجموعهای از چندین بلوک است که وظیفه خاصی را انجام میدهد.
با در اختیار داشتن همچین بلوکی، امکان مدلسازی به روش هیراچی فراهم میشودکه روش پذیرفته شدهای در همه زمینههای طراحی میباشد.
Data Type: سیمولینک همه انواع دیتاهای پذیرفته شده توسط Matlab مثل int8 ، int32 و double را قبول میکند. علاوه بر آن سیمولینک دو نوع دیتای اختصاصی نیز دارد:
Simulink.Parameter
Simulink.Signal
این نوع دیتاها، نوع خاصی از دیتا هستند که توسط دیتاهای پایه مثل int32 قابل ایجاد نیستند. البته سیمولینک قابلیت ایجاد دیتاهای جدید توسط کاربر را نیز دارد.
Solver: مدلهای سیمولینک همواره مشتقات زمانی از بردارهای حالت را فراهم میسازد به همین خاطر سیمولینک هنگام سیمولیشن باید مقادیر پیوستهای از بردار حالت را در هر لحظه محاسبه کند که اینکار را توسط انتگرالگیری از مشتقات موجود انجام میدهد.
انواع روشهای انتگرالگیری موجود است که هر کدام برای کاربردهای ویژهای تدارک دیده شده است. سیمولینک از یک Solver تحت عنوان (Ordinary Differential Equation)ODE استفاده میکند که روشی بسیار موثر، پایدار و دقیق در محاسبات انتگرالگیری عددی است. البته خود این Solver زیرمجموعههای متنوعی دارد که سیمولینک به کاربر اجازه انتخاب آنها را میدهد.
شامل 12 صفحه word
دانلود مقاله مدلسازی Machine Vision توسط سیمولینک