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

## شبیه‌سازی سامانه دینامیکی

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

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

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

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

## کاربردها

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

 کاربردهای تجاری شبیه‌سازی دینامیکی بسیار متنوع‌اند و شامل زمینه‌هایی مانند نیروگاه هسته‌ای، توربین بخار، مدل‌سازی وسایل نقلیه با شش درجه آزادی، موتورهای الکتریکی، مدل‌های اقتصادسنجی، سامانه‌های زیستی، بازوهای رباتیک، سامانه‌های جرم-فنر-میراگر، سامانه‌های هیدرولیکی و مهاجرت دوز دارو از طریق بدن انسان می‌شود. این مدل‌ها اغلب می‌توانند به صورت شبیه سازی بی درنگ اجرا شوند تا پاسخی مجازی نزدیک به سامانه واقعی ارائه دهند. این ویژگی در کنترل فرایند و سامانه‌های مکاترونیک برای تنظیم کنترل خودکار پیش از اتصال به سامانه واقعی یا برای آموزش انسانی پیش از کنترل سامانه واقعی مفید است.
از شبیه‌سازی همچنین در بازی‌های رایانه‌ای و پویانمایی (انیمیشن) استفاده می‌شود و این فرآیند می‌تواند با بهره‌گیری از موتور فیزیکی، که فناوری مورد استفاده در بسیاری از نرم‌افزار گرافیک رایانه‌ای قدرتمند برنامه رایانه‌ای همچون
3ds Max،Maya،Lightwave و بسیاری دیگر برای شبیه‌سازی ویژگی‌های فیزیکی است، تسریع شود. در پویانمایی رایانه‌ای، عناصری مانند مو، پارچه، مایع، آتش و ذرات را می‌توان به سادگی مدل‌سازی کرد، در حالی که پویانما (انیماتور) اشیای ساده‌تر را به صورت دستی متحرک‌سازی می‌کند. پویانمایی دینامیکی مبتنی بر رایانه]]، نخستین بار در سطحی بسیار ساده درفیلم کوتاه پیکسار
Knick Knack محصول ۱۹۸۹ برای حرکت دادن برف مصنوعی داخل گوی برفی و سنگریزه‌های داخل تنگ ماهی به‌کار رفت.
## جستارهای وابسته

*مقایسه نرم‌افزارهای دینامیک سامانه — شامل بسته‌هایی که در بخش‌های پایین‌تر ذکر نشده‌اند.
* سیمیولینک — یک محیط برنامه‌نویسی گرافیکی مبتنی بر متلب برای مدل‌سازی، شبیه‌سازی و تحلیل سامانه‌های دینامیکی.
* MSC Adams — یک نرم‌افزار شبیه‌سازی دینامیک چندجسمی است.
* SimulationX — نرم‌افزاری برای شبیه‌سازی سامانه‌های دینامیکی چنددامنه‌ای.
* AMESim — نرم‌افزاری برای شبیه‌سازی سامانه‌های دینامیکی چنددامنه‌ای.
*AGX Multiphysics — یک موتور فیزیکی برای شبیه‌سازی سامانه‌های دینامیکی چنددامنه‌ای.
* Dymola — نرم‌افزاری برای شبیه‌سازی سامانه‌های دینامیکی چنددامنه‌ای با استفاده از زبان Modelica.
*EcosimPro — ابزاری شبیه‌سازی برای مدل‌سازی سامانه‌های پیوسته–گسسته.
*Hopsan — نرم‌افزاری برای شبیه‌سازی سامانه‌های دینامیکی چنددامنه‌ای.
*MapleSim — نرم‌افزاری برای شبیه‌سازی سامانه‌های دینامیکی چنددامنه‌ای.
*Modelica— معادلاتی، شیءگرا و متن‌باز برای شبیه‌سازی سامانه‌های دینامیکی.
* Physics engine — نرم‌افزار برای مدل‌سازی و شبیه‌سازی قوانین فیزیکی.
*VisSim — یک زبان گرافیکی برای شبیه‌سازی دینامیکی غیرخطی.
*PottersWheel — جعبه‌ابزاری در متلب برای تخمین و کالیبراسیون پارامترهای سامانه‌های دینامیکی.
*Simcad Pro — نرم‌افزاری پویا و برخط برای شبیه‌سازی رویداد گسسته.
## یادداشت‌ها




## منابع
* Galatolo, Stefano; Hoyrup, Mathieu; Rojas, Cristóbal (۲۰۱۱)، *Dynamical systems, simulation, abstract computation*، arXiv:1101.0833،‏ متن کامل
* Korn, Granino A. (۲۰۰۷)، *Advanced dynamic-system simulation: model-replication techniques and Monte Carlo simulation*، John Wiley & Sons
* Klee, Harold; Allen, Randal (۲۰۱۶)، *Simulation of dynamic systems with MATLAB and Simulink*، CRC Press
## پیوند به بیرون
* کتاب و درس‌گفتار درباره شبیه‌سازی دینامیکی
* شبیه‌سازی سامانه دینامیکی – ویکی‌کتاب (انگلیسی)
رده:موتورهای فیزیک رایانه‌ای
رده:نظریه کنترل
رده:مهندسی الکترومکانیک
رده:سامانه‌های توکار
رده:چرخ‌دنده‌ها
رده:خودکارسازی صنعتی
رده:معادلات دیفرانسیل معمولی
رده:معادلات دیفرانسیل با مشتقات جزئی
رده:نرم‌افزار شبیه‌سازی
رده:مهندسی سامانه‌ها