آرشیو

جدیدترین ها



  • 0
  • 83

معرفی نرم افزار PV Elite


فروردین 25 1403







  • 0
  • 147

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


آبان 28 1402



















  • 0
  • 380

چت GPT در مدیریت انرژی


خرداد 18 1402

  • 0
  • 589

آینده مهندسی با چت GPT


خرداد 17 1402




  • 0
  • 377

هوش مصنوعی در تولید آلیاژهای آنتروپی بالا

                                  ...


اردیبهشت 25 1402


  • 0
  • 350

استراتژیSTP  در بازاریابی!


اردیبهشت 18 1402


  • 0
  • 487

آشنایی با کارگاه کامپوزیت


اردیبهشت 14 1402









  • 0
  • 367

سیگنال دیجیتال در MATLAB


اسفند 11 1401


  • 0
  • 391

شبکه عصبی در MATLAB


اسفند 08 1401

  • 0
  • 427

متلب و کاربردهای آن


اسفند 07 1401












  • 0
  • 393

اساس کار چیلرها


مهر 23 1401
























  • 0
  • 786

آیا کارآفرین شدن سخت است؟


اردیبهشت 14 1401





تگ ها

متلب و کاربردهای آن

متلب و کاربردهای آن

در چهارمین روز از ماه ژوئن سال 2020 کلیو مولر و جک لیتل، مقاله­ای تحت عنوان تاریخچه متلب در ژورنال " ACM" منتشر کردند. این مقاله در چهارمین کنفرانس بین المللی تاریخچۀ زبان­های برنامه نویسی همراه با 50 مورد از منابع که تقریباً 40 مورد آن­ها غیر آرشیوی بودند با ضمیمۀ 34 عکس برای گالری تصاویر، وارد میدان شده و در حال حاضر به صورت رایگان در دسترس عموم است. در ادامه صفحات اولیۀ این مقاله را برای علاقمندان منتشر می­کنیم.

متلب matlab

مولر و لیتل در پیشگفتار این مقاله ادعا می­کنند که Matrix Laboratory  با نام تجاری و آشنای MATLAB از همان ابتدا یک زبان برنامه نویسی نبوده و در واقع در اواخر دهۀ 1970 که ساخته و وارد بازار شده تنها یک   ماشین حساب ماتریسی (Interactive) یا ساده تلقی می­شده! ساختار کلی­اش هم خیلی ساده­تر از ورژن این روزهایش بوده است به طوری که تنها 71 کلمۀ ذخیره شده (Reserved word) و توابع داخلی را پوشش می­ داده است. و کاربران برای ایجاد هر نوع تغییری نیز فقط باید از کد منبع فرترن (Fortran) یا کامپایل مجدد استفاده  می­کردند.

البته سازندگان متلب خیلی هم تقصیرکار نبوده­اند؛ چراکه به طورکلی زبان­های برنامه نویسی در سال 1984 همگانی و پدیدار شدند و در آن زمان متلب تازه تبدیل به یک محصول تجاری شده و فروخته می­شد. . بالاخره با گذشت زمان این ماشین حساب مجدداً پیاده سازی شد و با اضافه شدن توابع کاربر، جعبه ابزار و دیگر امکانات به طور قابل توجهی بهبود یافت. ابتدا نسخۀ اولیۀ این نرم افزار در " IBM" و سپس به طور مستقیم عرضۀ "Apple Macintosh" شد. 

واضح است که با انتشار هر ورژن جدید قابلیت­های جدیدی نیز به آن اضافه می­شد. برخی از کاربردی­ترین و ساده­ترین ابزار و دستورات آن مثل جعبه ابزار سیستم کنترل یا جعبه ابزار سیستم پردازش سیگنال و حل عددی معادلات دیفرانسیل ساده به ترتیب در سال­های 1985 و 1987 ساخته شدند. همین موضوع به سادگی و با مقایسه با آپدیت­های جدید، اوج توانایی­ها و کاربردهایش چه در آن سال­ها و چه امروزه را نشان می­دهد. در آخرین نسخه­ای که کمپانی MathWorks سازندۀ سری محصولات متلب وارد بازار کرد؛ بیش از 60 جعبه ابزار با قابلیت­های گسترده و تخصصی ارائه شدند. 

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

متلب دقیقاً چیست؟

متلب یک زبان برنامه نویسی نسل چهارم است. این یعنی با دیگر زبان­های برنامه نویسی مثل جاوا، جاوا، اسکریپت،C, C++, C# ،پایتون و... تفاوت دارد. . زبان­های برنامه نویسی معمولاً هرکدام در یک حوزۀ خاص مورد استفاده قرار می­گیرند. البته این بدین منظور نیست که مثلاً نمی­شود با یک زبان دو کار مختلف انجام داد اما این معنی را می­دهد که گاهی یک زبان برنامه نویسی از یک زبان دیگر در موارد خاصی بهتر عمل می­کند. به طور مثال برای طراحی سایت برنامه­ نویسان جاوا اسکریپت C++ را به جاوا و... ترجیح می­دهند و این اصلاً به معنای ضعیف بودن یا ناتوانی سایر زبان­ها نیست بلکه نشان از عملکرد بهتر در آن حیطۀ به خصوص را دارد. 

برای متلب هم این موضوع صدق می­کند. متلب با اینکه یک زبان برنامه نویسی است اما بیش­تر در حوزۀ پژوهشی و علمی کارآمد است. یعنی برای اینکه یک پدیدۀ ریاضی را شبیه سازی کنیم کاملاً مناسب است اما در زمینۀ طراحی سایت؟ حرفی برای گفتن ندارد.  پس با این حساب به زبان ساده متلب یک زبان با کارایی به شدت بالا برای محاسبات فنی و تخصصی است. از همین رو در تمام رشته­های مهندسی و علوم پایه توانایی به کارگیری دارد.

متلب در چه زمینه­ هایی قابل استفاده است؟

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

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

بخش ­های اصلی متلب

این برنامه پنج بخش یا پارت اصلی دارد. برای استفاده از آن یا پیاده سازی یک برنامه ابتدا لازم است که با این بخش­ها آشنایی داشته باشیم:

  • MATLAB Language یا زبان متلب
  • The MATLAB working environment یا محیط کاری متلب
  • Handle Graphics یا کنترل گرافیک
  • The MATLAB mathematical function library یا کتابخانه توابع ریاضی متلب
  • The MATLAB Application program interface (API) یا رابط برنامه­ های کاربردی متلب

پس از بخش­های اصلی بد نیست کمی هم با اصطلاحات و عبارات کاربردی متلب آشنا شویم:

  • Variables (متغیرها)
  • Numbers (اعداد)
  • Operators (نمادها)
  • Functions (توابع) 

که همان اصطلاحات ریاضی نام آشنای روزمرۀ ما است.

پیش از آنکه وارد بُعد تخصصی کار شویم و کاربردهای متلب را به طور حرفه­ای توضیح دهیم، بد نیست از  اصطلاح جعبه ابزار که بالاتر اشاره کردیم سخن بگوییم. جعبه ابزار یا همان Tool Box معنای خیلی دقیقی ندارد. بیشتر به این معناست که مجموعه­ای از تجهیزات موردنیاز برای کار با متلب در آن­ها نهفته است؛ که  بعضی از آن­ها رایگان و برخی دیگر باید از کمپانی Mathworks خریداری شود. در ادامه انواع  جعبه ابزار را معرفی می­کنیم: 

انواع جعبه ابزار

Aerospace Toolbox

Antenna Toolbox

Audio System Toolbox

Automated Driving System Toolbox

Bioinformatics Toolbox

Communications System Toolbox

Computer Vision System Toolbox

Control System Toolbox

Curve Fitting Toolbox

DSP System Toolbox

Data Acquisition Toolbox

Database Toolbox

Datafeed Toolbox

Econometrics Toolbox

Financial Instruments Toolbox

Financial Toolbox

Fuzzy Logic Toolbox

Image Acquisition Toolbox

Image Processing Toolbox

Instrument Control Toolbox

LTE System Toolbox

Model Predictive Control Toolbox

Model-Based Calibration Toolbox

Neural Network Toolbox

OPC Toolbox

Optimization Toolbox

Parallel Computing Toolbox

این لیست به ترتیب حروف الفبا همینطور ادامه دارد و سازندگان با هر ورژن به تعداد آن­ها می­افزایند تا استفاده از نرم افزار برای کاربران راحت­تر از قبل شود. از اتاق فرمان اشاره می­کنند که پیش از باز کردن بحث کاربردها هنوز یک قسمت بازگو نشده وجود دارد که توضیح ندادنش یک حفرۀ سوالی ایجاد می­کند! پس این بار سوال اصلی این است که:

این MATLAB Simulink که می­گویند؛ یعنی چه؟!

سیمولینک بسته، پکیج یا مجموعه­ای است در تعامل با متلب برای شبیه سازی و مدل سازی هرگونه سیستم، فرآیند و مشکل. در واقع سیمولینک با استفاده از کتابخانه­ها و بلوک­ها به صورت ترکیبی با متلب کار کرده و همزمان می­تواند از امکانات دیگر نیز استفاده کند. حالا چرا انقدر مهم است؟ چون یکی از کاربردی­ترین و اساسی­ترین بخش­های متلب است که استفاده از دیگر بخش­ها و امکانات نرم افزار در گرو اوست. به همین علت است که حتی دوره­هایی نیز برای یادگیری آن برگزار شده و متقاضیان برای به روز کردن دانش خود به دنبال یادگیری آن هستند. فعلاً در همین حد بگوییم که برای شروع و استفاده از آن کافی است نماد Simulink را در پنل منو جست و جو کنید. برای اطلاعات بیش­تر دورۀ آموزشی پارس پژوهان بهترین گزینه است.  و اما بالاخره بحث اصلی و شیرینی که این همه برایش مقدمه چینی کردیم. توضیحاتی جامع و کامل از هر کار جالب و مهمی که می­توانیم با متلب انجام دهیم. برای استارت از آنالیز و تجزیه و تحلیل شروع می­کنیم.

آنالیز داده ­ها یا  Data analysis در متلب

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

متلب matlab

شبیه سازی یا Simulation در متلب

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

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

البته قبول داریم که توضیحات متنی ممکن است خیلی مطالب را در ذهن جا نیندازند اما دست و پای ما هم برای توضیحات بیش از این بسته است. بنابراین توصیه می­کنیم برای یادگیری بهتر فیلم­های آموزشی ببینید یا در دوره­های مربوطه شرکت کنید. ناگفته نماند که پارس پژوهان هردوی این­ها را در اختیارتان خواهد گذاشت.

بهینه سازی در متلب

بهینه سازی یا Optimization در فرهنگ لغت و دیکشنری­های تخصصی، به معنای گزینش و انتخاب کردن بهترین عضو از میان دیگر اعضای قابل دسترس است. این تعریف به قدری در علوم و حوزه­های مختلف مهم است که علاوه بر رشته­های مهندسی، رشته­های مدیریتی به ویژه مدیریت صنعتی و اقتصاد نیز با آن سروکار دارند. در ادامه بهتر است برای واضح­تر شدن مسئله، اصطلاح تابع هدف، که به شدت در بهینه سازی اهمیت دارد را تعریف کنیم. تابع هدف همان هدف نهایی ما از طرح مسئله است. به طور مثال کم کردن هزینه­­های یک پروژه و یا یک متغیر و تابع ریاضی، هردو می­توانند تابع هدف باشند. توابع هدف انواع مختلفی دارند؛ آن­ها می­توانند هم به صورت خطی و هم غیرخطی و چندگانه وجود داشته باشند. تعریف خطی و غیرخطی بودن هم که برمی­گردد به دوران پیش از دبیرستان. حالا می­رسیم به تابع هدف خودمان! بهینه سازی در متلب چگونه است؟ یکی از محبوب­ترین روش­های بهینه سازی در این نرم افزار، روش The gradient descent یا گرادیان نزول است. یعنی در جهت عکس گرادیان تابع هدف صورت می­گیرد. اینکه بهترین روش، روش عکس باشد به نظر همزمان هم جالب و هم عجیب است. با این حال معرفی دیگر روش­های بهینه سازی در متلب چیزی نیست که بتوان در این مقاله گنجاند اما می­توان در یک دورۀ اموزشی از آن صحبت کرد! راه پارس پژوهان همیشه برای علاقمندان باز است.

شبکۀ عصبی یا  Neural Network در متلب

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

البته باز هم تعریف کلی­تری نیز وجود دارد. ساختار مغز را تصور کنید. مغز یک سیستم غول پیکر از سلول­هایی به نام نورون است. اتصال یا پیوند این نورون­ها باعث می­شود پیام­های عصبی از یک نورون به یک نورون دیگر منتقل شود. حالا اگر بخواهیم همین کار را برای ماشین­ها یا ربات­ها نیز انجام دهیم چه؟ اینجاست که بحث شبکه عصبی مصنوعی مطرح می­شود و متلب یکی از راه­هایی است که شبکۀ عصبی مکانیسم مغز را تقلید کند. شکل زیر تفاوت این دو ساختار را نشان می­دهد.

متلب matlab

نکته قابل توجه دیگری که بد نیست بدانید این است که شبکۀ عصبی مصنوعی از سه بخش سیگنال ورودی، خروجی و پردازش تشکیل شده و مانند یک تابع ریاضی رفتار می­کند. یعنی در واقع می­توان گفت که:

 

متلب matlabمتلب matlab

متلب matlab

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

الگوریتم ژنتیک یا Genetic Algorithm در متلب

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

این روش علاوه بر حوزه­های زیستی در حوزه­های مهندسی، حمل و نقل، رباتیک و بسیاری دیگر از حیطه­های علمی نیز کاربرد دارد. حالا این الگوریتم اصلاً چه ربطی به متلب دارد؟ الگوریتم ژنتیک اهمیت بالایی در محاسبات تکاملی، بهینه سازی هوشمند، هوش محاسباتی و... دارد. چرا که روش­های دیگر برای حل مسائل پیچیدۀ مهندسی قابل به کارگیری نیستند. معمولاً کسانی که به دنبال یادگیری Deep learning و Machine learning هستند یا در این خصوص کار می­کنند، نیازمند کسب اطلاعات کافی در این مورد هستند.

از الگوریتم ژنتیک می­توان در مسائلی که تابع هدف ناپیوسته، تابع غیرخطی، تصادفی و غیراستاندارد داریم؛ استفاده کنیم.

پردازش سیگنال و تصویر در متلب

علت اینکه این مورد از کاربردهای متلب را آخر از همه بیان کردیم، این بود که خوانندگان باید دانش و شناخت کافی از فضای متلب و دیگر بخش­های اساسی آن داشته باشند. درست است که این بخش از کار به پیچیدگی مباحث دیگر نیست اما با دانش ابتدایی هم نمی­توان بر آن مسلط شد. به همین علت بود که در انتهای کار معرفی شد.

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

قبل از توضیح پردازش سیگنال، ابتدا توضیح می­دهیم که اصلاً سیگنال چیست؟ سوال ساده­ای به نظر می­رسد، اما کمتر کسی پیدا می­شود که یک شرح علمی و کامل از این موضوع داشته باشد. سیگنال به هرچیزی که دربردارندۀ اطلاعات باشد، می­گویند. کلمۀ "هرچیز" کمی کلی به نظر می­آید اما درست­ترین تعریف است. چرا که در هر رشته و حوزۀ مختف این سیگنال­ها هم متفاوت بوده و حتی اسامی متغیری نیز دارند. امروزه با گسترش تکنولوژی و کامپیوترهای هوشمند، داده­ها به صورت سیگنال­های دیجیتال طبقه بندی می­شوند. به همین خاطر آنالیز یا پردازش این سیگنال­ها غیرقابل اجتناب است. در متلب و دیگر نرم­افزارها این آنالیز در واحد زمان صورت می­گیرد که از مشهورترین مثال­هایش می­توان به پردازش سیگنال­های صوتی اشاره کرد. 

نکتۀ قابل توجه این است که در متلب چه برای پردازش تصویر و چه پردازش سیگنال باید تصویر یا سیگنالمان  به صورت دیجیتالی باشد نه آنالوگی. Sampling rate یکی از ابزارهایی است که به همین منظور استفاده و اجرا می­شود. Oversampling و  Undersampling نیز دو نمونه از ابزارآلاتی هستند که در کنار نرخ نمونه برداری به کار گرفته می­شوند. پیش از این در قسمت معرفی جعبه ابزارهای متلب تعدادی از آن­ها را معرفی کردیم که بد نیست دوباره سری به آن­ها بزنید و تجدید خاطره کنید. اصطلاحات پایین هم در بخش پردازش متلب به شدت کاربردی­اند؛ در تصاویر زیر تا حد ممکن سعی کردیم آن­ها را معرفی کنیم:

متلب matlab

متلب matlab

 

 

 

و کلام آخر

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

نویسنده: سارا محمد پور، دانشجوی مهندسی شیمی 

 

 

 

اشتراک گذاری

نظرات (0)

  نظرات

هیچ نظری ثبت نشده است.