من برای کنترل دور موتور نیاز به یک pi دیجیتال و نیز یک انتگرال گیر دیجیتال دارم که در سایت هم سرچ کردم چیز بدرد بخوری پیدا نشد در تاپیک کنترل هم کسی جواب نداد اینجا کسی می تونه کمک کنه لطفا برنامه تحت cod vison باشه یا نه اصلا اگه روش بدست اوردنش را بگویید خودم بدست می اورم
اطلاعیه
Collapse
No announcement yet.
pi و انتگرال گیر دیجیتال درavr
Collapse
X
-
پاسخ : pi و انتگرال گیر دیجیتال درavr
خب اینکه خیلی ساده است!
اول باید یه سیکل با زمان ثابت با تایمر درست کنی که مثلا تو هر یه میلی ثانیه اجرا بشه. برای موتورهای سروو با اینرسی بالا می تونی زمان رو بیشتر کنه ولی اگه اینرسی کم باشه سیکل طولانی باعث نوسان میشه.
متغیر kp و ki رو برای ضرایب پروپورشنال و اینتگرال تعریف کن.
در هر سیکل مقدار setpoint رو از مقدار خونده شده کم کن و در متغیر errorآبریز. البته من نمی دونم حلقه ی کنترل سرعت می بندید یا کنترل مکان. در هر حال این روتین برای هردو صادقه
یک متغیر به نام integrate تعریف کن و در هر سیکل مقدار ki*error را با آن جمع کن. مقدار خروجی برابر با kp*error+integrate خواهد بود.
البته نکات ریزی هم در پیاده سازی PIDآ دیجیتال وجود داره که هم تو کتابها هست هم خودتون به مرور بهش برمی خورید. مثل اشباع شدن integrate در شروع کار که مجبورید دوباره اونو به صفر برگردونید.با عرض پوزش خدمت دایی های عزیزم تا اطلاع ثانوی به اینترنت دسترسی ندارم.
-
پاسخ : pi و انتگرال گیر دیجیتال درavr
از این ساده تر؟ یه متغیر که هر بار بهش مقداری اضافه بشه میشه انتگرالگیر.
کجاشو نگرفتی؟
اینجا با بیسیک نوشته شده است:
http://www.mcselec.com/index.php?option=com_content&task=view&id= 73&Itemid=57
و خود اتمل هم شرحی داده:
http://www.atmel.com/dyn/resources/prod_documents/doc2558.pdf
با عرض پوزش خدمت دایی های عزیزم تا اطلاع ثانوی به اینترنت دسترسی ندارم.
دیدگاه
دیدگاه