Перейти к содержанию
    

Как состряпать алгоритм синусоидального ШИМ?

1 hour ago, khlenar said:

Это предполагается частотный привод.Так, что он постоянно в слежении и на входе постоянно меняется задание.

Самым удобным тогда будет работать во вращающейся системе координат. Здесь кратко не рассказать, читайте литературу по приводу. Ваше решение действительно выглядит как "состряпать".

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

12 минут назад, amaora сказал:

Самым удобным тогда будет работать во вращающейся системе координат. Здесь кратко не рассказать, читайте литературу по приводу. Ваше решение действительно выглядит как "состряпать".

Я с приводами, правда с аналоговыми или на дискретных элементах, работаю более 35 лет.

Я открыл тему не с вопросом как работает привод, а смотри 1 пост.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

32 minutes ago, jcxz said:

достаточно значения вычисленные например с помощью моего кода

Вот-вот, вычисленные в каждом прерывании. Если частота несущей, например, 16кГц, то получите 16000 прерываний в секунду. И вычисления нужно делать для трёх каналов одного таймер.

 

3 hours ago, jcxz said:

МК работающем на тактовой 144 МГц (XMC4700) занимая ~73% времени CPU на расчёт

Закономерный результат. Если МК больше нечем заняться, то пусть молотит.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

7 минут назад, Plain сказал:

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

Нет. Но много почерпнул для себя. Занимаюсь алгоритмами основных вычислений. Хочу подключать и практически работать. Но пока сейчас есть приоритетная работа. После него.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, tonyk_av сказал:

Вот-вот, вычисленные в каждом прерывании. Если частота несущей, например, 16кГц, то получите 16000 прерываний в секунду.

Причём тут "в каждом прерывании"? Если Вы не заметили, то моё сообщение было ответом на совершенно конкретное сообщение Сергей Борщ о генераторе синусоиды из таблиц в постоянной памяти. И не надо натягивать сову на глобус.

PS: И что такого страшного в прерываниях 16кГц? Если нужно - не проблема и 16 и больше.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 hours ago, tonyk_av said:

Если частота несущей, например, 16кГц, то получите 16000 прерываний в секунду. И вычисления нужно делать для трёх каналов одного таймер.

У меня F427 расчитывает 2 синуса на 200кГц, без проблем. Правда вывод не в ШИМ а во внешний 24-х битный ЦАП.

Расчитывает сразу 128 точек, кладет их в буфер, дальше из буфера по ДМА.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Здравствуйте все.

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

void TIM1_UP_TIM10_IRQHandler(void)
{
    static uint16_t ind;
    static uint16_t Amp = 1000, accur = 110;
    static float frec;

    TIM1->SR &= ~TIM_SR_UIF;

    frec = 6.283 / accur;
    TIM1->CCR1 = (uint16_t)(1818 + (Amp * sinf(ind * frec)));
    TIM1->CCR2 = (uint16_t)(1818 + (Amp * sinf((ind + accur/3.0f) * frec)));
    TIM1->CCR3 = (uint16_t)(1818 + (Amp * sinf((ind + accur/1.5f) * frec)));

    if(ind < accur) ind++;
    else ind = 0;

}

Синусоида трех фазная. Частота регулируется с помощью переменной frec, угол в 120гр. с помощью ind... Это скалярное управление. При снижении частоты момент на валу падает  видимо потому, что ток ротора уменьшается, а ток якоря увеличивается и нужно уменьшать амплитуду. Момент совсем падает.) Нужно векторное управление. В формулах практически не разбираюсь. Но понимаю, что допустим если подать на фазу А и B одинаковый ток , то вектор будет равен 60гр., между ними. И соответственно меняя угол между фазам в определенный момент времени и тока мы изменяем вектор и соответственно момент. Это примерно так?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Чтобы момент на низах не проваливался так сильно, повышают напряжение (апмплитуду) синусоид в фазах

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Только в формулах надо учесть, что фаза должна быть в радианах, а не в градусах. 

И чтобы в прерываниях постоянно не вызывать расчет синусов, лучше занести их в таблицу (массив)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

22 минуты назад, EdgeAligned сказал:

Чтобы момент на низах не проваливался так сильно, повышают напряжение (апмплитуду) синусоид в фазах

Амплитуду я оставляю максимальной ( для эксперимента), но момент очень сильно падает и сильно греется потому, что ток статора увеличивается. Я так понимаю, что из за уменьшении потокосцепления с ротором. Это связано скорее всего из за угла между фазами и соответственно угла вектора. Я так думаю при уменьшении частоты вращения нужно уменьшать угол вектора.

29 минут назад, V_G сказал:

Только в формулах надо учесть, что фаза должна быть в радианах, а не в градусах. 

И чтобы в прерываниях постоянно не вызывать расчет синусов, лучше занести их в таблицу (массив)

Да, конечно в радианах. В общем то пока скорости хватает. Экспериментировать проще. Вообще лучше с фиксированной точкой. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

17 минут назад, khlenar сказал:

Это связано скорее всего из за угла между фазами и соответственно угла вектора.

Скорее не "из-за угла между фазами", а "из-за угла между вектором магнитного поля статора и вектором магнитного поля ротора".

И управлять надо не "углом между фазами", и тем более не "амплитудой синусоид", а "смещением угла вектора магнитного поля статора, относительно вектора поля ротора". Ну и величиной этого вектора. А без обратной связи это делать невозможно. Так что ваши синусоиды бесперспективны. Если только для вентиляторой нагрузки кое-как будет работать....

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 минуты назад, jcxz сказал:

Скорее не "из-за угла между фазами", а "из-за угла между вектором магнитного поля статора и вектором магнитного поля ротора".

И управлять надо не "углом между фазами", и тем более не "амплитудой синусоид", а "смещением угла вектора магнитного поля статора, относительно вектора поля ротора". Ну и величиной этого вектора. А без обратной связи это делать невозможно. Так что ваши синусоиды бесперспективны. Если только для вентиляторой нагрузки кое-как будет работать....

Встречались ПЧ Китайские (SUN) очень хорошо работают и при очень малых оборотах с обыкновенными асинхронниками без обратной связи. Рукой за вал не остановить при мощности двигателя 4кВт. 

Думаю, что угол магнитного поля можно менять током в катушках статора. Это по сути и есть угол между фазами.(по простому)

Как Китайцы управляют?)

Где то читал, что в векторном режиме работают одновременно 2 ключа, а не 3 как в обычном скалярном режиме. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

40 minutes ago, khlenar said:

Встречались ПЧ Китайские (SUN) очень хорошо работают и при очень малых оборотах с обыкновенными асинхронниками без обратной связи. Рукой за вал не остановить при мощности двигателя 4кВт. 

Думаю, что угол магнитного поля можно менять током в катушках статора. Это по сути и есть угол между фазами.(по простому)

Как Китайцы управляют?)

Где то читал, что в векторном режиме работают одновременно 2 ключа, а не 3 как в обычном скалярном режиме. 

Ключевые слова бездатчиковое векторное управление

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, khlenar сказал:

Встречались ПЧ Китайские (SUN) очень хорошо работают и при очень малых оборотах с обыкновенными асинхронниками без обратной связи. Рукой за вал не остановить при мощности двигателя 4кВт. 

С чего решили, что они без ОС?

1 час назад, khlenar сказал:

Думаю, что угол магнитного поля можно менять током в катушках статора.

Естественно. А как ещё?

1 час назад, khlenar сказал:

Это по сути и есть угол между фазами.(по простому)

Это не так. Угол между фазами всегда должен быть == 120 градусов.

1 час назад, khlenar сказал:

Где то читал, что в векторном режиме работают одновременно 2 ключа, а не 3 как в обычном скалярном режиме. 

"Смешались в кучу люди, кони....."  :suicide2:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...