پیاده سازی دینامیک سیستم

دینامیک سیستم یا مدل دینامیکی یک سیستم عبارت از یک یا چند معادله دیفرانسیلی می باشد که به صورت خطی و یا غیرخطی بیان می شوند. بیان دینامیک سیستم در حالت کلی به صورت (dX/dt = f(X نوشته می شود. در این رابطه X به عنوان بردار متغیرهای حالت و تابع f به عنوان معادله حالت معرفی می شود. به منظور پیاده سازی دینامیک سیستم در متلب و در محیط سیمولینک در این نوشتار کوشیده ایم.

روشی که در این پست معرفی می شود می تواند برای تمام سیستم های خطی یا غیرخطی، سیستم های تک ورودی تک خروجی و یا سیستم چند ورودی چند خروجی، سیستم های شبکه ای با N گره، سیستم های پیوسته یا گسسته و … بکار گرفته شود.

در این روش نیاز به آشنایی مقدماتی با برنامه نویسی در متلب و در محیط سیمولینک داریم که در پست های قبلی تشریح شده اند.

بیان روش های مختلف

در حالت کلی به منظور پیاده سازی دینامیک سیستم می توان از کدنویسی در متلب و یا به عنوان روشی ساده تر از سیمولینک متلب بهره برد. در روش کدنویسی نیاز به بیان حلقه برای وارد کردن تابع زمان (زمان نمونه برداری برای مدل های گسسته) هستیم. اما در استفاده از سیمولینک می توان از انتگرال گیر به عنوان حلل سیستم استفاده کرد.

پیاده سازی در محیط سیمولینک

آنچه از دینامیک سیستم مشخص است، بیان مشتق متغیرهای حالت براساس خود متغیرهای حالت می باشد. چنانچه در سمت چپ این معادلات مشتق متغیرهای حالت و در سمت راست عبارات جبری (خطی یا غیرخطی) براساس متغیرهای حالت قرار دارد. بر همین اساس می توان در محیط سیمولینک از مشتق گیر و یا انتگرال گیر برای پیاده سازی استفاده کرد.

اما از طرفی استفاده از مشتق گیر توصیه نمی شود. مشتق گیر از لحاظ پایداری مناسب کار نیست و از طرفی دیگر در سیستم های همراه با نویز و اغتشاش باعث تخریب شکل موج های حاصل می شود. بنابراین بهترین روش در این حالت استفاده از انتگرال گیر می باشد.

انتگرال گیر پیوسته در زمان به عنوان یک بلوک پرکاربرد در سیمولینک می باشد. این بلوک را می توان از بخش Commonly used blocks جستجو کرد. اینترفیس این بلوک ساده می باشد و کافیست در آن مقدار اولیه و مقادیر کران بالا و پایین به منظور محدودسازی مقدار خروجی را وارد کرد.

بیان پیاده سازی با یک مثال

در دینامیک بیان شده در شکل زیر 8 متغیر حالت گنجانده شده است که مربوط به مدل دینامیک یک کووادروتور (پرنده چهارملخه) می باشد. در دینامیک اولیه این پرنده متغیرهای شتاب براساس متغیرهای سرعت و موقعیت بیان می شوند. به همین دلیل نیاز است تا متغیرهای میانی سرعت که به صورت مشتق موقعیت هستند ابتدا بیان شوند. 4 موقعیت پروازی شامل ارتفاع و زوایای رول، پیچ و یاو برای بیان دینامیک یک کووادروتور نیاز است که در مجموع 8 متغیر فضای حالت را برای پرنده ایجاب می کند.

پیاده سازی دینامیک سیستم در متلب min 300x246 پیاده سازی دینامیک سیستم در سیمولینک

دینامیک سیستم کووادروتور (پرنده چهارملخه)

به منظور پیاده سازی دینامیک سیستم کووادروتور در متلب، ابتدا ابزار مناسب را انتخاب می کنیم. یکی از بهترین ابزار برای کدنویسی در محیط سیمولینک بلوک Matlab function می باشد. این بلوک را می توان از بخش User-defined functions جستجو کرد. حال مدل فضای حالت غیرخطی را می توان در داخل این ابزار کدنویسی کرد. به این صورت که معادله مرتبط با هر متغیر حالت را به صورت کد وارد می کنیم. در این حالت خروجی های تابع مشتقات متغیرهای حالت می باشند و ورودی ها می توانند ترکیبی از خود متغیرهای حالت، ورودی های رفرنس، سیگنال های کنترل، سیگنال های تطبیق، اغتشاش و … باشند. در زیر کد نوشته شده به این منظور نمایش داده شده است.

کد نوشته شده به منظور پیاده سازی دینامیک سیستم کووادروتور min 300x155 پیاده سازی دینامیک سیستم در سیمولینک

کد نوشته شده به منظور پیاده سازی دینامیک سیستم کووادروتور در متلب

در خروجی تابع مشتقات متغیرهای حالت گرفته می شود، بدیهی است که به منظور اخذ خود متغیرهای حالت نیاز به استفاده از انتگرال گیر داریم. بدین ترتیب در خروجی هر کدام از این متغیرها از یک انتگرال گیر استفاده می شود. مقدار اولیه تنظیم شده برای هر کدام از این انتگرال گیرها همان مقدار اولیه متغیر حالت می باشد.

دریافت ویژگی خروجی ها

به طور مشخص در مطالعه پایداری یک سیستم نیاز است تا پایداری به لحاظ پایدارسازی مقادیر اولیه و همچنین ردیابی مورد بررسی قرار گیرد. به این منظور بهتر است هر دو مورد در شبیه سازی ها بررسی شود. مسئله ردیابی به تعقیب مسیر مشخص به عنوان مسیر مرجع می پردازد که به صورت متغیر در زمان ارائه می شود. برای این منظور پس از طراحی سیستم کنترل به منظور صفر نمودن خطای متغیر از مسیر مرجع، کافی است تا سیگنال در شبیه سازی ایجاد شده و به بلوک مورد نظر انتقال داده شود.

منبع : برق تِک

About برق تِک

Leave a Reply

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *