
معرفی DIMOLA- MODELICA
از زمان ابداع کامپیوتر، مدلسازی (modeling) و شبیهسازی (simulation) بخش مهمی از محاسبات شدند.
در ابتدا مدلسازان زیر بار تبدیل مدلهای خود به سیستمهای معادلات دیفرانسیل معمولی یا ODE و پس از آن نوشتن کد برای انتگرالگیری از معادلات دیفرانسیل برای اجرای شبیهسازیها قرار گرفتند. پس از آن بازه وسیعی از نرمافزارهای انتگرالگیر به وجود آمدند و برای مدلسازها امکان تمرکز بر معادلات دیفرانسیل پایهای و استفاده از انتگرالگیرهای از پیش آماده را برای شبیهسازی فراهم کردند. این روند فراهم ساختن امکان برای مدلسازان برای تمرکز بر توضیح رفتار مسایل و تمرکز کمتر بر روشهای حل تا به امروز ادامه پیدا کرده است. در سه دهه گذشته، ابزارهای زیادی برای کمک به مدلسازان در انجام شبیهسازی ایجاد شدهاند. برخی از آنها ابزارهای شبیهسازی عمومی مانند ACSL، EASY5، SytemBuild و Simulink هستند. ابزارهای دیگری برای شبیهسازی در زمینههای خاص مهندسی همانند اسپایس (SPICE)در مدار های الکتریکی آدامز (ADAMS)در سیستم های مالتی بادی، اسپن پلاس (ASPEN PLUS) در فرایندهای شیمیایی به وجود آمده اند.
هر کدام از این انواع ابزارها دارای مزایای خود هستند. به عنوان مثال ابزارهای عمومی باعث محدود شدن مدلساز به دامنه خاصی نمیشوند ولی مدلساز را مجبور به صرف زمان بیشتری برای فرموله کردن مدلها در آن ابزار خاص میکنند. به همین صورت ابزارهایی که برای یک دامنه مهندسی خاص ایجاد شدهاند دارای روشهای عددی و اینترفیسهای کاربری گرافیکی هستند که برای آن دامنه خاص بهینه شدهاند ولی توانایی مدلساز را برای ایجاد مدلهای با دامنه ترکیبی (mixed-domain) محدود میکنند.
یکی از ابزارهای شبیهسازی عمومی، زبان برنامهنویسی مدلیکا (Modelica) است. ایده اصلی پشت مدلیکا ایجاد یک زبان مدلسازی است که بتواند رفتار مدلها را از بازه گستردهای از دامینهای مهندسی بدون محدود شدن مدلها به یک ابزار تجاری خاص بیان کند. به بیان دیگر، مدلیکا یک زبان مدلسازی و در عین حال یک مشخصه برای تبادل مدل است. برای رسیدن به این هدف، ایجاد کنندگان زبانهای شیءگرای (object-oriented languages) قبلی همانند آلان (Allan)، دایمولا (Dymola)، آبجکت مت (ObjectMath)، اناماف (NMF)، اومولا (Omola)، سیدوپس پلاس (SIDOPS+) و اسمایل (Smile) به همراه متخصصان دامینهای مهندسی مختلف گرد هم آمدند و مشخصات زبان دایمولا را بر اساس تجربه بالای خود تدوین کردند.
مدلیکا میتواند برای حل مسایل مختلفی که میتوانند رفتار متغیرهای پیوسته را به صورت معادلات دیفرانسیل جبری (differential-algebraic equations) یا DAEها بیان کنند، به کار رود. توانایی فرموله کردن مسایل به صورت DAEها به جای ODEها (معادلات دیفرانسیل معمولی)اضافه بار بر روی ایجاد کننده مدل را به دلیل نیاز به زحمت کمتر برای فرموله کردن معادلات کاهش میدهد. علاوه بر کار با متغیرهای پیوسته، مدلیکا دارای ویژگیهایی برای توضیح متغیرهای گسسته همانند سیگنالهای دیجیتال میباشد. اغلب راحتتر یا حتی لازم است که رفتار پیوسته و گسسته را به همراه هم مدل کرد. مدلیکا امکان توضیح هر دو رفتار را در یک سیستم مدل و یا حتی یک مدل کامپوننتی فراهم میکند.
در صورتی که تاکنون در پروژههای مدلسازی در مقیاس بزرگ درگیر بوده باشید، احتمالا متوجه شدهاید که توسعه مدل از جهتهای مختلفی شبیه توسعه نرمافزار در مقیاس بزرگ است. همانند یک زبان برنامهنویسی، هدف یک زبان مدلسازی توضیح رفتار قطعات کوچکی از یک سیستم بزرگ است. یک زبان مدلسازی باید امکان استفاده مجدد (reuse) کارهای قبلی را داشته باشد و به مدیریت پیچیدگی سیستمها در زمانی که بزرگتر میشوند کمک کند. زمانی که یک مجموعه کامپوننتهای قابل استفاده مجدد ایجاد میشود، باید امکان کار با سطحهای بالاتر نیز وجود داشته باشد؛ به عبارت دیگر از نوشتن معادلات در سطح کامپوننت رها شویم و بر روی سیستمی به صورت یک مجموعه پیچیده، کار بیشتری انجام دهید. سرانجام این منجر به ایجاد سیستمهایی به روش بالا به پایین (top-down approach) میشود.
شرکت داسو برای بهره گیری از امکانات و کتابخانه های قدرتمند این نرم افزار ، امکان استفاده از آن را در مجموعه PLM خود فراهم کرده است که در زیر یک دمو از آن را میتوانید ببینید.
هرچند به یاری خداوند در آینده از مفاهیم سیستم و چگونگی عملکرد آن در کتیا V6 مقالاتی منتشر خواهیم کرد.