سیگنال ها و هشدارهای جعلی در مورد آن

ساخت وبلاگ

از این تکنیک ها برای از بین بردن حلقه های جبری در یک مدل استفاده کنید.

تأخیر را برای از بین بردن حلقه های جبری معرفی کنید

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

مدل پیوست شده با این مثال را در نظر بگیرید. دو حلقه جبری ناشی از زیر سیستم های اتمی در مدل وجود دارد

  • Blackbox A > Blackbox B > Blackbox C >Blackbox a
  • Blackbox B > Blackbox C >جعبه سیاه b

When you update this model, Simulink® detects the loop Blackbox A > Blackbox B > Blackbox C >Blackbox a

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

  • یک تأخیر واحد بین Blackbox A و Blackbox c اضافه کنید.
  • تأخیر واحد بین Blackbox B و Blackbox C را اضافه کنید.
  • بلوک های تأخیر واحد را به هر دو حلقه جبری اضافه کنید.

یک تأخیر واحد بین Blackbox A و Blackbox C اضافه کنید

اگر تاخیر واحد را در سیگنال بازخورد بین زیر سیستم های Blackbox A و Blackbox C اضافه کنید ، حداقل تعداد تأخیرهای واحد (1) را به سیستم معرفی می کنید. با معرفی تأخیر قبل از Blackbox A ، Blackbox B و Blackbox C از مرحله زمان فعلی استفاده می کنند.

یک تأخیر واحد بین Blackbox B و Blackbox C اضافه کنید

اگر یک تأخیر واحد بین زیر سیستم های Blackbox B و Blackbox C را اضافه کنید ، حلقه جبری را بین Blackbox B و Blackbox C می شکنید. علاوه بر این ، شما حلقه بین Blackbox A و Blackbox C را می شکنید ، زیرا این سیگنال حلقه جبری را تکمیل می کند. Blackbox C با قرار دادن بلوک تأخیر واحد قبل از Blackbox C ، اکنون با داده هایی از مرحله زمانی قبلی کار می کند.

تأخیرهای واحد را به هر دو حلقه جبری اضافه کنید

در مثال در اینجا ، شما بلوک های تأخیر واحد را برای شکستن هر دو حلقه جبر درج می کنید. در این مدل ، blackbox_a و blackbox_b از مرحله زمانی قبل از داده ها استفاده می کنند. blackbox_c از داده های مرحله فعلی استفاده می کند.

حلقه های جبر را به صورت دستی حل کنید

اگر Simulink ® نتواند حلقه جبری را حل کند ، این نرم افزار خطایی را گزارش می کند. برای حل دستی حلقه از یکی از این تکنیک ها استفاده کنید:

  • DAE های اساسی را با استفاده از تکنیک هایی مانند تمایز یا تغییر مختصات بازسازی کنید. این تکنیک ها DAE ها را به شکلی قرار می دهند که حل کننده حل کننده حلقه جبر آسان تر است.
  • DAE ها را به ODE تبدیل کنید ، که هر حلقه جبری را از بین می برد.
  • حدس های اولیه را با استفاده از بلوک های محدودیت IC و جبری ایجاد کنید

حدس های اولیه را با استفاده از بلوک های محدودیت IC و جبری ایجاد کنید

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

دو روش برای مشخص کردن یک حدس اولیه وجود دارد:

  • یک بلوک IC را در حلقه جبری قرار دهید.
  • یک حدس اولیه را برای یک سیگنال در یک حلقه جبری با استفاده از یک بلوک محدودیت جبری مشخص کنید.

چگونه Simulink حلقه های جبری مصنوعی را از بین می برد

هنگامی که شما می توانید وقایع حلقه جبر را به حداقل برسانید ، Simulink سعی می کند حلقه های جبر مصنوعی را از بین ببرد. در این مثال ، این مدل حاوی یک زیر سیستم اتمی است که باعث ایجاد یک حلقه جبری مصنوعی می شود.

محتویات زیر سیستم اتمی مستقیم تغذیه ای نیست ، اما Simulink زیر سیستم اتمی را به عنوان خوراک مستقیم مشخص می کند.

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

برای از بین بردن این حلقه جبری ،

  1. مدل را از گرافیک های قبلی ایجاد کنید ، با زیر سیستم اتمی که باعث ایجاد حلقه جبر مصنوعی می شود.
  2. در صفحه Diagnostics پارامترهای پیکربندی مدل ، پارامتر حلقه جبر را روی هشدار یا هیچ یک تنظیم کنید.
  3. To display the block execution order for this model and the atomic subsystem, in the Debug tab, select Information Overlays>دستور اعداممرور سفارش اجرای می تواند به شما در درک چگونگی از بین بردن حلقه جبر مصنوعی کمک کند. تمام بلوک های موجود در زیر سیستم در همان سطح اجرا می شوند: 1. (0 پایین ترین سطح است که نشانگر اولین بلوک های اجرای آن است.)

برای کسب اطلاعات بیشتر در مورد سفارش اجرای بلوک ، به کنترل و نمایشگر اجرای نمایش مراجعه کنید.

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

هنگامی که یک مدل را شبیه سازی می کنید ، همه بلوک ها روش ها را به این ترتیب اجرا می کنند:

  1. mdloutputs
  2. مگسدوراوات
  3. مگدپدیت

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

برای اطلاعات بیشتر در مورد این روش ها ، به مدل های Simulink مراجعه کنید.

اگر پارامتر وقایع حلقه جبر را برای زیر سیستم اتمی فعال کنید ، این نرم افزار زیر سیستم را به دو واحد اتمی تقسیم می کند.

این شرایط درست است:

  • واحد اتمی 2 دارای خوراک مستقیم نیست.
  • واحد اتمی 1 فقط یک روش mdloutputs دارد.

فقط روشهای mdlderivatives یا mdlupdate واحد اتمی 2 به خروجی واحد اتمی نیاز دارند. Simulink می تواند آنچه را که به طور معمول در روش MDLOUTPUT واحد اتمی 1 در روش های mdlderivatives از واحد اتمی 2 اجرا می شود ، اجرا کند.

دستور جدید اجرای مدل:

  1. روش mdloutputs مدل
  1. روش mdloutputs واحد اتمی 2
  2. روشهای mdloutputs سایر بلوک ها
  1. روش mdloutputs واحد اتمی 1
  2. روش mdlderivatives واحد اتمی 2
  3. روش mdlderivatives سایر بلوک ها

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

حلقه های جبر مصنوعی ناشی از زیر سیستم های اتمی را از بین ببرید

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

برای تبدیل یک زیر سیستم اتمی به یک زیر سیستم مجازی:

  1. مدلی را که حاوی زیر سیستم اتمی است باز کنید.
  2. بر روی زیر سیستم اتمی راست کلیک کرده و پارامترهای زیر سیستم را انتخاب کنید.
  3. درمان را به عنوان پارامتر واحد اتمی پاک کنید.
  4. تغییرات را ذخیره کنید.

اگر زیر سیستم اتمی را با یک زیر سیستم مجازی جایگزین می کنید و شبیه سازی هنوز با خطای حلقه جبری شکست می خورد ، مدل را برای یکی از این موارد بررسی کنید:

  • محدودیت جبری
  • یک حلقه جبری مصنوعی که توسط این زیر سیستم اتمی ایجاد نشده است

سیگنال های بسته بندی شده که حلقه های جبری مصنوعی ایجاد می کنند

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

در این مثال ، یک مدل خطی پویایی یک سیستم دو تانک تغذیه شده توسط یک پمپ واحد را شبیه سازی می کند. در این مدل:

  • خروجی Q1 میزان جریان سیال به داخل مخزن از پمپ است.
  • خروجی H2 ارتفاع مایع در مخزن دوم است.
  • بلوک حالت فضای پاسخ پویا سیستم مخزن به عملکرد پمپ را تعریف می کند:

اگر این مدل را با پارامتر حلقه جبر تنظیم کنید که به هشدار یا خطا تنظیم شده است ، Simulink حلقه جبری را مشخص می کند.

برای از بین بردن این حلقه جبری:

  1. ماتریس های C و D را به شرح زیر تغییر دهید:

پارامترهای مدل و بلوک برای تشخیص و از بین بردن حلقه های جبری مصنوعی

دو پارامتر وجود دارد که باید در نظر بگیرید وقتی فکر می کنید مدل شما دارای یک حلقه جبر مصنوعی است:

  • پارامتر وقایع حلقه جبر را به حداقل برسانید - مشخص کنید که Simulink سعی می کند هرگونه حلقه جبری مصنوعی را برای:
  • زیر سیستم های اتمی - در کادر گفتگوی Subsystem Parameters ، به حداقل رساندن وقایع حلقه جبری را انتخاب کنید.
  • بلوک های مدل - برای مدل ارجاع شده ، در مدل ارجاع مدل پارامترهای پیکربندی ، به حداقل رساندن وقایع حلقه جبر را انتخاب کنید.
تنظیمات پاسخ شبیه سازی
هیچ یک Simulink هیچ اقدامی انجام نمی دهد.
هشدار Simulink هشدار دهنده ای را نشان می دهد که پارامتر وقایع حلقه جبری به حداقل می رسد هیچ تاثیری ندارد.
خطا Simulink شبیه سازی را خاتمه می دهد و خطایی را نشان می دهد که پارامتر وقوع حلقه جبری به حداقل می رسد و هیچ تاثیری ندارد.

کاهش بلوک و حلقه های جبر مصنوعی

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

فعال کردن کاهش بلوک همچنین می تواند به حل شبیه سازی حلقه های جبری مصنوعی کمک کند.

مدل مثال زیر را در نظر بگیرید.

در ابتدا ، کاهش بلوک خاموش است. هنگامی که این مدل را شبیه سازی می کنید ، زیر سیستم واحد اتمی و به دست آوردن و مقایسه با بلوک های ثابت بخشی از یک حلقه جبری است که Simulink نمی تواند آن را حل کند.

اگر سفارش کاهش و اجرای بلوک را فعال کنید و دوباره مدل را شبیه سازی کنید ، Simulink ترتیب اجرای بلوک هایی را که کاهش یافته است نشان نمی دهد. اکنون می توانید به سرعت ببینید که کدام بلوک ها کاهش یافته است.

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

هشدار: اگر واردات 'ex_aloop_block_reduction_errwa/ واحد اتمی/ in1' از زیر سیستم 'ex_aloop_block_reduction_errwa/ واحد اتمی' شامل بازخورد مستقیم باشد ، سپس یک حلقه جبری وجود دارد ، که شبیه سازی نمی تواند حذف کند. برای جلوگیری از این هشدار ، پارامتر "به حداقل رساندن وقایع حلقه جبر" را در نظر بگیرید.

نکته

از بلوک های انتخاب اتوبوس استفاده کنید تا فقط سیگنال های مورد نیاز را به زیر سیستم های اتمی منتقل کنید.

مطالب مرتبط

  • مفاهیم حلقه جبر
  • حلقه های جبر را در مدل خود شناسایی کنید
  • مدلینگ ملاحظات با حلقه های جبری

نمونه باز

شما یک نسخه اصلاح شده از این مثال دارید. آیا می خواهید این مثال را با ویرایش های خود باز کنید؟

کتاب آموزش بورس...
ما را در سایت کتاب آموزش بورس دنبال می کنید

برچسب : نویسنده : محمود استادمحمد بازدید : 43 تاريخ : دوشنبه 2 مرداد 1402 ساعت: 2:01