AiFa Academy|هوش‌مصنوعی و برنامه‌نویسی
AiFa Academy|هوش‌مصنوعی و برنامه‌نویسی
خواندن ۵ دقیقه·۳ سال پیش

شبیه‌سازی و لزوم استفاده از آن

مقدمه

شبیه‌سازی یکی از مراحل تولید و ساخت هر محصولی، در هر ابعاد و کاربردی، است. این محصول می‌تواند فیزیکی (لمس کردنی) و یا غیرفیزیکی باشد. ابتدا ببینیم شبیه‌سازی چیست؟

منبع: https://www.marketgames.io
منبع: https://www.marketgames.io


تعریف شبیه‌سازی

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

چرا باید شبیه‌سازی کنیم؟

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

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

با چه زبان‌هایی می‌توان شبیه‌سازی انجام داد؟

تقریباً با تمام زبان‌های برنامه‌نویسی حال حاضر می‌توانیم شبیه‌سازی کنیم. به عنوان مثال

الف) متلب (MATLAB)
ب) پایتون (PYTHON)
ج) سی‌پلاس‌پلاس (++C)
د) جاوا (JAVA)
هـ) جولیا (JULIA)

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

چه نرم‌افزارها و یاکدهایی برای شبیه‌سازی وجود دارد؟

نرم‌افزارهایی که برای شبیه‌سازی از آن‌ها استفاده می‌شود، زیاد هستند اما آن‌هایی که کاربرد و طرفدار زیادی دارند را به همراه کاربردهای تخصصی‌شان عنوان می‌کنیم.

الف) کامسول (COMSOL): این نرم‌افزار هم فن حریف است. از مسائل ساده فیزیک تا شبیه‌سازی سیستم‌های ذره‌ای و شبیه‌سازی اپتیک کاربرد دارد. در رشته‌های مختلف فیزیک (تمام گرایش‌ها)، شیمی (تمام گرایش‌) و پرتوپزشکی کاربرد دارد.
ب) سالیدورک (SOLIDWORK): از این نرم‌افزار برای شبیه‌سازی سیستم‌های مکانیکی و سخت‌افزاری استفاده می‌شود. اگر علاقمند هستید تا بدنه یک دستگاه را شبیه‌سازی کنید یادگیری این مورد باید در اولویت‌های شما باشد. تمام تجهیزاتی که در صنعت و پزشکی مورد استفاده قرار می‌گیرد، با این نرم‌افزار می‌توانید شبیه‌سازی و تولید کنید.
منبع: https://www.logiciel-cao.com
منبع: https://www.logiciel-cao.com


ج) زیمکس (ZEMAX): این نرم‌افزار به طور اختصاصی برای طراحی سیستم‌های نوری (اپتیکی) و لیزری استفاده می‌شود. اگر رشته تخصصی شما فیزیک - اتمی مولکولی (اپتیک لیزر) باشد و یا علاقمند به شبیه‌سازی سیستم‌های اپتیکال داشته باشید، یادگیری این نرم‌افزار الزامی است. البته نرم‌افزار کامسول در زمینه اپتیک هم کاربردهای فراوانی دارد.
د) MCNP: این کد براساس روش مونت‌کارلو نوشته شده است. از این کد شبیه‌سازی برای حوزه‌های مختلف رشته مهندسی هسته‌ای گرایش‌های مختلف مثل رآکتور، گداخت، کاربردپرتو و پرتوپزشکی استفاده می‌شود. همچنین رشته‌های فیزیک پزشکی، مهندسی پزشکی، تصویربرداری پزشکی و نیز رادیوبیولوژی و حفاظت در برابر اشعه هم از این کد استفاده می‌کنند.

از این کد در زمینه‌های مختلفی می‌توانیم استفاده کنیم:

الف) طراحی حفاظ و آشکارساز و دزیمتری

ب) طراحی هدف در شتابدهنده

ج) ایمنی و بحرانیت هسته‌ای

د) محاسبات مصرف سوخت

هـ) رادیوگرافی

و) ...

هـ) جیانت (Geant4): این کد هم مثل MCNP براساس روش مونت‌کارلو نوشته شده است. این کد در تمام زمینه‌های حوزه علوم پرتویی مثل تصویربرداری، دزیمتری و طراحی درمان، طراحی آشکارساز و غیره کاربرد دارد. برای اینکه بتوانید از تمام قابلیت‌های این کد مونت‌کارلو به خوبی استفاده کنید باید بر زبان برنامه‌نویسی سی‌پلاس‌پلاس تسلط کافی داشته باشید در غیر اینصورت حتما با مشکلاتی مواجه خواهید شد.
منبع: https://web.infn.it
منبع: https://web.infn.it
و) فلوکا (Fluka): این کد مونت‌کارلو شبیه‌ساز در زمینه‌های مختلفی همچون کالریمتری، دزیمتری، طراحی آشکارسازها و مطالعات مربوط به تابش‌های فضایی، فیزیک نوترون‌ها و رادیوتراپی کاربرد دارد. در حال حاضر علاوه بر کاربردهایی که اشاره شد، از این کد برای شبیه‌سازی ذره درمانی (هادرون تراپی) بیشتر استفاده می‌شود.
ز) گیت (GATE): آخرین کد مونت‌کارلویی که قصد داریم تا در این مقاله آن را معرفی کنیم، کد گِیت است. این کد را دختر کد Geant4 می‌نامند. از این کد در حوزه‌های مختلفی می‌توان استفاده کرد اما کاربرد اصلی آن «تصویربرداری» می‌باشد. اگر به دنبال شبیه‌سازی تصویربرداری با سیستم‌های پزشکی‌هسته‌ای، اپتیکال (نوری)، تشدید مغناطیسی و یا حتی ذره‌ای هستید، یادگیری این کد را فراموش نکنید.

کلام آخر

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


  • ما را در شبکه‌های اجتماعی دنبال کنید.

ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

نویسنده: تیم تحریریه AiFa Academy

منابع:

1- تیم تحریریه AiFa Academy

2- کتاب «آموزش کد MCNPX» نوشته دکتر یاسر کاسه‌ساز و دکتر مصطفی حسن زاده

3- کتاب «مقدمه‌ای بر شبیه‌سازی با کد مونت کارلوی فلوکا» نوشته دکتر جمشید سلطانی نبی‌پور و مهندس مرتضی جوان

ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

با نظرات خود ما را در جهت بهبود کیفیت محتوا و خدمات همراهی کنید

شبیه‌سازیپرتوپزشکیmontecarlo codeکدهای مونت کارلوgeant gate mcnp fluka
این صفحه متعلق به مجموعه onlineMRE است و هدف اصلی آن آموزش تخصصی در زمینه علوم پرتوپزشکی می‌باشد.
شاید از این پست‌ها خوشتان بیاید