GUI درایور MDC20 در نرمافزار متلب
۱۰ مهر ۱۳۹۸بخش ۳-۵ نوشتن کلمه بر روی LCD با استفاده از برد آردوینو
۱۰ مهر ۱۳۹۸کنترل PID به صورت بلادرنگ
شاید تا حالا به این موضوع فکر کرده باشید که کنترل چراغهای راهنمایی که در صدها چهار راه، در سطح شهرهای بزرگ وجود دارند چگونه و به وسیله چه دستگاههایی انجام میشوند و یا زمانی که کارکنان یک نیروگاه هستهای بیتفاوت به نوسان دمای نیروگاه رفتار میکنند، علت چیست و چه کسی مراقب اوضاع اضطراری آن نیروگاه خواهد بود؟ پاسخ به این سوالات و هزاران سوال دیگر در این حوزه، در مجموع به سیستمی به نام «سیستم بلادرنگ – Real-time System» ختم میشود، که علاوه بر آنکه چراغهای راهنمایی را کنترل میکند، و مراقب افزایش دمای نیروگاههای هستهای است، هزاران فعالیت دیگر نیز انجام میدهد. به زبان عامیانه سیستم بلادرنگ، سیستمی است که اولا باید درست کار کند و ثانیا آن کار را سر وقت و بدون تاخیر انجام دهد. کنترل PID به صورت بلادرنگ یکی از موارد کنترلی است که در صنعت بسیار مورد استفاده قرار گرفته است.
امروزه در عصر تکنولوژی رباتها فواید و کاربردهای فراوانی دارند و در تمام صنایع پیشرفته نقش اساسی و کلیدی را ایفا میکنند. با توجه به این پیشرفتها نیاز به ابزاراتی است که بتوان عکس العمل این رباتها را در لحظه بتوان کنترل کرد. لذا محققین امروزه تلاشهای زیادی را انجام دادهاند که بتوانند بر روی رباتها کنترل بلادرنگ داشته باشند. با این کار بیشترین استفاده را میتوان از این ساختهی بشر کرد.
شرکت دانشبنیان رباتسازان نیز برای اولین بار در ایران اقدام به تولید درایورهای بلادرنگ کرده تا بتواند دانشمندان ایرانی (با هر دانش علمی) را در توسعه نظرات و ایدههای خویش همیاری دهد. در این فیلم با استفاده از محیط «سیمولینک – Simulink» نرم افزار متلب، کنترل Real-Time را بر روی درایور پلتفرم MDC20 با سرعت بالای 8ms پیادهسازی مینماییم. برای آشنایی با کنترل PID به مقاله با عنوان «الگوریتم PID» مراجعه کنید. در این فیلم با موارد زیر آشنا خواهید شد:
۱- نحوهی آمادهسازی محیط سیمولینک برای کنترل لحظهای یا Real-Time؛
۲- نحوهی خواندن و نوشتن اطلاعات بر روی درایور MDC20 به کمک بلوکهای موجود در تولباکس سیمولینک؛
۳- نحوهی اتصال بلوکها در محیط سیمولینک برای کنترل موتور دیسی در مسیر سینوسی و مسیر پلهای و به صورت بلادرنگ.
برای دانلود فایل سیمولینک بر روی لینک زیر کلیک نمایید.
تهیه کننده: ایمان کاردان
13 Comments
سلام. خسته نباشید. من ویژوال استودیو ۲۰۱۲ و بعد از اون متلب ۲۰۱۲ رو نصب کردم. ولی موقع استفاده از دستور دستور mex -setup پیام میده که کامپایلری پیدا نکرده. چی کار باید بکنم. متن command window رو این پایین میذارم. ممنون
>> mex -setup
Welcome to mex -setup. This utility will help you set up
a default compiler. For a list of supported compilers, see
http://www.mathworks.com/support/compilers/R2012b/win64.html
Please choose your compiler for building MEX-files:
Would you like mex to locate installed compilers [y]/n? y
No supported SDK or compiler was found on this computer.
For a list of supported compilers, see
http://www.mathworks.com/support/compilers/R2012b/win64.html
Error using mex (line 206)
Unable to complete successfully.
سلام مهندس عزیز
لطفا Visual studio 2010 رو نصب کنید.
امیدوام که مشکل برطرف گردد.
با تشکر
ایا با این درایو امکان اجرای حلقه کمتر از ۵میلی ثانیه هم وجود داره؟ کمترین زمان که درایو بتونه کار کنه و مشکلی نداشته باشه چقدره؟
سلام
ما تونستیم در محیط سیمولینک کنترل PID رو با لوپ ۸ میلی ثانیه پیاده سازی کنیم. این زمان به عواملی از جمله مشخصات سخت افزاری کامپیوتر، نرخ ارسال اطلاعات از طریق درگاه USB، نوع پروتکل ارتباطی و … وابسته است. لازم به ذکره که تو کاری که ما تو این آموزش انجام دادیم نرخ ارسال اطلاعات ۹۶۰۰ بیت در ثانیه در نظر گرفته شده و از انجایی که در درایور MDC20 نرخ ارسال اطلاعات تا ۵۷۶۰۰ بیت در ثانیه قابل افزایش است شاید بتوان زمان اجرای حلقه را به زیر ۵ میلی ثانیه نیز بهبود بخشید. از طرفی با افزایش نرخ ارسال اطلاعات احتمال از دست دادن اطلاعات ارسالی بیشتر میشه. در جواب سوالتون می تونم بگم که این زمان با توجه به عوامل ذکر شده در بالا متفاوت است.
با سلام
خسته نباشید
میشه همین کنترلر رو با درایور (l298)انجام داد؟؟
با سلام
در جواب سوال شما باید بگم که کنترولر پیاده شده در اینجا بر اساس قابلیت های نرم افزاری MDC20 هست که به کاربر این امکان رو میده که در محیط های مثل simulink بتونه به راحتی با این driver ارتباط برقرار کنه. L298 یک driver ساده موتور dc هست که هیچ کدوم از این قابلیت های نرم افزارو نداره و فقط شما میتونین باهاش یک موتور رو حرکت بدین.
در صورتی که می خواین به این قابلیت ها با L298 برسین باید اون رو تو یه سیستم driving قرار بدین تا بتونه خروجی های مناسب از قببل جریان،سرعت و غیره رو در اختیارتون قرار بده که این کار زمان بر و هزینه بری خواهد بود. در واقع هدف از ساخت چیزی مانند MDC20 همین بوده که کاربر درگیره مسائل سخت افزاری نشه و مستقیم روی کار اصلیش که کنترل و یا ساخته یک روبات و هر چیزه دیگری هست متمرکز بشه.
سلام خسته نباشید. من ویژوال استودیو ۲۰۱۲ و بعد متلب ۲۰۱۶ رو نصب کردم. ولی موقع استفاده از دستور دستور mex -setup پیام میده که باید update انجام بدم. چی کار باید بکنم. متن command window به این شکل هست:
MEX configured to use ‘Microsoft Visual C++ 2012 (C)’ for C language compilation.
Warning: The MATLAB C and Fortran API has changed to support MATLAB
variables with more than 2^32-1 elements. In the near future
you will be required to update your code to utilize the
new API. You can find more information about this at:
http://www.mathworks.com/help/matlab/matlab_external/upgrading-mex-files-to-use-64-bit-api.html.
To choose a different language, select one from the following:
mex -setup C++
mex -setup FORTRAN
با سلام
ما برای کنترل موتور و انکودر از فایل گذاشته شده کمک گرفتیم ولی مسیرمون یک سینوس با فرکانس کمتر از ۲ (حدود ۰.۲) است و gain مربوط به تبدیل پالس اینکودر به زاویه رو متناسب با اینکودر خودمون به ۱/۱۰ تغییر دادیم تا زاویه ها درست شمرده شود، همچنین PID مناسب را تیون میکنیم. با اعمال این دو تغییر ، حرکت کاملا منقطع و به صورت استپ استپ های بزرگ میشود، اگر ممکنه کمک کنید که چگونه میشود حرکتی پیوسته و نرم داشت و این تغییرات چرا اینقدر در عملکرد تاثیر میگزارند
با عرض سلام و ادب
ایا کنترولر PID رو برای موتور استپر در محیط سیمولینک را پیاده سازی کرده اید ؟ (با استفاده از اردینو )
در اینصورت ممنون میشم کمی مرا راهنمایی کنید
سلام
به چه منظوری میخواین از کنترلر PID واسه موتور استپر استفاده کنین؟ چون موتور استپر به صورت حلقه باز به صورت دقیق کنترل سرعت و موقعیت میشه و در صورتی هم که موتور پالس رد کنه اگه از انکودر استفاده کرده باشین کافیه به تعداد پالسی که موتور رد کرده مجدد پالس اعمال کنین. نیازی به استفاده از PID نیست.
با سلام
ایا امکان دارد که سنسور های مختلف مثل نیرو سنج و غیره را با استفاده از MDC20 به همراه اطلاعات انکودر را توی متلب وارد کرد و بتوان سیستم کنترلری را پیاده سازی کرد.
ممنون
سلام
درایور MDC20 دقیقا همون امکاناتی رو داره که توی کاتالوگش بیان شده. اگه قصد پیاده سازی یک سیستم کنترلی رو دارین و میخواین سنسورهای مختلف رو مدیریت کنین و فرمان های لازم رو به درایور از طریق متلب بدین میتونین از برد آردوینو به همراه درایور MDC20 و سنسورهای مد نظر استفاده کنین. توی متلب هم آردوینو خیلی راحت راه اندازی میشه.
[…] پیادهسازی کنترل PID بر روی درایور MDC20 به صورت بلادرنگ (Re… […]