ایجاد کتابخانه توابع در ایز

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

ایز هر شش ماه یکبار یک خبرنامه چاپ منتشر میکند که در آن آخرین تغییرات و مسائل مهم در ایز را توضیح می دهد. تا الان 41 خبرنامه منتشر شده است. برای دسترسی به این خبرنامه ها از این لینک استفاده کنید.

نمونه ای از کتابخانه ساخته شده که از منو EES library routines در دسترس است. در این خبرنامه نحوه تنظیم واحد و همچنین نحوه تهیه فایل راهنما برای این کتابخانه توضیح داده شده است.

راه حل مشکل محاسبه LMTD

بسیاری از مدلسازی و مسائل مهندسی نیاز به محاسبات انتقال حرارت به خصوص معادلات مربوط به مبدل‌های حرارتی دارند. یکی از روشهای محاسبه مبدل‌های حرارتی روش میانگین لگاریتمی اختلاف دما یا (Logarithmic Mean Temperature Difference) LMTD است. اما در عین سادگی استفاده، مدل LMTD می‌­تواند حل­ کننده‌­های عددی را دچار مشکل کند. منبع ایجاد مشکل، جاهایی است که LMTD به صورت لحظه ای تعریف نشده می‌شود از جمله:

  • برابر شدن مقدار dT1 و dT2 یا صفر شدن هر یک از آنها اغلب به دلیل حدس اشتباه!
  • ضریب انتقال حرارت زیاد: اگر ضریب انتقال حرارت یا سطح انتقال حرارت زیاد باشد، اختلاف درجه حرارت مقدار کوچکی نزدیک به صفر خواهد بود.  با توجه به خطی سازی موجود در روش نیوتن، حل کننده مقداری منفی را برای اختلاف درجه حرارت در نظر خواهد گرفت که از نظر فیزیکی غیر ممکن و از نظر ریاضی تعریف نشده است.
  • حدس اشتباه: حدس اولیه ممکن است مدل را در محدوده غیر مجاز قرار دهد. این مورد بسیار شایع است.

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

براساس رابطه LMTD، مدل به شکل زیر پیشنهاد می­گردد:

// Valid procedure with DELTAT as inputs and user-defined epsilon
Procedure LMTD(DELTAT1,DELTAT2:DELTAT_log)

xi = 5
epsilon = 2

if DELTAT1>epsilon then
if DELTAT2>epsilon then
if DELTAT1 <> DELTAT2 then
DELTAT_log = (DELTAT1 – DELTAT2)/(ln(DELTAT1) – ln(DELTAT2))
else
DELTAT_log = (DELTAT1+DELTAT2)/2
endif
else
DELTAT_log = (DELTAT1 – epsilon)/(ln(DELTAT1/epsilon) * (1 – xi*(DELTAT2-epsilon)))
endif
else
if DELTAT2>epsilon then
DELTAT_log = (DELTAT2- epsilon)/(ln(DELTAT2/epsilon) * (1- xi*(DELTAT1-epsilon)))
else
DELTAT_log = epsilon/( (1- xi * (DELTAT1-epsilon)) * (1 – xi*(DELTAT2-epsilon)))
endif
endif

تجربه استفاده از موبایل اندروید قدیمی به عنوان یک وبکم USB یا WiFi با کیفیت بالا

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

لطفاً در خصوص این متن هیچ توضیح دیگری از من نخواهید! با کمی جستجو در اینترنت میتوانید پاسخ همه سوالات خود را بیابید.

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

اما این بار میخواستم که یک موبایل قدیمی رو تبدیل به یک وبکم USB کنم. کلی اپلیکیشن برای این کار هست، خیلی از اونها رو تست کردم، اغلب اونها روی موبایل من که اندروید قدیمی 4.1.2 داشت حتی نصب هم نمی شدن و اونهایی که نصب میشدن هم توسط نرم‌افزار شناسایی نمی شدن یا نرم افزار خطا میداد که اپلیکیشن قدیمی هست!

تا این که در نهایت ویرایش نسبتاً قدیمی 6.4.8 اپلیکیشن DroidCamX رو در یکی از سایتهای داخلی یافتم، روی گوشی نصب شد، بدون محدودیت! برای اینکه بتونید با USB وصل بشید، لازم هست که روی موبایل Developer Option رو فعال کنید و توی اون USB debugging رو فعال کنید.

مرحله بعد نصب نرم افزار ویندوز و اتصال کابل USB هست، تجربه من این هست که به صورت خودکار همدیگه رو میشناسن، اگر نشناختن شاید لازم باشه که درایورهای لازم رو نصب کنید. توی سایت اپلیکیشن توضیحات لازم هست. نرم افزارهای جدید ویندوز میگفتن که ویرایش اپلیکیشن قدیمی هست و اصلاً وصل نمی شدن یا خطاهای دیگری نشون میدادن. در نهایت ویرایش 6.0.0 نرم افزار DroidCam windows client با موفقیت متصل شد.

با تلاش کمتر، درک بهتری داشته باشیم و نمره بهتری بگیریم

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

https://collegeinfogeek.com/get-better-grades/
کتاب زبان اصلی رو می‌تونید از لینک بالا به صورت رایگان دریافت کنید. مطالعه اون رو به همه دانشجویان و دانش آموزان پیشنهاد میکنم.
البته این کتاب به زبان فارسی هم ترجمه شده به دنبال “کتاب 10 قدم تا بهترین نمره” در گوگل جستجو کنید، اما من ترجمه رو نخوندم و نمی‌تونم در موردش نظر بدم!کتاب صوتیش هم هست، در مورد اون هم نظری ندارم!!

معرفی Mathematica

متمتیکا یک نرم افزار پیشرفته ریاضی است. توانایی بالای محاسبات تحلیلی این نرم افزار را از رقیبانش مانند متلب متمایز کرده است.

دانلود فایل متمتیکا استفاده شده در آموزش
برای استفاده ابتدا فایل را از حالت فشرده خارج نمایید!

آموزش مقدماتی پایتون (فیلم آموزشی)

آموزش مقدماتی پایتون برای کسانی که تازه میخواهند پایتون را بیاموزند. لطفاً قبل از شروع آموزش آناکوندا را از سایت رسمی آن دانلود و نصب نمایید. آناکوندا ابزارهای لازم برای برنامه نویسی پایتون را در اختیار شما قرار میدهد. یکی از بهترین محیطهای برنامه نویسی پایتون Jupyter و نوع پیشرفته تر آن Jupyter Lab است که در این آموزش از آن استفاده خواهیم کرد.

نقش استاد در یادگیری

اولین بار بود که اینقدر زیبا کسی معادلات دیفرانسیل را برایم توضیح می‌داد. قبلاً بارها در دانشگاه سرکلاس ریاضی استادهای مختلف بودم اما این بار واقعاً حس کردم، می‌فهمم و لذت بردم. عکس پروفسور Arthur Mattuck استاد ریاضی دانشگاه MIT را می‌بینید. می‌توانید آموزشهای ایشان را دانلود کرده و تجربه زیبایی که من از یادگیری داشتم را درک کنید.

استادی دوست داشتنی، با یک جعبه گچ، کلی تخته سیاه، یک جزوه کوچک و کلی عشق!

شکی نیست که انسان می‌تواند هر مهارتی را خودش یاد بگیرد! مسئله زمان یادگیری است. در دنیای امروز با وجود اینترنت، کتاب و وسایل آموزشی زیادی که هست یادگیری آسان‌تر شده است اما با وجود تمامی این امکانات، اغلب برای شروع سردرگم می‌شویم! بین این همه کتاب و مطلب باید از کجا شروع کنیم؟ اینجاست که نقش یک استاد خوب در یادگیری کاملاً مشهود هست.

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

با تشکر از تمامی استادانی که زندگیم را مدیون راهنمایی، آموزش، منش و رفتار آنها هستم.

مدیریت همه کارهای زندگی در پنج لیست


سرتان که شلوغ می‌شود مدیریت کارها و زمان بسیار اهمیت پیدا می‌کند! در این نوشته روش Get Things Done (GTD) را به عنوان یک روش بسیار آسان و کارآمد برای مدیریت همه مسائل زندگی معرفی می‌کنیم. از کارهای روزمره مثل خریدها گرفته تا پروژه‌های بزرگ مربوط به شغل یا پیشرفت شخصی‌تان که می‌خواهید انجام دهید. فلسفه این روش بسیار ساده است “ذهن انسان برای به خاطر سپردن ساخته نشده است، برای خلاقیت آفریده شده است“. دفترچه یادداشت می‌تواند تمامی مسائل شما را نگه دارد و ذهنتان برای خلاقیت آزاد شود. اما چطور در دفترچه یادداشت همه مسائل را به شکل مطمئنی یادداشت کنیم؟ روش GTD پاسخی به این سوال است.

در صورتی ذهن شما از فهرست کارها آزاد خواهد شد که آنها را به سیستمی قابل اعتماد بسپارید. روش GTD یکی از روشها خلق شده برای انجام این کار است که تمامی مسائل زندگی شما را در 5 لیست نگهداری می‌کند. البته نگهداری و بررسی مسائل زندگی در این لیست‌ها نیاز به 15 تا 30 دقیقه در روز و 1.5 ساعت در هفته رسیدگی دارند (اگر شما مدیرعامل یک شرکت باشید!)، اما با اختصاص این زمان، هیچ کاری فراموش نمی‌شود، همه کارها مدون و به بهترین وجه پیگیری می‌شود و ذهن شما برای خلاقیت آزاد خواهد شد.

روش “کار را انجام بده” یا Get Things Done (GTD):

برای هر ورودی که در ذهن شماست، یا به شما سپرده می شود، روند زیر را انجام دهید و سوالات زیر را بپرسید تا هر موضوع به یک لیست ختم شود.

سوالاتی که باید بپرسید و پاسخ‌های آنها:

  • آیا موضوع الان قابل انجام است؟ اگر بله برو سوال بعدی! اگر خیر، قابل انجام نیست، پس سه حالت دارد یا
    1. اگر قصد دارید در آینده، سر فرصت و در زمان مناسب انجام دهید، آنرا در لیست “لیست شاید روزی” قرار دهید.
    2. اگر نوشته یا مستندی که روزی به کار می‌آید، آن را به سیستم نگهداری و مدیریت مرجع بسپارید (آن خودش سیستم دیگری است که روزی برایتان خواهم نوشت! 😊 ، فعلا یکی برای خودتان خلق کنید، مثلاً زونکن‌هایی به ترتیب حروف الفبا یا ….)
    3. اگر غیر اینهاست و بی‌اهمیت! مسئله را دور بیندازید!!
  • آیا زیر دو دقیقه قابل انجام است؟ اگر هست “انجام بده” و لازم نیست در هیچ فهرستی نوشته شود! اگر نیست برو بعدی
  • آیا برای انجام کامل این کار نیاز به بیش از دو قدم است؟ اگر آری پس عنوان کار را به “فهرست پروژه” اضافه کن و حداکثر دو تا سه قدم اول پروژه را به کارهایی ورودی اضافه کن و با همین سیستم آنها را ارزیابی کن! اگر نه، برو بعدی
  • آیا قابل کارسپاری به دیگران است؟ اگر آری، کارسپاری کن و برای پیگیری های بعدی در “فهرست کارسپاری” اضافه کن. اگر خیر، برو بعدی
  • آیا مثل یک قرار ملاقات، زمان مشخصی دارد؟ اگر آری، آن را به “تقویم” اضافه کن و اگر نه برو به آخرین قدم
  • آن را به فهرست “در اولین فرصت اضافه کن

روزانه 15 دقیقه تا نیم ساعت این فهرست ها را به روز رسانی کن و هفته ای یک ساعت و نیم هم!

حالا حداقل ذهنتان از کارهایی که می‌خواهید بکنید، راحت شده و در 5 فهرست همه چیز را دارید. فقط مانده انجام کارها 😊

انتخاب زبان برنامه‌نویسی برای مهندسان

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

زبان یا محیطی که شما را سریعتر به هدفتان برساند، بهترین انتخاب برای شماست!


شاید اصلاً به یک زبان برنامه نویسی نیاز ندارید!

اگر هدف شما حل مسئله است، شاید اصلاً احتیاجی به یک برنامه نویسی ندارید! نرم‌افزارهای تخصصی زیادی برای حل انواع مسائل وجود دارد. لیست بلند بالایی از این نرم افزارها برای هر کاری که نیاز دارید وجود داره. مثلاً نرم افزارهای مورد نیاز مهندسی مکانیک رو ببینید.

نرم‌افزارهایی مثل EES و محیط‌های ریاضی مثل Mathematica ، Maple و MATLAB موجود هستند که میتوانند بسیاری از انواع مسائل را با تلاش کمی حل کنن. نمودار رسم کنن، آنالیز حساسیت انجام بدن یا بهینه سازی کنن.

زبانهای مدلسازی مثل Modelica هم که جایگاه خودشون رو دارن و کار مدلسازی سیستم‌های مهندسی رو برای محققان راحت کردن!


محبوب ترین زبانها برنامه نویسی

اگر با این توضیح، باز هم تصمیم به یادگیری زبان برنامه نویسی دارید، خوب انتخابهای زیادی دارید! محبوبیت زبانهای برنامه‌نویسی رو سایتهای مختلف هر سال انجام میدن! مثل چیزی که توی شکل زیر میبنید، زبان C با اینکه محبوبیتش کم شده اما هنوز جزء محبوبترینهاست. پایتون رتبه بعدی هست!


برای یک مهندس کارایی ابزار، مهمتر از محبوبیت آن است!

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

Python یک ابزار دم دستی

یادگیری آسان و ابزارهای فراوان از امتیازات این زبان است. با اینکه پایتون یک زبان مفسری هست اما کتابخانه گسترده ای از توابع کارآمد دارد که ریشه در زبان C یا فرترن دارند و سرعت قابل قبولی ارائه می‌دهند. این زبان به خصوص برای برنامه نویسی هوش مصنوعی کاربرد دارد. کتابخانه های NumPy، SciPy ابزارهای محاسبات این زبان هستن

Fortran سریعترین زبان دنیا برای محاسبات مهندسی

فرترن حدود سال 1950 برای محاسبات ریاضی و مهندسی خلق شده و هنوز سریعترین زبان برای این کار هست. با داشتن کتابخانه بزرگ توابع ریاضی و امکانات محاسبات ماتریسی و موازی، بهترین گزینه برای محاسبات CFD است. توی سالهای اخیر داره توجه بیشتری بهش میشه و رتبه اش کلی بالا رفته!


اگر هدف شما تولید نرم افزار برای محیطهای مختلف ویندوز، مک، اندروید و لینوکس هست، گزینه های زیر رو پیشنهاد می‌کنم.
Delphi یک کد برای چهار محیط

با زبان برنامه نویسی دلفی میشه نرم افزارهایی تولید کرد که همزمان قابلیت اجرا روی ویندوز، IOS، اندروید و لینوکس رو داشته باشن! سادگی Visual Basic و قدرت C++ رو داره و بر پایه زبان برنامه نویسی قدرتمند، ساختاریافته و ساده پاسکال بنا شده. قدرت خوبی در کار با دیتابیس ها داره. حدود 10 سال پیش از بهترین‌ها بود و کلی توجه به خودش جلب کرد، بعدش کم طرفدار شد و الان با پشتیبانی خوب و ویرایشهای به روز مجدد در حال رشد هست و محبوبیتش داره زیاد میشه! نرم افزار EES هم با دلفی نوشته شده 🙂

#C ساده، مدرن و کارآمد

نسبت به ++C خیلی ساده تره و امکانات مدرن داره، هر چند کدهایی که تولید میشه از نظر سرعت به توانمندی کدهای زبان C پلاس پلاس و زبان سی نیست، اما راحتی یادگیری، امکانات مدرن و سرعت تولید برنامه با این زبان کمبودهاش رو کمرنگ می‌کنه 🙂 ، در ضمن مایکروسافت این زبان رو برای مقابله با دلفی قدرتمند کرده و هر روز امکانات بیشتری بهش اضافه می‌کنه، مثلاً الان با این زبان میشه برای محیط‌های مختلف کد اجرایی نوشت. در ضمن اگر طرفدار بازی سازی باشید، میتونید از این زبان برای ایجاد بازی توی موتور بازی Unity استفاده کرد.


Assembly نزدیکترین زبان به زبان ماشین

این زبان یک علاقه قدیمی هست و یادگیری این زبان رو اصلاً پیشنهاد نمی‌کنم 🙂 اما اگر به نوشتن کدهایی با بازده خیلی خیلی بالا نیاز دارید این زبان بهترین پاسخ به نیاز شماست! عملاً هر دستور این زبان، میشه یک دستور CPU کامپیوتر و کامپیوترهای امروزی میتونن میلیاردها از این دستورات رو توی یک ثانیه انجام بدن! اما قبل از شروع مطمئن بشید که واقعاً به این قدرت نیاز دارید، چون در مقابلش بایستی زحمت زیادی متحمل بشید! البته برای این زبان کامپایلرهایی نوشتن که میشه برنامه ویندوز با رابط گرافیکی کاربر توش ساخت.


سایر زبانهای برنامه‌نویسی

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

آموزش نرم‌افزار EES – درس پانزدهم: نکات EES

افزودن تصویر

برای افزودن تصویر به برنامه EES لازم است ابتدا عکس را از هر فرمتی به برنامه رابط مانند نرم‌افزار PowerPoint ببرید و سپس آن را به EES انتقال دهید.

روی عکس ctrl+C را بزنید، بر روی صفحه PowerPoint کلیک کرده و ctrl+V را بزنید. سپس روی عکس در صفحه PowerPoint کلیک کرده و ctrl+C را بزنید، در برنامه EES بر روی پنجره Diagram کلیک کرده و ctrl+V را بزنید. گزینه‌های مختلفی ظاهر خواهد شد. گزینه Picture را انتخاب نمایید.

کاهش حجم فایل (ذخیره با فرمت فشرده‌شده)

در نرم‌افزار EES امکان ذخیره فایل‌ها به‌صورت فشرده‌شده وجود دارد. برای ذخیره فایل به‌صورت فشرده کافی است در هنگام ذخیره فایل (Save As …) گزینه Compressed EES file (*.EEZ) را در لیست Save as type: انتخاب نمایید.

توجه به یک خطر کوچک

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

چینش مناسب خطوط برنامه

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

آموزش نرم‌افزار EES – درس چهاردهم: نوشتن برنامه‌های بزرگ (پیشرفته)

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

گاهی پیش می‌آید که بخش‌های مختلف برنامه شما به‌صورت مجزا به‌خوبی اجرا می‌گردند، اما زمانی که آنها را در کنار هم قرار می‌دهید اجرا نمی‌شوند. علت در نحوه حل دستگاه معادلات توسط روش‌های عددی است. به‌عنوان یک شرح ساده از علت عدم همگرایی، فرض کنید برنامه شما دارای دو بخش است و هر بخش را در یک فایل مجزا قرار داده‌اید. بخش اول دارای 10 معادله و 10 مجهول و بخش دوم دارای 15 معادله و 15 مجهول هستند. در این صورت نرم‌افزار برای حل بخش اول یک ماتریس 10*10 یعنی یک ماتریس 100 آرایه‌ای را تشکیل داده و با روش سعی و خطای نیوتن رافسون و استفاده از ژاکوبی حل می‌کند. برای حل بخش دوم، نرم‌افزار یک ماتریس 15*15 یعنی یک ماتریس 255 آرایه‌ای را حل خواهد نمود. حال اگر شما هر دو بخش را در کنار هم قرار دهید، 25 معادله و 25 مجهول خواهیم داشت و نرم‌افزار بایستی یک ماتریس 25*25 یعنی یک ماتریس 625 آرایه‌ای را حل نماید. با توجه به پیچیدگی‌های حل دستگاه معادلات غیرخطی، حل یک ماتریس 625 آرایه‌ای بسیار مشکل‌تر و احتمال عدم همگرایی و نرسیدن به جواب بسیار زیاد است. البته نرم‌افزار به‌صورت خودکار اقدام به جداسازی بخش‌های مختلف خواهد نمود اما جداسازی دستی با داشتن دانش نسبت به مسئله، خیلی مؤثرتر از جداسازی خودکار است.

برای جداسازی دستی بخش‌های مختلف از توانایی فراهم‌شده در نرم‌افزار EES به نام زیربرنامه (SUBPROGRAM) استفاده خواهیم نمود.

برای این کار لازم است متغیرهای ورودی و خروجی هر بخش از برنامه را مشخص نمایید. منظور از متغیرهای ورودی، داده‌های معلوم هر بخش و متغیرهای خروجی نتایج محاسبات انجام‌شده است. در برنامه اصلی هر بخش را به شکل SUBPROGRAM تعریف نمایید. برای این کار نامی برای زیربرنامه هر بخش انتخاب کنید و نام متغیرهای ورودی آن بخش را به ترتیب، بعد از یک پرانتز بنویسید، بعد: و بعد متغیرهای خروجی را بنویسید. همه معادلات لازم برای محاسبه آن بخش را در بدنه زیربرنامه قرار داده و زیربرنامه را با دستور END به پایان برسانید. برای همه بخش‌ها همین کار را انجام دهید. حال همه بخش‌ها را در برنامه اصلی با دستور CALL و نام زیربرنامه و متغیرهایش فراخوانی کنید.

در نرم‌افزار EES هر زیربرنامه حکم یک برنامه جدای EES را دارد که به‌صورت جداگانه حل خواهد شد.

فرض کنید محاسبات پروژه‌ای قابل تقسیم به سه بخش s1 تا s3 است که قبلاً هر بخش را به‌صورت جداگانه در نرم‌افزار EES نوشته و تست کرده‌ایم و هر سه ارزیابی شده (ازنظر ابعادی مشکلی ندارند، معادلات به‌خوبی نوشته‌شده است و از استفاده از معادلاتی که ابهام ریاضی دارند تا حد ممکن استفاده نشده است مثلاً تقسیم‌بر صفر، جذر اعداد منفی و ….) و به‌خوبی جواب می‌دهند. زمانی که معادلات این سه بخش را به‌صورت همزمان اجرا می‌کنیم، معادلات همگرا نمی‌گردند و به جواب نخواهیم رسید.

نام بخشs3s2s1
متغیر ورودیz1, z2y1, y2, y3x1, x2
متغیر خروجیy2z1y1

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

SUBPROGRAM s1(x1, x2: y1)
…
END
SUBPROGRAM s2(y1, y2, y3: z1)
…
END
SUBPROGRAM s3(z1, z2: y2)
…
END
x1=1
x2=2
CALL s1(x1, x2: y1)
y3=3
CALL s2(y1, y2, y3: z1)
z2=4
CALL s3(z1, z2: y2)

حل همه بخش‌ها با هم به همگرایی جواب‌ها نمی‌رسد! 🙁

هر بخش به‌صورت مجزا به‌خوبی جواب می‌دهد. 😐

از زیربرنامه استفاده نموده و محاسبات بخش‌ها را به هم متصل می‌نماییم، امکان همگرایی ساده‌تر می‌گردد. 🙂

آموزش نرم‌افزار EES – درس سیزدهم: ایجاد کتابخانه (پیشرفته)

در بسیاری از موارد لازم است توابع نوشته‌شده را بارها استفاده نماییم، در این حالت می‌توان این توابع را به‌صورت یک کتابخانه ذخیره نمود و با کپی کردن این کتابخانه در پوشه UserLib واقع در پوشه محل نصب نرم‌افزار در هر بار اجرا این کتابخانه نیز در بخش توابع EES library routines در دسترس خواهد بود.

برای ایجاد کتابخانه پس از ارزیابی کامل توابع نوشته‌شده و اطمینان از صحت کارکرد آنها لازم است فایل خود را با استفاده از گزینه Save as به‌صورت یک فایل کتابخانه‌ای با پسوند lib ذخیره نمایید. برای این‌که توابع شما دارای توضیحات در خصوص نحوه استفاده از آنها باشند ساده‌ترین کار قرار دادن این توضیحات در خود تابع است. توضیحات را بعد از تعریف تابع بیاورید، فقط لازم است که این توضیحات با علامت $ که پس از آن نام تابع نوشته‌شده است شروع شود. مثال زیر را ببینید:

Function Add(x,y) {$Add This function will add two numbers} Add:= x + y End

آموزش نرم‌افزار EES – درس دوازدهم: اضافه نمودن کتابخانه به نرم‌افزار (پیشرفته)

برای انجام بسیاری از محاسبات مهندسی تکراری کتابخانه‌هایی از توابع و برنامه‌ها تهیه‌شده است تا از نوشتن مکرر معادلات خودداری گردد. بسیاری از این کتابخانه‌ها هنگام نصب کردن نرم‌افزار به‌صورت خودکار نصب خواهند شد. برخی از کتابخانه‌ها هم به‌صورت جداگانه ارائه می‌گردد (حتی ممکن است خودتان کتابخانه نوشته باشید) که می‌توانید خودتان آنها را نصب نمایید. برای نصب یک کتابخانه کافی است کد آن کتابخانه را در پوشه Userlib واقع در پوشه محل نصب نرم‌افزار کپی کنید.

برای مثال کتابخانه SETP که برای انجام محاسبات انرژی خورشیدی (کتاب Solar Engineering of Thermal Processes) استفاده می‌گردد را نصب خواهیم نمود. این کتابخانه را می‌توانید از آدرس زیر دانلود نمایید:

http://www.fchartsoftware.com/assets/downloads/setp_lib.exe

برای دیدن کتابخانه‌های دیگر آدرس زیر را ببینید:

http://www.fchartsoftware.com/ees/add-ons.php

کتابخانه SETP به شکل یک فایل اجرایی است. روی این فایل به نام setp_lib.exe دو بار کلیک کنید تا اجرا شود. با استفاده از کلید Browse آدرس پوشه Userlib را یافته و وارد نمایید. کلید Unzip را فشار دهید. تبریک می‌گویم. کتابخانه موردنظر شما نصب شد. برای اطمینان از نصب به داخل پوشه Userlib نگاهی بیندازید، اگر فایل SETP.LIB را مشاهده کردید، کتابخانه به‌درستی نصب‌شده است.

برای دسترسی به توابع این کتابخانه از گزینه Function Info > EES library routines استفاده نمایید.

آموزش نرم‌افزار EES – درس یازدهم: نوشتن توابع در EES

گاهی لازم است که از گزینه‌های شرطی در محاسبات استفاده گردد، یا بخشی از محاسبات به ترتیب انجام گیرد (مانند زبان‌های برنامه‌نویسی)، در این صورت شما می‌توانید در برنامه EES توابع موردنیاز خود را بنویسید.

توابع را در ابتدای برنامه بنویسید.

  • تابع ریاضی زیر را در EES بنویسید و نمودار آن را بین صفر تا یک رسم نمایید.

هرچند با استفاده از تابع از پیش تعریف شده IF(A, B, X, Y, Z) می‌توان در متن برنامه از گزینه‌های شرطی استفاده کرد، اما قصد داریم این کار را با استفاده از تعریف تابع انجام دهیم. تابع f_k_T را به‌صورت زیر تعریف می‌کنیم.

function f_k_T(k_t)
 if k_T<0.35 then
   f_k_T=1.0 -249*k_T
 else
   if k_T<0.75 then
     f_k_T=1.557-1.84*k_T
   else
     f_k_T=0.75
   endif
 endif
end

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

برای رسم این تابع بایستی یک معادله می‌نویسیم که شامل تابع باشد و آن را رسم می‌کنیم.

y=f_k_T(x)

برای رسم این تابع یک جدول تشکیل بدهید که شامل متغیرهای x و y باشد و به متغیر x عدد بدهید (بین صفر تا یک) و محاسبه جدولی را انجام داده و نمودار y را برحسب x رسم نمایید.