ترکیب یادگیری ماشین (Machine Learning) با نرمافزار انسیس فلوئنت (ANSYS Fluent) یکی از روشهای جدید برای افزایش سرعت تحلیلهای مهندسی، پیشبینی رفتار جریان سیال و بهینهسازی طراحی تجهیزات است. در این روش، ابتدا از فلوئنت برای انجام شبیهسازیهای عددی و تولید دادههای معتبر استفاده میشود؛ سپس دادههای حاصل با الگوریتمهای یادگیری ماشین تحلیل میشوند تا مدلی ایجاد شود که بتواند رفتار سیستم را در شرایط مختلف پیشبینی کند. به بیان ساده، ANSYS Fluent وظیفه حل فیزیکی مسئله را بر عهده دارد و Machine Learning از نتایج این حلها برای یادگیری، پیشبینی و بهینهسازی استفاده میکند. این ترکیب بهویژه در پروژههایی ارزشمند است که تعداد زیادی حالت عملیاتی یا هندسی باید بررسی شوند. برای مثال، اگر بخواهیم عملکرد یک مبدل حرارتی را در صدها ترکیب مختلف از دبی، دما و ابعاد هندسی بررسی کنیم، اجرای کامل CFD برای تمام حالتها ممکن است زمان زیادی ببرد. در چنین شرایطی، یک مدل یادگیری ماشین آموزشدیده میتواند بسیاری از حالتها را با هزینه محاسباتی بسیار کمتر تخمین بزند. در ادامه، فرایند انجام این کار را بهصورت مرحلهبهمرحله و با یک مثال مهندسی توضیح میدهیم.
۱. ساختار کلی ارتباط Machine Learning و ANSYS Fluent
در یک پروژه معمولی، فرایند ترکیب یادگیری ماشین و فلوئنت از چند مرحله اصلی تشکیل میشود:
1. تعریف مسئله فیزیکی و پارامترهای طراحی؛
2. ایجاد هندسه و شبکه محاسباتی؛
3. اجرای مجموعهای از شبیهسازیها در ANSYS Fluent؛
4. استخراج نتایج و ایجاد پایگاه داده؛
5. پردازش دادهها با Python؛
6. آموزش مدل یادگیری ماشین؛
7. ارزیابی دقت مدل با دادههای مستقل؛
8. استفاده از مدل برای پیشبینی و بهینهسازی شرایط جدید.
نکته مهم این است که یادگیری ماشین معمولاً مستقیماً جایگزین حلگر فلوئنت نمیشود. در روش رایج، فلوئنت دادههای آموزشی را تولید میکند و مدل یادگیری ماشین پس از آموزش، پاسخهای تقریبی را برای شرایط جدید ارائه میدهد.
۲. مرحله اول: تعریف پارامترهای ورودی و خروجی شبیهسازی
اولین مرحله، مشخصکردن متغیرهایی است که قرار است مدل یادگیری ماشین از ارتباط میان آنها الگو استخراج کند.
فرض کنیم هدف، بررسی جریان هوا در یک کانال خنککاری باشد. عملکرد این کانال به پارامترهای مختلفی وابسته است.
پارامترهای ورودی (Input Parameters):
-
سرعت ورودی هوا؛
-
دمای ورودی هوا؛
-
ارتفاع کانال؛
-
عرض کانال؛
-
طول کانال؛
-
ضریب هدایت حرارتی دیواره؛
-
مشخصات هندسی موانع داخل کانال.
پارامترهای خروجی (Output Parameters):
-
افت فشار کانال؛
-
سرعت متوسط خروجی؛
-
دمای بیشینه دیواره؛
-
دمای خروجی هوا؛
-
نرخ انتقال حرارت؛
-
ضریب انتقال حرارت جابهجایی.
هدف این است که مدل Machine Learning بتواند با دریافت پارامترهای ورودی، مقادیر خروجی را پیشبینی کند. برای مثال، مدل پس از آموزش میتواند با دریافت سرعت ورودی ۵ متر بر ثانیه و ابعاد مشخص کانال، افت فشار و دمای خروجی را تخمین بزند؛ بدون اینکه برای هر پیشبینی، یک حل کامل جدید در فلوئنت اجرا شود.
۳. مرحله دوم: تولید دادههای آموزشی در ANSYS Fluent
در این مرحله، باید مجموعهای از شبیهسازیهای CFD با شرایط مختلف اجرا شود. برای تولید داده مناسب، نباید تنها یک شبیهسازی انجام داد. لازم است پارامترهای ورودی در محدوده موردنظر تغییر کنند و برای هر ترکیب، نتایج متناظر استخراج شود. برای مثال، فرض کنیم میخواهیم اثر سرعت ورودی بر افت فشار و انتقال حرارت را بررسی کنیم.
|
شماره شبیهسازی
|
سرعت ورودی فرضی (m/s)
|
دمای ورودی (K)
|
|
۱
|
۲
|
293
|
|
۲
|
۳
|
293
|
|
۳
|
۴
|
293
|
|
۴
|
۵
|
293
|
|
۵
|
۶
|
293
|
|
۶
|
۷
|
293
|
|
۷
|
۸
|
293
|
مقادیر جدول صرفاً نمونه آموزشی هستند و نتیجه یک پروژه واقعی محسوب نمیشوند. در پروژه واقعی، بهتر است علاوه بر سرعت ورودی، سایر پارامترهای مؤثر نیز بهصورت برنامهریزیشده تغییر کنند. برای این کار میتوان از روش طراحی آزمایشها (Design of Experiments) یا نمونهبرداری لاتین هایپرکیوب استفاده کرد. برای هر حالت باید تنظیمات فیزیکی، شرایط مرزی، کیفیت شبکه و معیارهای همگرایی بهدرستی کنترل شوند. اگر دادههای آموزشی از شبیهسازیهای نامعتبر تولید شوند، مدل یادگیری ماشین نیز ممکن است روابط اشتباهی یاد بگیرد.
۴. مرحله سوم: استخراج دادهها از ANSYS Fluent
پس از اجرای شبیهسازیها، باید خروجیهای موردنیاز برای آموزش مدل استخراج شوند. در فلوئنت میتوان از گزارشهای عددی (Reports)، مانیتورها (Monitors)، خروجی فایل و امکانات خودکارسازی برای جمعآوری دادهها استفاده کرد.برای مثال، فرض کنیم برای هر شبیهسازی این خروجیها موردنیاز باشند:
-
Pressure Drop
-
Average Outlet Velocity
-
Maximum Wall Temperature
-
Average Outlet Temperature
-
Heat Transfer Rate
این مقادیر را میتوان برای تمام شبیهسازیها در یک فایل CSV ذخیره کرد. ساختار ساده فایل داده میتواند به شکل زیر باشد:
|
Velocity (m/s)
|
Inlet Temperature (K)
|
Pressure Drop (Pa)
|
Max Wall Temperature (K)
|
|
2
|
293
|
12.4
|
315
|
|
3
|
293
|
24.1
|
319
|
|
4
|
293
|
39.8
|
324
|
|
5
|
293
|
58.2
|
331
|
|
6
|
293
|
79.5
|
339
|
اعداد این جدول کاملاً فرضی و صرفاً برای نمایش ساختار داده هستند. در این مرحله، هر سطر نماینده یک شبیهسازی است و ستونها متغیرهای ورودی و خروجی را نشان میدهند. برای پروژههای پیچیدهتر، میتوان علاوه بر خروجیهای عددی، میدانهای کامل سرعت، فشار و دما را نیز استخراج کرد. البته پردازش میدانهای سهبعدی به روشهای متفاوتی نسبت به پیشبینی چند خروجی عددی نیاز دارد.
۵. مرحله چهارم: انتقال دادهها به Python
پس از استخراج دادهها از فلوئنت، نوبت به پردازش آنها با زبان برنامهنویسی پایتون (Python) میرسد. پایتون به دلیل داشتن کتابخانههای متعدد علمی و مهندسی، یکی از ابزارهای اصلی توسعه مدلهای یادگیری ماشین است. کتابخانههای پرکاربرد در این مرحله عبارتاند از:
|
کتابخانه
|
کاربرد
|
|
NumPy
|
محاسبات عددی و آرایهای
|
|
Pandas
|
خواندن و پردازش فایلهای CSV
|
|
Matplotlib
|
رسم نمودار و نمایش نتایج
|
|
Scikit-learn
|
آموزش مدلهای یادگیری ماشین
|
|
TensorFlow
|
توسعه شبکههای عصبی
|
|
PyTorch
|
توسعه مدلهای یادگیری عمیق و PINN
|
برای شروع، معمولاً نیازی به استفاده از شبکههای عصبی پیچیده نیست. اگر هدف پیشبینی چند خروجی عددی مانند افت فشار یا دمای خروجی باشد، الگوریتمهایی مانند Random Forest و Gradient Boosting میتوانند گزینههای مناسبی برای بررسی اولیه باشند.
۶. مرحله پنجم: آموزش مدل Machine Learning
اکنون دادهها آماده آموزش هستند. برای مثال، میتوان از الگوریتم Random Forest Regression استفاده کرد. جنگل تصادفی (Random Forest) مجموعهای از درختهای تصمیم است که با ترکیب پیشبینی آنها، خروجی نهایی را تخمین میزند. این روش برای بسیاری از مسائل مهندسی با دادههای ساختاریافته مناسب است و میتواند روابط غیرخطی میان پارامترهای ورودی و خروجی را یاد بگیرد. نکته مهم این است که در مسائل CFD، تقسیم تصادفی دادهها همیشه بهترین انتخاب نیست. اگر چند شبیهسازی بسیار مشابه در مجموعه آموزش و آزمون قرار بگیرند، ممکن است دقت مدل بیش از مقدار واقعی به نظر برسد. در مطالعات پارامتریک بهتر است بخشی از ترکیبهای هندسی یا شرایط عملیاتی بهصورت مستقل برای آزمون کنار گذاشته شوند.
۷. مرحله ششم: بررسی دقت مدل یادگیری ماشین
پس از آموزش، باید مشخص شود که مدل تا چه اندازه قادر به پیشبینی صحیح نتایج CFD است.
سه معیار رایج برای ارزیابی مدل عبارتاند از:
میانگین قدرمطلق خطا (MAE): میانگین اختلاف قدرمطلق بین مقادیر پیشبینیشده و مقادیر مرجع را نشان میدهد.
ریشه میانگین مربعات خطا (RMSE): خطاهای بزرگتر را با حساسیت بیشتری در ارزیابی وارد میکند.
ضریب تعیین (R²): نشان میدهد مدل تا چه اندازه تغییرات خروجی را در دادههای ارزیابی توضیح میدهد.
در یک مدل مناسب، نقاط نمودار مقادیر پیشبینیشده در برابر مقادیر واقعی، باید تا حد امکان به خط برابری نزدیک باشند. البته حتی اگر ضریب تعیین مدل بالا باشد، نمیتوان صرفاً بر اساس آن نتیجه گرفت که مدل برای تمام شرایط فیزیکی معتبر است. بررسی خطا در شرایط مختلف، محدوده پیشبینی و سازگاری نتایج با قوانین فیزیکی نیز ضروری است.
۸. مرحله هفتم: استفاده از مدل آموزشدیده برای پیشبینی شرایط جدید
پس از ارزیابی و تأیید عملکرد مدل، میتوان از آن برای پیشبینی شرایطی استفاده کرد که مستقیماً در مجموعه آموزش وجود نداشتهاند. این پیشبینی بسیار سریعتر از اجرای یک حل کامل CFD انجام میشود؛ اما اعتبار آن به این بستگی دارد که شرایط جدید در محدودهای قرار داشته باشند که مدل برای آن آموزش دیده و ارزیابی شده است. اگر شرایط جدید خارج از محدوده آموزش باشند، بهتر است یک شبیهسازی مستقل در فلوئنت انجام شود و نتیجه آن با پیشبینی مدل مقایسه گردد.
۹. چگونه فرایند ANSYS Fluent و Machine Learning را خودکار کنیم؟
در پروژههای کوچک، میتوان شبیهسازیها را بهصورت جداگانه اجرا و نتایج را به شکل دستی استخراج کرد. اما در پروژههای بزرگ، بهتر است فرایند تولید داده و آموزش مدل تا حد امکان خودکار شود. برای این کار چند روش وجود دارد:
۹-۱. استفاده از پارامتریکسازی در ANSYS Workbench
در ANSYS Workbench میتوان برخی پارامترهای هندسی و عملیاتی را تعریف کرد و چندین نقطه طراحی (Design Points) را مورد بررسی قرار داد. برای مثال، میتوان سرعت ورودی، قطر کانال، ارتفاع مجرا یا دمای ورودی را بهعنوان پارامترهای طراحی تعریف کرد. سپس برای هر نقطه طراحی، حل فلوئنت اجرا و خروجیهای موردنظر ثبت میشوند. این روش برای تولید دادههای موردنیاز در مطالعات پارامتریک بسیار مفید است.
۹-۲. استفاده از اسکریپت و Journal در Fluent
در فلوئنت میتوان از امکانات خودکارسازی مانند Journal و دستورات قابل اجرا برای انجام مراحل تکراری استفاده کرد. برای مثال، یک فرایند خودکار میتواند شامل مراحل زیر باشد:
-
تغییر مقدار پارامتر ورودی؛
-
اجرای حل عددی؛
-
بررسی معیارهای همگرایی؛
-
استخراج افت فشار و دمای خروجی؛
-
ذخیره نتایج در فایل؛
-
تکرار فرایند برای حالت بعدی.
به این ترتیب، نیاز به اجرای دستی تعداد زیادی شبیهسازی کاهش مییابد.
۹-۳. ارتباط برنامهنویسی Python با ANSYS Fluent
در پروژههای پیشرفتهتر میتوان از ابزارهای برنامهنویسی و امکانات خودکارسازی فلوئنت برای ارتباط با پایتون استفاده کرد. یکی از ابزارهای مرتبط، PyFluent است که برای تعامل برنامهنویسی با محیط ANSYS Fluent توسعه یافته است. با استفاده از چنین ابزارهایی میتوان بخشهایی از فرایند راهاندازی حل، کنترل شبیهسازی، استخراج داده و پردازش نتایج را در یک گردش کار برنامهنویسیشده قرار داد. البته قابلیتهای دقیق به نسخه نرمافزار، نصب ابزارهای موردنیاز و نوع پروژه وابسته است.
۱۰. بهینهسازی هندسه با ترکیب Machine Learning و Fluent
یکی از مهمترین کاربردهای این روش، بهینهسازی طراحی تجهیزات مهندسی است. فرض کنیم هدف، طراحی یک کانال خنککاری است که باید همزمان دو ویژگی داشته باشد:
1. انتقال حرارت بالا؛
2. افت فشار پایین.
در این مسئله، افزایش سرعت سیال ممکن است انتقال حرارت را افزایش دهد، اما افت فشار نیز معمولاً بیشتر میشود. بنابراین باید یک طرح مناسب پیدا شود که میان این دو معیار تعادل برقرار کند. فرایند بهینهسازی ترکیبی را میتوان به شکل زیر انجام داد:
1. تعریف پارامترهای هندسی مانند ارتفاع، عرض و طول کانال؛
2. تعیین محدوده تغییر هر پارامتر؛
3. تولید مجموعهای از هندسهها و اجرای شبیهسازی CFD؛
4. استخراج دمای بیشینه، نرخ انتقال حرارت و افت فشار؛
5. آموزش مدل یادگیری ماشین با نتایج فلوئنت؛
6. استفاده از مدل آموزشدیده برای ارزیابی سریع طرحهای جدید؛
7. انتخاب طرحهای مناسب با الگوریتم بهینهسازی؛
8. اعتبارسنجی طرح منتخب با اجرای مجدد CFD.
در این روش میتوان از الگوریتمهایی مانند الگوریتم ژنتیک (Genetic Algorithm)، بهینهسازی ازدحام ذرات (Particle Swarm Optimization) یا روشهای بهینهسازی چندهدفه استفاده کرد. برای مثال، ممکن است هدف این باشد که نرخ انتقال حرارت بیشینه شود، در حالی که افت فشار از یک مقدار مشخص تجاوز نکند. مدل یادگیری ماشین در این فرایند نقش مدل جانشین را دارد و الگوریتم بهینهسازی از آن برای جستوجوی سریعتر فضای طراحی استفاده میکند.
۱۱. پیشبینی میدان کامل سرعت، فشار و دما با Deep Learning
تا اینجا بیشتر درباره پیشبینی خروجیهای عددی مانند افت فشار و دمای خروجی صحبت کردیم. اما کاربرد یادگیری عمیق در CFD میتواند فراتر از پیشبینی چند عدد باشد. در برخی پروژهها هدف، پیشبینی کل میدان سرعت، فشار یا دما در دامنه محاسباتی است. برای این کار میتوان از شبکههای عصبی کانولوشنی (CNN)، معماریهای مبتنی بر شبکههای عصبی عمیق و روشهای یادگیری اپراتور مانند Fourier Neural Operator استفاده کرد. در این رویکرد، مدل با تعداد زیادی میدان جریان آموزش میبیند و میآموزد که چگونه شرایط ورودی و هندسه بر توزیع مکانی متغیرهای جریان اثر میگذارند. برای مثال، مدل میتواند با دریافت هندسه یک کانال و سرعت ورودی، میدان تقریبی سرعت را در نقاط مختلف دامنه پیشبینی کند. این روش از نظر محاسباتی جذاب است، اما به دادههای آموزشی بسیار منظم و باکیفیت نیاز دارد. همچنین باید بررسی شود که مدل در بازسازی میدان جریان، موازنه جرم و سایر قیود فیزیکی را تا چه حد رعایت میکند.
۱۲. تفاوت پیشبینی خروجیهای عددی و پیشبینی میدان جریان
این دو نوع کاربرد از نظر داده موردنیاز و پیچیدگی محاسباتی تفاوت دارند.
|
ویژگی
|
پیشبینی خروجی عددی
|
پیشبینی میدان کامل
|
|
نمونه خروجی
|
افت فشار، ضریب درگ، دمای خروجی
|
میدان سرعت، فشار و دما
|
|
ساختار داده
|
جدولی
|
مکانی یا مکانی-زمانی
|
|
الگوریتم متداول
|
Random Forest، XGBoost، ANN
|
CNN، FNO، شبکههای عمیق
|
|
پیچیدگی آموزش
|
معمولاً کمتر
|
معمولاً بیشتر
|
|
کاربرد
|
طراحی پارامتریک و تخمین عملکرد
|
بازسازی و پیشبینی توزیع جریان
|
|
حجم داده موردنیاز
|
معمولاً کمتر
|
معمولاً بیشتر
|
برای شروع یک پروژه ترکیبی CFD و Machine Learning، پیشبینی خروجیهای عددی معمولاً سادهتر و اقتصادیتر است. پس از تسلط بر این فرایند، میتوان به سراغ پیشبینی میدانهای کامل جریان رفت.
۱۳. چه تعداد شبیهسازی برای آموزش مدل Machine Learning لازم است؟
یکی از پرسشهای مهم در اجرای پروژههای ترکیبی، تعداد شبیهسازیهای موردنیاز برای آموزش مدل است. پاسخ به این سؤال به عوامل مختلفی بستگی دارد:
-
تعداد پارامترهای ورودی؛
-
میزان غیرخطی بودن رفتار سیستم؛
-
پیچیدگی هندسه؛
-
تعداد خروجیهای موردنظر؛
-
الگوریتم یادگیری ماشین؛
-
دقت موردنیاز در پیشبینی؛
-
گستردگی محدوده شرایط عملیاتی.
برای یک مسئله ساده با چند متغیر ورودی و یک خروجی عددی، ممکن است چند ده تا چند صد نمونه اولیه برای ساخت و ارزیابی یک مدل آزمایشی مناسب باشد. در مسائل پیچیدهتر، به دادههای بسیار بیشتری نیاز خواهد بود. نکته مهم این است که تعداد زیاد شبیهسازی بهتنهایی تضمینکننده کیفیت مدل نیست. انتخاب هوشمندانه نقاط طراحی، پوشش مناسب محدوده پارامترها و اعتبارسنجی مستقل اهمیت بیشتری دارند. یک روش پیشرفتهتر، یادگیری فعال (Active Learning) است. در این روش، مدل ابتدا با مجموعهای از دادهها آموزش میبیند. سپس شرایطی که مدل درباره آنها عدم قطعیت یا خطای پیشبینی بیشتری دارد، برای اجرای شبیهسازی جدید انتخاب میشوند. نتیجه شبیهسازی به مجموعه آموزشی اضافه میشود و مدل مجدداً آموزش میبیند. این فرایند میتواند کمک کند دادههای محاسباتی در نقاطی تولید شوند که بیشترین ارزش اطلاعاتی را دارند.
۱۴. اشتباهات رایج در ترکیب یادگیری ماشین و ANSYS Fluent
در اجرای پروژههای CFD مبتنی بر هوش مصنوعی، برخی اشتباهات میتوانند باعث شوند مدل ظاهراً دقت بالایی داشته باشد، اما در شرایط واقعی عملکرد مناسبی نشان ندهد. استفاده از دادههای شبیهسازی غیرهمگرا: اگر دادههای اولیه از حلهایی استخراج شوند که همگرایی مناسبی ندارند، مدل ممکن است خطاهای عددی را یاد بگیرد. تغییر همزمان چندین پارامتر بدون طراحی مناسب: اگر نحوه تغییر متغیرها برنامهریزی نشده باشد، ممکن است پوشش مناسبی از فضای طراحی ایجاد نشود. تقسیم نامناسب دادههای آموزشی و آزمون: قرار گرفتن نمونههای بسیار مشابه در هر دو مجموعه میتواند باعث برآورد خوشبینانه از دقت مدل شود. استفاده از مدل خارج از محدوده آموزش: مدل یادگیری ماشین الزاماً توانایی پیشبینی دقیق شرایط بسیار متفاوت را ندارد. نادیده گرفتن قوانین فیزیکی: پیشبینی آماری مناسب لزوماً به معنای سازگاری کامل با موازنه جرم، مومنتوم و انرژی نیست. جایگزین کردن اعتبارسنجی CFD با معیارهای آماری: حتی یک مدل با خطای آماری کم نیز باید در برابر حل عددی مستقل یا دادههای تجربی بررسی شود.
۱۵. یک مسیر پیشنهادی برای شروع پروژه عملی
اگر هدف، یادگیری و اجرای عملی ترکیب ANSYS Fluent و Machine Learning باشد، بهتر است پروژه با یک مسئله ساده و قابل کنترل آغاز شود. پروژه پیشنهادی: پیشبینی افت فشار کانال با یادگیری ماشین مناسب برای شروع مراحل اجرایی:
-
ایجاد یک کانال دوبعدی ساده در محیط طراحی هندسه.
-
شبکهبندی و اجرای شبیهسازی در Fluent.
-
تغییر سرعت ورودی و ابعاد کانال در چند حالت.
-
استخراج افت فشار هر حالت.
-
ذخیره دادهها در فایل CSV.
-
آموزش مدل Random Forest در Python.
-
مقایسه پیشبینی مدل با نتایج مستقل فلوئنت.
-
رسم نمودار مقادیر واقعی و پیشبینیشده.
خروجی نهایی: یک مدل یادگیری ماشین که بتواند افت فشار کانال را برای شرایط جدید و در محدوده اعتبارسنجیشده تخمین بزند. این پروژه از نظر محاسباتی نسبتاً ساده است و برای یادگیری ارتباط میان حلگر CFD و الگوریتمهای یادگیری ماشین نقطه شروع مناسبی محسوب میشود.
جمعبندی
ترکیب Machine Learning و ANSYS Fluent از طریق تولید دادههای شبیهسازی، استخراج خروجیها، آموزش مدلهای یادگیری ماشین و استفاده از آنها برای پیشبینی و بهینهسازی انجام میشود. در سادهترین حالت، فلوئنت چندین شبیهسازی با شرایط مختلف اجرا میکند و دادههای حاصل در قالب فایل CSV به پایتون منتقل میشوند. سپس الگوریتمهایی مانند Random Forest، Gradient Boosting یا شبکه عصبی آموزش داده میشوند تا ارتباط میان پارامترهای ورودی و خروجی را یاد بگیرند. در سطح پیشرفتهتر، میتوان از مدلهای یادگیری عمیق برای پیشبینی میدان کامل جریان، از روشهای PINN برای وارد کردن قیود فیزیکی و از الگوریتمهای بهینهسازی برای طراحی خودکار تجهیزات استفاده کرد. بهترین رویکرد مهندسی، استفاده مکمل از CFD و هوش مصنوعی است: فلوئنت برای تولید و اعتبارسنجی نتایج فیزیکی و یادگیری ماشین برای کاهش هزینه تحلیلهای تکراری، پیشبینی سریع و جستوجوی فضای طراحی.