Страница 1 из 1

Среднеквадратичное значение

Добавлено: 25 янв 2016, 19:23
slavas
Уважаемые форумчане подскажите как посчитать среднеквадратичное значение на аналоговом входе.
требуется сделать 50 выборок за секунду и получить среднее значение, понятно, что считается по формуле (А1+А2...+А50)/50. Пробовал использовать массив не получилось.

Среднеквадратичное значение

Добавлено: 25 янв 2016, 20:23
faramir777
Так пробовал?

Среднеквадратичное значение

Добавлено: 25 янв 2016, 20:51
support
Вот блок (работает начиная с версии 1.10.3)
Блок для расчета среднего из заданного количества замеров

Среднеквадратичное значение

Добавлено: 25 янв 2016, 21:22
slavas
Спасибо огромное, ато я с массивами толком не разобрался.

Среднеквадратичное значение

Добавлено: 26 янв 2016, 10:33
Skull
slavas писал(а):Уважаемые форумчане подскажите как посчитать среднеквадратичное значение на аналоговом входе.требуется сделать 50 выборок за секунду и получить среднее значение, понятно, что считается по формуле (А1+А2...+А50)/50. Пробовал использовать массив не получилось.
Это не среднеквадратичное, это- среднеарифметическое. 
А как средствами ФЛПРОГ посчитать среднеквадратичное исходя из формулы
Изображение  ??

Среднеквадратичное значение

Добавлено: 26 янв 2016, 10:50
Олег
Так не пойдет?

Среднеквадратичное значение

Добавлено: 26 янв 2016, 11:01
support
Цитата Skull4383Это не среднеквадратичное, это- среднеарифметическое. А как средствами ФЛПРОГ посчитать среднеквадратичное исходя из формулы
??сейчас поправлю блок.

Среднеквадратичное значение

Добавлено: 26 янв 2016, 11:20
Skull
Скорее нет, чем да

Среднеквадратичное значение

Добавлено: 26 янв 2016, 11:50
support
Здесь блок расчёта среднеквадратичного
http://flprog.ru/load....-1-0-42

Среднеквадратичное значение

Добавлено: 26 янв 2016, 20:32
slavas
support, Здравствуйте, я попытался использовать Ваши блоки, но на выходе integer. Я в блоке изменил input integer на float, но после запятой получил нули.

Среднеквадратичное значение

Добавлено: 27 янв 2016, 05:45
support
А откуда вы подаёте данные на вход блока ?   Если с аналогового входа - то там интежер.  Я подмал что Вам надо считать среднеквадратичное значение либо тока либо напряжения. Судя по задаче (50 измерений в сеунду)

Среднеквадратичное значение

Добавлено: 27 янв 2016, 05:47
support
Я в принципе легко могу переделать на флоат, но размер занимаемый блоком в памяти контроллера значительно увеличится, и увеличится время его выполнения,  Вообще работа с числами с плавающей запятой тяжелы для контроллера

Среднеквадратичное значение

Добавлено: 27 янв 2016, 07:15
Skull
slavas писал(а):но на выходе integer.
Все расчеты нужно стараться по максимуму делать целочисленными. И только в последнем вычислении переходить к плавающей запятой. Если мерите ацп- делайте все в единицах АЦП, а потом переводите в удобоваримые единицы. На самом деле нет разницы, вы выведете среднеквадратичное из вольт или единиц ацп. На бумаге удобнее работать с привычными "значащими" единицами измерений, с контроллерами же стоит уменьшать до минимума количество вычислений либо выбирать действия, затрачивающие как можно меньше тактов.

Среднеквадратичное значение

Добавлено: 27 янв 2016, 17:13
slavas
supportSkull, спасибо за совет. Мне действительно нужно напряжение и ток расчитать для прибора вычисляющего ёмкость аккумулятора. Следуя Вашему совету среднеквадратичное буду считать из показаний АЦП.

Среднеквадратичное значение

Добавлено: 27 янв 2016, 18:13
garry
Skull писал(а):Все расчеты нужно стараться по максимуму делать целочисленными. И только в последнем вычислении переходить к плавающей запятой. Если мерите ацп- делайте все в единицах АЦП, а потом переводите в удобоваримые единицы. На самом деле нет разницы, вы выведете среднеквадратичное из вольт или единиц ацп. На бумаге удобнее работать с привычными "значащими" единицами измерений, с контроллерами же стоит уменьшать до минимума количество вычислений либо выбирать действия, затрачивающие как можно меньше тактов.
Золотые слова