انکودر

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

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

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

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

شکل (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 این کار انجام شده است.

مراجع؛

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

17 دیدگاه

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

    • سلام سهراب عزیز

      برای سنجش مقدار دبی در لوله بهتر است از فلومتر استفاده کنید برخی از این فلومترها یک ترانسمیتر هستند که خروجی 4 تا 20 میلی آمپر می دهند از این خروجی می توان برای کنترل استفاده کرد. مثلا می توان این سیگنال را به داریو فرستاد تا سرعت پمپ تخلیه را کنترل کند.

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

    • سلام رامین عزیز

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

      در مورد سوال دوم شما من با این مساله برخورد نداشته ام اگر الکتروموتور BLDC باشد احتمالا آن سنسورها سنسور اثر هال هستند در مورد سنسور القایی در زمینه کنترل سرعت اطلاعاتی ندارم. عذرخواهی می کنم.

  • عرض سلام و ادب خدمت شما اساتید محترم.من یک نجار هستم و از این مباحث سر در نمیارم.من در حال ساخت یک اره فلکه ای هستم که در دستگاههای مشابه خارجی در سایت های خارجی از موتور یونیورسال ماشین لباسشویی که ذغال دار هستن و سرعت بالایی دارن استفاده میکنند.من هم یکی تهیه کردم و برای کنترل سرعت از دیمر 2000وات استفاده کردم که سرعت چرخش شفت موتور قابل کنترل شده برام.حالا امروز دوستی که تغییرات ماشین لباسشویی انجام میده به من گفت اگر این موتور نیم ساعت با سرعت بالا کار کنه می‌ترکد و خطر نامه و ….خلاصه مزاحم شما شدم که با توجه به انکودر نصب شده در انتهای موتور چه‌گونه میتونم با ایمنی کامل از این موتور استفاده کنم؟پیشاپیش از لطف و محبت و راهنمایی شما کمال تشکر را دارم.قربان شما محسن مقدم.

    • سلام جناب مقدم.
      انکودر سیستم را حلقه بسته می کند. و ربطی به داغ شدن موتور در مساله شما ندارد. الکتروموتور انتخاب شده را به دستگاه متصل کنید و دمای آن را با ترمومتر پایش کنید.

  • سلام، برای یک موتور سروو ، با ولتاژ ۱۱۰ ولت ، ac, چه اینورتری مناسب هست، مشخصات پلاک نوتور ارسال میشود

  • سلام و درود خدا بر بندگان عرصه علم و رواج آن لطفا در رابطه با روشهای سنجش سرعت موتور به وسیله سنسورهای القایی توضیح فرمایید

    • سلام جناب رمضانی

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

  • با سلام خدمت شما مشکلی که ما الان باهاش درگیر هستیم مربوط به کنترل دور موتور بر اساس emf و به دلیل مشکلاتی نمی‌توانیم از انکودر استفاده کنیم و در بعضی مواقع شاهد افت دور شدید موتور هستیم ، میخواستم بدونم که چگونه سرعت بر اساس emf حساب میشه و آیا راهکاری به غیر از استفاده از انکودر پیشنهاد میدهید ؟! مشخصات موتور Ansaldo 413 kw 1063 A 2000 rpm V arm 420 و درایو مورد استفاده DCS500 ABB

    • سلام حسین جان

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

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

    • سلام علی جان

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

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

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

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

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

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *