خطا در محیط سیمولینک

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

  1. خطاهای با ماهیت تنظیمات سیمولینک : این خطاها می تواند به علت عدم آشنایی کاربر با تنظیمات سیمولینک باشد، به عنوان مثال بکارگیری بلوک انتگرال گیر پیوسته در یک محیط سیمولینک با تنظیمات حل گسسته(discrete solver) منجر به بروز خطای قطعی می گردد. این تنظیمات در آموزش های قبلی ارائه شده است. از انواع دیگر این خطاها می تواند ارائه تگ های یکسان به اسکوپ و یا بلوک های موسوم به go to اشاره کرد.
  2. خطاهای با ماهیت مداری : این خطاها می تواند به دلیل بستن اجزای نامتناسب مداری (شامل ترانسفورماتور ، منابع جریان ، ولتاژ و …) باشد. در یک دیدگاه کلی در این شرایط نمی توان دو منبع جریان به صورت سری با یکدیگر قرار داد. و هم ارز موازی آن برای منابع ولتاژ . در مورد این خطا بعدها بحث خواهد شد.
  3. شرایط زمان نامحدود : در این حالت ممکن است در سیمولینک با خطایی روبرو نشویم ولی از طرفی به دلیل کند بودن سرعت شبیه سازی عملا فرآیند مورد نظر انجام نپذیرد. در این شرایط بایستی به دنبال دلایل واگرایی در شبیه سازی باشیم که می تواند به دلیل ناپایداری انتگرال گیرهای بکار رفته و … باشد. این مورد را می توان با تغییر solver نیز حل کرد.
  4. یک دسته مهم دیگر از خطاهای معمول در محیط سیمولینک ناشی از لوپ جبری می باشد. همانطور که در جلسه تنظیمات مربوط به سیمولینک بیان شد می توان خطای لوپ جبری را با حذف تیک مربوطه کنار گذاشت . اما آنچه مشخص است این اقدام علاوه بر ایجاد پاسخ های نادرست احتمالی نمی تواند به طور قطع این خطا را حذف کند. در ادامه درباره این خطا و عوامل رفع آن صحبت می کنیم.

خطای لوپ جبری در متلب ( Algebraic Loop)

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

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

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

این مسئله بصورت واضح در شکل زیر نمایش داده شده است.

وقوع خطای لوپ جبری 300x152 خطای لوپ جبری در سیمولینک متلب

شکل مربوط به خطای لوپ جبری

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

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

برطرف کردن خطای لوپ جبری 300x134 خطای لوپ جبری در سیمولینک متلب

رفع خطای لوپ جبری با استفاده از بلوک تاخیر واحد گسسته

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

منبع : برق تِک

About برق تِک

Leave a Reply

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