Проект "Безколлекторная Лама4"
Да почему Вы зациклились на это ограничение по току? Давайте я спрошу по-другому: Вы стик газа в полете когда-нибудь доводите до 100%? Я понял, что нет, и до 90% он не доходит. Если же реально используются только от 0 до 70%, я и предлагаю сделать так, чтобы полный интервал движения стика соответствовал этим 0 – 70%. В конце концов, я Вас не убеждаю это делать, но это то, что я себе лично запрограммирую с самого начала!
А что каксается резкого старта (точнее, ускорения моторов), так я об этом тоже собирался позаботиться программно – это вставляется довольно элементарно. А также то, чтобы при уменьшении газа он случайно не сбрасывался в ноль оборотов, после чего мотор долго запускается.
Мне кажется, Вы слегка смешиваете в кучу разные особенности и тонкости бесколлекторников. Датчик там нужен не для “обратной связи” (по току, о которой Вы говорите), а просто для определения момента коммутации обмоток – то, что в обычном моторе механически делает коллектор. Просто это отслеживание момента времени по эдс индукции плохо работает на малой скорости вращения, других причин нет; поэтому на наших ESC запуск мотора до выхода на средние обороты осуществляется как бы вслепую, Для самолетов и вертолетов с этим проблем нет, так как на малых оборотах и противодействующий момент мал, в отличие от авто.
Отслеживание (а не простое ограничение) тока, протекающего через цепь батарея-регулятор-мотор и оперативное управление им, будет наиболее ОПТИМАЛЬНЫМ регулированием режима работы всей цепи. Именно обратная связь по току обеспечит максимальную длительность полётов, сохранность элементов схемы, регуляторов и батареи. Зачем сдвигать диапазон работы стика в низ? Он и так сдвигается по мере разрядки аккумулятора. А что даст ограничение ширины РРМ-импульса? Оно даст лишь приближение момента, когда верт не сможет взлететь.
Кстати сказать, при разрядке аккумулятора смягчаются реакции вертолёта на управление. Происходит как бы некоторое растягивание отклика модели на сигналы команд. Довольно приятно управлять вертом в таком режиме. В данном случае как раз и происходит ограничение протекающего через регулятор и мотор тока. Аккумулятор не может выдать большого тока, поскольку ёмкость его упала, а напряжение ещё вполне в норме. Это наглядный пример, иллюстрирующий мои задумки.
На мой взгляд резкий старт не сильно актуален, а вот расширение петли гистерезиса, позволяющее мотору не стопориться при сбросе газа, это весьма полезно. А каким макаром планируется это сделать?
Я не “смешиваю… особенности …б/к моторов”. Как работает датчиковый мотор я вполне представляю. Говоря про обратную связь, я имел в виду, что контроллер через датчики положения имеет оперативный параметр для регулироваения - ток обмоток. Что это, как не ОС?
Я не “смешиваю… особенности …б/к моторов”. Как работает датчиковый мотор я вполне представляю. Говоря про обратную связь, я имел в виду, что контроллер через датчики положения имеет оперативный параметр для регулироваения - ток обмоток. Что это, как не ОС?
А коллектор – это обратная связь? И клапанный механизм? Датчики положения никакого отношения к регулировке тока не имеют, им упрявляет скважность PWMа, которая на рабочем режиме является просто функцией длительности PPM сигнала с приемника.
Отслеживание (а не простое ограничение) тока, протекающего через цепь батарея-регулятор-мотор и оперативное управление им, будет наиболее ОПТИМАЛЬНЫМ регулированием режима работы всей цепи.
Если Вам приятнее оставаться с некоторыми заблуждениями, я не стану больше стараться разубеждать. Позвольте лишь напомнить мысль, которую я уже подчеркивал: при том запасе по тяге, с каким мы имеем дело, уменьшение тяги с разрядом аккумуляторов полностью иррелевантно. Напряжение от полностью заряженной до разряженной батареи меняется всего на 20%. Если с запасом в три раза (и даже в 1,8 раза) вы долетались до того, что вам не хватает тяги для взлета, то ваши LiPo, по существующему мнению, в ближайшее же время отправятся в мусор.
расширение петли гистерезиса, позволяющее мотору не стопориться при сбросе газа, это весьма полезно. А каким макаром планируется это сделать?
Программно можно сделать почти все. Во-первых, нужно запретить выключаться любому из моторов по отдельности, только когда оба сигнала идут почти в нуль. В программе есть две переменные, описывающие сигнал управления по каждому мотору. Нужно добавить еще одну переменную (флаг, статус) мотора – работает/стоит. Делать преобразование переменных сигнала по принципу – если меньше, скажем, 10, то это 0, а больше – она сама. Или если больше 6 – она сама, а меньше – ноль. И сделать сами эти пороговые значения 10, 6 зависящими от существующего на данный момент статуса – мотор “включен” или “выключен”. Это можно реализовать дюжиной способов. А в программе это займет с десяток строчек (на канал).
[quote=Volante24;808284]
А коллектор – это обратная связь? И клапанный механизм? Датчики положения никакого отношения к регулировке тока не имеют, им упрявляет скважность PWMа, которая на рабочем режиме является просто функцией длительности PPM сигнала с приемника.
А отчего все вышеперечисленные детали нельзя отнести к злементам обратной связи? Через коллектор, допустим, осуществляется не только контакт, но и отслеживается наличие тока в цепи. На самом деле это конечно условности.
Датчики положения как раз имеют отношение к регулировке тока, определяя момент переключения обмоток. Самой же силой тока в обмотке, безусловно, управляет скважность ШИМа.
Если Вам приятнее оставаться с некоторыми заблуждениями, я не стану больше стараться разубеждать. Позвольте лишь напомнить мысль, которую я уже подчеркивал: при том запасе по тяге, с каким мы имеем дело, уменьшение тяги с разрядом аккумуляторов полностью иррелевантно. Напряжение от полностью заряженной до разряженной батареи меняется всего на 20%. Если с запасом в три раза (и даже в 1,8 раза) вы долетались до того, что вам не хватает тяги для взлета, то ваши LiPo, по существующему мнению, в ближайшее же время отправятся в мусор.
По Вашему выхлдит, что батарея должна таскать моторы вечно. При чём здесь запас тяги? Я гворил о ситуации, когда батарея после, скажем, 10мин. полёта уже слегка подсела и соответственно не может давать таких больших токов, какие она давала за 10мин. до этого будучи свежезаряженной.
И насчёт заблуждений тоже не могу не сказать. Дело не в заблуждении, а в том, что мне просто больше нравиться иная система регулирования и защиты. Согласитесь, что при ограничении тока путём ограничения длительности РРМ-импульсов, при разряде батареи скорее наступит момент, когда мотору для взлёта понадобиться ток такой величины, который при ограниченном РРМ-импульсе аккумулятор ему уже не сможет выдать. Иными словами, когда напор воды падает, чтобы компенсировать уменьшение расхода, нкжно побольше открыть кран. А если на кране стоит ограничитель полноты его открывания, то компенсировать уменьшение расхода не удастся. Так же и при ограничении РРМ не удастся компенсировать уменьшение ёмкости акк-ра и время полёта сократиться. Я же предлагаю ограничить ток в режиме сходном с источника тока, т.е. как не впирай газ при, допустим, заблокированном моторе, больше заданного значения тока не вопрёшь. Естественно, заданную максимальную силу тока надо выбрать “с запасом”, чтобы не ухудшать полётные характеристики.
Программно можно сделать почти все. Во-первых, нужно запретить выключаться любому из моторов по отдельности, только когда оба сигнала идут почти в нуль. В программе есть две переменные, описывающие сигнал управления по каждому мотору. Нужно добавить еще одну переменную (флаг, статус) мотора – работает/стоит. Делать преобразование переменных сигнала по принципу – если меньше, скажем, 10, то это 0, а больше – она сама. Или если больше 6 – она сама, а меньше – ноль. И сделать сами эти пороговые значения 10, 6 зависящими от существующего на данный момент статуса – мотор “включен” или “выключен”. Это можно реализовать дюжиной способов. А в программе это займет с десяток строчек (на канал).
Блин, ну не получается у меня так цитировать текст сообщения, как Вы! Научили бы, что ли?
Не понял, как всё-таки отследить, сам факт наличия или отсутвия вращения мотора? Флаги - это хорошо, но реально отследить, что ротор вращается имея из входных данных только ток через обмотки, не удастся. Это придётся лезть в мозги ESC - там по крайней мере отслеживается противоЭДС.
Про то, что “Программно можно сделать почти все.” Я вот ни фига сделать не могу, потому что в ассемблере не волоку. Хотя на уровне блок-схемы алгоритм построить могу. А Вы могли бы мне оказать воспомоществование в качестве шефской помощи, так сказать?
Блин, ну не получается у меня так цитировать текст сообщения, как Вы! Научили бы, что ли?
Да я это по-пещерному – отвечаю, она дает цитату. Вырезаю, что не надо. А вставить новый кусок так – ставите quote в квадратных скобках, чтобы открыть цитату (а там может стоять все, что угодно), а чтобы закончить “цитату” ставите /quote в квадратных скобках.
Не понял, как всё-таки отследить, сам факт наличия или отсутвия вращения мотора?
Нет, реальное вращение программно не отследить, это только "железо " может. Но для работы стиков и программного достаточно, в вертолете мотор сам не остановится, пока его не выключат. А если он, наоборот, вращается по инерции, то и пускай. Для запуска ESC сам определяет, есть ли уже у мотора достаточная скорость, по эдс индукции.
Я сам в ассемблере, особенно ассемблере микроконтроллеров, почти ноль, но для этих задач там не так все сложно. Список команд есть, можно делать по аналогии с тем, что в программе уже есть. Сложности, скорее, в обращении с таймерами, портами, прерываниями, инициализация. А просто регулярная часть программы – это несложно. Так что добавлять алгоритмы обработки уже имеющегося сигнала – простейшее упражнение. Я пока разобрался, как немецкая программа работает, и как там нужно что сделать для таких усовершенствований, довольно понятно. Для регулировки расходов нужно лишь уменьшить 150 в -150*16 в двух строчках (желательно еще кое-что сделать, но необязательно). А дополнительное “триммирование” можно делать, изменяя константы 10 и 20 в последней части программы – только оно вряд ли будет хорошо работать в широком диапазоне. Но это просто для примера. А вот введение “proportional” по-хорошему потребовало бы более серьезного изменения.
Вчера полетал на даче. Зажигал на пустом пока огороде. Вот когда я смог оценить КПД моторов в полной мере. На одной батарее отлетали больше получаса! Перерывы были только на передачу пульта из рук в руки и установке верта ровно для старта, поскольку летал не только я, а ещё мой 12-летний племянник и его батя. Главное, что я вынес из этих чумовых полётов - это то, что на улице без управления верхним ротором на сооснике делать нечего. Малейший бриз на высоте больше 5м сносит его нафиг и никакие усилия и впирания стиков на максимум не дают ничего, кроме перехлёстов. Моторы не греются совсем, то ли прикатались, то ли из-за обдува, но не греются и всё. Пр очередном падении с 5-6м оторвало провод питания одного ESC и на этом экстрим завершился.
Нет, реальное вращение программно не отследить, это только "железо " может. Но для работы стиков и программного достаточно, в вертолете мотор сам не остановится, пока его не выключат. А если он, наоборот, вращается по инерции, то и пускай. Для запуска ESC сам определяет, есть ли уже у мотора достаточная скорость, по эдс индукции.
А отчего не использовать эту самую ЭДС и для своих целей? Снять с выводов мотора и отслеживать наличие импульсов ЭДС на них. Снимать молжно даже с одного вывода, синхронизируя по частоте питающего мотор напряжения, поскольку эта частота в регуляторе постоянна. Допустим, прошёл спад питающего импульса - снимаем наличие ЭДС, нет ЭДС - добавляем длительности РРМ, есть ЭДС - пропускаем до следующего прерывания.
Я сам в ассемблере, особенно ассемблере микроконтроллеров, почти ноль, но для этих задач там не так все сложно. Список команд есть, можно делать по аналогии с тем, что в программе уже есть.
Где посмотреть-то этот список команд?
Вчера полетал на даче. На одной батарее отлетали больше получаса!
Вот это здорово! В какой это конечной конфигурации?
Главное, что я вынес из этих чумовых полётов - это то, что на улице без управления верхним ротором на сооснике делать нечего.
В принципе, я на большее и не рассчитывал. Вчера к ночи тоже полетал во дворе – пока еще на старых двигателях. В полный штиь даже очень неплохо, по сравнению с квартирой. Даже и двигается вперед-назад, если надо, но вяло, и больше как лягушка, прыжками.
Но вот на видео видел, как такие же стрекозы летают вовсю, и с приличной скоростью. Может быть, для этого нужно летать без флайбара? Вы не пробовали его снимать или уменьшать грузики?
Вот это здорово! В какой это конечной конфигурации?
А в той, что на фото, которые я размещал здесь. Только поаккуратнее упакован.
Но вот на видео видел, как такие же стрекозы летают вовсю, и с приличной скоростью. Может быть, для этого нужно летать без флайбара? Вы не пробовали его снимать или уменьшать грузики?
Я на видео не видел ни одного соосника, который мог бы потягаться по скорости даже с соразмерными однороторными мухолётами.
Снять флайбар совсем - не взлетишь, а вынимать грузики пробовал на коллекторниках. Становиться порезвее, надо попробовать на бесколлекторниках.
Где посмотреть-то этот список команд?
Поищите googleом ATTINY13, сразу найдете описание, PDF на 100 с чем-то страницах, на стр. 161 и 162 таблица с командами. А также есть очень полезный тьюториал от AVR. Спецы, наверное, еще что-нибудь получше посоветуют.
А отчего не использовать эту самую ЭДС и для своих целей? Снять с выводов мотора и отслеживать наличие импульсов ЭДС на них. Снимать молжно даже с одного вывода, синхронизируя по частоте питающего мотор напряжения, поскольку эта частота в регуляторе постоянна. Допустим, прошёл спад питающего импульса - снимаем наличие ЭДС, нет ЭДС - добавляем длительности РРМ, есть ЭДС - пропускаем до следующего прерывания.
Нет, буквально так не пройдет. Нужно же знать, когда ESC включает и когда выключает свой PWM. Он-то это знает, но чтобы его спросить, нужно внутрь программы лезть, а этого никто не может. А иначе нужно подпитываться к выводу самого процессора или затворам ключей, ну или вроде того, Питающая частота там вовсе не фиксирована, только на малый интервал времени. Короче, полно мороки, а для чего? Вращается мотор, или нет – проще датчик поставить,
А в той, что на фото, которые я размещал здесь. Только поаккуратнее упакован.
Аккумулятор один или два?
А также есть очень полезный тьюториал от AVR.
А шо це такэ?
Нет, буквально так не пройдет. Нужно же знать, когда ESC включает и когда выключает свой PWM. Он-то это знает, но чтобы его спросить, нужно внутрь программы лезть, а этого никто не может. А иначе нужно подпитываться к выводу самого процессора или затворам ключей, ну или вроде того, Питающая частота там вовсе не фиксирована, только на малый интервал времени. Короче, полно мороки, а для чего? Вращается мотор, или нет – проще датчик поставить
Так зачем лезть в регулятор? Ведь когда ESC включает обмотку видно на проводе. При чём здесь ШИМ? Даже если частота не фиксированная, можно легко привязаться к фронту или спаду импульса, от изменения частоты и длительности ничего не измениться.
Датчик поставить вовсе не проще. К тому же алгоритм обработки его сигнала будет повторять алгоритм обработки сигнала противоЭДС на одном питающем мотор проводе.
Я вообще наловчился делать так: включаю передатчик и медленно триммером газа довожу до момента, когда моторы начинают дёргаться, потом немножко сдвигаю триммер назад и дальше уже работаю стиком. При самом нижнем положении стика моторы ещё вращаются, но верт начинает резко терять высоту. Когда садиться, то ещё молотит лопастями. Я убираю триммер газа вниз и верт глохнет.
Аккумулятор один или два?
Один, конечно.
Полюбуйтесь на красавца.
Уже пора перерисовывать V3 в V8
Уже пора перерисовывать V3 в V8
Я считаю, что лучше по праву добавить надпись “TURBO”.
Нарыл в сети книжку на русском “Микроконтроллеры AVR семейств Tiny и Mega фирмы ATMEL”(2004), автор Евстифеев. Однако, там нет про АTiny13, есть только 11, 12, 26 и пр. Но про архитектуру и систему команд вполне можно почитать. Обидно, что нет ни одного примера куска программы с разбором. Я не очень люблю такие издания, являющиеся по сути усечёнными переводами даташитов.
Смотрел сегодня разные регуляторы для б/к моторов и пришёл к выводу, что накрайняк можно обойтись без программного ограничения тока через регуль. Существуют маломощные регули (до 10А), в которых уже предусмотрена защита от перегрузки и перегрева. Если использовать регулятор с защитой по току, срабатывающей, скажем, при 4А, то можно просто установить их. Единственный вопрос, который мне не ясен - как проявляет себя эта защита? То ли она срабатывает как отсечка тока до нуля с последующим прерзапуском выкл/вкл питания, то ли ток доходит до определённого порога и дальше просто не увеличивается. Я склонен считать, что скорее первый вариант, поскольку регули маломощные и малогабаритные и если достаточно долго держать на максимальном токе, то просто погорят ключи.
Хотел ещё спросить знающих людей - как подключается отдельный гироскоп? Меня интересует откуда приходит сигнал на вход и куда уходит с выхода? По картинкам у гиры два разъёма двойной и торйной. Двойной, надо думать питание, а торйной вход+выход+земля. Так или нет? Подскажите, сведущие в этом вопросе.
Хотел ещё спросить знающих людей - как подключается отдельный гироскоп? Меня интересует откуда приходит сигнал на вход и куда уходит с выхода? По картинкам у гиры два разъёма двойной и торйной. Двойной, надо думать питание, а торйной вход+выход+земля. Так или нет? Подскажите, сведущие в этом вопросе.
Простейшие гиро, которые я держал в руках (и сейчас держу), просто включаются между серво и приемником – они должны модифицировать длительность PPM импульса. Соответственно, все как у птичек. Два обычных тройных провода, один папа, другой мама.
У меня большой регулятор тоже с защитой, по-моему, просто тепловой. Отрубает полностью, вроде потом снова врубает, если сбросить газ и снова дать. Для вертолета такое не пойдет. Пороговых ограничителей тока, по-моему, никогда не делают.
Вы с английским в ладах? Все, что я использовал для информации и обучения, было на английском (взято, по-моему, с сайта AVR). Там прямо и примеры программ, с пояснениями. Но тут нашел у себя в букмарках русский url с обучением микроконтроллерам, правда, я туда не лазал.
Насколько я понял, команды для всех этих чипов одни и те же, только разное количество всякой периферии, соответственно, слегка меняются суффиксы у некоторых регистров. некоторве биты и т.д,
на русском можно посмотреть www.gaw.ru, www.avr.h15.ru, www.avr123.nm.ru
Всем привет !!!
Чайниковский вопрос - есть ли разница между в-тайл миксерами от разных производителей для применения в схеме, предложенной уважаемым автором темы ? Конкретнее - если вместо www.hobbycity.com/hobbycity/…/uh_viewItem.asp?idPr… (у них какой-то хронический затык с его поставкой ) применить www.hobbycity.com/hobbycity/…/uh_viewItem.asp?idPr… ?
Заранее - спасибо !!!
Должон потянуть, мне тут прошивка на тини13 попадалась с в-миксером, если надо поищу ссыдку
Всем привет !!!
Чайниковский вопрос - есть ли разница между в-тайл миксерами от разных производителей для применения в схеме, предложенной уважаемым автором темы ? Конкретнее - если вместо www.hobbycity.com/hobbycity/…/uh_viewItem.asp?idPr… (у них какой-то хронический затык с его поставкой ) применить www.hobbycity.com/hobbycity/…/uh_viewItem.asp?idPr… ?
Заранее - спасибо !!!
У меня есть и тот и другой. Оба работают.
на русском можно посмотреть www.gaw.ru, www.avr.h15.ru, www.avr123.nm.ru
Не знаю как принято у AVRовцев, а у PICовцев я практически с ходу нашёл подробные примеры программ на ассемблере с разбором каждой строчки. На сайтах же, которые указаны выше ничего похожего нема. Или я не понял где смотреть, или там этого нет. Если не прав, то ткните меня носом - буду благодарен. А вообще, если на этом форуме кто-то решиться открыть ликбез по программированию, то думаю тема будет иметь немалый спрос.
На праздники возил свой верт на просторы степей в Липецкую область. Ещё раз убедился, что против ветра летать невозможно. Нужно управление вторым ротором, иначе вся дурь б/к моторов идёт на взмывание верта вверх до неразличимости в небе, а ветер ещё больше ускоряет вертикальное перемещение плюс ещё и сносит черти куда. Оттого спускать верт на землю жуткое мучение, а ронять его метров с 50 отчего-то жалко. Полёты кончились тем, что сожрало половину зубов на шестерне внешнего вала и верт стал крутиться по часовой стрелке. Сегодня наконец заменил вал.
есть ли разница между в-тайл миксерами от разных производителей для применения в схеме, предложенной уважаемым автором темы ?
Я вот что подумал: а зачем вообще эти миксеры, если они ни фига не воспринимают сигнал с гироскопа? Не проще поставить по гироскопу на каждый мотор и они будут пропорционально компенсировать угловое ускорение путём изменения длительности импульсов РРМ соответствующих моторов. Только включить их нужно “навстречу”, т.е. чтобы один отслеживал хвост, а другой нос. По весу и по размеру проигрыша быть не должно.
Не проще поставить по гироскопу на каждый мотор и …
А зачем весь этот кибуц?
Не знаю как принято у AVRовцев, а у PICовцев я практически с ходу нашёл подробные примеры программ на ассемблере с разбором каждой строчки. На сайтах же, которые указаны выше ничего похожего нема. Или я не понял где смотреть, или там этого нет.
Ну вот тут я что-то нашел:
babelfish.altavista.com/…/trurl_pagecontent?lp=ja_…
Там внизу есть AVR super introduction (NO.1 и дальше, правда, почему-то по нисходящей). Это, правда, не по-русски; номинально на английском, но лишь номинально, английский там такой, что впору караул кричать, по-моему просто машинный перевод с японского. Мне кажется, руководство я видел где-то в другом месте, это лишь потому, что примеры прямо из нашей RC жизни.
Не знаю как принято у AVRовцев, а у PICовцев я практически с ходу нашёл подробные примеры программ на ассемблере с разбором каждой строчки. На сайтах же, которые указаны выше ничего похожего нема.
По-моему, здесь:
www.avr-asm-tutorial.net/avr_en/index.html
и дальше. смотрим в Index самое первое, Beginner’s introduction to AVR assembler language:
www.avr-asm-tutorial.net/avr_en/…/index.html
Ну и, наверное, все прочее тоже.