Кто то доставал до дна производительности STM32F1 ?

Кто любит RISC в жизни, заходим, не стесняемся.
Аватара пользователя
Eddy_Em
Собутыльник Кота
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01
Контактная информация:

Re: Кто то доставал до дна производительности STM32F1 ?

Сообщение Eddy_Em »

jcxz, а как вы, не имея кольцевого буфера, будете выбрасывать ненужные значения? Вот собрали сумму из N значений. Берем N-е, это означает, что 0-е надо выбросить. А откуда мы знаем, чему оно равно, если не запомнили в массиве?
Неужто так сложно разобраться с ПИД-регулированием в частности и числовым интегрированием в общем?
По-хорошему, производную тоже надо считать хотя бы по пяти точкам!

Для ПИ-регулятора тоже нужно интегрирующее звено. Т.е. тоже без кольцевого буфера не обойтись! И если ваш ПИ-регулятор работал без буфера, вы явно что-то делали неправильно!!!
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
jcxz
Мудрый кот
Сообщения: 1717
Зарегистрирован: Вт авг 15, 2017 10:51:13

Re: Кто то доставал до дна производительности STM32F1 ?

Сообщение jcxz »

jcxz, а как вы, не имея кольцевого буфера, будете выбрасывать ненужные значения? Вот собрали сумму из N значений. Берем N-е, это означает, что 0-е надо выбросить.
Куда что-то "выбрасывать" для ПИД-а? И зачем???
Можете выражаться математическим языком, а не языком бабки с базара?
Если речь о нахождении суммы значений некоего массива на каждом шаге, где на каждый шаг добавляется одно значение и одно - удаляется, то на кой на каждый такой шаг суммировать все значения массива??? Ведь эта сумма уже вычислена на предыдущих шагах! Зачем каждый шаг старую сумму пересчитывать? Чтобы такты потратить?
Достаточно к предыдущей сумме прибавить самое новое значение и вычесть самое старое. Это всего две операции. От длины массива никак не зависящие.

Неужто так сложно разобраться с ПИД-регулированием в частности и числовым интегрированием в общем?

Вот именно - неужто так сложно? Разберитесь уж наконец-то! :))

Для ПИ-регулятора тоже нужно интегрирующее звено. Т.е. тоже без кольцевого буфера не обойтись! И если ваш ПИ-регулятор работал без буфера, вы явно что-то делали неправильно!!!
Ну да - уже и для махания ногами многим требуется 200МГц - иначе никак не обойтись. И для ПИД-а нужен целый комп с кольцевым буфером в прицепе. Печалька.

PS: И они называют себя программистами? (c) :)) :cry:
Аватара пользователя
KT315B
Сверлит текстолит когтями
Сообщения: 1269
Зарегистрирован: Пт июл 21, 2006 15:05:19
Откуда: плод воображения
Контактная информация:

Re: Кто то доставал до дна производительности STM32F1 ?

Сообщение KT315B »

Во дискуссия то разгорелась, однако )) Код я не нашел - он остался на старой работе, но, в принципе работа с кольцевым буфером организована так, как Eddy_Em описал.
R2AIV 73!
Аватара пользователя
Eddy_Em
Собутыльник Кота
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01
Контактная информация:

Re: Кто то доставал до дна производительности STM32F1 ?

Сообщение Eddy_Em »

jcxz, что за жесточайшая темнота? Просто нет слов...
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Re: Кто то доставал до дна производительности STM32F1 ?

Сообщение VladislavS »

Вы что, прикалываетесь? Если есть буфер, то вычитай самое старое значение и прибавляй новое - вот тебе и сумма. Если нет буфера, то вычитай среднее значение и прибавляй новое - будет практически то же самое.
Аватара пользователя
Eddy_Em
Собутыльник Кота
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01
Контактная информация:

Re: Кто то доставал до дна производительности STM32F1 ?

Сообщение Eddy_Em »

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

Бред-то какой!
А средне как считается? Как среднее за все время работы? Ну-ну...
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Re: Кто то доставал до дна производительности STM32F1 ?

Сообщение VladislavS »

Я понимаю, трудно признать, что всю жизнь ерундой занимался :)
Аватара пользователя
Eddy_Em
Собутыльник Кота
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01
Контактная информация:

Re: Кто то доставал до дна производительности STM32F1 ?

Сообщение Eddy_Em »

VladislavS, ну так признайте. Пора давно!
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Re: Кто то доставал до дна производительности STM32F1 ?

Сообщение VladislavS »

Можешь огрызаться сколько угодно, сути дела это не поменяет.
Аватара пользователя
Eddy_Em
Собутыльник Кота
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01
Контактная информация:

Re: Кто то доставал до дна производительности STM32F1 ?

Сообщение Eddy_Em »

VladislavS, умный человек умеет признавать свои ошибки. От вас что-то признания не дождемся, похоже...
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
jcxz
Мудрый кот
Сообщения: 1717
Зарегистрирован: Вт авг 15, 2017 10:51:13

Re: Кто то доставал до дна производительности STM32F1 ?

Сообщение jcxz »

Вы что, прикалываетесь? Если есть буфер, то вычитай самое старое значение и прибавляй новое - вот тебе и сумма. Если нет буфера, то вычитай среднее значение и прибавляй новое - будет практически то же самое.
Ну хоть есть хоть один человек понимающий очевидные вещи. А то уже начал думать, что видимо зря вообще тут зарегился. Думал - это форум пускай не программистов, но хоть пытающихся ими стать.... :dont_know:
...тратящих 3 мс на элементарную операцию. :)))

Добавлено after 1 minute 22 seconds:
Можешь огрызаться сколько угодно, сути дела это не поменяет.
Не тратьте время. По стилю и уровню видно - это школопет.
Аватара пользователя
240265
Электрический кот
Сообщения: 1029
Зарегистрирован: Сб мар 09, 2013 11:29:22
Откуда: 40RUS, Жуков

Re: Кто то доставал до дна производительности STM32F1 ?

Сообщение 240265 »

jcxz, А счего Вы взяли ,что это форум программистов ? На этом форуме собрались люди разных уровней. Цель - ПОМОГАТЬ ДРУГ ДРУГУ , а не заставлять ВСЕХ становиться программистами.
IVL ex UA6PJ
Аватара пользователя
Eddy_Em
Собутыльник Кота
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01
Контактная информация:

Re: Кто то доставал до дна производительности STM32F1 ?

Сообщение Eddy_Em »

Ну хоть есть хоть один человек понимающий очевидные вещи.

О, вас уже двое. Совершенно не разбирающихся в вопросе и лепящих отсебятину. Веселые люди...
Простой пример. Пусть функция принимает 6 значений: 1, 15, 20, 21, 25, 40. Мы считаем интеграл по пяти последним значениям. В этом случае на числе 25 сумма будет равна 82, а среднее — 16. ОК, считаем по алгоритму здорового человека для 40: прибавляем 40 и вычитаем 1, получаем интеграл == 121, среднее == 24. Считаем по алгоритму больного: 82 - 16 + 40 = 106, а среднее по алгоритму больного: 106/5=21!
Круто, да? У больного человека получился интеграл на 15 меньше действительности, а среднее — на 3 меньше действительности! В процентах-то посчитать сможете, или вы только третий класс средней школы осилить смогли?
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Аватара пользователя
VladislavS
Собутыльник Кота
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Re: Кто то доставал до дна производительности STM32F1 ?

Сообщение VladislavS »

6 значений? Ну-ну. 3 мс суммировать? Ага-ага. Возьми 64 значения и прочувствуй разницу.
Аватара пользователя
ПростоНуб
Собутыльник Кота
Сообщения: 2723
Зарегистрирован: Пт сен 07, 2018 20:20:02
Откуда: деревня в Тульской губернии

Re: Кто то доставал до дна производительности STM32F1 ?

Сообщение ПростоНуб »

Eddy_Em, вообще-то, если речь о ПИД регулировании, то интегрирующую составляющую часто вообще не ограничивают, а суммируют от царя Гороха, даже не пытаясь хранить уже просуммированные слагаемые. По времени (точнее, по количеству хранимых значений) ограничивают дифференцирующую составляющую, но там речь, обычно всего о 2-4 значениях. Редко больше.
Надо же понимать, что ПИД регулирование оперирует не показаниями датчика, а отклонениями показаний датчика от заданной величины. И эти значения могут быть как положительными, так и отрицательными.
Аватара пользователя
Eddy_Em
Собутыльник Кота
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01
Контактная информация:

Re: Кто то доставал до дна производительности STM32F1 ?

Сообщение Eddy_Em »

Если оно делается "от балды", зачем это называть ПИД-регулятором? Назовите "отбалдорегулятором" ☺
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25117
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: Кто то доставал до дна производительности STM32F1 ?

Сообщение КРАМ »

6 значений? Ну-ну. 3 мс суммировать? Ага-ага. Возьми 64 значения и прочувствуй разницу.

Да хоть 1024. Ничего не изменится. Патамушта вся проблема не в гладком сигнале, а в переходных процессах. В буфере вообще может оказаться всего пара значений, которые перекосят выходной сигнал.
По сути в Вашем кривом упрощении имеет место быть попытка скрестить КИХ с экспоненциальным фильтром, то есть рекурсивным фильтром первого порядка.
Учите матчасть, а не несите пургу.
Какой смысл в КИХ высокого порядка, если поверх него ПАРАЛЛЕЛЬНО работает БИХ первого?
:)))
Я уже не говорю о применении оконной функции, где В ПРИНЦИПЕ нужно каждый раз считать фильтр заново...
Аватара пользователя
ПростоНуб
Собутыльник Кота
Сообщения: 2723
Зарегистрирован: Пт сен 07, 2018 20:20:02
Откуда: деревня в Тульской губернии

Re: Кто то доставал до дна производительности STM32F1 ?

Сообщение ПростоНуб »

КРАМ, а не фиг ставить большой коэффициент для дифференцирующей составляющей, тогда она из-за влияния интегрирующей и пропорциональной составляющей просто не сможет сильно повлиять на выходной сигнал.
В некоторых случаях, действительно имеет смысл в предварительной фильтрации значений невязки, вот тогда делают буфер на 3-7 значений невязки и применяют к нему медианную фильтрацию, которая эффективно сглаживает помехи, но не влияет на дифферецирующую составляющую. Само собой, на вход принимают уже отфильтрованную невязку для всех трех составляющих.
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25117
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Re: Кто то доставал до дна производительности STM32F1 ?

Сообщение КРАМ »

Зачем-почему - определяется назначением регулятора. А значит и его параметрами.
Высокий порядок имеет смысл для прецизионных систем. То есть фокусы с простейшей рекурсией не прокатят.
Аватара пользователя
ПростоНуб
Собутыльник Кота
Сообщения: 2723
Зарегистрирован: Пт сен 07, 2018 20:20:02
Откуда: деревня в Тульской губернии

Re: Кто то доставал до дна производительности STM32F1 ?

Сообщение ПростоНуб »

КРАМ, что значит простейшая рекурсия? Которая учитывает только два значения невязки для расчета дифферецирующей составляющей? А если учитывается три или четыре значения - это уже не простейшая рекурсия из-за добавления одного-двух слагаемых?
А при большем количестве прецизионности точно не получите, из-за запаздывания значения дифферецирующей составляющей относительно интегрирующей и пропорциональной.
Именно для уменьшения запаздывания медианный фильтр для невязки редко делают длинее семи значений.
Ответить

Вернуться в «ARM»