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

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

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

برای شروع ابتدا guide را تایپ و اینتر کنید. سپس OK کرده و مانند شکل زیر قطعات را به میزان کافی آورده و مرتب کنید:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

سپس مانند شکل زیر قطعات را نام‌گذاری و مرتب کنید:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

توجه کنید که همه‌ی این قطعات در قسمت اول آموزش، معرفی شده‌اند. مشخصه‌ی tag ، برای کلیه‌ی قطعات را در حالت پیش‌فرض خود قرار دهید. برای اولین عنصر Pop-up Menu ، مقادیر Step و Impulse را به‌صورت زیر وارد کنید:

 

 

 

 

 

 

 

 

و برای دومین عنصر Pop-up Menu ، به‌ترتیب مقادیر:

  1. Root Locus
  2. Pole-Zero map

و همچنین برای سومین عنصر Pop-up Menu ، به‌ترتیب مقادیر:

  1. Bode diagram
  2. Nyquist
  3. Nichols

را وارد کرده و OK کنید.

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

توضیح طرح:

همان‌طوری که احتمالا می‌دانید، ما به چندین روش می‌توانیم مشخصات یک سیستم کنترلی را بیان کنیم. از جمله معروف‌ترین این روش‌ها، یکی روش ضرایب چندجمله‌ای صورت و مخرج تابع تبدیل سیستم است و دیگری بیان صفرها و قطب‌های سیستم، به‌همراه گین تابع تبدیل می‌باشد. همان‌طور که در شکل مشخص است، ما هر دو روش فوق را آورده و پیش‌فرض را در روش اول قرار داده‌ایم. و برای هر دو روش نیز سیستمی را به‌صورت پیش‌فرض نوشته‌ایم. در ادامه قسمتی را برای اعمال تأخیر(تأخیر در فاز سیستم تغییر ایجاد می‌کند) به سیستم گذاشته‌ایم تا در مواقع لزوم بتوانیم به سیستم تأخیر اعمال کنیم. برای اعمال تأخیر، باید ابتدا Check Box را فعال کرده و سپس عدد تأخیر را بر حسب ثانیه در کادر مقابل آن وارد کنید. در پانل بعدی شما می‌توانید سیستم مورد نظرتان را به‌صورت حلقه‌باز ویا حلقه‌بسته آنالیز کنید(پیش‌فرض به‌صورت حلقه‌باز می‌باشد). اگر سیستم (G(s ، تابع تبدیل حلقه‌باز شما باشد، تابع تبدیل حلقه بسته به‌صورت زیر است(H(s)=1):

 

 

 

 

در پانل بعدی کاربر می‌تواند پاسخ سیستم را به ازای ورودی‌های پله و یا ضربه رسم نماید. کاربر می‌تواند زمان پاسخ را در حالت پیش‌فرض و یا حالت انتخابی قرار دهد. اگر کاربر حالت انتخابی را برگزیند، باید مقدار زمان موردنظر را بر حسب ثانیه در کادر مقابل آن وارد کند. در پانل بعدی کاربر می‌تواند مکان هندسی ریشه‌ها و یا مکان ریشه‌های سیستم را در منحنی جداگانه‌ای ترسیم نماید. و در پانل آخری نیز کاربر برحسب انتخاب خود می‌تواند دیاگرام بود یا نمودار نایکوئیست و یا نمودار نیکولز سیستم را در منحنی جداگانه‌ای ترسیم کند. در قسمت پائین پانل اصلی نیز دو دگمه قرار دارد که دگمه‌ی Run ، تغییرات ایجاد شده را اعمال کرده و منحنی‌ها را ترسیم می‌کند و دگمه‌ی Reset نیز کلیه‌ی مقادیر و شکل‌ها را در حالت پیش‌فرض خود قرار می‌دهد. سه عدد Axes نیز وجود دارد که وظایف آن‌ها کاملا مشخص است.

نکته: برای تعویض رنگ زمینه‌ی عناصر می‌توانید به تنظیمات آن عنصر رفته و به‌دلخواه رنگ پیش‌فرض را تغییر دهید.

از مسیر Tools >> GUI Options به تنظیمات GUI بروید و مانند شکل زیر عمل کنید:

 

 

 

 

 

 

 

 

 

 

 

شما با قرار دادن Proportional در قسمت Resize Behavior قادر خواهید بود تا GUI موردنظرتان را به هر سایزی درآورید(مثلا آن را Full Screen کنید).

در مرحله‌ی بعد می‌خواهیم برای GUIیمان، منوهای مختلفی را ایجاد کنیم. این منوها به‌شرح زیر می‌باشند:

 

 

 

 

 

 

 

 

 

 

 

برای ایجاد این منوها، از مسیر Tools >> Menu Editor وارد ویرایشگر منو شوید. سپس یک منو جدید ایجاد کرده و نام آن را File قرار دهید و در قسمت tag عبارت file_menu و یا هر عبارت دیگری که براساس کاراکترهای مجاز بوده و بدون فاصله باشد، را بنویسید. سپس منوی دیگری را ایجاد کرده و نام آن‌را Reset قرار داده و یک tag دلخواه برای آن بنویسید. بعد از آن در قسمت Accelerator حرف R را قرار دهید. شما با این کار قادر خواهید بود که با کلیدهای Ctrl+R عمل ریست‌کردن را انجام دهید. آیتم Check mark this item را نیز فعال کنید. پس از آن بوسیله‌ی دگمه‌های جهتی، این آیتم را به زیرمجموعه‌ی آیتم File منتقل کنید. مانند شکل زیر:

 

 

 

 

 

 

 

 

 

 

 

 

در ادامه منوی دیگری ایجاد کرده و نام آن را Print گذاشته و برای آن یک tag انتخاب کنید. این آیتم را در زیرمجموعه‌ی File قرار دهید. سپس Separator above this item را فعال کنید. با انجام این کار، دو آیتم Reset و Print را از یکدیگر جدا کرده‌اید(درواقع بین آن‌ها یک خط گذاشته‌اید). سپس چهار منوی جداگانه تعریف کرده، و نام‌های آن‌را به‌ترتیب زیر قرار دهید:

  1. Figure
  2. Response of LTI System
  3. Roots analysis
  4. Frequency response

سپس براساس کاراکترهای مجاز، tagی متفاوت برای هرکدام انتخاب کنید. مثلا به‌صورت زیر:

  1. fig_print_menu
  2. res_print_menu
  3. root_print_menu
  4. freq_print_menu

ضمنا می‌توانید برای زیبایی کار، در منوی Response of LTI System گزینه‌ی Separator above this item را فعال کنید. در ادامه منوی دیگری با نام Exit ایجاد کرده و tag آن‌را exit_menu بنامید. سپس آن‌را از Print جدا کنید. حال تمای زیرمنوهای منوی ‌اصلی File را ایجاد کرده‌ایم، پس به سراغ منوی Tools می‌رویم. این منو را با نام Tools ایجاد کنید(tag آن به کار ما نمی‌آید و همچنین tag کلیه‌ی منوهایی که دارای زیرمنو باشند) و دو منو را با نام‌های Show grid و Hide grid و تگ‌های show_menu و hide_menu را به زیرمجموعه‌ی آن اضافه کنید. منوی دیگری ایجاد کنید و نام آن‌را Help قرار داده و دو منوی دیگر را با نام‌های Using the ControlTool و About ControlTool و تگ‌های use_menu و about_menu را به زیرمجموعه‌ی آن ببرید. این دو را با یک خط از یکدیگر جدا کرده و برای Using the ControlTool در قسمت Accelerator، دگمه‌ی H را قرار دهید.

کار ایجاد منوها به پایان رسیده و به‌صورت زیر درآمده‌اند:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

در مرحله‌ی آخر از طراحی GUI ، می‌خواهیم یک نوارابزار برای GUIیمان قرار دهیم. برای اینکار از مسیر Tools >> Toolbar Editor وارد ویرایشگر نوارابزار شوید. سپس ابزار پرینت را انتخاب و Add کنید. در ادامه ابزار Zoom In را اضافه کرده و گزینه‌ی Separator on left side را فعال کنید. با انجام این کار، بین دو ابزار اضافه شده، یک خط قرار می‌دهید. سپس ابزار Zoom Out را اضافه کنید. بعد از آن ابزار Pan را اضافه کرده و آن‌را از ابزار Zoom Out جدا کنید. در نهایت نیز ابزار Data Cursor را اضافه کرده و آن‌را از ابزار Pan جدا کنید.

کار ایجاد نوارابزارها به پایان رسیده و به صورت زیر درآمده‌اند:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

OK کنید.

اکنون کار طراحی GUIیمان به پایان رسیده و نوبت کدنویسی آن شده است. GUI را Run کرده و با نام ControlTool ذخیره کنید.

اگر سؤالي داشتيد مي‌توانيد در بخش نظرات آن را مطرح كنيد.

براي رفتن به قسمت بعد، به‌روي لينك زير كليك كنيد:

آموزش GUI (قسمت سوم)

 

براي رفتن به ديگر قسمت‌ها، به‌روي لينك‌هاي زير كليك كنيد:

آموزش GUI (قسمت اول)

آموزش GUI (قسمت دوم)

آموزش GUI (قسمت سوم)

آموزش GUI (قسمت چهارم)


مطالب مشابه

کتاب آموزش شبیه سازی و مدل ساز

  مشخصات: مولف: دکتر نیکوبین (استاد دانشکده مکان

کتاب الکترونیکی سری سوم - آموز

      اي که برای دانلود قرار داده شده است براي

کتاب آموزش MATLAB

  نویسندگان: مهندس علی اکبر علمداری، مهندس نسرین

آموزش كاربردي مباحث پيشرفته با

آموزش كاربردي مباحث پيشرفته با Matlab            

آموزش GUI (قسمت اول)

در چند قسمت قصد دارم نحوه كار كردن با GUI رو به شم

آموزش سیمولینک (قسمت اول)

با عرض سلام خدمت دوستان عزيز قصد دارم در چند قسمت

نوشتن دیدگاه


تصویر امنیتی
تصویر امنیتی جدید