Например TDA7294

Форум РадиоКот • Просмотр темы - Разрабатываю частотник для АД, подскажите пожалуйста.
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Вс окт 26, 2025 22:01:59

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 716 ]     ... , , , 25, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Разрабатываю частотник для АД, подскажите пожалуйста.
СообщениеДобавлено: Вс мар 31, 2019 05:49:50 
Нашел транзистор. Понюхал.

Карма: -4
Рейтинг сообщений: -32
Зарегистрирован: Пн май 28, 2018 11:19:03
Сообщений: 183
Рейтинг сообщения: 0
asvhmao было-бы очень интересно особенно цифровую часть если вас ето не затруднит


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Разрабатываю частотник для АД, подскажите пожалуйста.
СообщениеДобавлено: Пн фев 24, 2020 15:37:06 
Собутыльник Кота

Карма: 48
Рейтинг сообщений: 889
Зарегистрирован: Чт июн 26, 2014 00:04:37
Сообщений: 2938
Рейтинг сообщения: 0
Ответ по вопросу о формуле расчёта синуса
Олег Олегович писал(а):
формулу расчёта табличных значений шим.

Табличные значения рассчитываются под конкретный алгоритм программы.
Общая только функция y=sin(ωt)+Kп*sin(3ωt), Kп - коэффициент предмодуляции третьей гармоникой (0,15-0,20), выбирать исходя их конкретного формирователя ШИМ, как ограничение устроено, исходя из конкретного алгоритма. Подходит и для описания сектора под SVPWM.
На 10квт в звезде пойдёт модуль BSM50, да и 75 само собой.
ωt - образуют угол в радианах, ω - 2пf - угловая частота, t - время. Это стандартная формула. У Вас
Олег Олегович писал(а):
y=sin ((2×3.14 × c )/180 )+1 × (a) где С это точка синусоиды то есть от 0 до 180 . А это период таймера
, то-же самое 2п*с/180 - это шаг синусоиды, по 2 градуса шагает.
А множить на период таймера - это что амплитуда?

_________________
Обновления, документация, схемы и прошивки Восьмикрута - yandex
Обновления, документация, схемы и прошивки Восьмикрута - google
Видео ролики YouTube RuTube Дзен


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Разрабатываю частотник для АД, подскажите пожалуйста.
СообщениеДобавлено: Пн фев 24, 2020 16:19:29 
Потрогал лапой паяльник

Зарегистрирован: Вт авг 20, 2019 19:00:41
Сообщений: 347
Рейтинг сообщения: 0
DC-AC, Да это амплитуда . То есть получается обе формулы правильные. У вас забиты готовые таблицы или вы находу амплитуду меняете в зависимости от частоты?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Разрабатываю частотник для АД, подскажите пожалуйста.
СообщениеДобавлено: Пн фев 24, 2020 17:04:31 
Собутыльник Кота

Карма: 48
Рейтинг сообщений: 889
Зарегистрирован: Чт июн 26, 2014 00:04:37
Сообщений: 2938
Рейтинг сообщения: 0
В HD Восьмикруте множится на ходу, но исходная U/f в таблице

_________________
Обновления, документация, схемы и прошивки Восьмикрута - yandex
Обновления, документация, схемы и прошивки Восьмикрута - google
Видео ролики YouTube RuTube Дзен


Вернуться наверх
 
Эиком - электронные компоненты и радиодетали
Не в сети
 Заголовок сообщения: Re: Разрабатываю частотник для АД, подскажите пожалуйста.
СообщениеДобавлено: Пн фев 24, 2020 17:07:50 
Потрогал лапой паяльник

Зарегистрирован: Вт авг 20, 2019 19:00:41
Сообщений: 347
Рейтинг сообщения: 0
DC-AC, На сколько помню у вас 360 точек то есть при изменении частоты нужно заходит в цикл и переписывать 360 значений массива . И что pic успевает это делать ???Или вы берете массив один и тот же и просто множите его уменьшая или увеличивая значения ?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Разрабатываю частотник для АД, подскажите пожалуйста.
СообщениеДобавлено: Пн фев 24, 2020 17:09:03 
Нашел транзистор. Понюхал.
Аватар пользователя

Карма: 4
Рейтинг сообщений: 98
Зарегистрирован: Ср окт 07, 2015 13:13:40
Сообщений: 179
Откуда: МО, г. Воскресенск
Рейтинг сообщения: 0
Зачем считать все, если нужно вычислить только следующее значение?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Разрабатываю частотник для АД, подскажите пожалуйста.
СообщениеДобавлено: Пн фев 24, 2020 17:12:46 
Потрогал лапой паяльник

Зарегистрирован: Вт авг 20, 2019 19:00:41
Сообщений: 347
Рейтинг сообщения: 0
Sanchogus, Если частота выростить на 1 герц то нужен полностью пересчитанный массив то есть на 360 градусов синусоиды нужно пересчитать все значения. Вы имеете в виду считать каждый градус ?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Разрабатываю частотник для АД, подскажите пожалуйста.
СообщениеДобавлено: Пн фев 24, 2020 17:21:05 
Нашел транзистор. Понюхал.
Аватар пользователя

Карма: 4
Рейтинг сообщений: 98
Зарегистрирован: Ср окт 07, 2015 13:13:40
Сообщений: 179
Откуда: МО, г. Воскресенск
Рейтинг сообщения: 0
Считать только следующий угол, исходя из текущего задания. Как по мне проще держать массив для 100% амплитуды и плясать от него.

Смотрим какая должна быть частота и в зависимости от U(f) = const пересчитываем амплитуду и суем ее в новый угол.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Разрабатываю частотник для АД, подскажите пожалуйста.
СообщениеДобавлено: Пн фев 24, 2020 17:29:03 
Собутыльник Кота

Карма: 48
Рейтинг сообщений: 889
Зарегистрирован: Чт июн 26, 2014 00:04:37
Сообщений: 2938
Рейтинг сообщения: 0
Зачем всё пересчитывать, просто множатся исходные значения, напряжение не зависит от выходной частоты (в смысле построения программы, можно задать любое на любой частоте просто изменив задание)

_________________
Обновления, документация, схемы и прошивки Восьмикрута - yandex
Обновления, документация, схемы и прошивки Восьмикрута - google
Видео ролики YouTube RuTube Дзен


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Разрабатываю частотник для АД, подскажите пожалуйста.
СообщениеДобавлено: Пн фев 24, 2020 18:34:09 
Потрогал лапой паяльник

Зарегистрирован: Вт авг 20, 2019 19:00:41
Сообщений: 347
Рейтинг сообщения: 0
DC-AC, Пробовал умножить. Получается вот что: к примеру берём значение из таблицы 500 при периоде таймера 1000, тогда верхний и нижний ключи открыты одинаково (мёртвое время не считаем ), так вот если мы просто множим значение 500 к примеру на 0.2 то получается что амплитуда на выходе падает НО за счет закрытия верхнего ключа, тоесть верхний ключ открыт меньше, а нижний так как он комплементарный больше в следствии чего нижний ключ кипит, а верхний холодный . Я перечитывал таблицу на ходу - для уменьшения амплитуды увеличивал время нулевых векторов . Что скажете, может есть какой-то еще вариант ?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Разрабатываю частотник для АД, подскажите пожалуйста.
СообщениеДобавлено: Пн фев 24, 2020 18:45:43 
Нашел транзистор. Понюхал.
Аватар пользователя

Карма: 4
Рейтинг сообщений: 98
Зарегистрирован: Ср окт 07, 2015 13:13:40
Сообщений: 179
Откуда: МО, г. Воскресенск
Рейтинг сообщения: 0
Ну так логично, что надо приводить значение к нужному виду.
У меня таблица в виде от 0 до 1000 для четверти периода
Спойлер
Код:
uint16_t sinTableArray[90] = {                                             //четверть таблицы модифицированного синуса, растянутая с 500...1000 до  0...1000
0    ,   28,   58 ,  88, 118, 148, 178, 208, 238, 268,           //0-9
298, 328, 358, 388, 416, 446, 476, 504, 532, 562,           //10-19
590, 618, 646, 674, 702, 730, 756, 784, 810, 838,           //20-29
864, 872, 880, 888, 896, 904, 912, 918, 924, 932,           //30-39
938, 944, 948, 954, 958, 964, 968, 972, 976, 980,           //40-49
982, 986, 988, 990, 992, 994, 996, 996, 996, 998,           //50-59
998, 998, 996, 996, 996, 994, 992, 990, 988, 986,           //60-69
982, 980, 976, 972, 968, 964, 958, 954, 948, 944,           //70-79
938, 932, 924, 918, 912, 904, 896, 888, 880, 872             //80-89
};

После чего идет расчет амплитуды
Код:
if (angle < 90)                                                      //   0-89
   {
      buffer = sg_inverter.tim_arr_half + (sg_inverter.tim_arr_half * sinTableArray[angle] * sg_inverter.amplitude) / 100000;
      return buffer;

Беру половину периода таймера в данный момент (он у меня плавает в процессе работы) sg_inverter.tim_arr_half и прибавляю к нему еще кусок из половины периода*текущий угол*амплитуда (0-100) и делю на хитропопое число (100 от амплитуды*1000от макс табличного ШИМ).
В итоге получаю при нулевой амплитуде ровно половину периода (т.е. меандр), который по мере увеличения амплитуды становиться синусом.
Для остальных четвертей свои расчеты, но аналогично.
Спойлер
Код:
//по заданному углу и амплитуде возвращает коэф. заполнения ШИМ
uint32_t sg_inverter_pwm_calc(uint16_t angle, uint16_t *amplitude, uint16_t *freq)            //т.к. таблица только на одну четверть синуса, то недостающие углы вычисляем нехитрыми математическими операциями
{
   uint32_t buffer;
   if (angle > 359) angle-= 359;   //если как-то убежали за диапазон, то возвращаемся в него, по идее надо выпилить отсюда
   if (sg_inverter.amplitude > 100) sg_inverter.amplitude = 100;
   
   if (angle < 90)                                                      //   0-89
   {
      buffer = sg_inverter.tim_arr_half + (sg_inverter.tim_arr_half * sinTableArray[angle] * sg_inverter.amplitude) / 100000;
      return buffer;
   }
   else
      if(angle < 180)                                                   //   90-179
      {
         buffer = sg_inverter.tim_arr_half + (sg_inverter.tim_arr_half * sinTableArray[179 - angle] * sg_inverter.amplitude) / 100000;
         return buffer;
      }
      else
         if(angle < 270)                                                //   180-269
         {
            buffer = sg_inverter.tim_arr_half - (sg_inverter.tim_arr_half * (sinTableArray[angle - 180]) * sg_inverter.amplitude) / 100000;
            return buffer;
         }
         else                                                               //   270-359
         {
            buffer = sg_inverter.tim_arr_half - (sg_inverter.tim_arr_half * (sinTableArray[359 - angle]) * sg_inverter.amplitude) / 100000;
            return buffer;
         }
};


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Разрабатываю частотник для АД, подскажите пожалуйста.
СообщениеДобавлено: Пн фев 24, 2020 19:04:55 
Потрогал лапой паяльник

Зарегистрирован: Вт авг 20, 2019 19:00:41
Сообщений: 347
Рейтинг сообщения: 0
У вас период таймера не константа?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Разрабатываю частотник для АД, подскажите пожалуйста.
СообщениеДобавлено: Пн фев 24, 2020 19:14:54 
Нашел транзистор. Понюхал.
Аватар пользователя

Карма: 4
Рейтинг сообщений: 98
Зарегистрирован: Ср окт 07, 2015 13:13:40
Сообщений: 179
Откуда: МО, г. Воскресенск
Рейтинг сообщения: 0
Нет. Я периодом таймера задаю выходную частоту. При этом держу частоту ШИМ в диапазоне 3-6 кГц.
На низких частотах повторяю один и тот же цикл несколько раз.
При ускорении начинаю выкидывать углы. До 50 Гц шаг 3 градуса, после 6 и выше.

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Разрабатываю частотник для АД, подскажите пожалуйста.
СообщениеДобавлено: Вт фев 25, 2020 08:56:27 
Потрогал лапой паяльник

Зарегистрирован: Вт авг 20, 2019 19:00:41
Сообщений: 347
Рейтинг сообщения: 0
Sanchogus, А какой мк используете ? Я пока f103 но заказал f303 хочу на неё перейти .

Добавлено after 1 minute 58 seconds:
Сегодня дополню формулу чтоб была и амплитуда .Выложу.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Разрабатываю частотник для АД, подскажите пожалуйста.
СообщениеДобавлено: Вт фев 25, 2020 09:20:56 
Нашел транзистор. Понюхал.
Аватар пользователя

Карма: 4
Рейтинг сообщений: 98
Зарегистрирован: Ср окт 07, 2015 13:13:40
Сообщений: 179
Откуда: МО, г. Воскресенск
Рейтинг сообщения: 0
F103c8t6, но рисую вариант stm32g070kb. Удобный корпус для пайки 32 пина, 2 ноги питания, норм цена, 2.5 Мсемпла ацп и куча таймеров.
В качестве силы был stgips20k60 (точнее он и сейчас есть), сейчас смотрю под ikcm20l60, ибо дешевле (500-600 р за модуль). Целевая мощность 1.5-2.2 кВт в зависимости от модуля.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Разрабатываю частотник для АД, подскажите пожалуйста.
СообщениеДобавлено: Вт фев 25, 2020 17:15:19 
Потрогал лапой паяльник

Зарегистрирован: Вт авг 20, 2019 19:00:41
Сообщений: 347
Рейтинг сообщения: 0
arr_pwm_1 [a_] =(( sin ((2 * 3.14) * a_ / 180) +1 )* amplituda_ + (500 - amplituda_)); Такая получилась формула .Изменяя amplituda_ можно менять время работы нулевых векторов соответственно и амплитуду на выходе .


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Разрабатываю частотник для АД, подскажите пожалуйста.
СообщениеДобавлено: Вт фев 25, 2020 19:23:31 
Нашел транзистор. Понюхал.
Аватар пользователя

Карма: 4
Рейтинг сообщений: 98
Зарегистрирован: Ср окт 07, 2015 13:13:40
Сообщений: 179
Откуда: МО, г. Воскресенск
Рейтинг сообщения: 0
Для проверки построить в экселе график для всех углов с ячейкой под задание амплитуды.
Если при нулевой амплитуде будет линия по уровню 50%, а при 100% синус на полный размах от нуля до макс заполнения в вершинах, то норм.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Разрабатываю частотник для АД, подскажите пожалуйста.
СообщениеДобавлено: Вт фев 25, 2020 19:47:48 
Потрогал лапой паяльник

Зарегистрирован: Вт авг 20, 2019 19:00:41
Сообщений: 347
Рейтинг сообщения: 0
Sanchogus, Смотрел значения в массиве так и есть .


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Разрабатываю частотник для АД, подскажите пожалуйста.
СообщениеДобавлено: Вт фев 25, 2020 20:19:14 
Модератор
Аватар пользователя

Карма: 153
Рейтинг сообщений: 2926
Зарегистрирован: Сб авг 14, 2010 15:05:51
Сообщений: 18854
Откуда: г. Озерск, Челябинская обл.
Рейтинг сообщения: 0
Медали: 1
Лучший человек Форума 2017 (1)
Олег Олегович писал(а):
arr_pwm_1 [a_] =(( sin ((2 * 3.14) * a_ / 180) +1 )* amplituda_ + (500 - amplituda_))
ошибочка тут закралась.
чтобы перевести градусы в радианы, либо не должно быть двойки, либо делить на 360.
а поскольку все равно используется плавающая точка (число 3,14), то проще угол делить сразу на величину 1 радиана в градусах.
в итоге, вместо такого нагромождения приходим к выражению:
sin (a_ / 57.29578)
и к слову, 3,14 - очень грубое приближения числа Пи для подобных расчетов.
а также вся формула ошибочна.
нет необходимости прибавлять 1 к значению синуса.
я считаю, должно быть так:
arr_pwm_1 [a_] = 500 + sin (a_ / 57.29578) * amplituda_.
как я понял из последних постов, 500 - это среднее значение ШИМ, означающее нулевое значение напряжения (нулевую амплитуду).
вот, к этому среднему и прибавляем значение синуса, умноженного на требуемую амплитуду.

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Разрабатываю частотник для АД, подскажите пожалуйста.
СообщениеДобавлено: Вт фев 25, 2020 20:32:11 
Нашел транзистор. Понюхал.
Аватар пользователя

Карма: 4
Рейтинг сообщений: 98
Зарегистрирован: Ср окт 07, 2015 13:13:40
Сообщений: 179
Откуда: МО, г. Воскресенск
Рейтинг сообщения: 0
А значения синуса раскидать по таблице, т.к. нечего на МК считать операции с плавающей точкой без FPU. :)

Цитата:
я считаю, должно быть так:
arr_pwm_1 [a_] = 500 + sin (a_ / 57.29578) * amplituda_.

Может амплитуду еще на полпериода (500) умножить?
Если будет угол, который сделает синус единицей, то получим при 100% амплитуде 500 + 1*100, что несколько недотягивает до тысячи, ну и при вычислении синуса = -1 получим выражение 500-1*100 = 400, вместо нуля.
Амплитуду умножить на полупериод и поделить на сотню еще. Ну или использовать амплитуду 0...1.


Пользуясь случаем: Есть у кого под рукой названия хороших книг посвященных управлению асинхронным двигателем и векторному управлению АД, желательно с практической точки зрения. :idea:


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 716 ]     ... , , , 25, , , ...  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 46


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y