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

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

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

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

مدل آزمایشگاهی

عکس نمونه آزمایشگاهی ساخته شده در شکل زیر آورده شده است.

درایو کنترل برداری

شکل (1) : نمونه آزمایشگاهی درایو کنترل برداری

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

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

شکل (2) : بلوک دیاگرام مدل آزمایشگاهی کنترل برداری موتور القایی

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

 

 

معرفی انکدر E6B2-CWZ3E

این انکودر، یک انکودر دوار افزایشی سه کانال و ماکزیمم دقت آن 2000 پالس در هر دور است. با توجه به ساختار خروجی این انکودر(شکل 4) ، دامنه خروجی به ولتاژ تغذیه وابسته است و از آنجا که ولتاژ تغذیه آن از 5 تا 12 ولت قابل تنظیم است، لذا بایستی برای ارتباط آن با میکروکنترلر واسطی میان خروجی انکودر و ورودی میکروکنترلر قرار داد تا دامنه پالس های انکودر را به سطح مناسب کنترلر برساند. برای جلوگیری از ایجاد تأخیر انتشار میان انکودر و کنترلر، بهترین راه حل استفاده از یک مقسم ولتاژ مطمئن است. کنترلر مورد استفاده در اینجا یک پردازنده F2812 ساخت TI است. سطح ولتاژ این پردازنده 3/3 ولت است؛ پس باید مقسم ولتاژ را طوری طراحی کرد که به DSP آسیبی نرسد. همچنین سطح ولتاژ خروجی مقسم نباید کمتر از 2/8 ولت باشد.

نمای انکودر دوار و مدار داخلی آن

شکل (3) : نمای انکودر و مدار داخلی آن

 

چگونگی محاسبه سرعت

در پروژه اجرا شده برای کنترل موتور فرکانس سوئیچ زنی 10 کیلوهرتز انتخاب شده بود. یعنی کنترل کننده هر 100 میکروثانیه = (1 تقسیم بر 10 کیلو) تصمیم می گرفت که توالی کلید زنی چگونه باشد به نوعی در هر 100 میکروثانیه ورودی ها را خوانده و خروجی ها را برای تحریک کلیدها (در اینجا IGBT ها) تغییر می داد. دقت اندازه گیری سرعت در این حالت مطابق محاسبات زیر می باشد.

سرعت سنکرون موتور چهار قطب در فرکانس 50 هرتز 1500 دور بر دقیقه است.چرا؟ تعداد پالسها در هر دور گردش : 2000 پالس (انکودر 2000 پالس در هر دور می دهد) سرعت موتور در هر ثانیه = 1500/60 = 25 دور بر ثانیه تعداد پالسها در هر ثانیه = 25*2000 = 50000 پالس در ثانیه تعداد پالسها در هر بار نمونه برداری = 50000/10000 = 5 پالس

البته پالسها به صورت متعامد با یگدیگر در کانال A و B هستند و شمارنده کنترل کننده تعداد تغییر وضعیتها را شمارش می کند که در این حالت 5*4=20 می شود. ملاحظه می گردد که اگر بخواهیم با این روش فیدبک سرعت الکتروموتور را کنترل کنیم به جایی نخواهیم رسید رزولوشن 75 دور بر دقیقه است یعنی هر 75 دور یک پالس تغییر داریم. روش جالبی نیست در سرعتهای پایینتر مثلا زیر 75 اصلا ما شمارش نداریم و به نوعی فیدبک رندوم داریم چه باید کرد تا مقدار تغییر وضعیت شمارش شده در هر وقفه (فرکانس سوئیچینگ) افزایش یابد.

دو راه حل به کار گرفته شده است. روش اول

روش کنترل برداری قصد دارد به صورت آنلاین به کنترل موتور بپردازد و از اینرو فرکانس کلید زنی 10 کیلوهرتز انتخاب شده است. در مورد جریانها می توانیم تغییرات لحظه ای را داشته باشیم اما واقعیت این است که ثابت زمانی روتور و بار به اندازه کافی بزرگ است که در 100 میکروثانیه تغییر محسوسی نکند لذا برای افزایش رزولوشن بهتر است در هر 10 بار که سوئیچ زنی داریم اجازه دهیم یک بار مقدار شمارش شده قرائت گردد یعنی فیدبک سرعت را هر 1 میلی ثانیه دریافت کنیم بدین صورت تعداد تغییر وضعیتها را در هر بار شمارش از 20 به 200 افزایش داده و دقت را به 7.5 دور افزایش می دهیم.

روش دوم

هنوز در دورهای پایین ضعف داریم 7.5 دور در 1500 عدد کمی است اما اگر سرعت 75 دور بر دقیقه باشد این مقدار خطا خودش 10 درصد است. پس چه باید کرد در دورهای پایین می توان از الگوریتم دیگری استفاده کرد. بله می توانیم زمان صرف شده بین دو تغییر وضعیت یا دو پالس را ثبت کرده و از این طریق سرعت را محاسبه کنیم.

استفاده از ترکیب دو روش تشریح شده در بالا می تواند به دقت تعیین سرعت خیلی خوب در کلیه سرعتها کمک کند که در پروژه ساخت درایو کنترل برداری موتور القایی با استفاده از DSP این کار انجام شده است.

درپایان جهت دریافت اطلاعات بیشتر در این زمینه به " انکودر دوار چیست؟ " ، " مقایسه انکودر و رزولور " و " سنسور اثر هال در کنترل موتور " مراجعه نمایید.

  مراجع [۱] محمدرسول کریمی “کنترل سرعت موتور القایی با کمک DSP به روش کنترل برداری” پایان نامه کارشناسی ارشد، 1389 [2] Pepperl+Fuchs® Inc., Principles of Rotary Encoders [3] OMRON Industrial Automation Co., Incremental Rotary Encoder E6B2-CWZ3E Technical Data, November 2008

نظرات کاربران

Responsive image
علی
1397/09/07

سلام جناب مهندس چگونه میتونم به فایل پایان نامه شما دسترسی پیدا کنم؟ ما یک موتور با درایو داریم که در لحظه راه اندازی جریان بالاتر از جریان نامی میکشدوقتی دور را بالا میبریم جریان کاهش پیدا میکند در ضمن موتور توسط مدfocکار می کند.با تشکر

Responsive image
محمدرسول کریمی(مدیر سایت)

سلام علی جان

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

Responsive image
هاوبير
1397/04/13

با سلام سوالي داشتم در مورد انكودر چرخشي افزايشي مشكلي داريم در يك وسيله در شهر بازي كه از اين نوع اكودر در ان استفاده شده ايا اين نوع انكودر احتياج به كاليبره كردن دارن يعني نقطه ي صفري وجود دارد؟چون مدت زماني كه اينورتر به موتور دستور حركت ميدهد با حركت وسيله هماهنگ نيست.يعني در حالي كه اينورتر دستور به جلو رفتن به موتور ميدهد وتمام نشده وسيله به خاطر وزني كه دارد به عقب بر مي گردد.ايا مشكل از اينوتر يا انكودر يا موتور است؟

Responsive image
محمدرسول کریمی(مدیر سایت)

سلام آقای هاوبیر

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

Responsive image
مصطفی
1395/10/25

مطالب خوب و آموزنده اند اگر میشود نکات تعمیراتی در مورد خرابی درایو رو بیشتر توضیح بدین .......با تشکر از شما و تیم تان

نظر خود را ثبت نمایید

CAPTCHA code