Разрабатываю частотник для АД, подскажите пожалуйста.

Блоки питания, преобразователи напряжения, UPS'ы - это здесь :)
Ответить
Модератор
Аватара пользователя
Сообщения: 19065
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

Сообщение Starichok51 »

ну, я был не в курсе, что максимальная амплитуда равна у вас 100.
но ничто не мешает сделать ее 500. зачем нагружать МК еще дополнительными вычислениями, чтобы 100 превратить в 500.
не нужен там нигде полупериод в сомножителях. где-то в другом месте должно вычисляться значение градусов от прошедшего времени (от величины периода).
а в приведенной формуле фигурирует уже готовое значение градусов.
но я не возражаю, если прямо в эту формулу вставить вычисление градусов, а не считать его отдельно.
но суть от того, где и как вычисляются градусы, не меняется.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Реклама
Потрогал лапой паяльник
Сообщения: 347
Зарегистрирован: Вт авг 20, 2019 19:00:41

Сообщение Олег Олегович »

Вот так получается самое то
for ( int y =0; y < 181 ; y ++)
{
arr_pwm_1 [y] =500 + sin ( y / 57.29578) * amplituda;
} Амплитуда от 1 до 500.
Но приходится использовать цикл а это время в итоге мк не совсем успевает .
Если сделать массив на 50 значений то движок работает мягенько но значений амплитуды всего 50.
Может таки попробовать забить готовые значения синуса и просто их подставлять ?
Реклама
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 179
Зарегистрирован: Ср окт 07, 2015 13:13:40
Откуда: МО, г. Воскресенск

Сообщение Sanchogus »

Не надо каждый раз молотить весь массив. Нужно считать только три значения для выбранной амплитуды:
Коэф заполнения для ШИМ каналов для угла который надо выставить X, X +120 градусов и X +240 градусов.

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

Выкинуть операции с плавающей точкой. Перемножать десятки тысяч для 32-битного МК будет приятнее, чем считать плавающую точку. В идеале не использовать float, double и т.п. Только следить, что бы за 2^32 не выходили. :)

Таблица для 100% синуса явно проще, останется только вычислить амплитуду.
Контактная информация:
Модератор
Аватара пользователя
Сообщения: 19065
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

Сообщение Starichok51 »

так ясен фуй, что брать из таблицы во много раз быстрее, чем вычислять синус ...
а таблицу можно сделать любого размера, хоть на 1000 значений.
а чтобы не мучится с анализом, в каком квадранте находимся, а потом еще применять разные формулы в зависимости от знака синуса, сделать на весь период (0-360 градусов), а не на одну четверть.
и пусть в таблице будут отрицательные значения синуса - МК их поймет правильно.
взял значение прямо из таблицы, умножил на амплитуду и прибавил 500.

да, далеко не всегда нужна плавающая точка. в подавляющем большинстве случаев хватает целочисленной арифметики.
есть одна древняя программистская хитрость, когда в целых числах нужно умножить на число меньше 1.
такой сомножитель представляет число, которое при делении, например, на 65536 получает нужное дробное число.
например, нужно дробное число 0,327. умножаем 0,327 * 65536 = 21430.
далее наше число умножаем на 21430 и отбрасываем 2 младших байта (делим на 65536). в результате получаем умножение на 0,327.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Реклама
Эиком - электронные компоненты и радиодетали
Потрогал лапой паяльник
Сообщения: 347
Зарегистрирован: Вт авг 20, 2019 19:00:41

Сообщение Олег Олегович »

a++;
b ++;
c ++;
arr_pwm_1 [a] =500 + arr_sin [a] * amplituda;
Вот так сделал
То есть заходим в прерывание и пересчитываем одновременно следующее значение синуса и амплитуду

Добавлено after 1 minute 57 seconds:
Но если резко менять частоту то вибрация немного есть .
Реклама
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 179
Зарегистрирован: Ср окт 07, 2015 13:13:40
Откуда: МО, г. Воскресенск

Сообщение Sanchogus »

Было дело. Auto reload preload включен в таймере? Ну и в целом надо сидеть и искать узкие места.
По хорошему сидеть с лог. анализатором и искать аномалии в ШИМ.
.
Контактная информация:
Реклама
Потрогал лапой паяльник
Сообщения: 347
Зарегистрирован: Вт авг 20, 2019 19:00:41

Сообщение Олег Олегович »

Sanchogus, С готовой таблицы забитой в память работает вообще чётко. Но в таблицу данные забивал с сайта proqont.ru Как по мне одно значение амплитуды на 1 герц частоты для скалярника достаточно даже если корректировать амплитуду при изменении DC звена .
Модератор
Аватара пользователя
Сообщения: 19065
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

Сообщение Starichok51 »

строго говоря, при линейной зависимости напряжения от частоты нужно добавлять некоторое напряжение, равное падению на обмотке двигателя при заданном токе.
то есть, даже если задать частоту НОЛЬ, то на двигатель всё равно должно поступать напряжение, для обеспечения тока в обмотках.
и формула для расчета амплитуды будет выглядеть как сумма некоторой константы и зависимости напряжения от частоты.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Потрогал лапой паяльник
Сообщения: 347
Зарегистрирован: Вт авг 20, 2019 19:00:41

Сообщение Олег Олегович »

Starichok51, Вы имеете в виду чтоб когда 0 герц подавать напругу чтоб вал не крутился ? Вообще на графиках видно что амплитуда начинается не с ноля , как вы правильно подметили ,а с какого-то напряжение . Я сделал так что начальную амплитуду можно задавать в меню. А к примеру у danfosa можно в ручную задавать амплитуду на разных частотах. Применял это на практике очень удобно , особенно когда двигатель с перемотки уже .

Добавлено after 2 minutes 12 seconds:
Кто нибуть пользовался аппаратным модулем вычислении плавающей точки ? Его нужно как то вызвать или он автоматом работает ?
Модератор
Аватара пользователя
Сообщения: 19065
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

Сообщение Starichok51 »

с Данфоссами мне приходилось работать.
они могут автоматически вычислить сопротивление обмоток и эту "добавку" напряжения, как я помню, тоже могут вычислить автоматически.
но если автонастройку не запускать, то да, можно задать вручную.
крутизну характеристики (Вольт/Гц), как я понимаю, Данфосс тоже вычисляет автоматически.
например, двигатель на 380 Вольт, а "добавка" напряжения равна 30 Вольт. тогда крутизна будет равна (380 - 30) / 50 = 7 Вольт/Гц.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Потрогал лапой паяльник
Сообщения: 347
Зарегистрирован: Вт авг 20, 2019 19:00:41

Сообщение Олег Олегович »

Starichok51, Вы имеете в виду для компенсации скольжения изменять амплитуду под нагрузкой ? Типа если двигатель на 10 кВт то при токе в 2 ампера скольжение его вырастит на какой - то градус , чтоб это скомпенсировать добавляем к примеру 10 вольт.?
Модератор
Аватара пользователя
Сообщения: 19065
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

Сообщение Starichok51 »

я сказал сразу - падение напряжения на сопротивлении обмоток. про компенсацию скольжения не в курсе.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Потрогал лапой паяльник
Сообщения: 347
Зарегистрирован: Вт авг 20, 2019 19:00:41

Сообщение Олег Олегович »

Странная аномалия получается у меня использую такую формулу
arr_pwm_1 [t] =500 + (arr_sin [t] * amplituda);
За 1000 не выходим синусоида тока идеальная на всех частотах
Двигатель работает мягенько но ток потребления даже на 50 герцах 1 ампер движок кипит уже не знаю куда смотреть.
Друг Кота
Сообщения: 3028
Зарегистрирован: Чт июн 26, 2014 00:04:37

Сообщение DC-AC »

:facepalm: скольжение не измеряется в градусах, это относительные единицы или проценты если на 100 умножать
s=(n0-n)/n0, n0 - частота вращения поля, об/мин, n - частота вращения ротора, об/мин.
Как вы разрабатываете систему управления :dont_know: откройте сначала книжку по эл. машинам.
1А ток - мощность двигателя, как подключен и какое напряжение на него подаётся? Чем и где измерялся ток, который 1А
Потрогал лапой паяльник
Сообщения: 347
Зарегистрирован: Вт авг 20, 2019 19:00:41

Сообщение Олег Олегович »

DC-AC, Я не много не правильно выразился . Я имел в виду что если на вал двигателя приложить усилие то скорость вращения ротора будет замедляется а ток в обмотках статора увеличится. Так вот если к примеру при увеличении тока на 10 процентов от тока холостого хода увеличить частоту или амплитуду ( но лучше думаю частоту ) то можно компенсировать замедление ротора под нагрузкой. По поводу тока в 1 ампер не заметил амплитуда была слишком большая аж 270 вольт на 50 герц ах.
Модератор
Аватара пользователя
Сообщения: 19065
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

Сообщение Starichok51 »

если двигатель на 220 Вольт, то амплитуда должна быть до 310 Вольт, причем, безболезненно для двигателя.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Потрогал лапой паяльник
Сообщения: 347
Зарегистрирован: Вт авг 20, 2019 19:00:41

Сообщение Олег Олегович »

Starichok51, Да у меня была 25 . Таймер пересчитать забыл сейчас все поправил крутится хорошо .
Модератор
Аватара пользователя
Сообщения: 19065
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

Сообщение Starichok51 »

а что такое 25?
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Потрогал лапой паяльник
Сообщения: 347
Зарегистрирован: Вт авг 20, 2019 19:00:41

Сообщение Олег Олегович »

Изображение В интернете есть такие синусоиды векторной шим. ВОПРОС зачем ее в пике то есть 90 градусов провал если бы было без провала кпд был бы больше ? И каким образом можно его достичь? Или это из-за смещение центра ?

Добавлено after 3 minutes 37 seconds:
Starichok51, При 25 герцах амплитуда была около 270 вольт вот движок и кипел . Когда увеличил таблицу с 180 до 360 значений не поменял таймер . Вот показометр показывал 50 а по факту было 25 а амплитуда у меня привязана к частоте .
Нашел транзистор. Понюхал.
Аватара пользователя
Сообщения: 179
Зарегистрирован: Ср окт 07, 2015 13:13:40
Откуда: МО, г. Воскресенск

Сообщение Sanchogus »

Это и есть векторная ШИМ, или ШИМ с третьей гармоникой. Позволяет использовать весь потенциал DC-звена, в отличии от чистого синуса. Формулы, вроде как уже кидали тут.
Контактная информация:
Ответить

Вернуться в «Питание»