реклама на сайте
подробности

 
 
> Большая задержка при обработки данных от АЦП, STM32F334
Sanes
сообщение Sep 16 2017, 20:33
Сообщение #1





Группа: Участник
Сообщений: 10
Регистрация: 18-07-15
Пользователь №: 87 623



Добрый вечер!
Возникла проблема с компинсацией 300 Гц состовляющей на выходе ИП.
Таймер генерирует ШИМ (который компенсирует 300 Гц синус) с запаздованием на 1/4 периода . Т.е. запаздывание от момента начала преобразования АЦП до момента выдачи таймером ШИМ с компенсацией состовляет 0.5мс.
Алгоритм преобразования - таймер генерит прерывание АЦП, в обработчике прерывания происходят расчеты ,которые передаются на таймер.
Частота ШИМ 200кГц.
Длительность прерывания 3 мкс при периоде ШИМ 5 мкс.
Попробовал АЦП запускать без прерывания, а прерывание делать от таймера - величена задержки не изменилась.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Sanes
сообщение Nov 1 2017, 17:21
Сообщение #2





Группа: Участник
Сообщений: 10
Регистрация: 18-07-15
Пользователь №: 87 623



Извиняюсь за долгий ответ.
Частично вопрос разрешился. В RC цепочки (для определения огбающей ШИМ) стоял конденсатор с слишком большой ёмкостью .
Вот часть кода позаимствованного и переделанного из примеров STM.

CODE
int32_t seterr, pid_out;
int32_t error;

error = Vout - Vref;
seterr = (-Kp * error) / 200;
term_Volt = term_Volt + ((-Ki * error) / 200);

if (term_Volt > SAT_LIMIT)//B40
{
term_Volt = SAT_LIMIT;
}
if (term_Volt < -(SAT_LIMIT))
{
term_Volt = -(SAT_LIMIT);
}

dif = (-Kd*(error-error_old))/200;

pid_out = seterr + term_Volt + dif ;
pid_out += 5760;//5760 максимальное скважность ШИМ.

if (pid_out >= MAX_DUTY_A)//B40
{
pid_out = MAX_DUTY_A;
}

if (pid_out < MIN_DUTY_A)//480
{
pid_out = MIN_DUTY_A;
}
CurrentDutyA = pid_out;
__HAL_HRTIM_SETCOMPARE(&hhrtim, HRTIM_TIMERINDEX_TIMER_C, HRTIM_COMPAREUNIT_2, CurrentDutyA);

Схема входной цепи





В данный момент проблема состоит в том что не получается качественно настроить ПИД регулятор.
При Кр относитльно большом (30...50) амплитуда колебаний уменьшается в разы ,но появляются треугольники с увеличеной частотой 600...900 Гц
Если уменьшить Кр (10...3) - синусоида компенсируется плохо см. на фото , нижняя осциллограмма.




Сообщение отредактировал IgorKossak - Nov 1 2017, 18:26
Причина редактирования: [codebox] для длинного кода, [code] - для короткого!
Go to the top of the page
 
+Quote Post
iosifk
сообщение Nov 1 2017, 20:13
Сообщение #3


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(Sanes @ Nov 1 2017, 20:21) *
Извиняюсь за долгий ответ.
Частично вопрос разрешился.

На самом деле не все упирается в прерывания. Чтобы при помощи ОС подавлять пульсации, нужно чтобы эти пульсации попадали в полосу пропускания ОС.
А для этого, надо понимать то, как пройдет ЛАХ. В ОС у Вас сначала RC фильтрик, потом АЦП и Микроконтроллер. Так вот, надо понимать, кто задает первую постоянную времени. Либо эта RC цепочка, либо интегратор в МК, либо силовой фильтр.
Если хотите, могу по скайпу показать, что примерно у Вас может быть...


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post
Obam
сообщение Nov 2 2017, 07:30
Сообщение #4


Знающий
****

Группа: Участник
Сообщений: 756
Регистрация: 14-11-14
Пользователь №: 83 663



Цитата(iosifk @ Nov 2 2017, 00:13) *
На самом деле не все упирается в прерывания. Чтобы при помощи ОС подавлять пульсации, нужно чтобы эти пульсации попадали в полосу пропускания ОС.
А для этого, надо понимать то, как пройдет ЛАХ. В ОС у Вас сначала RC фильтрик, потом АЦП и Микроконтроллер. Так вот, надо понимать, кто задает первую постоянную времени. Либо эта RC цепочка, либо интегратор в МК, либо силовой фильтр.
Если хотите, могу по скайпу показать, что примерно у Вас может быть...

А для всех запись можно выложить?


--------------------
Пролетарий умственного труда.
Go to the top of the page
 
+Quote Post
iosifk
сообщение Nov 2 2017, 08:07
Сообщение #5


Гуру
******

Группа: Модераторы
Сообщений: 4 011
Регистрация: 8-09-05
Из: спб
Пользователь №: 8 369



Цитата(Obam @ Nov 2 2017, 10:30) *
А для всех запись можно выложить?

Попробую сделать...
Но общая идея такая.
Есть 3 "золотые точки".
Я вместо "круговой" буду просто говорить "частота".
Крайне-правая - это частота коммутации транзисторов. Это по "горизонтали". А по "вертикали" откладываем вниз 60-80 Дб в соответствии с тем, насколько хотим подавить пульсации на частоте квантования силовым фильтром. И через эту точку ЛАХ пройдет под углом, как минимум соотв. степени силового фильтра. Правда туда могут добавиться еще -20Дб/дек от цепи коррекции...
Крайне-правая - это там где 0 частота. А по "вертикали" берем вверх столько, сколько хотит получить точность в статике. Т.е. например при подавлении ошибки в 100 раз это будет 40 Дб. При статическом регуляторе ЛАХ через эту почку пройдет горизонтально.
И третья точка - это где ЛАХ пересекает 0 Дб. Там его наклон должен быть не более -20Дб/дек, иначе будет колебательность. По горизонтали этот кусок ЛАХа должен иметь запасы, чтобы был запас по фазе.
А еще надо учесть добротность силового фильтра, потому как он при хорошей добротности в точке излома имеет подъем, который может привести к неустойчивости...
Вот попробуйте хотя бы грубо нарисовать эти куски и увидите счастье...
А чтобы его "услышать" я когда-то вместо нагрузки включил колонки. В ОС, на самом входе вешается огромный конденсатор, чтобы стабилизировать только "постоянку", а вот сразу после него в ОС подается сигнал от генератора. И снимается полоса пропускания ОС и силового тракта... И тогда уже видно сигналы каких частот и амплитуд через них могут пройти...

А ТС давал показания "частота ШИМ 200кГц". Только чую я, что это не частота ШИМ, на которой работает счетчик периода ШИМ. И если счетчик считает хотя бы до 100, то это значит, что ШИМ может реализовать изменение сигнала не более чем в 20 кгц... А это очень мало...


--------------------
www.iosifk.narod.ru
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Sanes   Большая задержка при обработки данных от АЦП   Sep 16 2017, 20:33
- - 1113   расшифруйте все свои сокращения и опишите систему ...   Sep 17 2017, 06:19
- - Sanes   Имеется источник питания с входом 3/380 В и выходо...   Sep 17 2017, 20:19
|- - 1113   Цитата(Sanes @ Sep 17 2017, 23:19) АЦП сх...   Sep 17 2017, 21:49
|- - jcxz   Цитата(Sanes @ Sep 18 2017, 03:19) Далее ...   Sep 18 2017, 05:59
|- - Forger   Цитата(Sanes @ Sep 17 2017, 23:19) У меня...   Sep 18 2017, 06:09
- - khach   Просчитайте таблицу коррекций для одного периода с...   Sep 19 2017, 09:17
- - Sanes   Так как я в теории ТАУ плохо ориентируюсь, было бы...   Nov 6 2017, 14:56
|- - amiller   Цитата(Sanes @ Nov 6 2017, 17:56) Так как...   Nov 6 2017, 15:43
- - Sanes   Длительность прерывания проверял - 3 мкс. В расчёт...   Nov 6 2017, 21:30
- - amiller   Цитата(Sanes @ Nov 7 2017, 00:30) Длитель...   Nov 7 2017, 02:29


Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 29th July 2025 - 20:36
Рейтинг@Mail.ru


Страница сгенерированна за 0.01414 секунд с 7
ELECTRONIX ©2004-2016