نحوه کار دستی با شماره های موجود در انتخاب ها
در قسمت 1 از این مجموعه وبلاگ ، نحوه صادرات یک فایل M مدل را از نرم افزار شبیه سازی COMSOL Multiphysics® برای یادگیری ساختار رابط برنامه نویسی کاربردی COMSOL (API) معرفی کردم. یکی از بخشهای مهم فایل M مدل، انتخابهایی است که به منظور تنظیم ویژگیهای دامنه، مرزها و غیره انجام میشود. این انتخابها با استفاده از اعداد شناسایی میشوند. در اینجا، توضیح می دهیم که چگونه می توانید با استفاده از LiveLink™ برای MATLAB ، مدیریت اعداد موجودیت را خودکار کنید .
مدیریت انتخاب ها هنگام تغییر هندسه
هنگامی که تغییرات بزرگی در هندسه مدل ایجاد میشود، پیگیری اعدادی که دامنهها، مرزها، یالها یا رئوس تخصیص داده شدهاند یک چالش است. این اعداد برای تعیین مکان هایی که تنظیمات خاصی باید اعمال شوند استفاده می شود:
قسمت بالای شکل بالا یک هیت سینک را نشان می دهد که تنها یک باله بالای پایه هیت سینک دارد. این طراحی چندان کارآمدی نیست، بنابراین من بالههای بیشتری اضافه میکنم تا عملکرد هیت سینک را برای طرحهای مختلف محاسبه کنم.
همانطور که در قسمت پایین شکل مشاهده می کنید، زمانی که باله دوم در بالای پایه هیت سینک قرار می گیرد، شماره گذاری مرزها تغییر می کند. طبیعتاً مرزهایی که بخشی از باله جدید معرفی شده هستند باید اعدادی متفاوت از طرح قبلی دریافت کنند، زیرا این مرزها تاکنون بخشی از مدل نبوده است. معرفی مرزهای جدید همچنین به این معنی است که برخی از اعداد قدیمی تغییر خواهند کرد.
توجه داشته باشید که پیشبینی شمارهگذاری معمولاً بسیار دشوار است، حتی برای یک مدل دو بعدی ساده مانند این. برای یک مدل پیچیده تر در دو بعدی و سه بعدی، حتی پیچیده تر می شود. مثالها و کدهای مورد استفاده در اینجا میتوانستند به همین راحتی با یک مدل سهبعدی ساخته شوند، اما من انتخاب کردم که مدل دوبعدی را انتخاب کنم، زیرا پیگیری آنچه در حال وقوع است بسیار آسانتر میشود.
هنگام اعمال تنظیمات مدل برای مرزها، شماره گذاری مهم می شود. شکل زیر نشان میدهد که شرایط مرزی قسمت خنک هیت سینک چگونه است:
مرزها به راحتی در پنجره Graphics در سمت راست شناسایی می شوند. اعداد مربوطه در پنجره تنظیمات Heat Flux در وسط (به رنگ صورتی دایره شده) دیده می شود .
انتخاب در کد فایل مدل M
بیایید نگاهی بیندازیم که انتخاب های مربوطه در کد فایل M مدل چگونه به نظر می رسند:
مجموعه اول برای قسمت بالایی است که در آن خنک سازی انجام می شود و مجموعه دوم نشان دهنده قسمت داغ هیت سینک است. هنگامی که باله دوم (یا بیشتر، بسته به سناریوی مدل سازی شما) به مدل اضافه می شود، معمولاً تصور کمی از اعداد انتخابی برای استفاده نداریم.
دو روش متمایز برای ردیابی اعداد موجودیت وجود دارد:
- استفاده از LiveLink™ برای قابلیت MATLAB® برای ردیابی موجودیت های هندسی بر اساس مختصات آنها
- کار با منتخب از عملیات هندسی برای ردیابی موجودیت های هندسی
روش 1 معمولاً سادهترین زمانی است که شما تغییرات بسیار بزرگی (مثلاً اشیاء جدید، مانند آنچه در اینجا انجام خواهیم داد) در هندسه و تعداد موجودات هندسی تغییر میدهید. این روش کار با یک مدل را در خط فرمان هنگام تغییر بیت به بیت مدل بسیار آسان می کند.
روش 2 معمولاً به مراحل بیشتری برای راهاندازی نیاز دارد، اما این مزیت را دارد که پس از راهاندازی مدل، میتوانید بهکلی از استفاده از شمارههای موجود اجتناب کنید. این مدل را میتوان به راحتی از طریق LiveLink™ برای MATLAB یا مستقیماً در رابط کاربری COMSOL Multiphysics® (UI) استفاده کرد.
توجه داشته باشید که اگر مدلی دارید که در آن اشیاء اضافه یا حذف نمی کنید و توپولوژی آن را تغییر نمی دهید، شماره گذاری انتخاب های مدل به طور خودکار با تغییر تنظیمات مدل و به عنوان مثال، جابجایی اشیا به روز می شود. از یک مکان به مکان دیگر
انتخاب های مبتنی بر مختصات با استفاده از LiveLink™ برای عملکرد MATLAB®
این مدل به صورت فایل M و MPH موجود است. به طور معمول، بهترین راه حل استفاده از فایل MPH به عنوان پایه ای برای تغییرات مدل است. بارگذاری یک فایل MPH معمولا سریعتر از اجرای فایل M مربوطه است. البته، فایل MPH میتواند حاوی مشها و راهحلهایی باشد که نمیتوان آنها را به عنوان بخشی از فایل M ذخیره کرد، که این امر ترسیم نتایج مدل را بسیار آسانتر میکند.
مدل را با استفاده از این دستور بارگذاری می کنیم:model = mphload('heat_param1')
یک باله جدید با این دستورات ساده وارد مدل می شود:
طراحی با استفاده از این دستور تأیید می شود:
mphgeom(model,'geom1','edgelabels','on')
که هندسه را در شکل MATLAB رسم می کند.
این باعث ایجاد قسمت پایینی شکل هیت سینک می شود. در این شکل، اعداد را می توان به صورت بصری شناسایی کرد، اما ما می خواهیم فرآیند را به گونه ای خودکار کنیم که بتوانیم تعداد باله ها و طراحی آنها را تغییر دهیم. اگر از دستور استفاده کنیم، به دست آوردن شماره موجودیت مرزهایی که نیاز داریم آسان است mphselectbox
. این دستور با استفاده از یک کادر موجودیت هایی را انتخاب می کند که باید مختصات دو گوشه مقابل را مشخص کنید. تابع متناظری به نام وجود دارد mphselectcoords
که موجودیت های داخل یک دایره (یا یک کره به صورت سه بعدی) را انتخاب می کند، اما ما در این مثال از آن تابع استفاده نخواهیم کرد.
در زیر mphselectbox
دستوراتی که باید برای این مدل استفاده کنیم آمده است. برای پره های خنک کننده، ما یک مجموعه مختصات را ارائه می کنیم که تمام قسمت بالایی هیت سینک را پوشش می دهد. یعنی وقتی پره های بیشتری به هیت سینک اضافه می کنم، این پره های جدید توسط مستطیل پوشانده می شوند و می توانم از همان کد برای دریافت اعداد انتخابی در آن زمان استفاده کنم. برای قسمت داغ و پایینی هیت سینک، باید از دو تماس mphselectbox استفاده کنم و ترکیب شماره های انتخابی را بگیرم. “Union” یک تابع استاندارد MATLAB® است که ترکیب یک مجموعه را می گیرد. همچنین می توان از توابع MATLAB®، “setdiff” و “intersect” برای بازی با اعداد انتخابی برای به دست آوردن نتیجه دلخواه استفاده کرد.
خروجی به شکل زیر است:
اکنون به راحتی می توان تنظیمات مدل را با اعداد صحیح به روز کرد:
شبیه سازی
پس از تنظیم انتخاب ها، تنظیم تعداد باله ها آسان است. اسکریپت زیر نحوه تنظیم یک حلقه ساده را نشان می دهد که چهار باله (یک به یک) به یک مدل اضافه می کند و حل می شود. هدف این است که اثر افزودن باله های بیشتر به هیت سینک را بیابید.
خط اول برای بارگذاری مدل از یک فایل MPH استفاده می شود. به این ترتیب، ما مجبور نیستیم یک فایل M را اجرا کنیم، که معمولاً زمان بیشتری نسبت به بارگذاری یک فایل MPH نیاز دارد.
در حلقه for، چند باله دیگر با اندازه و مکان مناسب به مدل اضافه می شود. اعداد انتخابی با استفاده از mphselectbox بازیابی می شوند و مدل حل می شود. ما یک نمودار از هر نتیجه ایجاد می کنیم تا پس از تکمیل تجزیه و تحلیل مورد مطالعه قرار گیرد.
روش “uniquetag” برای گرفتن برچسب برای باله جدید (مستطیل) استفاده می شود. وقتی از تگ منحصر به فرد استفاده می کنیم، لازم نیست حدس بزنیم چه برچسب هایی قبلاً گرفته شده اند و کدام یک ممکن است در دسترس باشد. این استفاده از تگ منحصربهفرد با آرگومان «r»، یک تگ متشکل از «r» و یک عدد موجود را برمیگرداند.
آنچه ما آموخته ایم
هنگامی که هندسه یک مدل را تغییر می دهیم (مخصوصاً وقتی توپولوژی جدید را معرفی می کنیم)، پیگیری اعداد موجودیت برای تعیین تنظیمات مدل مهم است. یک راه کارآمد برای انجام این کار در یک فایل M مدل، یا در خط فرمان MATLAB®، استفاده از توابع wrapper است، mphselectbox
و mphselectcoords
اعداد موجودیت بر اساس مختصات موجودیت را برمی گرداند.
بعدی
در پست بعدی وبلاگ در این مجموعه کار با M-files بحث خواهیم کرد که چگونه می توانیم یک مدل را با استفاده از انتخاب های عملیات هندسی تنظیم کنیم. این منجر به مدلی می شود که هم با LiveLink™ برای MATLAB® و هم از داخل رابط کاربری COMSOL Multiphysics® قابل استفاده است. استفاده از این روش به این معنی است که ما مستقیماً با اشیاء انتخابی کار میکنیم و در بسیاری از موارد، میتوانیم بهکلی از استفاده از اعداد موجودیت اجتناب کنیم.
سایر پست های این مجموعه
MATLAB یک علامت تجاری ثبت شده The MathWorks, Inc.
- لینک دانلود به صورت پارت های 1 گیگابایتی در فایل های ZIP ارائه شده است.
- در صورتی که به هر دلیل موفق به دانلود فایل مورد نظر نشدید به ما اطلاع دهید.
برای مشاهده لینک دانلود لطفا وارد حساب کاربری خود شوید!
وارد شویدپسورد فایل : پسورد ندارد گزارش خرابی لینک
دیدگاهتان را بنویسید