شبیه سازی (Simulation) فرآیند تقلید یا همگونسازی شرایط اجرایی یک سیستم یا پروژه در محیط کنترل شده است. مفهوم شبیه سازی در بسیاری از زمینه ها از قبیل تکنولوژی، بهینهسازی، ایمنیمهندسی، تست کردن سیستمهای امنیتی، آموزش و بازیهای آنلاین مورد استفاده قرار میگیرد. یکی از رایج ترین نمونههای شبیه سازی (Simulation) در رشته کامپیوتر انجام میشود که شخص پژوهشگر پس از طراحی یک مدل آن را در محیط سیستم اجرا کرده و شبیه سازی مینماید. حتی در رشتههای علوم اجتماعی و یا اقتصاد نیز مدلهای علمی طراحی شده توسط محققان در محیط کنترل شده تست شده و نتایج آن در واقعیت تعمیم داده میشود.
یکی از نکات کلیدی در شبیهسازی (Simulation) این است که شخص محقق در زمان طراحی سیستم میبایست به دادههای موثق و صحیحی دسترسی داشتهباشد چرا که نقص در دادهها موجب نقصان در سیستم شده و شبیه سازی آن نتایج اشتباهی را ارائه خواهد کرد. دومین نکته در شبیه سازی سیستمها، خصوصا در رشتههای مانند کامپیوتر، سادهسازی تقریبها و فرضیهها (Approximation and Assumption) است. فرآیندها و پروتکلهای اعتبارسنجی و روایی یک مدل در حال حاضر تبدیل به یک رشته دانشگاهی شده است که دانشجویان در آن با چگونگی اصلاح، تعدیل، اشکال یابی و توسعه مدلهای شبیه سازی شده خصوصا در رشتههای علوم کامپیوتری آشنا میشوند.
به طور کلی در ابتدا فرآیند شبیه سازی کاملا مستقل از رشتهها و علوم دانشگاهی توسعه پیدا کرده و در زمینههای مختلف علمی و صنعتی به گستردگی مورد استفاده قرار میگرفت. اما در قرن بیستم با توسعه بیشتر سیستمهای کامپیوتری، مطالعات تئوری سیستمها و سایبرنتیک (Cybernetics) میزان توجهات به این حوزه افزایش یافته و مفهوم شبیه سازی بسیار تخصصیتر شد. در همین راستا چندین مفهوم متمایز از شبیه سازی به وجود آمد که عبارتند از :
شبیهسازی فیزیکی (Physical Simulation): شبیه سازی فیزیکی به معنای ایجاد شرایط و مکانیزمهای آزمایشگاهی کاملا منطبق بر شرایط خارج و محیط واقعی است. در فرآیند شبیه سازی فیزیکی سعی میشود نمونه طراحی شده با مواد اولیه مشابه نمونه اصلی تست و بررسی شود. ویژگیها و مشخصات این مواد در نمونه شبیه سازی شده دقیقا مشابه محصول نهایی است که به دست مصرف کننده یا مشتری میرسد. با توجه به ظرفیت سیستم شبیه ساز، نتایج بدست آمده از این شبیه سازی بسیار کاربردی بوده و به صورت مستقیم میتوان در خط تولید و یا طراحی محصول مورد استفاده قرار داد.
شبیهسازی فعالانه (Interactive Simulation): نوعی از شبیهسازی فیزیکی است که با مداخله انسان در فرآیند شبیهسازی همراه است و به نوعی تعامل بین انسان و هوش مصنوعی محسوب میشود. از جمله شبیه سازهای فعالانه میتوان به شبیه ساز پرواز (Flight Simulator) و شبیه ساز رانندگی (Driving Simulator) اشاره کرد. این نوع از سیستمهای شبیه ساز که برای تعامل انسان و هوش مصنوعی یک پلتفرم ارتباطی با کاربری آسان را فراهم میکند اصطلاحا VIS میگویند.
شبیهسازی مداوم (Continiuous Simultion): شبیه سازی مداوم نوعی از فرآیند شبیهسازی است که به صورت دورهای و طی مدت زمانهای مشخص اقدام به بررسی و تست مدل طراحی شده کرده و خروجیها را در یک بازه زمانی ارائه مینماید. یکی از پیچیدهترین انواع شبیه سازی مربوط به مدلهای Continiuous Simultion است که در آن محقق فرمولهای ریاضی بسیار گستردهای را در سیستم تعریف میکند تا مدل در وضعیتها و شرایط مختلف و متفاوت در بازههای زمانی مشخص تست و بررسی شود. برای مثال مدار الکتریکی را در نظر بگیرید که سریهای متفاوتی از مقاومت، خازن، ترانزیستور و اتصالات را در خود جای دادهاست و یک سیستم شبیه ساز قصد دارد بهینهترین و مناسبترین حالت برای جای گذاری و اتصالات در مدار بیابد. بررسی حالتهای مختلف و محاسبه نقطه بهینه هر مورد نیاز به فرمولهای بسیار زیادی دارد که تنها در شبیه سازی مداوم قابل انجام است.
شبیهسازی رویداد گسسته (Discrete-event Simulation): شبیه سازی رویداد گسسته برای مشخص کردن عملکرد سیستم در زمانهای حساس، یک رویداد مشخص یا بحران مورد استفاده قرار میگیرد و معمولا نتایج بین این زمانها از یافتههای تحقیق حذف میشود. یکی از سادهترین مثالها برای شبیه سازی رویداد گسسته، تست عملکرد یک خودرو در زمان شروع به حرکت یا در زمان توقف است و نتایج مربوط به شبیه ساز در بین این دو نقطه مورد بررسی قرار نخواهد گرفت.
شبیهسازی استوکستیک (Stochastic Simulation): نوعی از شبیه سازی است که در آن یک متغیر یا فرآیند در مدل به صورت تصادفی از طریق تکنیک مونته کارلو (Monte Carlo) به طور مداوم تغییر میکند. با توجه به اینکه شرایط کلی شبیه سازی تغییری نمیکند اما به دلیل تغییر فاکتورهای موجود در مدل ممکن است نتایج با هم تفاوت چشمگیری داشته باشند. یکی از نمونههای رایج شبیه سازی استوکستیک استفاده از مدلهای مختلف بهینه سازی توربین های بادی و انرژی است. در این فرآیند متغیرهای مختلف محیطی و فیزیکی در مدل به صورت تصادفی تغییر کرده و نتایج ثبت میشود. در شرایط شبیهسازی استوکستیک ممکن است نتایج یک تحقیق با تحقیق دیگر بسته به شرایط فرموله کردن مدل متفاوت باشد.
شبیهسازی قطعی (Deterministic Simulation): نوعی از شبیه سازی است که فاکتورهای درون مدل توسط الگوریتمهای ثابت و قطعی طراحی شده و نتایج یکسانی از تحقیقات حاصل خواهد شد. این نوع از شبیه سازی شامل فرمولهای ثابتی میشود که فرآیندهای واقعی را تخمین شده و تفسیر نتایج آن بسیار ساده تر از شبیه سازی استوکستیک است.
شبیهسازی هایبرید (Hybrid Simulation): شبیهسازی هایبرید ترکیبی از Continiuous Simultion و Discrete-event Simulation است. در این فرآیند نتایج بدست آمده از هر دو شبیه سازی را به صورت عددی ترکیب کرده و خروجیهایی با کمترین میزان اختلاف را بر میگزینند. شبیه سازی هایبرید یک تکنیک قدرتمند تست دینامیک برای سیستمهای ساختاری (Structural System) است. این نوع از شبیهسازی برای سیستمهای ساختاری استفاده میشود که بسیار بزرگ یا بسیار پیچیده هستند مانند ساختمانهای بسیار بلند یا پلهای بسیار بزرگ و پیچیده.
شبیهسازی مستقل (Stand alone Simulation): نوعی از شبیه سازی است که تنها در یک ایستگاه کاری انجام شده و فرآیند انجام آن نسبت به سایر انواع شبیهسازی ساده تر است. برای مثال فرض کنید یک مدل شبیه سازی شده را در محیط نرم افزار Choice Simulator اجرا کردهاید و قصد دارید یک کپی از آن را در اختیار مشتریان و یا تعدادی از مخاطبان قراردهید تا بدین وسیله تجربه کاربری آنها را مورد ارزیابی قراردهید. در این روش شما یک شبیهسازی مستقل به وجود آوردهاید که نتایج آن منحصر به فرد و بسیار کاربردی خواهد بود.
شبیهسازی توزیع شده (Distributed Simulation): نوعی از شبیهسازی است که در آن یک مدل را برای اجرا به چند مدل کوچکتر با مقیاس جزئیتر تقسیم میکنند و یا چند مدل کوچک را ترکیب کرده و یک مدل با مقیاس بزرگ برای بررسی ایجاد میکنند. از مهمترین مزایای شبیه سازی توزیع شده افزایش سرعت عملکرد سیستم، امکان استفاده چندباره، شخصی سازی اطلاعات و ثبات در عملکرد سیستم است.
شبیهسازی موازی (Parallel Simulation): این نوع از شبیه سازی به نوعی زمینه اعتبار سنجی مدل را فراهم کرده و در برگیرنده چندین اجرای همزمان مدل در سیستم است. چنانچه نتایج و خروجی های حاصل از شبیه سازی در حداقل دو سیتم یکسان باشند می توان از اعتبار مدل شبیه سازی شده اطمینان داشت.
شبیهسازی در محیط کامپیوتر یکی از رایجترین انواع مدل سازی است که به بررسی موقعیتها و فرضیات در محیط نرم افزار پرداخته و خروجی آن را در قالب یک پلتفرم آنلاین یا برنامه قابل اجرا ارائه مینماید. در حال حاضر مدلسازی یا شبیهسازی کامپیوتری نه تنها در رشته کامپیوتر بلکه در رشتههای علوم انسانی، علوم اجتماعی، شیمی، فیزیک، زیست شناسی و بسیاری از رشتههای دانشگاهی کاربرد داشته و مورد استفاده محققان بسیاری قرار میگیرد. البته برای اینکه مفهوم شبیهسازی و مدلسازی در محیط کامپیوتری را برای شما واضح تر کنیم باید به یک نکته مشخص در این زمینه اشاره کنیم.
مدلسازی کامپیوتری شامل تمامی الگوریتمها، فرمولها و تکنیک های ریاضی است که در یک سیستم تعریف میشود تا رفتار آن را مشخص کنیم. اما شبیهسازی بررسی عملکرد سیستم در محیط واقعی است و تمامی این فرمول ها و الگوریتم ها در سیستمی است که شما قصد آزمایش و بررسی آن در محیط آزمایشگاه را دارید. از جمله کاربردهای مهم شبیهسازی در محیط کامپیوتری می توان به موارد زیر اشاره کرد:
- شبیهسازی عملیات و فرآیندهای اجرایی در محیط فرودگاهها به منظور بررسی امنیت، کیفیت و بهرهوری در فرآیند، ارزیابی ظرفیتها و مشخص کردن نقاط ضعف و قوت سیستمهای فرودگاهی.
- شبیهسازی عملیاتهای تولیدی و صنعتی در شرکتهای بزرگ به منظور یافتن نقاط بهینه تولید، انبارداری، فروش و ترابری. برای مثال پیش از راهاندازی یک خط تولید جدید میتوان به واسطه هوشمصنوعی و شبیهسازی کامپیوتری میزان بهرهوری، تولید و حوادث احتمالی را مورد ارزیابی و بررسی قرار داد.
- شبیهسازی وضعیت ترافیک و حمل و نقل در بزرگراههای کشور در زمان راه اندازی یک مسیر جدید و یا کنترل ترافیک در مسیرهای کنونی.
- شبیهسازی ارتباطات تلفنی و ظرفیت تماسهای ورودی و خروجی در یک مسیر مخابراتی مشخص پیش از اجرای آن در سطح کلان. بسیاری از پروژههای مخابراتی در کشور پیش از اجرا توسط مهندسان شبیه سازی و امکان سنجی می شوند.
- شبیهسازی انبار و نگهداری کالا در گمرکات کشوری به منظور ظرفیت سنجی و پیشبینی رشد در سطح بارگیریهای بندری و میزان صادرات و واردات کالاها در کشور.
ابزارهای شبیه سازی - نمونه پروژه های شبیه سازی - Matlab - AUTOCAD