Форум РадиоКот https://radiokot.ru/forum/ |
|
Кто то доставал до дна производительности STM32F1 ? https://radiokot.ru/forum/viewtopic.php?f=59&t=163975 |
Страница 3 из 4 |
Автор: | Eddy_Em [ Ср окт 02, 2019 08:35:26 ] |
Заголовок сообщения: | Re: Кто то доставал до дна производительности STM32F1 ? |
jcxz, а как вы, не имея кольцевого буфера, будете выбрасывать ненужные значения? Вот собрали сумму из N значений. Берем N-е, это означает, что 0-е надо выбросить. А откуда мы знаем, чему оно равно, если не запомнили в массиве? Неужто так сложно разобраться с ПИД-регулированием в частности и числовым интегрированием в общем? По-хорошему, производную тоже надо считать хотя бы по пяти точкам! Для ПИ-регулятора тоже нужно интегрирующее звено. Т.е. тоже без кольцевого буфера не обойтись! И если ваш ПИ-регулятор работал без буфера, вы явно что-то делали неправильно!!! |
Автор: | jcxz [ Ср окт 02, 2019 08:58:00 ] |
Заголовок сообщения: | Re: Кто то доставал до дна производительности STM32F1 ? |
jcxz, а как вы, не имея кольцевого буфера, будете выбрасывать ненужные значения? Вот собрали сумму из N значений. Берем N-е, это означает, что 0-е надо выбросить. Куда что-то "выбрасывать" для ПИД-а? И зачем???Можете выражаться математическим языком, а не языком бабки с базара? Если речь о нахождении суммы значений некоего массива на каждом шаге, где на каждый шаг добавляется одно значение и одно - удаляется, то на кой на каждый такой шаг суммировать все значения массива??? Ведь эта сумма уже вычислена на предыдущих шагах! Зачем каждый шаг старую сумму пересчитывать? Чтобы такты потратить? Достаточно к предыдущей сумме прибавить самое новое значение и вычесть самое старое. Это всего две операции. От длины массива никак не зависящие. Неужто так сложно разобраться с ПИД-регулированием в частности и числовым интегрированием в общем? Вот именно - неужто так сложно? Разберитесь уж наконец-то! Для ПИ-регулятора тоже нужно интегрирующее звено. Т.е. тоже без кольцевого буфера не обойтись! И если ваш ПИ-регулятор работал без буфера, вы явно что-то делали неправильно!!! Ну да - уже и для махания ногами многим требуется 200МГц - иначе никак не обойтись. И для ПИД-а нужен целый комп с кольцевым буфером в прицепе. Печалька.PS: И они называют себя программистами? (c) |
Автор: | KT315B [ Ср окт 02, 2019 22:10:02 ] |
Заголовок сообщения: | Re: Кто то доставал до дна производительности STM32F1 ? |
Во дискуссия то разгорелась, однако )) Код я не нашел - он остался на старой работе, но, в принципе работа с кольцевым буфером организована так, как Eddy_Em описал. |
Автор: | Eddy_Em [ Ср окт 02, 2019 23:35:31 ] |
Заголовок сообщения: | Re: Кто то доставал до дна производительности STM32F1 ? |
jcxz, что за жесточайшая темнота? Просто нет слов... |
Автор: | VladislavS [ Чт окт 03, 2019 05:36:05 ] |
Заголовок сообщения: | Re: Кто то доставал до дна производительности STM32F1 ? |
Вы что, прикалываетесь? Если есть буфер, то вычитай самое старое значение и прибавляй новое - вот тебе и сумма. Если нет буфера, то вычитай среднее значение и прибавляй новое - будет практически то же самое. |
Автор: | Eddy_Em [ Чт окт 03, 2019 08:39:47 ] |
Заголовок сообщения: | Re: Кто то доставал до дна производительности STM32F1 ? |
Если нет буфера, то вычитай среднее значение и прибавляй новое - будет практически то же самое. Бред-то какой! А средне как считается? Как среднее за все время работы? Ну-ну... |
Автор: | VladislavS [ Чт окт 03, 2019 09:30:10 ] |
Заголовок сообщения: | Re: Кто то доставал до дна производительности STM32F1 ? |
Я понимаю, трудно признать, что всю жизнь ерундой занимался |
Автор: | Eddy_Em [ Чт окт 03, 2019 09:42:21 ] |
Заголовок сообщения: | Re: Кто то доставал до дна производительности STM32F1 ? |
VladislavS, ну так признайте. Пора давно! |
Автор: | VladislavS [ Чт окт 03, 2019 09:47:53 ] |
Заголовок сообщения: | Re: Кто то доставал до дна производительности STM32F1 ? |
Можешь огрызаться сколько угодно, сути дела это не поменяет. |
Автор: | Eddy_Em [ Чт окт 03, 2019 10:19:48 ] |
Заголовок сообщения: | Re: Кто то доставал до дна производительности STM32F1 ? |
VladislavS, умный человек умеет признавать свои ошибки. От вас что-то признания не дождемся, похоже... |
Автор: | jcxz [ Чт окт 03, 2019 11:00:53 ] |
Заголовок сообщения: | Re: Кто то доставал до дна производительности STM32F1 ? |
Вы что, прикалываетесь? Если есть буфер, то вычитай самое старое значение и прибавляй новое - вот тебе и сумма. Если нет буфера, то вычитай среднее значение и прибавляй новое - будет практически то же самое. Ну хоть есть хоть один человек понимающий очевидные вещи. А то уже начал думать, что видимо зря вообще тут зарегился. Думал - это форум пускай не программистов, но хоть пытающихся ими стать.... ...тратящих 3 мс на элементарную операцию. Добавлено after 1 minute 22 seconds: Можешь огрызаться сколько угодно, сути дела это не поменяет. Не тратьте время. По стилю и уровню видно - это школопет.
|
Автор: | 240265 [ Чт окт 03, 2019 12:12:28 ] |
Заголовок сообщения: | Re: Кто то доставал до дна производительности STM32F1 ? |
jcxz, А счего Вы взяли ,что это форум программистов ? На этом форуме собрались люди разных уровней. Цель - ПОМОГАТЬ ДРУГ ДРУГУ , а не заставлять ВСЕХ становиться программистами. |
Автор: | Eddy_Em [ Чт окт 03, 2019 13:04:10 ] |
Заголовок сообщения: | Re: Кто то доставал до дна производительности STM32F1 ? |
Ну хоть есть хоть один человек понимающий очевидные вещи. О, вас уже двое. Совершенно не разбирающихся в вопросе и лепящих отсебятину. Веселые люди... Простой пример. Пусть функция принимает 6 значений: 1, 15, 20, 21, 25, 40. Мы считаем интеграл по пяти последним значениям. В этом случае на числе 25 сумма будет равна 82, а среднее — 16. ОК, считаем по алгоритму здорового человека для 40: прибавляем 40 и вычитаем 1, получаем интеграл == 121, среднее == 24. Считаем по алгоритму больного: 82 - 16 + 40 = 106, а среднее по алгоритму больного: 106/5=21! Круто, да? У больного человека получился интеграл на 15 меньше действительности, а среднее — на 3 меньше действительности! В процентах-то посчитать сможете, или вы только третий класс средней школы осилить смогли? |
Автор: | VladislavS [ Чт окт 03, 2019 13:30:51 ] |
Заголовок сообщения: | Re: Кто то доставал до дна производительности STM32F1 ? |
6 значений? Ну-ну. 3 мс суммировать? Ага-ага. Возьми 64 значения и прочувствуй разницу. |
Автор: | ПростоНуб [ Чт окт 03, 2019 14:00:56 ] |
Заголовок сообщения: | Re: Кто то доставал до дна производительности STM32F1 ? |
Eddy_Em, вообще-то, если речь о ПИД регулировании, то интегрирующую составляющую часто вообще не ограничивают, а суммируют от царя Гороха, даже не пытаясь хранить уже просуммированные слагаемые. По времени (точнее, по количеству хранимых значений) ограничивают дифференцирующую составляющую, но там речь, обычно всего о 2-4 значениях. Редко больше. Надо же понимать, что ПИД регулирование оперирует не показаниями датчика, а отклонениями показаний датчика от заданной величины. И эти значения могут быть как положительными, так и отрицательными. |
Автор: | Eddy_Em [ Чт окт 03, 2019 14:10:53 ] |
Заголовок сообщения: | Re: Кто то доставал до дна производительности STM32F1 ? |
Если оно делается "от балды", зачем это называть ПИД-регулятором? Назовите "отбалдорегулятором" ☺ |
Автор: | КРАМ [ Чт окт 03, 2019 14:17:04 ] |
Заголовок сообщения: | Re: Кто то доставал до дна производительности STM32F1 ? |
6 значений? Ну-ну. 3 мс суммировать? Ага-ага. Возьми 64 значения и прочувствуй разницу. Да хоть 1024. Ничего не изменится. Патамушта вся проблема не в гладком сигнале, а в переходных процессах. В буфере вообще может оказаться всего пара значений, которые перекосят выходной сигнал. По сути в Вашем кривом упрощении имеет место быть попытка скрестить КИХ с экспоненциальным фильтром, то есть рекурсивным фильтром первого порядка. Учите матчасть, а не несите пургу. Какой смысл в КИХ высокого порядка, если поверх него ПАРАЛЛЕЛЬНО работает БИХ первого? Я уже не говорю о применении оконной функции, где В ПРИНЦИПЕ нужно каждый раз считать фильтр заново... |
Автор: | ПростоНуб [ Чт окт 03, 2019 14:25:21 ] |
Заголовок сообщения: | Re: Кто то доставал до дна производительности STM32F1 ? |
КРАМ, а не фиг ставить большой коэффициент для дифференцирующей составляющей, тогда она из-за влияния интегрирующей и пропорциональной составляющей просто не сможет сильно повлиять на выходной сигнал. В некоторых случаях, действительно имеет смысл в предварительной фильтрации значений невязки, вот тогда делают буфер на 3-7 значений невязки и применяют к нему медианную фильтрацию, которая эффективно сглаживает помехи, но не влияет на дифферецирующую составляющую. Само собой, на вход принимают уже отфильтрованную невязку для всех трех составляющих. |
Автор: | КРАМ [ Чт окт 03, 2019 14:30:38 ] |
Заголовок сообщения: | Re: Кто то доставал до дна производительности STM32F1 ? |
Зачем-почему - определяется назначением регулятора. А значит и его параметрами. Высокий порядок имеет смысл для прецизионных систем. То есть фокусы с простейшей рекурсией не прокатят. |
Автор: | ПростоНуб [ Чт окт 03, 2019 14:38:37 ] |
Заголовок сообщения: | Re: Кто то доставал до дна производительности STM32F1 ? |
КРАМ, что значит простейшая рекурсия? Которая учитывает только два значения невязки для расчета дифферецирующей составляющей? А если учитывается три или четыре значения - это уже не простейшая рекурсия из-за добавления одного-двух слагаемых? А при большем количестве прецизионности точно не получите, из-за запаздывания значения дифферецирующей составляющей относительно интегрирующей и пропорциональной. Именно для уменьшения запаздывания медианный фильтр для невязки редко делают длинее семи значений. |
Страница 3 из 4 | Часовой пояс: UTC + 3 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |