بهینه سازی یک میکروراکتور کاتالیستی
معرفی
در این مدل، یک محلول از طریق یک بستر کاتالیزوری پمپ می شود، جایی که یک واکنش دهنده در تماس با کاتالیزور تحت واکنش شیمیایی قرار می گیرد. هدف از مثال، به حداکثر رساندن سرعت واکنش کل برای یک اختلاف فشار کل معین در سراسر بستر است. این با یافتن یک توزیع کاتالیست بهینه به دست می آید. توزیع کاتالیزور متخلخل میزان کل واکنش را در بستر تعیین می کند. مقدار زیادی از کاتالیزور منجر به سرعت جریان کم از طریق بستر می شود، در حالی که کاتالیزور کمتر سرعت جریان بالایی را ایجاد می کند اما تبدیل کم واکنش دهنده می دهد.
این مثال مدلسازی بر اساس Ref. 1 .
توجه: این برنامه به ماژول بهینه سازی نیاز دارد.
تعریف مدل
هندسه مدل در شکل 1 نشان داده شده است . راکتور از یک کانال ورودی، یک بستر کاتالیزوری ثابت و یک کانال خروجی تشکیل شده است.

شکل 1: هندسه مدل.
توزیع بهینه کاتالیزور باید میانگین سرعت واکنش را که به صورت انتگرال سرعت واکنش محلی r (واحد SI: mol/(m3 · s)) بیان میشود، در دامنه، Ω به حداکثر برساند :

با فرض یک واکنش کاتالیزوری مرتبه اول با توجه به گونه های واکنش دهنده، سرعت واکنش محلی توسط
(1)

جایی که θ نشاندهنده کسر حجمی کاتالیزور جامد است، c به غلظت اشاره دارد (واحد SI: mol/m 3 )، و k a ثابت سرعت است (واحد SI: 1/s).
انتقال جرم با معادله همرفت و انتشار توصیف می شود

که در آن u بردار سرعت (واحد SI: m/s) و D ضریب انتشار (واحد SI: m2 / s) است. معادلات ناویر-استوکس جریان سیال را توصیف می کند:
(2)

ضریب α(ε) به توزیع کاتالیزور متخلخل بستگی دارد
(3)

که در آن Da عدد دارسی است. L مقیاس طول (واحد SI: m) است. و q یک پارامتر بدون بعد است که تفسیر آن در بخش بعدی مورد بحث قرار می گیرد.
از معادله 3 ، نتیجه مستقیم این است که وقتی ε برابر 1 است، α برابر با صفر است و معادله 2 به معادلات معمولی ناویر-استوکس کاهش مییابد. در این مورد سرعت واکنش صفر است. معادله 1 را ببینید .
به طور خلاصه، مشکل بهینه سازی این است
(4)

جایی که



و شرایط مرزی فیزیکی اعمال می شود.
مشکلات بهینه سازی محدب
یکی از مهمترین ویژگی های یک مسئله بهینه سازی محدب بودن یا نبودن مسئله است . بنابراین این بخش به طور خلاصه این ویژگی را توضیح می دهد. برای بحث کلی تر در مورد موضوع، به عنوان مثال Ref. 2 .
مجموعه C محدب است اگر برای هر دو عضو x , y از C رابطه زیر برقرار باشد:

یعنی خط مستقیم بین x و y به طور کامل در C موجود است . یک تابع محدب نگاشت f از مجموعه محدب C است به طوری که برای هر دو عضو x ، y از C
(5)

اگر شرایط زیر وجود داشته باشد، یک مسئله بهینهسازی محدب گفته میشود:
• | دامنه طراحی محدب است |
• | هدف و محدودیت ها توابع محدب هستند |
اهمیت تحدب به سادگی از این نتیجه حاصل می شود که اگر x * یک حداقل محلی برای یک مسئله بهینه سازی محدب باشد، x * نیز یک حداقل جهانی است . این به سادگی با فرض وجود y به گونه ای که f ( y ) < f ( x * ) وجود دارد و سپس با استفاده از معادله 5 به راحتی ثابت می شود .
این مسئله بهینه سازی خاص غیرخطی است، زیرا تغییر در ε دلالت بر تغییر در غلظت، c دارد . به دلیل این وابستگی ضمنی، تعیین محدب بودن یا نبودن هدف بسیار دشوار است. بنابراین هیچ تضمینی وجود ندارد که راه حل بهینه ای که به دست می آورید در سطح جهانی بهینه یا منحصر به فرد باشد. در بهترین حالت، اجرای بهینهسازی بهینه محلی خوبی میدهد.
پارامتر q می تواند برای صاف کردن رابط بین کاتالیزور و کانال باز استفاده شود. برای مشاهده تأثیر این پارامتر، معادله 3 را به صورت بازنویسی کنید

نتیجه این است که وقتی q به بی نهایت نزدیک می شود، α تخلخل (معکوس) است. از طرف دیگر، کاهش مقدار q باعث کاهش مقدار α می شود .

شکل 2: q ( 1 – ε)/( q – ε) به عنوان تابعی از ε برای مقادیر مختلف q رسم شده است .
شکل 2 q ( 1 – ε ) / ( q – ε ) را به عنوان تابعی از ε برای مقادیر مختلف q نشان می دهداین نمودار نشان می دهد که کاهش مقدار q ، تحدب ضریب نیرو را افزایش می دهد. برای مقدار q پایین ، افزایش ε در حدود 0.5 ، افزایش کمی ضریب نیرو را تحمیل می کند، در حالی که برای مقدار بالاتر q ، تغییر در ε تغییر تقریباً مساوی را برای کل محدوده تحمیل می کند. بنابراین، برای مقدار q کمتر ، راه حل در رابط ها واضح نیست. از سوی دیگر، برای مقادیر کوچک εزمانی که q کوچک باشد ، اصطلاح نیرو به سرعت کاهش مییابد و بنابراین میدان جریان را تا حد زیادی تحت تأثیر قرار میدهد. در حد زمانی که q به بی نهایت نزدیک می شود، α به عنوان تابعی از ε یک خط مستقیم است.
نتایج و بحث
شکل 3 میدان سرعت را در کانال خالی نشان می دهد. این نقطه شروع بهینه سازی است.

شکل 3: میدان سرعت در کانال باز.

شکل 4: توزیع کاتالیزور متخلخل به رنگ سیاه و کانال باز به رنگ سفید دیده می شود.
شکل 4 توزیع کاتالیزور متخلخل را به رنگ سیاه و کانال های باز را به رنگ سفید نشان می دهد. این نتیجه نشان می دهد که به طور بهینه، عرضه واکنش دهنده باید در سطح وسیعی از راکتور توزیع شود. همچنین توجه داشته باشید که میزان حجم کانال باز قابل توجه است.
شکل 5 توزیع غلظت را در راکتور نشان می دهد. این نمودار نشان می دهد که چگونه کاتالیزور متخلخل با واکنش دهنده از طریق کانال های باز تغذیه می شود. طرح به طور طبیعی شبیه شکل 4 است .

شکل 5: توزیع غلظت در راکتور پس از بهینه سازی.
اجازه دهید

که در آن n جریان به نرمال به مرز ∂Ω i در جهت جریان اشاره دارد (یعنی اشاره به دامنه در ورودی و خارج از دامنه در خروجی). سپس F i اندازه گیری جریان گونه با غلظت c از طریق مرز ∂Ω i در واحد طول در بعد عرضی است. تبدیل X واکنش دهنده به صورت تعریف شده است

در این مورد، تبدیل واکنش دهنده حدود 50٪ است.
شکل 6 میدان سرعت را در راکتور نشان می دهد. کاتالیزور متخلخل جریان را به طور قابل توجهی در مقایسه با شکل 3 کند می کند .

شکل 6: میدان سرعت در راکتور پس از بهینه سازی.
منابع
1. F. Okkels و H. Bruus، “رفتار مقیاس بندی راکتورهای میکروسیال کاتالیستی با ساختار بهینه،” فیزیک. Rev. E , vol. 75، صفحات 016301 1-4، 2007.
2. SG Nash و A. Sofer، برنامه نویسی خطی و غیر خطی ، McGraw-Hill، 1995.
مسیر کتابخانه برنامه: ماژول_مهندسی_واکنش_شیمیایی/رآکتورهای_با_انتقال_انبوه/بهینه سازی_میکرواکتور
دستورالعمل های مدل سازی
از منوی File ، New را انتخاب کنید .
جدید
در پنجره جدید ، روی
Model Wizard کلیک کنید .

مدل جادوگر
1 | در پنجره Model Wizard روی ![]() |
2 | در درخت Select Physics ، Fluid Flow>Single-Phase Flow>Laminar Flow (spf) را انتخاب کنید . |
3 | روی افزودن کلیک کنید . |
4 | در درخت Select Physics ، Chemical Species Transport>Transport of Diluted Species (tds) را انتخاب کنید . |
5 | روی افزودن کلیک کنید . |
6 | ![]() |
7 | در درخت انتخاب مطالعه ، General Studies>Stationary را انتخاب کنید . |
8 | ![]() |
ریشه
بارگذاری پارامترها از یک فایل متنی
تعاریف جهانی
پارامترهای 1
1 | در پنجره Model Builder ، در قسمت Global Definitions روی Parameters 1 کلیک کنید . |
2 | در پنجره تنظیمات برای پارامترها ، بخش پارامترها را پیدا کنید . |
3 | ![]() |
4 | به پوشه Application Libraries مدل بروید و روی فایل microreactor_optimization_parameters.txt دوبار کلیک کنید . |
هندسه 1
بعد، هندسه را ایجاد کنید. راکتور از سه حوزه تشکیل شده است: کانال ورودی، حوزه واکنش دهنده و کانال خروجی ( شکل 1 را ببینید ).
1 | در پنجره Model Builder ، در قسمت Component 1 (comp1) روی Geometry 1 کلیک کنید . |
2 | در پنجره تنظیمات هندسه ، بخش Units را پیدا کنید . |
3 | از لیست واحد طول ، میلی متر را انتخاب کنید . |
مستطیل 1 (r1)
1 | در نوار ابزار Geometry ، روی ![]() |
2 | در پنجره تنظیمات برای Rectangle ، بخش Size and Shape را پیدا کنید . |
3 | در قسمت متن Width ، 2*L را تایپ کنید . |
4 | در قسمت متن ارتفاع ، L را تایپ کنید . |
مستطیل 2 (r2)
1 | در نوار ابزار Geometry ، روی ![]() |
2 | در پنجره تنظیمات برای Rectangle ، بخش Size and Shape را پیدا کنید . |
3 | در قسمت متن Width ، 6*L را تایپ کنید . |
4 | در قسمت متن ارتفاع ، 3*L را تایپ کنید . |
5 | قسمت Position را پیدا کنید . در قسمت متن x ، 2*L را تایپ کنید . |
6 | قسمت Selections of Resulting Entities را پیدا کنید . تیک گزینه Resulting objects selection را انتخاب کنید . |
مستطیل 3 (r3)
1 | در نوار ابزار Geometry ، روی ![]() |
2 | در پنجره تنظیمات برای Rectangle ، بخش Size and Shape را پیدا کنید . |
3 | در قسمت متن Width ، 2*L را تایپ کنید . |
4 | در قسمت متن ارتفاع ، L را تایپ کنید . |
5 | قسمت Position را پیدا کنید . در قسمت متن x ، 8*L را تایپ کنید . |
6 | ![]() |
7 | ![]() |
اکنون هندسه باید مانند شکل 1 باشد .
کوپلینگ های یکپارچه سازی را برای محاسبه تبدیل واکنش دهنده تعریف کنید.
یک ویژگی توپولوژی چگالی اضافه کنید، که می تواند برای تمایز بین جریان آزاد و مناطق جامد استفاده شود. این متغیر بعداً به رابط های Laminar Flow کوپل می شود .
جزء 1 (COMP1)
تراکم مدل 1 (dtopo1)
1 | در نوار ابزار تعاریف ، روی ![]() |
در بهینه سازی فقط قسمت مرکزی هندسه کانال مورد نیاز است، بنابراین فقط باید ویژگی را در آنجا تعریف کنید.
2 | در پنجره تنظیمات برای مدل چگالی ، قسمت انتخاب موجودیت هندسی را پیدا کنید . |
3 | از لیست Selection ، Rectangle 2 را انتخاب کنید . |
4 | قسمت Filtering را پیدا کنید . از لیست نوع فیلتر ، هیچکدام را انتخاب کنید . |
5 | بخش Interpolation را پیدا کنید . از لیست نوع درون یابی ، دارسی را انتخاب کنید . |
6 | در قسمت متن q دارسی ، q را تایپ کنید . |
7 | قسمت Control Variable Initial Value را پیدا کنید . در قسمت متن θ 0 ، 1 را تایپ کنید . |
حال متغیر طراحی مورد استفاده در بهینه سازی تعریف شده است. مقدار اولیه 1 مربوط به یک کانال عاری از مواد متخلخل است.
تعاریف
متغیرهای 1
1 | در نوار ابزار تعاریف ، روی متغیرهای ![]() |
2 | در پنجره تنظیمات برای متغیرها ، قسمت انتخاب موجودیت هندسی را پیدا کنید . |
3 | از لیست سطح نهاد هندسی ، دامنه را انتخاب کنید . |
4 | فقط دامنه 2 را انتخاب کنید. |
5 | قسمت Variables را پیدا کنید . در جدول تنظیمات زیر را وارد کنید: |
نام | اصطلاح | واحد | شرح |
فی | k_a*(1-dtopo1.theta)*c | mol/(m³·s) | سرعت واکنش موضعی |
آلفا | ( mat 1 . def . eta ( minput . T ) / ( Da * L ^ 2 )) * dtopo 1 . theta_p | ضریب نیروی کشش |
تابع هدف
1 | در نوار ابزار تعاریف ، روی ![]() |
2 | در پنجره تنظیمات برای Domain Probe ، Objective Function را در قسمت نوشتار Label تایپ کنید . |
3 | در قسمت متن نام متغیر ، obj را تایپ کنید . |
4 | بخش انتخاب منبع را پیدا کنید . از لیست Selection ، Rectangle 2 را انتخاب کنید . |
5 | روی Replace Expression در گوشه سمت راست بالای بخش Expression کلیک کنید . از منو، Component 1 (comp1)>Definitions>Variables>phi – Local React Rate – mol/(m³·s) را انتخاب کنید . |
مواد را اضافه کنید
1 | در نوار ابزار Home ، روی ![]() |
2 | به پنجره Add Material بروید . |
3 | در درخت، Built-in>Water, liquid را انتخاب کنید . |
4 | روی Add to Component در نوار ابزار پنجره کلیک کنید . |
5 | در نوار ابزار Home ، روی ![]() |
جریان آرام (SPF)
حجم 1
1 | در پنجره Model Builder ، در قسمت Component 1 (comp1) روی Laminar Flow (spf) کلیک راست کرده و Volume Force را انتخاب کنید . |
2 | فقط دامنه 2 را انتخاب کنید. |
3 | در پنجره تنظیمات برای Volume Force ، بخش Volume Force را پیدا کنید . |
4 | بردار F را به صورت مشخص کنید |
-alpha*u | ایکس |
-alpha*v | y |
ورودی 1
1 | در نوار ابزار Physics ، روی ![]() |
2 | فقط مرز 1 را انتخاب کنید. |
3 | در پنجره تنظیمات برای ورودی ، بخش Boundary Condition را پیدا کنید . |
4 | از لیست، فشار را انتخاب کنید . |
5 | بخش شرایط فشار را پیدا کنید . در قسمت متن p 0 ، delta_p را تایپ کنید . |
تقارن 1
1 | در نوار ابزار Physics ، روی ![]() |
2 | فقط مرزهای 2، 5 و 9 را انتخاب کنید. |
خروجی 1
1 | در نوار ابزار Physics ، روی ![]() |
2 | فقط مرز 12 را انتخاب کنید. |
حمل و نقل گونه های رقیق شده (TDS)
ویژگی های حمل و نقل 1
1 | در پنجره Model Builder ، در قسمت Component 1 (comp1)>Transport of Diluted Species (tds) روی Transport Properties 1 کلیک کنید . |
2 | در پنجره تنظیمات برای ویژگی های حمل و نقل ، بخش Diffusion را پیدا کنید . |
3 | در قسمت متن D c ، D را تایپ کنید . |
واکنش ها 1
1 | در نوار ابزار Physics ، روی ![]() |
2 | فقط دامنه 2 را انتخاب کنید. |
3 | در پنجره تنظیمات برای واکنشها ، بخش نرخهای واکنش را پیدا کنید . |
4 | در قسمت متن Rc ، -phi را تایپ کنید . |
تمرکز 1
1 | در نوار ابزار Physics ، روی ![]() |
2 | در پنجره تنظیمات برای تمرکز ، بخش تمرکز را پیدا کنید . |
3 | تیک گزینه Species c را انتخاب کنید . |
4 | در قسمت متنی c 0,c ، c_in را تایپ کنید . |
5 | فقط مرز 1 را انتخاب کنید. |
خروجی 1
1 | در نوار ابزار Physics ، روی ![]() |
2 | فقط مرز 12 را انتخاب کنید. |
این مثال هم برای حل مسئله فیزیک و هم برای حل مسئله بهینه سازی توپولوژی به یک مش ظریف نیاز دارد.
چند فیزیک
اینترفیس ها را با گره چندفیزیکی Reacting Flow جفت کنید .
جریان واکنش، گونه رقیق شده 1 (rfd1)
در نوار ابزار Physics ، روی
Multiphysics Couplings کلیک کنید و Domain>Reacting Flow، Diluted Species را انتخاب کنید .

مش 1
1 | در پنجره Model Builder ، در قسمت Component 1 (comp1) روی Mesh 1 کلیک کنید . |
2 | در پنجره تنظیمات مش ، بخش Sequence Type را پیدا کنید . |
3 | از لیست، مش کنترل شده توسط کاربر را انتخاب کنید . |
اندازه
1 | در پنجره Model Builder ، در قسمت Component 1 (comp1)>Mesh 1 روی Size کلیک کنید . |
2 | در پنجره تنظیمات برای اندازه ، قسمت اندازه عنصر را پیدا کنید . |
3 | از فهرست Calibrate for ، فیزیک عمومی را انتخاب کنید . |
4 | از لیست از پیش تعریف شده ، Extremely fine را انتخاب کنید . |
اصلاح گوشه 1، سایز 1
1 | در پنجره Model Builder ، در قسمت Component 1 (comp1)>Mesh 1 ، روی Ctrl کلیک کنید تا Size 1 و Corner Refinement 1 را انتخاب کنید . |
2 | کلیک راست کرده و Disable را انتخاب کنید . |
لایه های مرزی 1
1 | در پنجره Model Builder ، روی Boundary Layers 1 کلیک راست کرده و Disable را انتخاب کنید . |
2 | در پنجره تنظیمات برای لایه های مرزی ، روی ساختن همه کلیک کنید . ![]() |
مطالعه 1
اگرچه میتوانید مستقیماً مسئله بهینهسازی را حل کنید، اما بررسی اینکه راهحل مسئله PDE قبل از شروع بهینهسازی درست به نظر میرسد میتواند مفید باشد.
1 | در نوار ابزار صفحه اصلی ، ![]() |
نتایج
سرعت (spf)
اولین نمودار پیش فرض ( شکل 3 را ببینید ) میدان سرعت را در راکتور نشان می دهد.
حالا مشکل بهینه سازی را حل کنید.
مطالعه 1
بهینه سازی توپولوژی
1 | در نوار ابزار مطالعه ، روی ![]() |
2 | در پنجره تنظیمات برای بهینه سازی توپولوژی ، بخش Optimization Solver را پیدا کنید . |
3 | در قسمت حداکثر تعداد تکرار ، 50 را تایپ کنید . |
4 | روی Add Expression در گوشه سمت راست بالای بخش Objective Function کلیک کنید . از منو، Component 1 (comp1)>Definitions>comp1.obj – Objective Function – mol/(m³·s) را انتخاب کنید . |
5 | قسمت Objective Function را پیدا کنید . از لیست Type ، Maximization را انتخاب کنید . |
6 | از لیست مقیاس بندی هدف ، دستی را انتخاب کنید . |
7 | در قسمت متن مقیاس ، 0.1 را تایپ کنید . |
8 | قسمت Output while Solving را پیدا کنید . کادر Plot را انتخاب کنید . |
این تنظیم نموداری از توزیع سرعت در حال تحول در پنجره گرافیک را نشان می دهد .
راه حل 1 (sol1)
1 | در نوار ابزار مطالعه ، روی ![]() |
پیاده سازی اصلی MMA (1987) همگرایی نهایی بدتری نسبت به GCMMA دارد، اما همچنین می تواند کمتر مستعد حداقل های محلی باشد، که برای بسیاری از مسائل بهینه سازی توپولوژی اهمیت بیشتری دارد.
2 | در پنجره Model Builder ، گره Solution 1 (sol1) را گسترش دهید ، سپس روی Optimization Solver 1 کلیک کنید . |
3 | در پنجره تنظیمات مربوط به بهینه سازی حل کننده ، بخش Optimization Solver را پیدا کنید . |
4 | تیک Globally Convergent MMA را پاک کنید . |
5 | برای گسترش بخش Advanced کلیک کنید . از لیست Compensate for nojac Terms ، گزینه Off را انتخاب کنید تا از اخطارها در گزارش جلوگیری کنید. |
6 | در نوار ابزار مطالعه ، ![]() |
نتایج
سرعت (spf)
میدان سرعت در راکتور پس از بهینه سازی باید شبیه شکل 6 باشد .
غلظت (tds)
نمودار سوم پیش فرض توزیع غلظت در راکتور را پس از بهینه سازی نشان می دهد ( شکل 5 ).
ساده 1
1 | در پنجره Model Builder ، گره Concentration (tds) را گسترش دهید ، سپس روی Streamline 1 کلیک کنید . |
2 | در پنجره تنظیمات برای Streamline ، بخش Streamline Positioning را پیدا کنید . |
3 | از لیست موقعیت یابی ، روی مرزهای انتخاب شده را انتخاب کنید . |
4 | در قسمت متن شماره ، 5 را تایپ کنید . |
5 | قسمت Selection را پیدا کنید . برای انتخاب دکمه ضامن ![]() |
6 | فقط مرز 1 را انتخاب کنید. |
7 | در نوار ابزار Concentration (tds) ، روی ![]() |
برای بازتولید نمودار در شکل 4 ، نمودار پیش فرض را با مراحل زیر اصلاح کنید.
توزیع کاتالیزور متخلخل
1 | در پنجره Model Builder ، گره Results>Topology Optimization را گسترش دهید ، سپس روی ضریب حجم مواد خروجی کلیک کنید . |
2 | در پنجره تنظیمات برای گروه طرح دو بعدی ، توزیع کاتالیست متخلخل را در قسمت نوشتار برچسب تایپ کنید . |
3 | برای گسترش بخش عنوان کلیک کنید . از لیست نوع عنوان ، دستی را انتخاب کنید . |
4 | در قسمت متن عنوان ، توزیع کاتالیست متخلخل را تایپ کنید . |
سطح 1
1 | در پنجره Model Builder ، توزیع گره کاتالیست متخلخل را گسترش دهید ، سپس روی Surface 1 کلیک کنید . |
2 | در پنجره تنظیمات برای Surface ، بخش Coloring and Style را پیدا کنید . |
3 | ![]() |
4 | در کادر محاوره ای Color Table ، Linear>GrayScale را در درخت انتخاب کنید. |
5 | روی OK کلیک کنید . |
6 | در پنجره تنظیمات برای Surface ، بخش Coloring and Style را پیدا کنید . |
7 | تیک Color legend را پاک کنید . |
8 | از لیست تبدیل جدول رنگ ، هیچکدام را انتخاب کنید . |
9 | در نوار ابزار توزیع متخلخل ، روی ![]() |
10 | ![]() |
برای نمایش نتیجه برای نرخ تبدیل به صورت زیر ادامه دهید.
ارزیابی جهانی 1
1 | در نوار ابزار نتایج ، روی ارزیابی ![]() |
2 | در پنجره تنظیمات برای ارزیابی جهانی ، روی Add Expression در گوشه سمت راست بالای بخش عبارات کلیک کنید . از منو، Solver>Objective functions>opt.obj1 – Objective Function – mol/(m³·s) را انتخاب کنید . |
3 | ![]() |
جدول
1 | به پنجره Table بروید . |
مقدار در پنجره جدول زیر پنجره گرافیک ظاهر می شود .