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

 
 
> Большая задержка при обработки данных от АЦП, 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

Сообщений в этой теме
- 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
|- - iosifk   Цитата(Obam @ Nov 2 2017, 10:30) А для вс...   Nov 2 2017, 08:07
- - 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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


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


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