محدود کردن سیگنال در سیمولینک
به نام خدا و سلام.
به جلسه هشتم از سری جلسات آموزش سیمولینک متلب خوش آمدید. آموزش تخصصی سیمولینک متلب از وبسایت متلبپلاس ارائه میشود. در جلسات قبل آموزش سیمولینک به معرفی بلوکهای ریاضی پرکاربرد، رسم نمودار، ورودی، زیرسیستم و… پرداختیم. در این جلسه با بلوکهای Sign و Saturation در سیمولینک آشنا میشویم. ازین بلوکها برای محدود کردن سیگنالها در سیمولینک استفاده میشود.
با متلب پلاس همراه باشید.
مقدمه
در این جلسه ابتدا میخواهیم با محدود کردن یک سیگنال در سیمولینک آشنا شویم. منظور از محدود کردن سیگنال را با یک مثال توضیح میدهیم. میدانیم که یک متغیر در واقعیت نمیتواند هر مقدار دلخواهی داشته باشد. به طور مثال نمیتوانیم به یک اتومبیل هر شتاب یا سرعتی را وارد کنیم. بلکه بسته به توان اتومبیل میتوان سرعت یا شتاب تولید کرد. پس شتاب یک اتومبیل، به عنوان سیگنال کنترلی به یک سیستم بایستی محدوده مشخص داشته باشد. این محدوده بین به بیشترین و کمترین مقدار شتاب (مثبت و منفی) قرار دارد.
برای ایجاد این محدودیت روی سیگنالها در سیمولینک، میتوان از دو بلوک Sign و Saturation استفاده کرد.
بلوک sign در سیمولینک
بلوک sign در سیمولینک هر مقداری که به آن وارد شود را به یک یا منفی یک تبدیل میکند. به عبارت دیگر، در این بلوک فقط مثبت و منفی بودن اهمیت دارد. اگر سیگنال مثبت باشد به آن مقدار یک و اگر منفی باشد به آن منفی یک میدهد. درصورتی که سیگنال ورودی برابر با صفر باشد، خود آن را در خروجی میدهد.
برای دسترسی به بلوک Sign، در کتابخانه سیمولینک به سربرگ Math Operation از بخش Simulink مراجعه میکنیم.
برای درک بهتر، یک ورودی ماتریس اعداد ثابت (با استفاده از بلوک Constant) به بلوک Sign میدهیم. برای وارد کردن این ماتریس 3×3 در بلوک Constant در فیلد Constant Value درایهها را درون براکت قرار میدهیم. برای نمایش خروجی بلوک Sign نیز از بلوک Display استفاده میشود. پس از اجرا خواهیم داشت:
مشاهده میشود که اعداد بزرگتر از صفر، به یک و اعداد کوچکتر از صفر به منفی یک تبدیل شدهاند.
ممکن است بخواهیم مقادیر خروجی از بلوک Sign بین دو عدد دیگر (بجز یک و منفی یک) باشند. مثلا بخواهیم مقدار نهایی سیگنال خروجی بین دو عدد 2 و منفی 2 باشد. برای این کار بعد از بلوک sign یک بلوک Gain قرار میدهیم و آن را درخروجی Sign ضرب میکنیم.
بنابراین بلوک Sign در خروجی فقط مقدار یک، صفر و یا منفی یک را به ما میدهد. در نتیجه اگر مقداری بین یک و منفی یک باشد حذف شده و تبدیل به یک و منفی یک میشود. در مثال فوق دیدیم که مثلا عدد 0.5 (نیم) به یک تبدیل شد. این مشکل ممکن است در شبیه سازی اهمیت پیدا کند. برای رفع این مشکل میتوان از بلوک Saturation استفاده کرد. در ادامه آموزش سیمولینک متلب در کنترل، این بلوک را تشریح میکنیم.
بلوک saturation در سیمولینک
دیدیم که بلوک Sign مقدار سیگنال ورودی به آن را به یک و منفی یک تبدیل میکند. همچنین مشاهده شد که این بلوک مقادیر بین آنها را حذف میکند. اما در مسائل واقعی برای محدود کردن نیازی به حذف مقادیر میانی نیست. به عبارت دیگر یک محدوده مشخص داشته باشیم که اعداد بین ابتدا و انتها نیز باقی بمانند. در این مواقع از بلوک Saturation در سیمولینک استفاده میکنیم. لازم به ذکر است که در بلوک Saturation ابتدا و انتهای بازه را خودمان مشخص میکنیم. این بلوک مقادیر سیگنالهای ورودی را به این محدوده تبدیل میکند. اگر مقدار یک ورودی بین ابتدا و انتهای بازه باشد، خودش را بعنوان خروجی برمیگرداند. توجه داریم که این مورد را در بلوک Sign نداشتیم.
بلوک Saturation در سربرگ Simulink و بخش Commonly Used Blocks در کتابخانه سیمولینک قرار دارد. همچنین با دابل کلیک روی فضای خالی مدل و جستجوی عبارت Saturation نیز میتوان به این بلوک دسترسی داشت.
گفتیم که تعیین محدودهی خروجی بلوک Saturation توسط ما صورت میگیرد. برای تعیین بازه، ابتدا روی بلوک Saturation دابل کلیک میکنیم. در پنجره باز شده در بخش Upper Limit و Lower limit به ترتیب اعداد بزرگ و کوچک بازه وارد میشوند. مطابق شکل زیر.
در حالت پیشفرض ابتدا و انتهای بازه بلوک Saturation برابر با مثبت و منفی 0.5 است. حال مثالی که برای بلوک Sing در سیمولینک ارائه شد را با بلوک Saturation بررسی میکنیم. در این مثال حد بالا و پایین بلوک Saturation را مثبت و منفی 5 قرار میدهیم. پس از اجرا خواهیم داشت:
میبینیم که اعدادی مثل 1، 2 منفی 0.7 و… که درون بازه (مثبت و منفی 5) قرار دارند، تغییر نکردهاند. در این مثال فقط عدد 10 که خارج از بازه (مثبت و منفی 5) قرار داشته به 5 تبدیل شدهاست. به این ترتیب تفاوت نحوه عملکر بلوک Sign و Saturation در سیمولینک به وضوح دیده میشود.
جمعبندی
جلسه هشتم از مجموعه جلسات آموزش سیمولینک در اینجا به پایان رسید. در این جلسه از سری جلسات آموزش رایگان سیمولینک با نحوه محدود کردن مقدار سیگنال در سیمولینک آشنا شدیم. تفکیک مثبت و منفی بودن اعداد، تعیین محدوده مشخص و… ازین موارد اند. بلوکهای Sign و Saturation در سیمولینک برای محدود کردن مقدار سیگنال معرفی و مثال نیز حل شد. این بلوکها در انجام شبیه سازی سیستمهای مختلف کاربرد دارد. به همین دلیل توصیه میشود که مباحث این جلسه را بطور کامل و دقیق مطالعه کنید. هدف تیم متلب پلاس ارائه محتوای آموزشی درجه یک برای شما عزیزان است.
اگر سوال و ابهامی درباره مباحث این جلسه دارید در بخش نظرات (پایین همین صفحه) به ما بگید. از فهرست سمت راست👉 هم میتونید به محتوای بقیه جلسات آموزش سیمولینک متلب دسترسی داشته باشید.
دیدگاهتان را بنویسید