کنترل موتور BLDC با آردوینو ، موتور HD نجات یافته و سنسورهای سالن
خانه » وبلاگ » کنترل موتور BLDC با آردوینو ، موتور HD نجات یافته و سنسورهای سالن

کنترل موتور BLDC با آردوینو ، موتور HD نجات یافته و سنسورهای سالن

نمایش ها: 0     نویسنده: ویرایشگر سایت زمان انتشار: 2020-09-02 مبدا: محل

پرسیدن

دکمه اشتراک گذاری فیس بوک
دکمه اشتراک گذاری توییتر
دکمه به اشتراک گذاری خط
دکمه اشتراک گذاری WeChat
دکمه اشتراک گذاری LinkedIn
دکمه اشتراک گذاری Pinterest
دکمه اشتراک گذاری WhatsApp
دکمه اشتراک گذاری کاکائو
دکمه اشتراک گذاری اسنپ چت
دکمه اشتراک تلگرام
دکمه اشتراک گذاری Sharethis

امروزه علاقه مندان به کنترل DC بدون برس (BLDC)
در مقایسه با موتور سنتی DC بسیار علاقه مند هستند ، عملکرد موتور بهبود یافته است ، راندمان انرژی نیز بهبود یافته است ، اما استفاده از آن دشوارتر است. بسیاری از محصولات خارج از
قفسه برای این منظور وجود دارند.
به عنوان مثال ، بسیاری از کنترل کننده های کوچک BLDCS وجود دارند که برای هواپیماهای RC بسیار خوب کار می کنند.
برای کسانی که می خواهند کنترل BLDC را در عمق بیشتری جستجو کنند ، همچنین میکرو کنترل کننده های مختلف و سایر سخت افزار الکترونیکی برای کاربران صنعتی نیز وجود دارد که معمولاً مستندات بسیار خوبی دارند.
تاکنون هیچ توضیحی جامع در مورد نحوه استفاده از میکرو کنترل کننده Arduino برای کنترل BLDC پیدا نکرده ام.
همچنین ، اگر شما علاقه مند به انجام ترمز احیا کننده یا استفاده از BLDC برای تولید برق هستید ، من بسیاری از محصولات مناسب برای استفاده با موتورهای کوچک را پیدا نکرده ام ، و همچنین در مورد نحوه کنترل ژنراتور 3 فاز فهمیدم.
این ساختار در ابتدا در داستانی در مورد
محاسبه زمان واقعی بود ، من بعد از اتمام دوره ، این کار را ادامه می دهم.
ایده این پروژه نشان دادن یک مدل متناسب از یک ماشین ترکیبی با ذخیره انرژی پرواز و ترمز احیا کننده است.
موتور مورد استفاده در این پروژه یک BLDC های کوچک است که از هارد دیسک رایانه آسیب دیده تمیز شده است.
این دفترچه راهنما نحوه استفاده از میکرو کنترلر Arduino را توصیف می کند و
سنسورهای موقعیت را در حالت های رانندگی و ترمز احیا کننده تأثیر می گذارد.
لطفاً توجه داشته باشید که بازدید از Oslisoft برای تکمیل این پروژه بسیار مفید است.
اگر قادر به دسترسی به دامنه نیستید ، من برخی از پیشنهادات در مورد نحوه انجام آن را بدون دامنه اضافه کرده ام (مرحله 5).
نکته ای که این پروژه نباید در هیچ کنترلر واقعی موتور باشد ، عملکرد ایمنی مانند محافظت از فعلی است.
در حقیقت ، بدترین چیز این است که شما موتور HD را می سوزانید.
با این حال ، اجرای حفاظت بیش از حد با سخت افزار فعلی دشوار نیست ، و شاید من این کار را در بعضی مواقع انجام دهم.
اگر می خواهید یک موتور بزرگتر را کنترل کنید ، لطفاً برای محافظت از موتور و ایمنی خود ، از حفاظت فعلی اضافه کنید.
من می خواهم سعی کنم از این کنترلر با یک موتور بزرگتر استفاده کنم که می تواند برخی از کارهای 'واقعی \' را انجام دهد اما من هنوز مناسب ندارم.
من متوجه شدم که eBay یک ماشین 86 W را با قیمت 40 دلار فروخته است.
به نظر می رسد نامزد خوبی است.
همچنین یک وب سایت RC به نام \ 'Gobrushless \' وجود دارد که کیت هایی را می فروشد که BLDC خود را جمع می کند.
اینها خیلی گران نیستند و ارزش ساخت آن را دارد.
لطفاً توجه داشته باشید که هیچ سنسور هال برای موتور در این وب سایت وجود ندارد. وته
نوشتن این ساختار یک کار بزرگ است.
امیدوارم که آن را مفید بدانید ، لطفاً نظرات و پیشنهادات خود را بیان کنید.
مولتی متر دیجیتال (DMM)-
اگر DMM شما دارای اسیلوسکوپ متر فرکانس است (
بهتر است حداقل 2 کانال داشته باشید)
درایور T8 Torx (
برای باز کردن هرگونه هارد دیسک به یکی از آنها نیاز دارید).
یک فروشگاه سخت افزار خوب وجود دارد.
کارگاه ماشین و نمونه اولیه سریع (
اینها بسیار مفید هستند اما فکر می کنم این پروژه بدون آنها قابل انجام است).
Material bldc motor magnetic ring from computer hard disk (
Half of the motor)
From another hard driveSeveral (3-6)
There is a second small motor in the silver disk on the hard disk (DC brushed OK)
Rubber band or (preferably)
The brushless DC motor with a handle with another motor electronic bread plate solid wire month the Arduino Duemilanove 120 k ohm resistor six to 400 ohm resistor linear or rotating Poteniometer100 k ohmST micro circuit L6234 three phase motor driver IC two 100 uF capacitors one 10 nF capacitor one 220 nF capacitor one 1 uF capacitor one 100 uF capacitor three receiving diodes One 2.
Honeywell SS411A bipolar Hall-5 Amp Fuse 1 fuse holder 3
Note: Mike Anton designed and sold a product that will replace the power electronics and Hall sensor circuits I have shown in this manual (
It با استفاده از القاء بالقوه پشتی کنترل می شود).
مشخصات و اطلاعات مربوط به تهیه را می توان در این دو لینک یافت: اگر می خواهید این پروژه را انجام دهید ، پیشنهاد می کنم زمان لازم را برای درک کامل نحوه کار و کنترل BLDC داشته باشید.
تعداد زیادی از منابع آنلاین وجود دارد (
برای برخی از پیشنهادات به زیر مراجعه کنید).
با این حال ، من برخی از نمودارها و جداول را در پروژه خود قرار می دهم که باید به شما در درک کمک کند.
در اینجا لیستی از مفاهیمی وجود دارد که فکر می کنم برای درک این پروژه از همه مهمتر است: ترانزیستورهای MOSFET 3 فاز نیمه برقی 6-
3 مرحله ای از
مدولاسیون عرض پالس جمله (PWM) سالن
Microchip AVR443: Microchip AVR443: Sensors-General DC اصول اساسی برای کنترل سنسورهای دیجیتال
Control از ATM CONTROL DC BUSSHLESS DC BUSSHLESSLELESS MOTELBUSHLE DC BUSSHLESSLESS DC BUSSHLESSLESS DC BUSSHLESSLE DC BUSSHLESSLE DC
BUSSHLESS DC MOTELLESS DC CONTROL DC BUSSHLESS DC BUSSHLESS DC MOTELLES سنسور ، یک فیلم خوب از تمیز کردن موتور هارد دیسک ، اما به نظر می رسد نویسنده موتور را به عنوان یک موتور پله و به عنوان یک موتور پله در حال اجرا است. یک صفحه وب مرجع خاص تر برای BLDC در L6234 Drive Drive IC ، از جمله برگه های داده ، یادداشت های برنامه و اطلاعات خرید.
نمونه رایگان برای درایو موتور بدون برس PM برای برنامه های کاربردی وسایل نقلیه برقی ترکیبی.
این تنها مقاله ای است که من پیدا کردم که ترتیب تغییر مرحله ترمز احیا کننده را توصیف می کند.
این مقاله ، ترمز احیا کننده در وسایل نقلیه برقی مفید است ، من چند شماره از آن وام گرفتم ، اما فکر می کنم نادرست توصیف می کند که چگونه بازسازی کار می کند.
من این پروژه را با موتور درایو درایو بازیافت شده انجام دادم زیرا عبور از آن آسان بود و دوست دارم از یک موتور ولتاژ کم کوچک برای یادگیری بند ناف کنترل شده توسط BLDC استفاده کنم و هیچ مشکلی در ایمنی ایجاد نکند.
علاوه بر این ، پیکربندی آهنربا سنسور سالن با استفاده از حلقه مغناطیسی (روتور)
از دوم این موتورها بسیار ساده می شود (مرحله 4 را ببینید).
اگر نمی خواهید به تمام دردسر نصب و کالیبراسیون سنسور سالن بروید (مراحل 5-7)
می دانم که حداقل برخی از موتورهای درایو CD/DVD وجود دارد که سنسور درون آن ساخته شده است.
به منظور فراهم کردن برخی از بی تحرکی به موتور و کمی بار به آنها ، 5 درایو هارد را روی موتور قرار دادم ، به آرامی با کمی چسب قوی چسبانده و به موتور چسبیده ام (
این باعث شد که چرخ در پروژه اصلی من باشد).
اگر می خواهید موتور را از هارد دیسک خارج کنید ، برای باز کردن محفظه به یک درایو T8 Torx نیاز دارید (
معمولاً دو پیچ در پشت چوب در برچسب Centeron پنهان شده است)
و پیچ های داخلی که موتور را در جای خود نگه می دارند.
شما همچنین باید سر خواننده (
Sound Circle اجرایی) را
از این طریق حذف کنید تا بتوانید دیسک حافظه را برای رسیدن به موتور بیرون بیاورید.
علاوه بر این ، برای جدا کردن روتور از آن موتور (
یک آهنربا در داخل وجود دارد) به یک موتور درایو مشابه دوم نیاز خواهید داشت.
به منظور جدا کردن موتور ، من
یک موتور موتور را گرفتم و آن را روی استاتور (پایین) آن را بریزید (پایین)
دو پیچ گوشتی 180 درجه از هم فاصله دارند.
نگه داشتن موتور بر روی یک جفت به اندازه کافی محکم و بدون تغییر شکل آسان نیست.
ممکن است بخواهید یک
بلوک چوبی بسازید که برای این منظور استفاده می شود.
من یک سوراخ در حلقه مغناطیسی را روی تراش حفر کردم تا به راحتی در بالای موتور قرار بگیرد.
اگر قادر به استفاده از تراش نیستید ، می توانید روتور معکوس را روی موتور با چسب قوی برطرف کنید.
تصاویر 2 و 3 در زیر فضای داخلی یکی از موتورهایی را که من از هم جدا کرده ام نشان می دهد.
در نیمه اول (روتور) 8 قطب (
آهنربا پیچیده شده در پلاستیک) قرار دارند.
در نیمه دوم (استاتور)
12 شکاف (سیم پیچ) وجود دارد.
هر یک از سه مرحله حرکتی دارای 4 شکاف به صورت سری است.
برخی از موتورهای HD در پایین سه مخاطب دارند ، یک تماس در هر فاز و دیگری شیر مرکزی موتور (
که در آن سه مرحله برگزار می شود).
در این پروژه ، هیچ شیر مرکزی لازم نیست ، اما می تواند در کنترل عاری از سنسور مفید باشد (
امیدوارم روزی یادداشتی در مورد کنترل بدون سنسور منتشر کنم).
اگر موتور شما چهار مخاطب دارد ، می توانید مرحله را با اهم مشخص کنید.
مقاومت بین شیر مرکز و فاز نیمی از مقاومت بین هر دو مرحله است.
بیشتر ادبیات مربوط به BLDC Motors با کسانی که دارای شکل موج بالقوه پشتی نردبان هستند ، سروکار دارد ، اما به نظر می رسد موتور هارد دیسک دارای پتانسیل پشتی است که مانند یک سینوسی به نظر می رسد (به تصویر زیر مراجعه کنید).
تا آنجا که من می دانم ، رانندگی یک موتور موج سینوسی با موج Sine PWM خوب کار می کند ، اگرچه ممکن است راندمان تا حدودی کاهش یابد.
مانند همه موتورهای BLDC ، این یکی از
پل سه فاز نیمه ترانزیستور ساخته شده است (
به عکس های 2 در زیر مراجعه کنید).
من از IC ساخته شده توسط ST Micro (L6234)
برای این پل استفاده می کنم ، همچنین به عنوان راننده موتور نیز شناخته می شود.
اتصال الکتریکی L6234 در مرحله 8 نشان داده شده است.
عکس سوم در زیر یک نمودار شماتیک درایور موتور و سه مرحله حرکتی را نشان می دهد.
برای اینکه موتور در جهت عقربه های ساعت کار کند ، سوئیچ به ترتیب زیر ساخته می شود (
حرف اول ترانزیستور فوقانی است و حرف دوم ترانزیستور پایین است)
: مرحله 1 2 3 4 5 6 در جهت عقربه های ساعت: CB ، AB ، AC ، BC ، BA ، CA Countercly Wasswise: BC ، CB ، AB ، AC ، AC
فقط درجه 3 36 درجه آگهی ' موتورها
بنابراین ، سرعت چرخش هر موتور چهار بار رخ می دهد.
به نظر می رسد که این دو سکانس یکسان هستند ، اما آنها یکسان نیستند زیرا برای
توالی 6 مرحله ای ، برای CW ، جهت فعلی از طریق فاز یک جهت است و برای CCW ، جهت فعلی برعکس است.
شما می توانید این کار را با استفاده از ولتاژ باتری یا منبع تغذیه در هر مرحله از موتور مشاهده کنید.
اگر ولتاژ را اعمال کنید ، موتور کمی در یک جهت حرکت می کند و متوقف می شود.
اگر می توانید به سرعت ولتاژ موجود در فاز را در یکی از توالی های فوق تغییر دهید ، می توانید موتور را به صورت دستی بچرخانید.
ترانزیستورها و میکروکنترلرها همه این سوئیچ ها را خیلی سریع تکمیل می کنند و در هنگام کار موتور با سرعت زیاد صدها بار در ثانیه تغییر می کنند.
همچنین ، توجه داشته باشید که اگر ولتاژ در هر دو مرحله اعمال شود ، موتور کمی حرکت می کند و سپس متوقف می شود.
این امر به این دلیل است که گشتاور صفر است.
این را می توانید در عکس چهارم زیر مشاهده کنید ، که پتانسیل پشتی یک جفت فاز حرکتی را نشان می دهد.
این یک موج سینوسی است.
هنگامی که موج از طریق X-
شافت عبور می کند ، گشتاور ارائه شده توسط این مرحله صفر است. در
دنباله تغییر فاز شش مرحله ای که هرگز اتفاق نیفتاد.
قبل از کم شدن گشتاور در یک مرحله خاص ، قدرت به ترکیب فاز دیگری تغییر می یابد.
موتورهای بزرگتر BLDC معمولاً توسط سنسورهای هال در داخل موتور تولید می شوند.
اگر چنین موتور دارید می توانید از این مرحله پرش کنید.
همچنین ، من می دانم که حداقل برخی از موتورهای درایو CD/DVD ساخته شده در سنسور در حال حاضر سالن وجود دارد.
هنگامی که موتور می چرخد ​​، از سه سنسور سالن برای تشخیص موقعیت استفاده می شود ، بنابراین تغییر فاز در لحظه مناسب انجام می شود.
موتور HD من تا 9000 دور در دقیقه (150 هرتز) کار می کند.
از آنجا که در هر چرخ 24 تغییر وجود دارد ، در 9000 دور در دقیقه ، دستگاه هر 280 میکرو ثانیه تغییر می یابد.
میکرو کنترلر Arduino با 16 مگاهرتز کار می کند ، بنابراین هر چرخه ساعت 0. 06 میکرو ثانیه است.
من نمی دانم که چند چرخه ساعت برای کاهش جمله لازم است ، اما حتی اگر 100 چرخه ساعت لازم باشد ، یعنی برای هر کاهش جمله 5 میکرو ثانیه طول می کشد.
موتورهای HD سنسورهای سالن ندارند ، بنابراین لازم است که آنها را در قسمت بیرونی موتور نصب کنید.
این سنسور باید با توجه به چرخش موتور ثابت شود و در معرض یک سری قطب ها باشد که با چرخش موتور سازگار باشد.
راه حل من این است که حلقه مغناطیسی را از همان موتور جدا کرده و آن را وارونه بر روی موتور نصب کنید تا کنترل شود.
سپس سه سنسور سالن را بالای این حلقه مغناطیسی نصب کردم ، 30 درجه از یکدیگر روی شافت موتور (
چرخش موتور الکتریکی 120 درجه).
دارنده سنسور سالن من از یک نگهدارنده ساده متشکل از سه قسمت آلومینیومی پردازش شده توسط من و سه قسمت پلاستیکی ساخته شده در یک نمونه اولیه سریع تشکیل شده است.
اگر این ابزارها را ندارید ، پیدا کردن راه دیگری برای نشان دادن موقعیت دشوار نیست.
ایجاد براکت برای سنسورهای سالن چالش برانگیز تر خواهد بود.
این یک روش ممکن برای کار است: 1.
یک سینی پلاستیکی با اندازه مناسب پیدا کنید و می توانید سنسور سالن را با دقت اپوکسی کنید. 2.
یک الگوی روی کاغذ چاپ می شود که دارای دایره ای با شعاع حلقه مغناطیسی است و سه علامت 15 درجه 3 از هم فاصله دارند.
الگو را به دیسک چسب بزنید و سپس از الگوی به عنوان راهنمایی برای قرار دادن دقیق اپوکسی سنسور سالن در محل استفاده کنید.
اکنون که سنسورهای سالن روی موتور نصب شده اند ، آنها را به مدار نشان داده شده در زیر وصل کنید و آنها را با استفاده از DMM یا اسیلوسکوپ آزمایش کنید تا مطمئن شوید که با چرخش موتور ، خروجی بالاتر و پایین تر می شود.
من این سنسورها را با استفاده از خروجی 5 ولت Arduino ، زیر 5 ولت اجرا می کنم.
سنسور سالن از نظر خروجی زیاد یا پایین است (1 یا 0)
بستگی به این دارد که آیا آنها قطب جنوب یا قطب شمال را احساس می کنند.
از آنجا که آنها 15 درجه از هم فاصله دارند ، آهنربا در زیر آنها می چرخند و قطبیت را هر 45 درجه تغییر می دهند ، این سه سنسور هرگز به طور همزمان زیاد یا پایین نخواهند بود.
هنگامی که موتور می چرخد ​​، خروجی سنسور 6-
الگوی مرحله نشان داده شده در جدول زیر است.
سنسور باید با حرکت موتور تراز شود تا یکی از سه سنسور دقیقاً در موقعیت تغییر فاز موتور تغییر کند.
در این حالت ، لبه افزایش سنسور سالن اول (H1)
باید با باز شدن ترکیب C (بالا) و B (کم) سازگار باشد.
این معادل روشن کردن ترانزیستورهای 3 و 5 در مدار پل است.
من سنسور را با آهنربا با اسیلوسکوپ تراز می کنم.
برای انجام این کار ، باید از سه کانال دامنه استفاده کنم.
من موتور را با اتصال به کمربند موتور دوم می چرخانم و پتانسیل پشتی بین ترکیب دو فاز (
A و B ، A و C) را اندازه گیری می کنم
. این دو سینوسی است.
مانند امواج موجود در تصویر زیر
و سپس به سیگنال سنسور هال 2 در کانال 3 اسیلوسکوپ نگاه کنید.
نگهدارنده سنسور هال تا زمانی که لبه بالایی سنسور سالن کاملاً با جایی که باید تغییر فاز انجام شود کاملاً تراز شود (به تصویر زیر مراجعه کنید).
اکنون می فهمم که فقط دو کانال برای انجام کالیبراسیون مشابه وجود دارد.
اگر BEMF ترکیب فاز B-
با استفاده از C ، لبه افزایش H2 مربوط به منحنی BC باشد.
دلیل انجام تغییر فاز در اینجا این است که همیشه گشتاور موتور را تا حد ممکن نگه دارید.
پتانسیل پشتی متناسب با گشتاور است و متوجه خواهید شد که هر فاز هنگامی که پتانسیل پشتی زیر منحنی مرحله بعدی عبور می کند ، تغییر می کند.
بنابراین ، گشتاور واقعی از بالاترین قسمت از هر ترکیب فاز تشکیل شده است.
اگر می توانید به دامنه دسترسی پیدا کنید ، در اینجا ایده من برای تراز کردن است.
این در واقع یک تمرین جالب برای هر کسی است که می خواهد بداند موتور BLDC چگونه کار می کند.
اگر فاز موتور A
به منبع تغذیه متصل شود (مثبت) و B (منفی) و منبع تغذیه را روشن کنید ، موتور کمی می چرخد ​​و متوقف می شود.
سپس ، اگر سرب قدرت منفی به مرحله C منتقل شود و قدرت روشن شود ، موتور بیشتر می شود و متوقف می شود.
قسمت بعدی دنباله این خواهد بود که هدایت مثبت را به فاز B و غیره منتقل کنید.
وقتی این کار را انجام می دهید ، موتور همیشه در جایی که گشتاور صفر است متوقف می شود ، که مربوط به یک مکان است که نمودار از محور x در نمودار عبور می کند.
توجه داشته باشید که نقطه صفر ترکیب فاز سوم مربوط به موقعیت تغییر فاز دو ترکیب اول است.
بنابراین ، موقعیت گشتاور صفر از B-
ترکیب C جایی است که می خواهید لبه افزایش H2 را قرار دهید.
این موقعیت را با علائم ریز یا تیغه های تیز علامت گذاری کرده و سپس نگهدارنده سنسور سالن را با استفاده از DMM تنظیم کنید تا خروجی H2 دقیقاً در این علامت بالاتر باشد.
حتی اگر کمی از برنامه مدرسه خود منحرف شوید ، موتور باید خوب کار کند.
سه فاز موتور از درایور موتور سه فاز L6234 دریافت می کند.
فهمیدم که این محصول خوبی است که می تواند در آزمون زمان تحمل کند.
روش های زیادی برای سرخ کردن اجزای خود در هنگام استفاده از الکترونیک برق وجود دارد ، من یک مهندس برق نیستم و همیشه نمی دانم که چه خبر است. در برنامه مدرسه من ، ما
3 فاز خود را از 6 ترانزیستور MOSFET و 6 دیود انجام دادیم .
خروجی نیمه
ما این کار را در HIP4086 از درایور دیگر Intersil استفاده کردیم ، اما با این تنظیمات مشکلات زیادی داریم که
یک دسته از ترانزیستورها و تراشه ها را سوزانده ایم.
من L6234 (
بنابراین موتور) را با 12 ولت اجرا می کنم.
L6234 دارای یک مجموعه از ورودی های غیرمعمول برای کنترل نیم پل از 6 ترانزیستور است.
هر ترانزیستور دارای ورودی نیست ، اما یک
ورودی فعال (EN) برای هر یک از سه مرحله ، و سپس یک ورودی دیگر (در)
انتخاب کنید که کدام ترانزیستور را در مرحله باز (بالا یا پایین) انتخاب کنید.
به عنوان مثال ، ترانزیستور 1 (فوقانی) و 6 (پایین)
هر دو EN1 و EN3 را روشن کنید (
EN2 کم برای بسته نگه داشتن مرحله)
در 1 بالا ، IN3 کم است.
این باعث می شود فاز Combination-C باشد.
در حالی که یادداشت کاربردی L6234 پیشنهاد می کند که PWM را برای کنترل سرعت موتور روی پین استفاده کند ، تصمیم گرفتم این کار را روی پین انجام دهم ، زیرا ، در آن زمان ، فکر می کنم آنها به صورت متناوب ترانزیستورهای فوقانی و تحتانی مرحله به صورت متناوب ،
به نظر می رسد که در واقع هیچ یک از زمان های یکسان وجود ندارد . آنها
با روش من ، فاز بالا در فرکانس PWM فعال و غیرفعال می شود ، در حالی که در طول کل تغییر فاز باقی
مانده
است
. کمی کوچک است ، بنابراین برای نسخه های بزرگتر ، لطفاً به اسناد مربوط به L6234 مراجعه کنید.
توجه: مایک آنتون PCB را برای L6234 ساخت ، که (معتقدم)
این آهنگ را جایگزین می کند و کار مونتاژ آن را نجات می دهد.
این پیوندها را برای مشخصات و اطلاعات خرید مشاهده کنید: من در مورد 3 مورد چیزهای زیادی پیدا نکردم-
درک خود را از نحوه عملکرد آن شرح خواهم داد.
لطفاً توجه داشته باشید که من یک مهندس برق نیستم و ما از هرگونه اصلاح توضیحات خود قدردانی می کنیم.
هنگام رانندگی ، سیستم کنترل جریان را به سه مرحله حرکتی به گونه ای می فرستد که گشتاور را به حداکثر می رساند.
در ترمز احیا کننده ، سیستم کنترل نیز گشتاور را به حداکثر می رساند ، اما این بار یک گشتاور منفی است که باعث می شود موتور هنگام ارسال جریان به باتری کند شود.
روش ترمز احیا کننده ای که من استفاده کردم از مقاله ای از آزمایشگاه ملی اوکریج در ایالات متحده آمده است. S. Govt.
آزمایشگاهی که تحقیقات زیادی را برای موتورهای خودرو انجام می دهد.
نمودار زیر از مقاله دیگری تهیه شده است که به نشان دادن نحوه عملکرد آن کمک می کند (
با این حال ، من فکر می کنم توضیحی که در این مقاله دوم ارائه شده است تا حدی نادرست است).
به خاطر داشته باشید که وقتی موتور می چرخد ​​، ولتاژ BEMF در فاز موتور بالا و پایین نوسان می کند.
در شکل ، لحظه ای را نشان می دهد که BEMF در مرحله B زیاد است و در مرحله کم است.
در این حالت ، ممکن است جریان از B به جریان یابد.
ترانزیستورهای کم مصرف برای ترمز احیا کننده بسیار مهم هستند و به سرعت روشن و خاموش می شوند (
هزاران سوئیچ PWM در ثانیه).
هنگامی که سوئیچ ترانزیستور سطح بالا خاموش است.
هنگامی که ترانزیستور پایین روشن است ، جریان جریان همانطور که در تصویر اول نشان داده شده است.
از نظر الکترونیک برق ، مدار مانند دستگاهی به نام مبدل تقویت کننده است ، جایی که انرژی در فاز موتور ذخیره می شود (
ویکی پدیا مقاله خوبی دارد که توضیح می دهد که چگونه تقویت کننده تقویت کننده کار می کند).
این انرژی هنگامی آزاد می شود که ترانزیستور کم مصرف خاموش شود ، اما با ولتاژ بالاتر ، جریان فوراً از طریق دیود 'ضد تحریک \' در کنار هر ترانزیستور جریان می یابد و سپس به باتری باز می گردد.
دیود از جریان جریان از باتری به موتور جلوگیری می کند.
در عین حال ، جریان در این جهت (
بر خلاف رانندگی)
با حلقه آهنربا در تعامل است تا گشتاور منفی تولید کند که موتور را به پایین کند.
ترانزیستور سمت پایین از سوئیچ PWM استفاده می کند و چرخه وظیفه PWM میزان ترمز را کنترل می کند.
هنگام رانندگی ، تعدیل موتور از یک ترکیب به ترکیب دیگر در موعد مقرر برای حفظ بالاترین گشتاور ممکن تغییر می کند.
جابجایی ترمز احیا کننده بسیار مشابه است زیرا برخی از حالت سوئیچینگ باعث می شود موتور تا حد امکان گشتاور منفی تولید کند.
اگر فیلم را در مرحله اول تماشا می کنید ، می بینید که ترمز احیا کننده خوب کار می کند ، اما به خوبی کار نمی کند.
من فکر می کنم دلیل اصلی این است که موتور هاردی که من استفاده می کنم یک موتور گشتاور بسیار کم است ، بنابراین به جز با بالاترین سرعت ، باعث ایجاد BEMF نمی شود.
با سرعت پایین تر ، ترمز احیا کننده بسیار کمی (در صورت وجود) وجود دارد.
همچنین ، سیستم من با ولتاژ نسبتاً کم (12 ولت) اجرا می شود
، از آنجا که هر مسیر از طریق دیود ضد تحریک باعث کاهش ولتاژ با چندین ولت می شود ، این همچنین باعث کاهش کارایی می شود.
من از دیودهای یکسو کننده معمولی استفاده می کنم و اگر از برخی دیودهای خاص با افت ولتاژ پایین تر استفاده کنم ، ممکن است عملکرد بهتری داشته باشم.
در زیر لیستی از ورودی ها و خروجی های Arduino آورده شده است.
همچنین نمودارها و عکسهای صفحه من را شامل می شود. 2-
ورود دیجیتال 1
120 K مقاومت GND 3
DIGITAL ENTRACE HALL 2
120 K مقاومت GND 4
HALL 3 ورودی دیجیتال-
مقاومت 120 k مقاومت GND 5
1 خروجی دیجیتال در سری با مقاومت 400 اهم 6
2 خروجی دیجیتال در سری با 400 OHM RESSINATION 7
3 خروجی دیجیتال با 400 OHM OF
SERIES DIGITAL SERIES DICITE OUTPUT OUT
OUT OUTPUT OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT OUT OUL مقاومت 11-
خروجی دیجیتال EN 3 به صورت سری با مقاومت 400 اهم ، 100 کیلومتر اهم پتاننتیومتر ، با 5 ولت و GND در هر دو انتهای و پین آنالوگ 0 متصل در وسط است.
این پتانسیلومتر برای کنترل سرعت موتور و حجم ترمز استفاده می شود.
از منبع تغذیه 5 ولت نیز برای اجرای سنسورهای سالن استفاده می شود (به مرحله 5 مراجعه کنید).
در اینجا کل برنامه ای که من برای Ardjuino نوشتم ، که شامل نظرات است:/* bldc_congroller 3. 1.
1* 3 توسط دیوید گلازر.
سری X ST L6234 3-
فاز درایور موتور IC * در حال اجرا دیسک درایو موتور در جهت عقربه های ساعت * با ترمز احیا کننده * سرعت موتور و ترمز کنترل شده توسط یک پتانسیلومتر سنج * موقعیت موتور توسط سه
سنسور اثر تالار * Arduino از 3 سنسور سالن (پین 2،3،4) * دریافت می کند
ترکیب آنها را به 6 مرحله مختلف Prics 92 change در Pins 92 change تبدیل می کند.
و 1،2 ، 3 * 3 روی پین های 5،6 ، 7 ، به ترتیب (در 1،2،3)
* شبیه سازی را به پتانسیلومتر وصل کنید تا چرخه وظیفه PWM را تغییر دهید و بین ترمز و ترمز احیا کننده *:
ترمز * 500-
523: تاکسی * 524-
1023
:
متغیرهای سه سنسور (3،2
؛
int
)
int
hallstate3
/سالن 1 pinmode (3 ، ورودی) ؛
/سالن 2 pinmode (4 ، ورودی) ؛
/L6234 HALL 3/خروجی درایور موتور Pinmode (5 ، خروجی) ؛
/در 1 pinmode (6 ، خروجی) ؛
/در 2 pinmode (7 ، خروجی) ؛
/در 3 pinmode (9 ، خروجی) ؛
/en 1 pinmode (10 ، خروجی) ؛
/en 2 pinmode (11 ، خروجی) ؛
/en 3/سریال. شروع (9600) ؛
اگر از اتصال سریال استفاده می کنید ، لطفاً این خط را از بین ببرید.
فرمان Flush در پایان برنامه.
/* فرکانس PWM را روی پین های 9 ، 10 و 11/تنظیم PWM برای 32 کیلوهرتز برای پین های 9 ، 10/اول پاک کردن هر سه بیت از پیش تقسیم کننده: int prescalerval = 0x07 ؛
/ایجاد متغیری به نام prescalerval و تنظیم آن با شماره باینری '00000111 ' tccr1b & = ~ prescaler
/و مقدار در TCCR0B با تعداد باینری '11111000 ' /اکنون بیت قبل از رمزگذاری مناسب را تنظیم کنید: int قبل از رمزگذاری قبل از رمزگذاری 2 = 1 ؛
/تنظیم prescalerval برای برابر با شماره باینری \ '00000001 \' tccr1b | = prescalerval2 ؛
/یا مقدار در TCCR0B با تعداد باینری '00000001 \' /تنظیم PWM 32 کیلوهرتز برای پین 3،11 (
این برنامه فقط از پین 11 استفاده می کند)
/هر سه بیت قبل از کالر را ابتدا پاک کنید: TCCR2B & = ~ قبل از کالری ؛
/و مقدار TCCR0B با تعداد باینری '11111000 \'/اکنون بیت قبل از رمزگذاری مناسب را تنظیم کنید: TCCR2B | = بیت قبل از رمزگذاری 2 ؛
/یا مقدار در TCCR0B با تعداد باینری \ '00000001 \'/ابتدا هر سه بیت از پیش رمزگذاری شده را پاک کنید:}
حلقه اصلی حلقه خالی/prgrom () {
/time = millis () ؛
زمان بعد از شروع برنامه چاپ. println (زمان) ؛ // سریال. چاپ (\ '\') ؛
دریچه گاز = آنالوگ (0) ؛
/پتانسیلومتر دریچه گاز MSP = MAP (
دریچه گاز ، 512،1023 ، 0،255) ؛
/رانندگی به نیمه بالایی پتانسیلومتر BSPEED = نقشه (
دریچه گاز ، 0،511،255 ، 0) نقشه برداری می شود.
/ترمز احیا کننده نیمه بخشی در پایین گلدان/msps ed = 100 ؛
/برای اشکال زدایی HallState1 = DigitalRead (2) ؛
/خواندن مقدار ورودی از سالن 1 2 = خواندن دیجیتال (3) ؛
/خواندن مقدار ورودی از سالن 2 3 = خواندن دیجیتال (4) ؛
خواندن مقدار ورودی/نوشتن عددی از سالن 3 (8 ، HallState1) ؛
/هنگامی که سنسور مربوطه در قدرت بالا قرار دارد ، LED
در ابتدا برای اشکال زدایی DigitalWrite (9 ، Hallstate2) روشن می شود.
// DigitalWrite (10 ، Hallstate3) ؛ hallVal = (hallstate1)+ (2*hallstate2)+ (4*hallstate3) ؛
/مقادیر باینری 3 سنسور سالن/* را محاسبه کنید. چاپ (\ 'H 1: \') ؛
برای اشکال زدایی درگاه سریال. println (hallstate1) ؛ سریال چاپ (\ 'H 2: \') ؛ سریال println (hallstate2) ؛ سریال چاپ (\ 'H 3: \') ؛ سریال println (hallstate3) ؛ سریال println (\ '\') ؛
*/// سریال. println (mspeed) ؛ // سریال. println (hallVal) ؛ // سریال. چاپ (\ '\') ؛
/نظارت بر خروجی/تأخیر ترانزیستور (1000) ؛
/* T1 = DigitalRead (2) ؛ // t1 = ~ t1 ؛
T2 = DigitalRead (4) ؛ // t2 = ~ t2 ؛
T3 = DigitalRead (5) ؛ // t3 = ~ t3 ؛ سریال چاپ (T1) ؛ سریال چاپ (\ '\ t \') ؛ سریال چاپ (T2) ؛ سریال چاپ (\ '\ t \') ؛ سریال چاپ (T3) ؛ سریال چاپ (\ '\') ؛ سریال چاپ (\ '\') ؛ سریال چاپ (DigitalRead (3)) ؛ سریال چاپ (\ '\ t \') ؛ سریال چاپ (DigitalRead (9)) ؛ سریال چاپ (\ '\ t \') ؛ سریال println (DigitalRead (10)) ؛ سریال چاپ (\ '\') ؛ سریال چاپ (\ '\') ؛ // تأخیر (500) ؛
*/تغییر فاز رانندگی/هر عدد باینری یک مورد مربوط به ترانزیستورهای مختلف روشن شده/بیت که برای تغییر مقدار خروجی Arduino استفاده شده است:/PORTD حاوی خروجی پین در راننده L6234/خروجی است که برای تعیین اینکه آیا ترانزیستور فوقانی یا ترانزیستور پایین/EN PIN برای هر فاز (PWM 'در نظر گرفته می شود ، تنظیم می شود
. مقدار دریچه گاز توسط پتانسیلومتر کنترل می شود). if (دریچه گاز> 511) {سوئیچ (hallVal) {
مورد 3:/portd = 1111xxx00 ؛
/خروجی مورد انتظار پین 0-
7 xxx به ورودی سالن اشاره دارد و PORTD & = B00011111 نباید تغییر یابد.
PORTD | = B01100000 ؛
/آنالیزیت (9 ، mspeed) ؛
PWM در یک فاز (
ترانزیستور سطح بالا) آنالوگ (10،0) ؛
بسته شدن فاز B (وظیفه = 0) آنالوگ نویس (11،255) ؛ // فاز C در -DUTY = 100 ٪ (
ترانزیستور کم مصرف).
مورد 1:/portd = b001xxx00 ؛
/خروجی مورد انتظار پین 0-
7 PORTD & = B00011111 ؛
/PORTD | = B00100000 ؛
/آنالیزیت (9 ، mspeed) ؛
PWM در یک فاز (
ترانزیستور سطح بالا) آنالوگ (10،255) ؛ // فاز B در (
ترانزیستور کم مصرف) آنالوگ (11،0) ؛ // فاز B خاموش (وظیفه = 0) شکست ؛
مورد 5:/PORTD = B101XXX00 ؛
/خروجی مورد انتظار پین 0-
7 PORTD & = B00011111 ؛
/PORTD | = B10100000 ؛ آنالوگ نویس (9،0) ؛ آنالوگ نویس (10،255) ؛ آنالوگ نویس (11 ، mspeed) ؛ شکستن
مورد 4:/portd = b100xxx00 ؛
/خروجی مورد انتظار پین 0-
7 PORTD & = B00011111 ؛
PORTD | = bym000 ؛
/آنالیزیت (9،255) ؛ آنالوگ نویس (10،0) ؛ آنالوگ نویس (11 ، mspeed) ؛ شکستن
مورد 6:/portd = b110xxx00 ؛
/خروجی مورد انتظار پین 0-
7 PORTD & = B00011111 ؛
PORTD B11. 000 = ؛
/آنالیزیت (9،255) ؛ آنالوگ نویس (10 ، mspeed) ؛ آنالوگ نویس (11،0) ؛ شکستن
مورد 2:/PORTD = B010XXX00 ؛
/خروجی مورد انتظار پین 0-
7 PORTD & = B00011111 ؛
B0201700 PORTD | = ؛
/آنالیزیت (9،0) ؛ آنالوگ نویس (10 ، mspeed) ؛ آنالوگ نویس (11،255) ؛ شکستن }}
/تغییر فاز ترمز ترمیم کننده /PORTD (
خروجی پین در L6234)
پین ها همیشه کم هستند ، بنابراین فقط ترانزیستورهای کم در هر مرحله در طول Regen استفاده می شوند. ترمز other {
/portd = b000xxx00 ؛
/خروجی مورد انتظار پین 0-
7 PORTD & = B00011111 ؛
PORTD | = bym0000 ؛ // سوئیچ (hallVal) {
مورد 3: نوشتن قیاس (9 ، bspeed) ؛ // آنالوگ (9،0) ؛ آنالوگ نویس (10،0) ؛ آنالوگ نویس (11،0) ؛ شکستن
مورد 1: نوشتن قیاس (9 ، bspeed) ؛ آنالوگ نویس (10،0) ؛ آنالوگ نویس (11،0) ؛ شکستن
مورد 5: نوشتن قیاس (9،0) ؛ آنالوگ نویس (10،0) ؛ آنالوگ نویس (11 ، bspeed) ؛ شکستن
مورد 4: نوشتن قیاس (9،0) ؛ آنالوگ نویس (10،0) ؛ آنالوگ نویس (11 ، bspeed) ؛ شکستن
مورد 6: نوشتن قیاس (9،0) ؛ آنالوگ نویس (10 ، bspeed) ؛ آنالوگ نویس (11،0) ؛ شکستن
مورد 2: نوشتن قیاس (9،0) ؛ آنالوگ نویس (10 ، bspeed) ؛ آنالوگ نویس (11،0) ؛ شکستن }}
/time = millis () ؛
زمان بعد از شروع برنامه چاپ. println (زمان) ؛ // سریال. چاپ (\ '\') ؛ // سریال. Flush () ؛
/اگر می خواهید با استفاده از درگاه سریال اشکال زدایی کنید ، لطفاً Underment}
فکر می کنم عملیاتی که Arduino در این پروژه انجام می دهد بسیار ساده است که به نظر می رسد برای انجام این کار با یک ریزپردازنده به نظر می رسد.
در حقیقت ، یادداشت های کاربردی L6234 یک آرایه قابل برنامه ریزی ساده (
GAL16V8 ساخته شده از نیمه هادی شبکه) را برای انجام این کار توصیه می کند.
من با برنامه نویسی این دستگاه آشنا نیستم ، اما هزینه IC فقط 2 دلار است. 39 در نیوآرک.
سایر مدارهای یکپارچه مشابه نیز بسیار ارزان هستند.
گزینه دیگر این است که دروازه های منطق با احتیاط را جمع کنید.
من با برخی از سکانس های منطقی نسبتاً ساده روبرو شدم که می تواند L6234 IC را از خروجی سه سنسور سالن هدایت کند.
نمودار مرحله A در زیر نشان داده شده است ، و جدول حقیقت برای هر سه مرحله (
به منظور مدار منطقی مراحل B و C ، درب 'نه ' باید به طرف دیگر \ 'تغییر یابد یا مشکل این رویکرد این است که در هر مرحله نزدیک به 20 اتصال وجود دارد ، بنابراین آن را به طور کامل از
در کنار هم قرار دهد.
این کار می کند تا آن را به عنوان Gathermable

گروه Hoprio یک تولید کننده حرفه ای کنترل کننده و موتورها ، در سال 2000 تأسیس شد. دفتر مرکزی گروه در شهر چانگژو ، استان جیانگسو.

پیوندهای سریع

با ما تماس بگیرید

WhatsApp: +86 18921090987 
تلفن: +86-18921090987 
ایمیل: sales02@hoprio.com
اضافه کردن: شماره 19 جاده Mahang South ، Wujin منطقه پیشرفته ، شهر Changzhou ، استان جیانگسو ، چین 213167
یک پیام بگذارید
با ما تماس بگیرید
کپی رایت © 2024 Changzhou Hoprio E-Commerce Co. ، Ltd. کلیه حقوق محفوظ است. نقشه سایت | سیاست حفظ حریم