Контроллер для трехфазного асинхронного двигателя

Автор dpkv, 21 Фев. 2019 в 21:52

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

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

on4ip

Цитата: edw123 от 09 Март 2019 в 10:19
В итоге датчик для чего нужен? Чтобы скольжение знать?
С какой точностью нужно знать/задавать скольжение? Есть какая-то "общеизвестная" величина или она зависит например от оборотов, нагрузки?
Ну в теории теорема Котельникова, а чем точнее тем лучше, нужен обычный датчик положения с 60 импульсов на оборот и АВ энкодеры, этого хватает для тяги даже для реализации парковки на электро тормозе.
В жизни все не так, как на самом деле.

kor

 С частотой примерно разобрались. Теперь с напряжением. Для оптимальной работы асинхронника контроллер должен выдавать синусоидальное (какой частоты разобрались) напряжение определенной величины. Упрощенно, чем ниже частота тем меньше должно быть напряжение. Практически, на его величину должны влиять не только частота но и ток, момент нагрузки, температура обмотки, еще что-то возможно. Какой тут принцип более оптимальный?

edw123

Цитата: on4ip от 09 Март 2019 в 10:52
Ну в теории теорема Котельникова, а чем точнее тем лучше, нужен обычный датчик положения с 60 импульсов на оборот и АВ энкодеры, этого хватает для тяги даже для реализации парковки на электро тормозе.
Я не про это. Есть же (?) какой-то "допустимый" диапазон скольжений и на малой скорости он вообще перекроет обороты 0-1об/мин (это к примеру), а не только по положению ротора?

on4ip

Цитата: edw123 от 09 Март 2019 в 12:02
Я не про это. Есть же (?) какой-то "допустимый" диапазон скольжений и на малой скорости он вообще перекроет обороты 0-1об/мин (это к примеру), а не только по положению ротора?
я не понимаю вопрос.

Добавлено 09 Март 2019 в 12:22

Цитата: kor от 09 Март 2019 в 11:44
С частотой примерно разобрались. Теперь с напряжением. Для оптимальной работы асинхронника контроллер должен выдавать синусоидальное (какой частоты разобрались) напряжение определенной величины. Упрощенно, чем ниже частота тем меньше должно быть напряжение. Практически, на его величину должны влиять не только частота но и ток, момент нагрузки, температура обмотки, еще что-то возможно. Какой тут принцип более оптимальный?
Напряжение это все лишь управляющее воздействие, не важно какое оно получится, для одной машины при токе 10А это 5 вольт для другой 8, важно что мы регулируем ток и скольжение, следовательно определяем в статике однозначно момент, относительно векторной системы , разница будет в том что при переходных процессах( например скачек задания) момент будет меняться не линейно и не быстрее постоянной времени машины.
В жизни все не так, как на самом деле.

kor

Цитата: on4ip от 09 Март 2019 в 12:19Напряжение это все лишь управляющее воздействие, не важно какое оно получится, для одной машины при токе 10А это 5 вольт для другой 8, важно что мы регулируем ток и скольжение, следовательно определяем в статике однозначно момент, относительно векторной системы , разница будет в том что при переходных процессах( например скачек задания) момент будет меняться не линейно и не быстрее постоянной времени машины.
Тоесть мы пытаемся, вне зависимости какая в данный момент частота, задать некую величину фазного тока синусоидальной формы, и поддерживать ее ПИ регулятором с помощью воздействия на шим в фазах? Тогда непонятно чем определяется эта величина тока.Ручкой газа?

on4ip

Цитата: kor от 09 Март 2019 в 12:32
  Тоесть мы пытаемся, вне зависимости какая в данный момент частота, задать некую величину фазного тока синусоидальной формы, и поддерживать ее ПИ регулятором с помощью воздействия на шим в фазах? Тогда непонятно чем определяется эта величина тока.Ручкой газа?
Совершенно верно,  ручка газа будет задавать момент, а от этого можно уже реализовать любой тип управления, будь то скорость, мощность или положение.
В жизни все не так, как на самом деле.

edw123

Цитата: on4ip от 09 Март 2019 в 12:19
я не понимаю вопрос.
Ну вот Вы и ответили: "ручка газа будет задавать момент". Обороты тут совершенно ведь не учавствуют? Если ток не превышен, то начинаем плавненько частоту поднимать с минимально возможной и контролируем скольжение по току.

on4ip

Цитата: edw123 от 09 Март 2019 в 12:45
Ну вот Вы и ответили: "ручка газа будет задавать момент". Обороты тут совершенно ведь не учавствуют? Если ток не превышен, то начинаем плавненько частоту поднимать с минимально возможной и контролируем скольжение по току.
да причем тут подьем частоты? например у вас  ток 200А частота ротора 0 радиан\сек скольжение 3 радиан\секунду момент 35Нм, тоже самое будет при скорости ротора 100рад\сек и скольжении 3 радиан\секунду, частота поля задается как угол положения ротора + интеграл частоты скольжения.
В жизни все не так, как на самом деле.

edw123

Цитата: on4ip от 09 Март 2019 в 12:52
да причем тут подьем частоты? например у вас  ток 200А частота ротора 0 радиан\сек скольжение 3 радиан\секунду момент 35Нм, тоже самое будет при скорости ротора 100рад\сек и скольжении 3 радиан\секунду, частота поля задается как угол положения ротора + интеграл частоты скольжения.
Частоту мы сами делаем и знаем её. Не надо такого примера  0-100. :)

kor

Цитата: edw123 от 09 Март 2019 в 12:45Ну вот Вы и ответили: "ручка газа будет задавать момент". Обороты тут совершенно ведь не учавствуют? Если ток не превышен, то начинаем плавненько частоту поднимать с минимально возможной и контролируем скольжение по току.
Именно так сделано в текущем проекте dpkv, обороты не участвуют. 
У on4ip другой принцип: обязательно смотрим текущие обороты, по ним и скольжению находим нужную частоту и сразу выдаем ее (тоесть всегда знаем какой она должна быть). А положение ручки газа задает -каким должен быть фазный ток, и далее через пи регулятор мы выставляем шимом, и поддерживаем на фазах, такое синусоидальное напряжение этой (всегда известной ) частоты, чтобы ток соответствовал заданию (ручке газа).

on4ip

Цитата: edw123 от 09 Март 2019 в 13:05
Частоту мы сами делаем и знаем её. Не надо такого примера  0-100. :)
Ну если вы об этом то конечно мы ее и делаем чтоб момент создать, только она растет исходя их того что дает механическое уравнение привода, наша задача только создавать момент по требованию пользователя.

Добавлено 09 Март 2019 в 13:09

Цитата: kor от 09 Март 2019 в 13:07
  Именно так сделано в текущем проекте dpkv, обороты не участвуют. 
У on4ip другой принцип: обязательно смотрим текущие обороты, по ним и скольжению находим нужную частоту и сразу выдаем ее (тоесть всегда знаем какой она должна быть). А положение ручки газа задает -каким должен быть фазный ток, и далее через пи регулятор мы выставляем шимом, и поддерживаем на фазах, такое синусоидальное напряжение этой (всегда известной ) частоты, чтобы ток соответствовал заданию (ручке газа).
да совершенно верно, при таком подходе ошибка в реализации момента минимальна.
В жизни все не так, как на самом деле.

kor

Цитата: dpkv от 08 Март 2019 в 20:08dpkv
Почти переделал вашу первую прошивку atmega328_dpkv, на работу по прерываниям таймера1.
  Возник один вопрос, при расчете AmpFactor (напряжения синусоиды в зависимости от частоты)
вы используете три формулы в зависимости от текущей частоты (3-12гц, 12-60гц, 60-100гц).
Я в новой программе сделал максимальную частоту 200Гц. Какие выставить новые условия?
3-12, 12-60, 60-200 или как-то иначе?
  По каким критериям вообще эти три формулы получаются?
if (rFreq > 60)   // Частота больше 60 Гц, значит 60-100 Гц = 40-90%
         ampFactor = mapi(rFreq,   60, 100   ,   40, 90   );
      else if (rFreq > 12)   // Частота больше 12 Гц, значит 12-60 Гц = 18-40%
         ampFactor = mapi(rFreq,   12, 60   ,   18, 40   );
      else   // Частота менее 12 Гц, значит 3-12 Гц = 10-18%
         ampFactor = mapi(rFreq,   3, 12   ,   10, 18   );

kor

#120
Вот скетч, работающий по прерыванию от Таймера1, максимальная частота выставлена 200 гц . Ее можно менять (до 380 гц проверял, главное чтобы успевала выполняться часть программы находящаяся в обработчике прерываний и оставалось еще время , процентов 25-30) поменяв значения переменных  maxTime, midTime, и числа в формулах типа:
ampFactor = mapi(rFreq,   60, 100   ,   40, 90   );   (какие лучше числа не знаю, пока поменял только макс частоту со 100 на 200,     ampFactor = mapi(rFreq,   60, 200   ,   40, 90).
  Еще поменялся пин одной из фаз с 9-го на 3-й (из-за того что Таймер 1 теперь для шим не используется)
и пин разрешения работы драйверам затворов с 13-го на 12-й  (с 13м не заработало, на 13м пине появлялось что попало).
Еще такой момент, сигналы шим на пинах выхода фаз теперь присутствуют постоянно, но так как драйверы затворов управляются еще по входам разрешения, от пина12, то это не должно помешать правильной работе силовой схемы.
  И в программе нет измерения напряжения батареи и пересчета напряжения фазы  под него (как и в исходной).
  Скетч максимально прокомментирован.
  Может будет у кого желание протестить.

dpkv

Цитата: kor от 09 Март 2019 в 13:59Почти переделал вашу первую прошивку atmega328_dpkv, на работу по прерываниям таймера1.
  Возник один вопрос, при расчете AmpFactor (напряжения синусоиды в зависимости от частоты)
вы используете три формулы в зависимости от текущей частоты (3-12гц, 12-60гц, 60-100гц).
Я в новой программе сделал максимальную частоту 200Гц. Какие выставить новые условия?
3-12, 12-60, 60-200 или как-то иначе?
  По каким критериям вообще эти три формулы получаются?
if (rFreq > 60)   // Частота больше 60 Гц, значит 60-100 Гц = 40-90%
         ampFactor = mapi(rFreq,   60, 100   ,   40, 90   );
      else if (rFreq > 12)   // Частота больше 12 Гц, значит 12-60 Гц = 18-40%
         ampFactor = mapi(rFreq,   12, 60   ,   18, 40   );
      else   // Частота менее 12 Гц, значит 3-12 Гц = 10-18%
         ampFactor = mapi(rFreq,   3, 12   ,   10, 18   );
это амплитуда сколько напряжения на фазах, чем выше частота тем выше напряжение при котором двигатель крутиться без нагрузки, если 200гц то тогда еще и напряжение на двигателе нужно подымать в два раза
для связи со мной почта dpkv@ya.ru

dpkv

У меня было так что при частоте 100гц на двигателе 36в, при частоте ниже 100гц нужно напряжение уменьшать, а при частоте 200гц нужно напряжение увеличивать с АКБ в два раза, двигатель выдаст при 200гц уже в 4 раза большую мощность чем при 50гц
для связи со мной почта dpkv@ya.ru

on4ip

Цитата: dpkv от 09 Март 2019 в 15:34
У меня было так что при частоте 100гц на двигателе 36в, при частоте ниже 100гц нужно напряжение уменьшать, а при частоте 200гц нужно напряжение увеличивать с АКБ в два раза, двигатель выдаст при 200гц уже в 4 раза большую мощность чем при 50гц
как то вы странно считаете мощность+) на 1 кгц что будет в 20 раз больше?
Мощность это момент на обороты мотора
Момет это поток умноженный на Сх * на активный ток
ЭДС это поток умноженный на обороты, следовательно чтоб поток не изменился нужно поднять напряжение во столько же раз во сколько и обороты, иначе мощность останется не изменной( ну при вливании очень большого тока все равно не будет кратна частоте)
В жизни все не так, как на самом деле.

dpkv

Цитата: on4ip от 09 Март 2019 в 17:27как то вы странно считаете мощность+) на 1 кгц что будет в 20 раз больше?
Мощность это момент на обороты мотора
Момет это поток умноженный на Сх * на активный ток
ЭДС это поток умноженный на обороты, следовательно чтоб поток не изменился нужно поднять напряжение во столько же раз во сколько и обороты, иначе мощность останется не изменной( ну при вливании очень большого тока все равно не будет кратна частоте)
Я и пытаюсь сказать что если был двигатель в номинале 50гц мощность его к примеру 500вт на напряжении 18в, при подаче на него 100гц он уже выдаст 1квт но напряжение нужно давать уже 36в в два раза больше чтоб двигатель выдал номинальный момент, а при частоте 200гц ему нужно подавать уже 72в тоесть в 4 раза больше чтоб он выдал номинальный момент и в 4 раза выше обороты получатся на валу

Добавлено 09 Март 2019 в 17:47

тут еще не понятно сколько максимум железо двигателя переварит герц без последствий, слышал что больше 100 уже сильный нагрев, но я не проверял это
для связи со мной почта dpkv@ya.ru

on4ip

Цитата: dpkv от 09 Март 2019 в 17:46
Я и пытаюсь сказать что если был двигатель в номинале 50гц мощность его к примеру 500вт на напряжении 18в, при подаче на него 100гц он уже выдаст 1квт но напряжение нужно давать уже 36в в два раза больше чтоб двигатель выдал номинальный момент, а при частоте 200гц ему нужно подавать уже 72в тоесть в 4 раза больше чтоб он выдал номинальный момент и в 4 раза выше обороты получатся на валу

Добавлено 09 Март 2019 в 17:47

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