Проект "MaxController"

Автор jeka, 23 Май 2010 в 23:54

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

zap

Цитата: jeka от 09 Сен. 2011 в 21:58
Покрутили, сделали выводы такие: зависимость оптимального угла опережения от тока есть и ощутимая. На планетарном моторе выражена больше, видимо из-за бОльших электрических RPM. На 70 вольтах и батарейном токе 1.5 и 20А на crystalyte HT при одинаковой скорости (где-то 70% от максималки) оптимальный угол смещается примерно на 20 градусов.
Я не понимаю, как при токе 1.5А и 20А при одинаковом фазном напряжении (70В тапка в пол, я правильно понимаю?) Вы получаете одинаковую скорость вращения?
Такого быть не может. Скорее всего, Вы подкручивали ручку газа, добиваясь одинаковой частоты вращения, а значит фазное напряжение в опытах было разное.

Цитата: jeka от 09 Сен. 2011 в 21:58
Сторонники того, что угол от тока не зависит - скажите, где я не прав?
Вы почти всё правильно нарисовали, вот я поверну Ваш рисунок и изменю направление вектора фазного напряжения, получаем рисунок [b-b]nikvic[/b-b]:



E - это самоЭДС, UR это падение на сопротивлении обмотки, UL это падение на индуктивности обмотки.

Красный вектор - это вектор результирующей ЭДС, той, которая совершает полезную работу. Она равна, с одной стороны, разности фазного напряжения и противо-ЭДС (U-E), с другой стороны - сумме падения напряжений на активном и реактивном сопротивлении обмотки (UL+UR).

Ниже я привёл формулы для вычисления угла сдвига фазы φ. Находим углы α (чей тангенс равен отношению падения напряжения на реактивном к активному сопротивлению обмотки), затем β (по теореме синусов), и в конце получаем φ.

Из формулы для tg(α) понятно, почему фазный ток не имеет значения. Какой бы ни был фазный ток, отношение падения напряжения на реактивное к падению напряжения на активном сопротивлении катушки не меняется.

P.S. Кстати, по идее φ можно вычислить гораздо проще, как arccos ((E + UR) / U). Хм, сейчас попробую...
P.P.S. Не, нифига не вышло - чтобы вычислить UR надо знать моментальный ток I (это совсем не "фазный ток"!). А его-то мы как раз и не знаем :)
С уважением,
Андрей

Поражаю масштабностью некопмпетентность (ц) из лички

jeka

zap, одинаковая скорость вращения была достигнута разным тормозящем моментом. При этом фазное напряжение было разное.
Арккосинус применять для вычисления плохо, т.к. исходные данные должны быть очень точные на малых углах.

Почему мы моментальный ток не знаем?
Известен усредненный батарейный ток (фильтруется RC фильтром 2го порядка, плюс интегрированием выборок АЦП, так что замеры даже излишне точные) и заполнение ШИМ. Заполнение шим, т.е. величина фазного тока меняется ооочень плавно, ее не учитываем. Меняется только вектор ШИМ.
Ток фаз при цикле ШИМ немного меняется, но нарастает-спадает ток практически линейно, т.е. подъемы и спады тока в ШИМ импульсах практически симметричны. Поэтому усредненный ток разделенный на коэффициент заполнения шим должен четко определять фазный ток.
Вопрос где здесь ошибка уже был, но ответа не увидел. По моим представлениям здесь ошибка если и есть, то очень незначительная.
LiFe A123 40AH/78v, max-e, крошка 3 витка.
На форуме бываю нерегулярно, поэтому лучше звонить чем писать в личку. Телефон adaptto: +7 495 215 2878.

nikvic

Цитата: jeka от 10 Сен. 2011 в 07:16
Вопрос где здесь ошибка уже был, но ответа не увидел....
Почему мы моментальный ток не знаем?
Вопрос - какой из трёх моментальных фазных токов Вы называете моментальным током?

Ответ я дал. Он мог бы быть полнее, если бы Вы чётко описали, что является аргументами алгоритма, чем можно управлять и что является целью.

Предположительно, уже есть некоторый угол, который предстоит "улучшить", амплитуда фазного тока, частота и - что ещё?

zap

Цитата: jeka от 10 Сен. 2011 в 07:16
zap, одинаковая скорость вращения была достигнута разным тормозящем моментом. При этом фазное напряжение было разное.
Ну вот, раз фазное напряжение разное, значит это неэквивалентные случаи. Надо наоборот - при заданном фазном напряжении менять нагрузку и смотреть зависимость угла опережения от частоты вращения. И Вы увидите ту параболу, которую nikvic нарисовал ещё две недели назад.

Можете даже попытаться вычислить оптимальный угол опережения на заданных оборотах и заданном фазном напряжении и сравнить с практическим результатом. Если всё подтвердится, значит математика правильная и надо только упростить вычисления до состояния юзабельности на микроконтроллере.

Кстати, вычислять вручную нет никакой необходимости, просто идёте сюда, в поле "Индекс двигателя" вбиваете индекс Вашего двигателя (10 для CL 5302, индексы можно посмотреть на третьей странице таблицы), ниже вбиваете фазное напряжение и дальше получаете зависимость угла опережения от оборотов. Ну а ток, естественно, увеличивается по мере уменьшения оборотов при той же фазном напряжении, но это не причина, а следствие.

Цитата: jeka от 10 Сен. 2011 в 07:16
Арккосинус применять для вычисления плохо, т.к. исходные данные должны быть очень точные на малых углах.
Ну, аналогично арккосинусу можно вычислять arcsin (I*w*L/U). Тем более, что на малых углах arcsin(x) ~= x :)

Цитата: jeka от 10 Сен. 2011 в 07:16
Почему мы моментальный ток не знаем?
Потому что в моменте Вы замеряете ток через две обмотки, а не через одну. Соответственно, Вы вычисляете сумму двух синусоид, а Вам нужно значение только одной из них.

Вот Вам график реального фазного тока (правда, при прямоугольном управлении):



Берётесь по нему вычислить значение ток только одной фазы в любой момент времени? Кстати, было бы очень интересно посмотреть на аналогичную осциллограмму для синусоидального контроллера, Вы не делали? Интересно, насколько оно близко к синусоиде.

А ещё у Вас с какой частотой сэмплируется батарейный ток? Нужна очень высокая частота сэмплирования, на это у слабенького микроконтроллера не хватит ресурсов. А какова постоянная времени у Вашего фильтра, через который замеряется батарейный ток?

Цитата: jeka от 10 Сен. 2011 в 07:16
Поэтому усредненный ток разделенный на коэффициент заполнения шим должен четко определять фазный ток.
Вопрос где здесь ошибка уже был, но ответа не увидел. По моим представлениям здесь ошибка если и есть, то очень незначительная.
Это чётко определяет суммарный ток через две (или три, в случае треугольника) обмотки. А нам нужен ток только в одной из них.
С уважением,
Андрей

Поражаю масштабностью некопмпетентность (ц) из лички

nikvic

#346
Цитата: zap от 10 Сен. 2011 в 13:17
А ещё у Вас с какой частотой сэмплируется батарейный ток? Нужна очень высокая частота сэмплирования, на это у слабенького микроконтроллера не хватит ресурсов. А какова постоянная времени у Вашего фильтра, через который замеряется батарейный ток?

Цитата: jeka от 10 Сен. 2011 в 07:16
Поэтому усредненный ток разделенный на коэффициент заполнения шим должен четко определять фазный ток.
Вопрос где здесь ошибка уже был, но ответа не увидел. По моим представлениям здесь ошибка если и есть, то очень незначительная.
Это чётко определяет суммарный ток через две (или три, в случае треугольника) обмотки. А нам нужен ток только в одной из них.
======
Если синус, то батарейный ток, после фильтрации шимов, должен быть константой (суммарная мгновенная потребляемая мощность не меняется). Мерять его легко, и в принципе вполне решаема задача об оптимизации угла по омеге и закачиваемой мощности - если игнорировать (или правильно учесть) потери на ключах.
==== Добавил.
Для решения этой задачи достаточно уметь вычислять
  1/оптимальный угол фи по омеге и фазному напряжению (умеем),
2/расходуемую мощность по омеге, фазному напряжению и произвольному фи. Нехитро.

"Перебирая" разные фазные напряжения, считаем 2/ до тех пор, пока мощность не совпадёт с измеренной. Простой аналитики пока не вижу.
 

zap

Цитата: nikvic от 10 Сен. 2011 в 14:30
Если синус, то батарейный ток, после фильтрации шимов, должен быть константой (суммарная мгновенная потребляемая мощность не меняется). Мерять его легко, и в принципе вполне решаема задача об оптимизации угла по омеге и закачиваемой мощности - если игнорировать (или правильно учесть) потери на ключах. 
Блин, точно, меня почему-то переклинило и я думал что замеряется ток в одной из фазных обмоток.

Но сумма трёх синусоид со смещением в 120 градусов равна нулю. Значит, ток в обмотках - не совсем синус? Или это синус, смещённый по вертикали на U/R?

А, кажись понял. Эти синусоиды смещены (все трое) на запаздывание по фазе. То есть, чтобы узнать моментальный ток, нам надо знать φ. А нам именно его и надо узнать :) Как-то так.
С уважением,
Андрей

Поражаю масштабностью некопмпетентность (ц) из лички

nikvic

Цитата: zap от 10 Сен. 2011 в 14:58
Но сумма трёх синусоид со смещением в 120 градусов равна нулю. Значит, ток в обмотках - не совсем синус?
Совсем.
Не позволяйте интуиции складывать мгновенные значения этих токов  :)
Они -  после разных шимов из общего батарейного.

jeka

Цитата: zap от 10 Сен. 2011 в 13:17
Это чётко определяет суммарный ток через две (или три, в случае треугольника) обмотки. А нам нужен ток только в одной из них.
Все верно. Суммарный ток и будет равняться длине вектора тока. Он нам и нужен. Разве не так?
LiFe A123 40AH/78v, max-e, крошка 3 витка.
На форуме бываю нерегулярно, поэтому лучше звонить чем писать в личку. Телефон adaptto: +7 495 215 2878.

nikvic

Если синус, то батарейный ток, после фильтрации шимов, должен быть константой (суммарная мгновенная потребляемая мощность не меняется). Мерять его легко, и в принципе вполне решаема задача об оптимизации угла по омеге и закачиваемой мощности - если игнорировать (или правильно учесть) потери на ключах.
==== Добавил.
Для решения этой задачи достаточно уметь вычислять
  1/оптимальный угол фи по омеге и фазному напряжению (умеем),
2/расходуемую мощность по омеге, фазному напряжению и произвольному фи. Нехитро.

"Перебирая" разные фазные напряжения, считаем 2/ до тех пор, пока мощность не совпадёт с измеренной. Простой аналитики пока не вижу.



Кажеццца, увидел. Использую  картинку с естественными направлениями осей.
U=(Ux,Uy)
I=(I,0)
E=(w*M,0)
_____________
Потребляемая мощность P=I*Ux, закон Ома I*R=Ux-w*M - система с неизвестными I, Ux.

После подстановок - знакомое I^2*R+I*w*M=P, первое слагаемое - тепло, второе - полезная мощность. Находим ток I - положительный корень.
Находим Ux=I*R+w*M и  Uy=I*w*L. Тангенс фи в кармане :bd:

av-master

jeka -  на каком контроллере все это планируете вертеть ? тут без аппаратной математики высокой скорости ядра, и флоат поинт, думаю, будет очень тяжко.

jeka

av_master, скажу по секрету - в этих алгоритмах всё очень хорошо оптимизируется. Сейчас все вертится на 16МГц 16-битном процессоре, но вижу что несложно ужаться даже до 4х МГц, только нет необходимости.
LiFe A123 40AH/78v, max-e, крошка 3 витка.
На форуме бываю нерегулярно, поэтому лучше звонить чем писать в личку. Телефон adaptto: +7 495 215 2878.

zap

Мощно ответил, наш человек! Уважуха!  :D
А то, блин, на суперконпутере синус взять каждый дурак может. А вы попробуйте его взять на четырёхбитном микроконтроллере с шестнадцатью байтами ОЗУ! :-)
С уважением,
Андрей

Поражаю масштабностью некопмпетентность (ц) из лички

av-master

 :ao: так не интересно (( а какже точные скоростные АЦП и многобитный шим. для хорошего (без гармоник) синуса... хотя я тоже урезал аппетиты до младших контроллеров за 4 бакса. dsPIС30F2010

zap

#355
Если [b-b]nikvic[/b-b] правильно всё посчитал, то более простая с практической точки зрения формула выглядит как:



R - сопротивление обмотки (A+B)
P - потребляемая обмоткой мощность (с общего шунта т.к. третий вывод отключён)
M = K/p (где p - количество полюсов, а К - моторный коэффициент для оборотов колеса от ebikes.ca).

Более простая, потому что знание L вообще не требуется (о как!). К сожалению, арккосинус, да. Но зато не надо держать всю таблицу для значений [0..1] - достаточно таблицы [0.7 .. 1], этого хватит на углы до 45 градусов.

К сожалению, аналитически перекрёстно проверить формулу не получилось, так как не знаю другого способа посчитать батарейный ток.

Если формула реально работает, то добавление новых двигателей в базу будет достаточно простым делом - достаточно замерить его сопротивление и коэффициент противо-ЭДС.

Меня смущает P... это потребляемая только одной обмоткой мощность, а не двумя активными... как её вычислить?
С уважением,
Андрей

Поражаю масштабностью некопмпетентность (ц) из лички

nikvic

Цитата: zap от 10 Сен. 2011 в 21:52
Если [b-b]nikvic[/b-b] правильно всё посчитал, то .... знание L вообще не требуется (о как!).
Это, конечно, не так: ток вычисляется без знания L из I^2*R+I*w*M=P, но затем в тангенс (Ux=I*R+w*M и  Uy=I*w*L) L входит ровно один раз.
==========
Хотя я не понимаю, зачем нужно чесать правой рукой чесать... ну, Вы догадались   :shok:
Есть у нас сигнал с газа, так или иначе задающий U. Есть w, стал быть, есть угол, а с ним и момент перехода в другию зону (из 6-и). Осталось аккуратно реализовать 2 ШИМа для "активных" фаз.

zap

Цитата: nikvic от 10 Сен. 2011 в 22:17
Цитата: zap от 10 Сен. 2011 в 21:52
Если [b-b]nikvic[/b-b] правильно всё посчитал, то .... знание L вообще не требуется (о как!).
Это, конечно, не так: ток вычисляется без знания L из I^2*R+I*w*M=P, но затем в тангенс (Ux=I*R+w*M и  Uy=I*w*L) L входит ровно один раз.
А зачем нам вообще нужен тангенс? Нам нужен угол, а не тангенс, поэтому без L всё равно можно обойтись :)

Цитата: nikvic от 10 Сен. 2011 в 22:17
Хотя я не понимаю, зачем нужно чесать правой рукой чесать... ну, Вы догадались   :shok:
Потому что я правша.

Цитата: nikvic от 10 Сен. 2011 в 22:17
Есть у нас сигнал с газа, так или иначе задающий U. Есть w, стал быть, есть угол, а с ним и момент перехода в другию зону (из 6-и). Осталось аккуратно реализовать 2 ШИМа для "активных" фаз.
Ничего не понял. Есть U, есть I, есть ω, но каким образом Вы предлагаете получить "угол" (если Вы про φ) левой рукой (правой, если я правильно понял, Вас не устраивает)?.

Добавлено: А, блин, я понял - если считать отдельно Ux и Uy, то P вообще не нужен! Ёклмн.
С уважением,
Андрей

Поражаю масштабностью некопмпетентность (ц) из лички

nikvic

Цитата: zap от 10 Сен. 2011 в 22:27
Цитата: nikvic от 10 Сен. 2011 в 22:17
Цитата: zap от 10 Сен. 2011 в 21:52
Если [b-b]nikvic[/b-b] правильно всё посчитал, то .... знание L вообще не требуется (о как!).
Это, конечно, не так: ток вычисляется без знания L из I^2*R+I*w*M=P, но затем в тангенс (Ux=I*R+w*M и  Uy=I*w*L) L входит ровно один раз.
А зачем нам вообще нужен тангенс? Нам нужен угол, а не тангенс, поэтому без L всё равно можно обойтись :) ==Тангенс(фи)=(I*w*L) / (I*R+w*M)==

Цитата: nikvic от 10 Сен. 2011 в 22:17
Есть у нас сигнал с газа, так или иначе задающий U. Есть w, стал быть, есть угол, а с ним и момент перехода в другию зону (из 6-и). Осталось аккуратно реализовать 2 ШИМа для "активных" фаз.
Ничего не понял. Есть U, есть I, есть ω, но каким образом Вы предлагаете получить "угол"?.

Дык угол мы уже получали через U, w. Зачем вообще связываться с Р?

zap

Не, нифига, для вычисления I всё равно нужна мощность P. А это мощность в одной обмотке, и всё равно без неё не обойтись :-(



Фактически, эта формула - брат-близнец моей формулы для арккосинуса выше.
С уважением,
Андрей

Поражаю масштабностью некопмпетентность (ц) из лички