Jump to content
Българският форум за музиканти

Dual high-power motor controller


Recommended Posts

Здравейте!

 

Чудих се дали е редно да пусна темата тук, но тъй като взеха да зачестяват темите свързани с електроника като цяло, захранвания и така нататък, все пак се реших.

 

Избраха ме да правя спонсориран от университета проект (уча електроника в Sheffield, UK, за който не знае). Тъй като технологичният ми речник на български все повече обеднява за сметка на този на английски, ще използвам доста термини на английски.

 

Та в какво се състои проекта. Имаме antenna positioner, който може да си представите като heavy duty грамофон. Антената се закрепва на „плочата“ на „грамофона“ и съответно като се върти плочата, антената може да се насочва в различни посоки. Плочата се върти от един монофазен DC мотор, чрез зъбна предавка. Към статорната намотката на мотора се подава постоянно 115 V, а напрежението към роторната намотка може да варира от 0 до 115 V за регулиране на скоростта. Максималният ток през роторната намотка е 6 А, въпреки че за дадени модели positioner-и e по-малко.

 

Идеята на занятието е да се направи контролер за positioner-a, който да му предоставя захранване, както и да контролира посоката на въртенето, скоростта, избор на дискретни позиции. Даденият контролер всъщност ще замени стар такъв, който вече е морално остарял (1970 година произведен), заема много място и е неефективен.

 

За контрола реших да използвам PWM, чрез който да регулирам големината на напрежението подавано към роторната намотка. За целта ще използвам микроконтролер PIC 18F4550, който ще събира информация за позицията, ще прави всички необходими изчисления, ще получава команди от потребителя и съответно ще изпраща контролните сигнали. Връзката с потребителя става чрез desktop апликация, като микро контролера се свързва чрез USB с компютър.

Моментната позиция на плочата на positioner-a се засича от двойка synchro transmitter-и, единият с по-висока резолюция, другият с по-ниска (това се осъществява чрез различни предавки към оста на плочата).

 

До момента съм направил основната схема на power board-a. Може да я изтеглите от тук:

 

https://dl.dropboxusercontent.com/u/59307400/SURE_Main_Board.PDF

 

Нужното работно напрежение от 115 V се предоставя от трансформатор T1. Изглаждане на ripple-a след CR1 не съм предвидил, тъй като не виждам причина за това, в оригиналният контролер също липсваше, а и не става лесно просто с кондензатор, поради голямото напрежение и сравнително големият ток. D2 e двупосочен TVS (символът не е съвсем точен), предпазва от voltage spikes. Пропуснах да спомена, че с контролера ще се свързват 2 подобни positioner-a, та затова са и редицата дублирани компоненти по схемата. Повечето от компонентите за контрол на вторият positioner са отделени на второ PCB. Q1 е N type MOSFET и осъществява PWM. К1 е реле, определящо посоката на въртене, а K2 e част от спирачна система. Когато е изключено, ротора на мотора се дава на късо през R1 и по този начин системата спира. D1 отново предпазва от voltage spikes от страна на мотора. За C1 още не съм особено сигурен дали трябва да го има изобщо и каква трябва да е стойността му. По принцип идеята е да поема излишна енергия от мотора, при regenerative breaking примерно.
 

Q1 и релетата се включват от опто-изолирани драйвъри U1, U2 и U3, които съответно се контролират от микро контролера.

 

Т2 е малък трансформатор предоставящ напрежение за драйвърите, а след стабилизатора VR1 се взема и захранване за микро контролера (въпреки че по принцип ще се захранва през USB).

 

Веригата която взема напрежение от synchro transmitter-е и го подава към микро контролера ще я мисля днес. Там идеята е просто да се намали входното напрежение от transmitter-ите, което е до около 130 Vp до 5 Vp и да се вкара в AD входовете на микро контролера. Вече с микро контролера ще се прави изчисление на позицията според напреженията между различните намотки на synchro-тата.

Както може би забелязахте, повечето компоненти все ще нямат определени стойности, предстои да ги смятам днес, както и да избирам конкретните модели компоненти.

 

Предполагам в дизайна ми има доста недомислени неща, които могат да се направят по-добре. Това се дължи на малкото опит, който имам с power circuits.

 

Ще се радвам да чуя вашите мнения. :)

Адрес на коментара
Сподели в други сайтове

Само да вметна - хубаво е да се помисли за някакъв механизъм за оказване на спирачно въздействие върху оста на мотора. Доколкото разбирам, ако позицията на антената е далече от исканата, ще подадеш повече ток на ротора чрез PWM-a и ще го намаляш при приближаването. Има реална опасност обаче позицията да се задмине поради инертността на антената и системата като цяло. Това ще доведе до колебания, за чието затихване, трябва да се погрижиш. Ако се допуска позиционирането да се извършва с константна (бавна) скорост, проблема донякъде се решава. Възможно е да се сложи някакъв вид зависима от скоростта спирачка - механична или чисто програмно чрез PWM-a.

За мен значително по-елегантно решение щеше да е стъпков двигател и фотоелектричен преобразувател (или нещо друго, което да брои реално изпълнените стъпки), свързани с подходящ редуктор за осигуряване на необходимата точност на позициониране. Това ще ти спести и доста ядове по отчитането на позицията на синхро детекторите (селсини на български, ако не се лъжа), които според мен са доста по-подходящи за транслиране на положение, т.е. от антената към чисто механичен индикатор, отколкото за отчитане - поради относително голямата амплитуда на напреженията по намотките ще е нужен преобразувател и ADC с доста висока резолюция за постигане на необходимата точност на позиционирането/отчитането. Все пак, ако се използва PWM и променлива скорост на двигателя спрямо местоположението, могат да се използват за определяне на скорост/ускорение на системата и внасяне на необходимите корекции в управлението, за да се избегне задминаването на търсеното положение. За този случай много по-лесно ще е да се използва обикновено динамо (DC мотор с известни генераторни характеристики) - един или повече на различните оси на редуктора (както сам споменаваш).

Това естествено са мои размисли по темата, може и да бъркам..

Адрес на коментара
Сподели в други сайтове

Благодаря ти за мнението, важни неща казваш.
Всякакви механични модификации по positioner-a няма как да правя, понеже не ми е това работата, а и не е особено в scope-a на проекта. За използването на различен вид двигател също не може да става дума, все пак идеята е да се направи контролер за наличните устройства. За грешки в намирането на позицията и така нататък съм помислил и ще мисля още като се захвана с програмирането.
Относно synchro-тата и аз не им се радвам особено и усещам, че ще има ядове с тях, особено след като се зачетох по темата днес и разбрах, че не е много проста задача да се дигитализира сигнала от тях с малка грешка.

Адрес на коментара
Сподели в други сайтове

Можеш ли да добавиш още два селсина, по възможност еднакви с наличните? Ако ги свържеш за ретранслиране на положение (връзката е чисто електрическа), осите на "приемащите" селсини можеш да закачиш за ротационни енкодери и да си улесниш живота откъм отчитане поне. Считам, че поне единия селсин се върти 1:1 с антената, т.е. няма да прави повече от един пълен оборот за всички възможни положения на антената. Между другото има ли изискване да се върти на 360 градуса безконечно?

Адрес на коментара
Сподели в други сайтове

Трябва да се върти на 360 и да може да прави обороти свободно.

Приемащи селсини има в старите контролери, там така се отчита положението. От гледна точка на място и практичност обаче, е добре да бъдат премахнати. Иначе единият предаващ се върти 1:1, другият 1:36.

Това с енкодерите го мислих направо да се вържат на осите на предаващите селсини в positioner-a, но не съм сигурен колко лесно ще е за изпълнение от механична гледна точка.

Разглеждах разни synchro to digital конвертори в интернет, но цените доста надхвърлят бюджета, а и не се намират много лесно като цяло. Не съм сигурен до колко успешна ще бъде ръчната направа на такъв, под формата на смъкване на напрежението идващо от намотките на селсините с делител на напрежение и вкарването му в AD конверторите на микро контролера. Резолюцията на AD конверторите не е проблем, имам 10 бита. По-скоро ме притесняват проблеми с шум в сигнала и разни други изкривявания, които внасят грешка. От друга страна не се гони толкова голяма точност - около 0.1 градуса търсим. При условие че 1:36 селсинът показва 10 градуса при едно пълно завъртане, необходими са 100 стъпки на оборот (или малко повече за подсигуряване). При 1:1 селсинът е още по-малко - около 36 стъпки. Но все пак не ми се струва много сигурна работата.

Адрес на коментара
Сподели в други сайтове

Мен ако питаш е най-добре да се оставят и приемащите селсини и да им вържеш енкодери. Да снемаш напрежението с делител не е оферта - делителя има някакво съпротивление, което няма да е безкрайно голямо спрямо това на навивките на селсина - ще консумира ток от тях и ще разсейва известна мощност. Само от топлинните колебания ще се получи значителна грешка при търсената резолюция. Остави, че консумацията на ток от навивките на предаващия селсин ще предизвика спирачни моменти в него и въобще ще ти обърка работата съвсем. Те са обикновено направени да си работят в комплект, като приемащите обикновено не са натоварени да вършат каквато и да е механична работа (с изключение на преместването на оста си и нещо леко на нея). Ако сложиш енкодерите директно на предаващите селсини ще се измъчиш със сигнализацията - предполагам контролера и антената са на някакво разстояние - при нормалните за микроконтролера напрежения на другия край ще има значителни грешки или направо нищо. Трябва да се мисли за микроконтролер, който да приема положението от енкодера, да го качва върху подходящ транспортен протокол и подходяща линия за комуникация на търсеното разстояние до другия микроконтролер (RS-485 евентуално ще свърши работа), който извършва управлението. Става мазало.

За мен варианта с употребата на другата двойка селсини и ротационни енкодери е най-дуракоустойчива в този случай. Считай, че не съм професионалист, чета за забавление...

Адрес на коментара
Сподели в други сайтове

Без да влизам в детайли по управлението ще ти подскажа някои важни моменти от алгоритъма за управление. 

При първоначално включване изпълнителният механизъм трябва да се ориентира в каква позиция е. Или ще помни старите координати, или трябва да премине през home position sensor. Трябва да решиш кое е по-подходящо за твоя механизъм.

Напиши в Гугъл Contro stepper motor starting position и прочети дискусиите във форума за Ардуино.

 

Мисля си, че тези неща трябва да се преподават в твоето училище.

Адрес на коментара
Сподели в други сайтове

Друга особеност на високо инерционните механизми (дето са тежки, тромави и трудно се завъртат), които се задвижват с високомоментни двигатели, е претоварването на механиката в при старт и стоп. Можеш да предвидиш по-плавно ускоряване - добре е за устройството, добре е и за оценката ти.  

Адрес на коментара
Сподели в други сайтове

Това с първоначалната позиция не е проблем, synchro-то си знае позицията при включване. Това със stepper motor-a не мисля че има общо с проекта ми, аз не работя с такива двигатели. Инерцията я имам предвид, важна е наистина.

Адрес на коментара
Сподели в други сайтове

  • 2 months later...

Използвай датчици на Хол и квадратична модулация -Pwm за управление на DC дрйвера за DC мотора.

 

Разгледай управления за CNC Router и други други машини с ЦПУ .

 

Използвай датчици на Хол и квадратична модулация -Pwm за управление на DC дрйвера за DC мотора.

 

DC Drivers на този линк http://elm-chan.org/works/smc/report_e.html

Адрес на коментара
Сподели в други сайтове

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Отговорете в темата...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Предишното ви съдържание бе възстановено.   Свободно редактиране

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Създай нов...

Важна информация!

Поставихме "бисквитки" на вашето устройство, за да направим този сайт по-добър. Можете да коригирате настройките си за "бисквитките" , в противен случай ще предположим, че сте съгласни с тяхното използване.