Регулятор безколлекторника

jokerman

Вот это уже конкретно, спасибо. Профи не всегда вникают в проблемы делетантов, а может не хотят с высоты своего полета.
Serj работал с Hivolt_ом и у него проходил вопрос по двигателю от CD.
Интересно бы узнать о результатах с родным магнитом. Он соизмерим
со Speed-280.

ylevdik

Привет!

www.microchip.com

Документ AN857 - это PDF, в котором описана “лабораторная работа” по регулятору для бесколлекторника. Сам файл у меня есть, могу прислать, если нитересно. Там все рассказано, есть только одна неподходящая для нас фича - скорость задается переменным резистором. То есть надо будет из исходников выкидывать все, что относится к АЦП, снимающему показания с этого пременника, и заменять это на измерение длительности ШИМ с приемника и преобразование к тем величинам, с которыми контроллер работает потом.
Кстати, исходник по измерению длительности ШИМ можно взять тут же, на сайте RCDesign: www.rcdesign.ru/proj_data/esc.zip, в этом архиве описание регулятора для обычного двжка, но блок измерения ШИМ подойдет и для регулятора бесколлекторника. Да, у всех PIC система команд совершенно одинаковая.
Надеюсь, это поможет…
Юра.

RID

Да, у всех PIC система команд совершенно одинаковая.

Скорее - похожи.

ylevdik

Не просто похожая, а одинакова система команд - это декларируется производителем PICов, фирмой Microchip. Это не я придумал. Архитектура у них несколько отличается, хотя тоже все похоже, а вот система команд - одна и та же - почитать можно на сайте об этом.
Юрий.

RID

"В настоящее время MICROCHIP выпускает четыре основных семейства 8-разрядных RISC-микроконтроллеров, совместимых снизу вверх по программному коду:

базовое семейство PIC15Cx с 12-разрядными командами, простые недорогие микроконтроллеры с минимальной периферией;
PIC12Cxxx с 12-разрядными командами со встроенным тактовым генератором, выпускаемые в миниатюрном 8-выводном исполнении. Не так давно был анонсирован очередной такой “малыш” c внутренним 8-разрядным 4-канальным АЦП;
Mid-range PIC16x/7x/8x/9x с 14-разрядными командами. Наиболее многочисленное семейство, объединяющее микроконтроллеры с разнообразными периферийными устройствами, в число которых входят аналоговые компараторы, аналогово-цифровые преобразователи, контроллеры последовательных интерфейсов SPI, USART и I2C, таймеры-счётчики, модули захвата/сравнения, широтно-импульсные модуляторы, сторожевые таймеры, супервизорные схемы и так далее;
High-end PIC17C4x/5xx высокопроизводительные микроконтроллеры с расширенной системой команд 16-разрядного формата, работающие на частоте до 33 МГц, с объёмом памяти программ до 16 Кслов. Кроме обширной периферии почти все микроконтроллеры этого семейства имеют встроенный аппаратный умножитель 8ґ8, выполняющий операцию умножения за один машинный цикл. "

Если длина команды отличается, то наверно они не совсем одинаковые.

ylevdik

Согласен. Но, как известно, команда не самом по себе существует, а с параметрами. Я так понял из описания, кто команды везде одни и те же, а вот длина параметров может отличаться в зависисмости от внутреннего устройства PICа. Примерно то же самое было на PDP-11 – там Ассемблер был один на всех, а длина параметров команд зависела от шины. Говоря о _системе конманд_, я говорил именно об Ассемблере, который на всех PICах один и тот же. В общем, мы, похоже, оба правы - если учесть контекст. Так или иначе, но программу, написанную для одного PICа обычно можно прошить и в другой - более старшей модели - так как они совместимы.
Юрий.

RID

“Но, как известно, команда не самом по себе существует”
Много можно возразить, что такое сама по себе? Существует?
Система команд - это команды, которые понимает контроллер. Она самодостаточна, поэтому Вы вполне можете написать программу в “командах” т.е. “машинных кодах” в их цифровом представлении. Она будет работать и ничего больше не надо. Другое дело, что это неудобно, непроизводительно и ненаглядно.
Язык программирования у них один, а системы команд отличаются. Лучше использовать общепринятую терминологию, а то человеку, который только начинает осваивать и так тяжело разобраться, а если прийдется догадываться, что хотели сказать… 😉

ylevdik

Ну уговорил, уговорил, языкастый… :))) Все, согласен - ибо не о том вообще спорим. Человек вопрос задавал про регулятор для бесколлекторника, а мы тут развели о системе команд… Впрочем, он до нашей переписки, может, и не дочитает…
Юрий.

jokerman

Дочитал я вашу переписку и понял, что вы большие доки в области программирования PICов. У меня к вам предложение, доработайте
софт для регулятора, описанного на этом сайте, чтобы он стал реверсивным и целая армия начинающих ВАМ будет очень благодарна
А те кто учится программировать, сравнивая два исходника, найдут для себя много полезного. Это благие пожелания делетантов.
За ссылки большое спасибо, а фаил конечно же нужен . Скинь его
на rustam@nefaz.ru

vovic

Жаль, но тут одной переделкой софта не отделаешся. Вместо одного ключа надо ставить целый мост из ключей. Да еще временные задержки подбирать при реверсе, иначе даже мощные ключи гореть будут.
Это, считай, отдельная разработка.

ylevdik

Жаль, но тут одной переделкой софта не отделаешся. Вместо одного ключа надо ставить целый мост из ключей. Да еще временные задержки подбирать при реверсе, иначе даже мощные ключи гореть будут.
Это, считай, отдельная разработка.

Не согласен… :))) Ибо у бесколлекторника для РЕВЕРСА все принципиально готово: так как управляется он софтом, задающим частоту смены фаз и ПОРЯДОК смены фаз. И не один там ключ, а по два полевика на каждую из трех обмоток - всего шесть - полевики разной проводимости, так что на самом деле все равно, в какую сторону крутить мотор, надо только фазы чуть подправить…
Юрий.

ylevdik

Дочитал я вашу переписку и понял, что вы большие доки в области программирования PICов. У меня к вам предложение, доработайте софт для регулятора, описанного на этом сайте, чтобы он стал реверсивным и целая армия начинающих ВАМ будет очень благодарна

  1. Непонятно, ЗАЧЕМ авиа_моделисту реверс?
  2. Непонятно, зачем авто_моделисту бесколлекторник (тем более в варианте от винчестера)?
  3. Очень многие так любят – “вы доработайте, а мы вам будем благодарны”… Давайте вместе дорабатывать и разбираться, а то нехорошо получается… В таком случае Вам, rustam, легче купить готовый регулятор долларов за $60 - $75…
    Юрий.
ylevdik

Дочитал я вашу переписку и понял, что вы большие доки в области программирования PICов. У меня к вам предложение, доработайте софт для регулятора, описанного на этом сайте, чтобы он стал реверсивным и целая армия начинающих ВАМ будет очень благодарна

Кстати, в догонку - почитайте еще внимательнее форумы этого сайта, так как я видел здесь переписку, что регулятор с реверсом уже сделали (из именно того, что опубликовано на этом сайте). Так что дорабатывать ничего не надо. Только это регулятор для КОЛЛЕКТОРНОГО двигателя. Можно запустить поиск по всем форумам по ключевому слову “реверс”
Юрий.

vovic

Юра, да не частите Вы так то. За пол-часа сам сначала возразил, зачем то упомянув безколлекторник, хотя предложение было о переделке софта регулятора для коллекторного мотора. И сам же через пяток минут себя поправил. 😃
Почитайте теперь все три сообщения вместе, не смешно? 😆
Да еще с советом читать внимательнее!

ylevdik

Юра, да не частите Вы так то. За пол-часа сам сначала возразил, зачем то упомянув безколлекторник, хотя предложение было о переделке софта регулятора для коллекторного мотора. И сам же через пяток минут себя поправил. :)
Почитайте теперь все три сообщения вместе, не смешно? :laughing:
Да еще с советом читать внимательнее!

Смешно, смешно - ну да ничего, людям свойственно ошибаться. Я же себя сам поправил, когда увидел, что не на то ответил…
Юрий.

jokerman

Юра, у моделиста круг интересов очень широк, на то он и моделист.
Реверсивный нужен для катера под обычный двиг. Поиск по ключу
ничего не дал. А что касаемо безколлекторника так это только начало преобщения. Взять например двиг от дисковода 3,5", внешнее кольцо большого диаметра,( в катере средних размеров места хватит) зато какой момент на валу!!! А для самолета реверс разве что для торможения на полосе .
Vovic- писал о подборе задержек, с чем связано ме не совсем понятно.
Ведь газ сбрасывается до нуля , а потом реверс и опять газ. А то что
нужен мост это само собой. Если можно поподробнее.

vovic

Модератора надо уважать, и свои дубли сообщений удалять самому, так этика велит.

О задержках.
На полном газу хороший мотор дает собственную ЭДС, близкую по величине к напряжению питания. Особенно, если нагрузка невелика. Если его мгновенно реверснуть (представь, что мотором не джойстик управляет, а тумблер, - так бывает), то эта ЭДС будет не вычитаться из напряжения питания, а суммироваться с ним. В первые миллисекунды это будет эквивалентно для ключей удвоению напряжения питания. (Если непонятно, попробуй нарисовать мост и расставь полярность ЭДС мотора и напряжения питания.)
Чтобы не спалить ключи по перенапряжению (закрытые) и броску тока ( открытые, - сам прикинь, напряжение удвоилось, а внутреннее сопротивление аккумулятора осталось прежним), в контроллере надо предусмотреть задержку реверса. Сколько миллисекунд она должна быть, это тоже вопрос разработки. Она зависит от импульсных свойств примененных MOSFET ключей и параметров мотора. Причем важен инверсный импульсный ток через встроенный в ключ защитный диод.
Это вкратце. Но там и другие заморочки есть.

ylevdik

Поиск по ключу ничего не дал.

Вот результат МОЕГО поиска: rcopen.com/forum/f1/topic2002
Читаешь эту переписку на форуме, Рустик, потом связываешься с тем парнем, который все уже сделал, и просишь его прислать схему и софт.
Для меня тема закрыта - хотел помочь человеку, а получил только недовольство в ответ. Жаль, что среди моделистов такие люди тоже встречаются.
Юрий.

jokerman

Геннадий, это отличное наглядное пособие !!!
Vovik, Нельзя ли обозначить " другие заморочки " для более полного
представления.

vovic

Да их много, заморочек то. Ну, к примеру, чтобы с’экономить на ключах мост делают несимметричным. Т.е. ключей в реверсе меньше, чем на прямом ходу. А чтобы не спалить их, - мотор то один и тот же, - в софте делают ограничение времени реверсного включения. Так делает LRP на своих реверсивных регуляторах.

Другой момент, динамический тормоз. На нереверсивном регуляторе там отдельный ключ для закоротки обмоток. На реверсивном надо скомутировать одновременно одноименные (как правило земляные) ключи обеих плеч. Да еще предусмотреть, чтобы на переходных режимах не было сквозного тока, даже в доли миллисекунды.

Дальше, можно в верхних плечах использовать р-канальные ключи. Тогда ими просто управлять. Но они дороже и более хилые, чем n-канальные. А чтобы в верхние плечи поставить n-канальные ключи, надо использовать специальные драйверы ключей, либо лепить схему сдвига уровня.

Отдельная песня - системы защиты по току и температуре.
Еще тема - подпрограмма перепрограммирования многорежимных регуляторов, по частоте ШИМа, тормозам, привязке к параметрам управляющего импульса и т.д.

В общем их много, заморочек то. 😃