محاسبات ماتریسی در سیمولینک
به نام خدا و سلام.
به هفتمین جلسه از سری جلسات آموزش سیمولینک متلب خوش آمدید. آموزش متلب و سیمولینک رایگان از وبسایت متلبپلاس ارائه میشود. در جلسات قبل آموزش سیمولینک به معرفی بلوکهای ریاضی پرکاربرد، رسم نمودار، ورودی، زیرسیستم و… پرداختیم. در این جلسه میخواهیم با عملیات ریاضی ماتریسی در سیمولینک آشنا شویم. ایجاد ماتریس در سیمولینک، ترانهاده ماتریس، معکوس ماتریس و… ازین موارد اند.
با متلب پلاس همراه باشید.
ایجاد ماتریس ساده در سیمولینک
برای ایجاد ماتریس ساده (با اعداد ثابت) در هر اندازهای میتوان از بلوک Constant استفاده کرد. بلوک Constant در جلسات گذشته آموزش سیمولینک متلب برق بطور کامل معرفی شد. این بلوک در کتابخانه سیمولینک، بخش Simulink> Commonly Used Blocks قرار دارد. برای وارد کردن ماتریس در این بلوک، روی آن دابل کلیک کرده و در بخش Constant Value ماتریس را مشابه با متلب تعریف میکنیم. مثلا در تصویر زیر یک ماتریس 2 در 2 با درایههای 1 تا 4 تعریف کردهایم.
ظاهر بلوک Constant نیز در مدل به شکل زیر تغییر میکند.
درایههای ماتریس ایجاد شده با استفاده از بلوک Constant همیشه ثابت است. اما ممکن است بخواهیم ماتریسی تعریف کنیم که درایههای آن متغیر باشند. به عبارت دیگر این ماتریس از یک منابع مختلف تشکیل شود. این مورد را در ادامه توضیح میدهیم.
ایجاد ماتریس متغیر در سیمولینک (3 در 3)
برای ایجاد یک ماتریس 3*3 که هر درایه از آن یک ورودی باشد، از بلوک Create 3×3 Matrix استفاده میکنیم. در واقع این بلوک یک ماتریس 3 در 3 خالی ایجاد کرده و برای هر درایه یک پورت درنظر میگیرد. بلوک Create 3×3 Matrix در کتابخانه سیمولینک و بخش Aerospace Blockset > Utilities > Math Operations قرار دارد.
اگر مسیر دسترسی به این بلوک کمیطولانی است، میتوان به روش دیگری آن را به مدل اضافه کرد. به این صورت که ابتدا بر روی صفحه مدل سیمولینک دابل کلیک میکنیم تا یک کادر با آیکون جستجو ظاهر شود. سپس قسمتی از اسم بلوک را تایپ میکنیم. لیستی از پیشنهادهای مرتبط با جستجو نمایش داده شده و بلوک موردنظر را انتخاب میکنیم. به این ترتیب خود سیمولینک، بلوک موردنظر را به مدل اضافه میکند.
پس از افزودن بلوک Create 3×3 Matrix به مدل بایستی ورودیهای آن را پر کنیم. ورودیهای این بلوک میتوانند از هر بلوک یا سیستم دیگری باشند. تفاوت این بلوک با بلوک Constant نیز در همین است که درایههای ماتریس میتوانند متغیر باشند. در مثال زیر با استفاده از اعداد ثابت 1 تا 9 بلوک Constant این ورودیها را تکمیل میکنیم. در نهایت نیز خروجی را در بلوک Display وارد میکنیم تا نمایش داده شود. پس از اجرا اعداد در بلوک Display نمایش داده میشوند.
معکوس ماتریس 3x3 در سیمولینک
برای معکوس گیری از یک ماتریس 3×3 در سیمولینک از بلوک invert 3×3 Matrix استفاده میشود. این بلوک نیز در کتابخانه سیمولینک و در بخش Aerospace Blockset > Utilities > Math Operations قرار گرفته است.
برای دسترسی به این بلوک نیز میتوانید با دابل کلیک روی صفحه سیمولینک، نام آن را جستجو کنید. ماتریس موردنظر برای معکوس گیری را بعنوان ورودی به این بلوک وارد کرده و در خروجی معکوس آن را خواهیم داشت.
ترانهاده ماتریس در سیمولینک
برای ترانهاده کردن یک ماتریس در سیمولینک از بلوک Transpose استفاده میکنیم. بلوک Transpose سیمولینک در بخش Simulink> Quick Insert > Math Operations قرار دارد (مطابق شکل زیر).
برای دسترسی به این بلوک نیز میتوانید با دابل کلیک روی صفحه سیمولینک، نام آن را جستجو کنید.
برای مثال ماتریس 3*3 که در بالا با استفاده از بلوک Create 3×3 Matrix ایجاد کردیم را Transpose میکنیم.
محاسبه دترمینان ماتریس در سیمولینک
برای محاسبه دترمینان ماتریس در سیمولینک از بلوک Determinant of 3×3 Matrix استفاده میشود. این بلوک فقط قادر به محاسبه دترمینان ماتریسهای 3 در 3 است. برای دسترسی به این بلوک بایستی در کتابخانه سیمولینک به بخش Aerospace Blockset > Utilities > Math Operations مراجعه نمود.
چنانچه تمایل به طی این مسیر ندارید میتوانید در محیط خالی مدل دابل کلیک کرده و Determinant را جستجو کنید. برای درک بهتر نحوه کار این بلوک، دترمینان یک ماتریس 3 در 3 را محاسبه میکنیم.
دقت داریم که برای ایجاد یک ماتریس 3 در 3 از بلوک Constant استفاده شدهاست. این ماتریس بعنوان ورودی به بلوک Determinant of 3×3 Matrix وارد میشود. خروجی این بلوک نیز به بلوک Display شده تا نتیجه مشاهده شود. مقدار دترمینان ماتریس 3 در 3 شامل اعداد 1 تا 9 (به ترتیب) برابر با صفر است.
ضرب خارجی دو بردار در سیمولینک
برای ضرب خارجی دو بردار در سیمولینک از بلوک Cross Product استفاده میکنیم. این بلوک در بخش Simulink 3D Animation > Utilities کتابخانه سیمولینک قرار دارد.
همچننی برای پیدا کردن این بلوک میتوان در فضای خالی سیمولینک دابل کلیک کرده و Cross Product را جستجو کرد.
ضرب ماتریسی در سیمولینک
برای ضرب دو ماتریس 3 در 3 در سیمولینک میتوان از بلوک 3×3 Cross Product استفاده کرد. این بلوک در بخش Aerospace Blockset > Utilities > Math Operations کتابخانه سیمولینک قرار دارد.
توجه داشته باشید که در ضرب خارجی و ضرب ماتریسی ترتیب ورودی اهمیت دارد.
جمعبندی
جلسه هفتم از مجموعه جلسات آموزش سیمولینک در اینجا به پایان رسید. در این جلسه از سری جلسات آموزش رایگان سیمولینک با انواع عملیات ماتریسی در سیمولینک آشنا شدیم. ایجاد ماتریس، معکوس و دترمینان ماتریس، ترانهاده ماتریس، ضرب ماتریسی و… ازین موارد اند. سعی کردیم تا مهمترین و پرکاربردترین بلوکهای عملیات ماتریسی در سیمولینک را معرفی و مثال نیز ارائه کنیم. این بلوکها در انجام شبیه سازی سیستمهایی که معادلات آن ماتریسی است بسیار کاربرد دارد. به همین دلیل توصیه میشود که مباحث این جلسه را بطور کامل و دقیق مطالعه کنید. هدف تیم متلب پلاس ارائه محتوای آموزشی درجه یک برای شما عزیزان است.
اگر سوال و ابهامی درباره مباحث این جلسه دارید در بخش نظرات (پایین همین صفحه) به ما بگید. از فهرست سمت راست👉 هم میتونید به محتوای بقیه جلسات آموزش سیمولینک متلب دسترسی داشته باشید.
2 Comments
به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.
ممنون از این مطلب مفید
با سلام و عرض ادب
بسیار خوشحالیم که از کیفیت آموزش متلب راضی بودید.
موفق باشید.