بلوک فضای حالت State-Space در سیمولینک
به نام خدا و سلام.
به جلسه پانزدهم از سری جلسات آموزش رایگان سیمولینک خوش آمدید. آموزش سیمولینک و متلب از وبسایت متلبپلاس ارائه میشود. در جلسات گذشته انواع مختلف بلوکهای سیمولینک معرفی شد. برای مشاهده این جلسات از منوی سمت راست 👉 (لیست) این صفحه اقدام نمائید. در این جلسه به معرفی بلوک State-Space و نحوه استفاده از آن در سیمولینک میپردازیم. در ادامه با جزئیات این بلوک بطور کامل آشنا میشویم.
با متلبپلاس همراه باشید.
بلوک فضای حالت در سیمولینک (State-Space)
بلوک فضای حالت (State-Space) در سیمولینک مربوط به ایجاد معادلات خطی در فضای حالت است. با استفاده از این بلوک میتوان با وارد کردن مشخصات فضای حالت سیستم، آن را ایجاد کرد. بلوک State-Space در کتابخانه سیمولینک بخش Continuous قرار دارد. مطابق شکل زیر.
بلوک State-Space سیستمی که رفتار آن به شکل زیر است را پیاده سازی میکند:
که x بردار حالت، u بردار ورودی، y بردار خروجی و x0 شرط اولیه بردار حالت است. ضرایب ماتریسها باید این ویژگیهای زیر را داشته باشند:
- A باید یک ماتریس n در n باشد که n تعداد متغیرهای حالت است.
- B باید یک ماتریس n در m باشد که m تعداد ورودیها است.
- C باید یک ماتریس r در n باشد که r تعداد خروجیها است.
- D باید یک ماتریس r در m باشد.
برای وارد کردن ماتریسهای A,B,C و D ابتدا روی این بلوک دابل کلیک میکنیم. سپس پنجرهای مطابق زیر باز خواهد شد.
در این پنجره ماتریسهای فوق وارد میشوند. همچنین میتوان ماتریسها را در متلب تعریف و ذخیره نمود و سپس در سیمولینک فراخوانی کرد. در واقع هر متغیری که در Workspace ذخیره شده باشد در اینجا نیز قابل استفاده خواهد بود. برای درک بهتر، به مثال زیر دقت کنید. در این مثال ابتدا یک ماتریس به نام A در متلب تعریف میکنیم. سپس این ماتریس را در بخش پارامترهای بلوک State-Space فراخوانی میکنیم.
به طور کلی بلوک State-Space دارای یک پورت ورودی و یک پورت خروجی است. تعداد سطرها در ماتریس C یا D برابر با عرض درگاه خروجی است. تعداد ستونهای ماتریس B یا D با عرض پورت ورودی برابر است. اگر میخواهید یک سیستم خطی مستقل و بدون ورودی مدل کنید، ماتریسهای B و D را خالی قرار دهید. در این حالت بلوک به عنوان یک بلوک منبع بدون درگاه ورودی و یک پورت خروجی عمل میکند و سیستم زیر را پیاده سازی میکند:
در ادامه آموزش سیمولینک متلب، یک مثال از این بلوک حل خواهد شد.
حل مثال از بلوک State-Space در سیمولینک
حال برای درک بهتر نحوه استفاده از این بلوک در سیمولینک، یک مثال ارائه میکنیم. سیستم دینامیکی موردنظر بصورت زیر تعریف شده است.
ماتریسهای A و B و C در معادلات فوق مشخص شده است. این ماتریسها را در متلب با نامهای A, B و C ذخیره میکنیم.
حال به سیمولینک رفته و بلوک State-Space را به مدل اضافه میکنیم. یک بلوک Step (ورودی پله) برای ورودی به این سیستم و یک بلوک Scope برای نمایش خروجی اضافه میکنیم. مدل نهایی در سیمولینک بصورت زیر خواهد بود.
پس از اجرای مدل، روی بلوک Scope دابل کلیک میکنیم تا خروجی سیستم دیده شود.
جمعبندی
جلسه پانزدهم از مجموعه جلسات آموزش رایگان سیمولینک در اینجا به پایان رسید. در این جلسه با بلوک State-Space در سیمولینک آشنا شدیم. بلوک State-Space برای پیادهسازی سیستم خطی با معادلات فضای حالت در سیمولینک بکار میرود. کافیست آن را به مدل اضافه کرده و ضرایب فضای حالت را وارد کنیم. برای درک بهتر نحوه استفاده از این بلوک، یک مثال نیز حل شد.
بدلیل کاربرد فراوان معادلات فضای حالت و سیستمهای خطی، توصیه میشود که مباحث این جلسه را بطور کامل و دقیق مطالعه کنید. هدف تیم متلب پلاس ارائه محتوای آموزشی درجه یک برای شما عزیزان است. اگر سوال و ابهامی درباره مباحث این جلسه دارید در بخش نظرات (پایین همین صفحه) به ما بگید. از فهرست سمت راست👉 هم میتونید به محتوای بقیه جلسات آموزش سیمولینک متلب دسترسی داشته باشید.
6 Comments
به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.
سلام من یه معادله فضای حالت دارم که فقط ماتریس A داره با شرایط اولیه ولی وقتی تو سیمولینک میزنم فقط یه خط صاف میده مشکل چیه؟
سلام و عرض ادب
بایستی ماتریسهای B و C رو هم تعریف کنید. ماتریس C مربوط به خروجی هست. احتمالا به همین دلیل هیچ خروجیای ندارید که ماتریس C رو تعریف نکردید. ماتریس B هم مربوط به ورودی سیستم هست که طبیعتا لازمه.
چون ماتریس C و B و D نداشت من بقیه رو صفر گذاشتم.
بله مشکل از همونه.
سلام و وقت بخیر
چقدر جالب بود روش ابتکاری برای اندیس گذاری معادلات حالت
اینطوری اصلا فراموش نمیکنم
یک دنیا متشکر
ما در تیم متلبپلاس با نظرات شما عزیزان انگیزه مضاعف برای ادامه کار دریافت میکنیم، موفق و پیروز باشید