jcxz, а как вы, не имея кольцевого буфера, будете выбрасывать ненужные значения? Вот собрали сумму из N значений. Берем N-е, это означает, что 0-е надо выбросить. А откуда мы знаем, чему оно равно, если не запомнили в массиве? Неужто так сложно разобраться с ПИД-регулированием в частности и числовым интегрированием в общем? По-хорошему, производную тоже надо считать хотя бы по пяти точкам!
Для ПИ-регулятора тоже нужно интегрирующее звено. Т.е. тоже без кольцевого буфера не обойтись! И если ваш ПИ-регулятор работал без буфера, вы явно что-то делали неправильно!!!
_________________ Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда. Я на гитхабе, в ЖЖ
jcxz, а как вы, не имея кольцевого буфера, будете выбрасывать ненужные значения? Вот собрали сумму из N значений. Берем N-е, это означает, что 0-е надо выбросить.
Куда что-то "выбрасывать" для ПИД-а? И зачем??? Можете выражаться математическим языком, а не языком бабки с базара? Если речь о нахождении суммы значений некоего массива на каждом шаге, где на каждый шаг добавляется одно значение и одно - удаляется, то на кой на каждый такой шаг суммировать все значения массива??? Ведь эта сумма уже вычислена на предыдущих шагах! Зачем каждый шаг старую сумму пересчитывать? Чтобы такты потратить? Достаточно к предыдущей сумме прибавить самое новое значение и вычесть самое старое. Это всего две операции. От длины массива никак не зависящие.
Для ПИ-регулятора тоже нужно интегрирующее звено. Т.е. тоже без кольцевого буфера не обойтись! И если ваш ПИ-регулятор работал без буфера, вы явно что-то делали неправильно!!!
Ну да - уже и для махания ногами многим требуется 200МГц - иначе никак не обойтись. И для ПИД-а нужен целый комп с кольцевым буфером в прицепе. Печалька.
Во дискуссия то разгорелась, однако )) Код я не нашел - он остался на старой работе, но, в принципе работа с кольцевым буфером организована так, как Eddy_Em описал.
jcxz, что за жесточайшая темнота? Просто нет слов...
_________________ Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда. Я на гитхабе, в ЖЖ
Качественное и безопасное устройство, работающее от аккумулятора, должно учитывать его физические и химические свойства, профили заряда и разряда, их изменение во времени и под влиянием различных условий, таких как температура и ток нагрузки. Мы расскажем о литий-ионных аккумуляторных батареях EVE и нескольких решениях от различных китайских компаний, рекомендуемых для разработок приложений с использованием этих АКБ. Представленные в статье китайские аналоги помогут заменить продукцию западных брендов с оптимизацией цены без потери качества.
Вы что, прикалываетесь? Если есть буфер, то вычитай самое старое значение и прибавляй новое - вот тебе и сумма. Если нет буфера, то вычитай среднее значение и прибавляй новое - будет практически то же самое.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
Если нет буфера, то вычитай среднее значение и прибавляй новое - будет практически то же самое.
Бред-то какой! А средне как считается? Как среднее за все время работы? Ну-ну...
_________________ Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда. Я на гитхабе, в ЖЖ
_________________ Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда. Я на гитхабе, в ЖЖ
VladislavS, умный человек умеет признавать свои ошибки. От вас что-то признания не дождемся, похоже...
_________________ Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда. Я на гитхабе, в ЖЖ
Вы что, прикалываетесь? Если есть буфер, то вычитай самое старое значение и прибавляй новое - вот тебе и сумма. Если нет буфера, то вычитай среднее значение и прибавляй новое - будет практически то же самое.
Ну хоть есть хоть один человек понимающий очевидные вещи. А то уже начал думать, что видимо зря вообще тут зарегился. Думал - это форум пускай не программистов, но хоть пытающихся ими стать.... ...тратящих 3 мс на элементарную операцию.
jcxz, А счего Вы взяли ,что это форум программистов ? На этом форуме собрались люди разных уровней. Цель - ПОМОГАТЬ ДРУГ ДРУГУ , а не заставлять ВСЕХ становиться программистами.
Ну хоть есть хоть один человек понимающий очевидные вещи.
О, вас уже двое. Совершенно не разбирающихся в вопросе и лепящих отсебятину. Веселые люди... Простой пример. Пусть функция принимает 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. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда. Я на гитхабе, в ЖЖ
Eddy_Em, вообще-то, если речь о ПИД регулировании, то интегрирующую составляющую часто вообще не ограничивают, а суммируют от царя Гороха, даже не пытаясь хранить уже просуммированные слагаемые. По времени (точнее, по количеству хранимых значений) ограничивают дифференцирующую составляющую, но там речь, обычно всего о 2-4 значениях. Редко больше. Надо же понимать, что ПИД регулирование оперирует не показаниями датчика, а отклонениями показаний датчика от заданной величины. И эти значения могут быть как положительными, так и отрицательными.
Если оно делается "от балды", зачем это называть ПИД-регулятором? Назовите "отбалдорегулятором" ☺
_________________ Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда. Я на гитхабе, в ЖЖ
6 значений? Ну-ну. 3 мс суммировать? Ага-ага. Возьми 64 значения и прочувствуй разницу.
Да хоть 1024. Ничего не изменится. Патамушта вся проблема не в гладком сигнале, а в переходных процессах. В буфере вообще может оказаться всего пара значений, которые перекосят выходной сигнал. По сути в Вашем кривом упрощении имеет место быть попытка скрестить КИХ с экспоненциальным фильтром, то есть рекурсивным фильтром первого порядка. Учите матчасть, а не несите пургу. Какой смысл в КИХ высокого порядка, если поверх него ПАРАЛЛЕЛЬНО работает БИХ первого?
Я уже не говорю о применении оконной функции, где В ПРИНЦИПЕ нужно каждый раз считать фильтр заново...
КРАМ, а не фиг ставить большой коэффициент для дифференцирующей составляющей, тогда она из-за влияния интегрирующей и пропорциональной составляющей просто не сможет сильно повлиять на выходной сигнал. В некоторых случаях, действительно имеет смысл в предварительной фильтрации значений невязки, вот тогда делают буфер на 3-7 значений невязки и применяют к нему медианную фильтрацию, которая эффективно сглаживает помехи, но не влияет на дифферецирующую составляющую. Само собой, на вход принимают уже отфильтрованную невязку для всех трех составляющих.
Зачем-почему - определяется назначением регулятора. А значит и его параметрами. Высокий порядок имеет смысл для прецизионных систем. То есть фокусы с простейшей рекурсией не прокатят.
КРАМ, что значит простейшая рекурсия? Которая учитывает только два значения невязки для расчета дифферецирующей составляющей? А если учитывается три или четыре значения - это уже не простейшая рекурсия из-за добавления одного-двух слагаемых? А при большем количестве прецизионности точно не получите, из-за запаздывания значения дифферецирующей составляющей относительно интегрирующей и пропорциональной. Именно для уменьшения запаздывания медианный фильтр для невязки редко делают длинее семи значений.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 24
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения