Страница 5 из 5 ПерваяПервая ... 345
Показано с 41 по 48 из 48

Тема: CODESYS 2.3 Помогите очень нужно СЧЕТЧИК ВОДЫ

  1. #41
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    2,278

    По умолчанию

    Ваш вопрос зажил отдельно от Вас ))
    Какой блок-то ? freq_measure в util.lib

  2. #42

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    Это не сильно. Это максимально точное получение мгновенного расхода в общем случае.
    Можно ссылку на источник информации о "максимальной точности"?

    Я приводил пример, когда:
    Цитата Сообщение от IIeroniux Посмотреть сообщение
    что при обнулении количества импульсов (а происходит это раз в 30 секунд) частота плавает в диапазоне +/- 30% первые 3 секунды, пока не наберется достаточно количество импульсов для точного подсчета.
    И где хвалёная "точность" по всего двум импульсам? Там человеку 3 секунд не хватает. А тут предлагается "по двум точкам оценивать скорость".

    Цитата Сообщение от Валенок Посмотреть сообщение
    Боюсь сказать - Ваш способ не то чтобы не пригоден
    А чего же этот способ везде используют?
    https://en.wikipedia.org/wiki/Exponential_smoothing

    Exponential smoothing is a rule of thumb technique for smoothing time series data, particularly for recursively applying as many as three low-pass filters with exponential window functions. Such techniques have broad application that is not intended to be strictly accurate or reliable for every situation. It is an easily learned and easily applied procedure for approximately calculating or recalling some value, or for making some determination based on prior assumptions by the user, such as seasonality...
    Переводить слова "rule of thumb" нужно?
    А теперь давайте поищем в wikipedia что-нибудь на тему freq_measure?

    Цитата Сообщение от Валенок Посмотреть сообщение
    Почему не понятно ? Так определитесь с размерностью Вашего результата.
    Размерность результата -- "импульсы/сек".
    У всех трёх переменных last1m, last1h, last1d одинаковая размерность.
    Чего тут неопределённого-то?

    Если расход стабилен, то все три переменные будут одинаковые.
    Если прорвало трубу, то показатель "last1m" быстро поползёт вверх, а last1d будет какое-то время на старом значении.

  3. #43

    По умолчанию

    Цитата Сообщение от vovtrof Посмотреть сообщение
    Дайте же уже кто нибудь кусок кода cfc для счетчикаи не замудреного для чайника!!
    Зачем CFC-то? Есть пример ST кода. Чем он не подходит?

    Уточню: никто не запрещает на ST иметь одну-единственную программу именно для "вычисления средних", а всё остальное делать на CFC.
    В чём необходимость усреднять именно на CFC?

  4. #44
    Пользователь
    Регистрация
    23.09.2008
    Адрес
    Центророссийск
    Сообщений
    2,278

    По умолчанию

    Цитата Сообщение от vladimirisitnikov Посмотреть сообщение
    Можно ссылку на источник информации о "максимальной точности"?.
    Я. Просто я.
    Хоть я и программист, но не забыл физику и математику.
    Обратите внимание на размерность частоты : Гц. Они же с^-1
    А в какой момент мы получаем информацию об очередном герце ? только по фронту импульса.
    В другие моменты мы может только фантазировать.
    И только в момент очередного "герца" мы может получить информацию о самом последнем и наисвежайшем интервале между последними "герцами"

    Цитата Сообщение от vladimirisitnikov Посмотреть сообщение
    Я приводил пример, когда: Там человеку 3 секунд не хватает..
    Ключевые слова. "Там человеку .. не хватает". Другим хватает.

    Цитата Сообщение от vladimirisitnikov Посмотреть сообщение
    А теперь давайте поищем в wikipedia что-нибудь на тему freq_measure?
    .
    Про меня (и Вас) там тоже ничего нет. И про суслика нет. А он есть.


    -------------------------------------
    Вот Вам генератор
    t(in:=not t.q, pt := t#1s);
    Цитата Сообщение от vladimirisitnikov Посмотреть сообщение
    А теперь давайте поищем.
    ...просто прямую частоты. Прям в визуализации. Прям в эмуляции. (на незначительные колебания глаза закрою ессно, всеж нг только/только)))
    Увеличим время раза в два - поищем снижение прямой примерно на столько же.

    Цитата Сообщение от vladimirisitnikov Посмотреть сообщение
    А чего же этот способ везде используют?
    https://en.wikipedia.org/wiki/Exponential_smoothing
    .
    Дикие люди. Чего с них взять.
    Последний раз редактировалось Валенок; 11.01.2016 в 01:38.

  5. #45
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    10,653

    По умолчанию

    Герц - частота повторения сигнала во временном промежутке = 1 секунде.

    Как можно определить частоту по двум фронтам сигнала с неизвестным временем ?
    И еще вопрос, в течении секунды несколько раз открывали и закрывали краны и расход менялся, то есть мы за секунду получаем не меандр а хаотичные во времени импульсы - на кой тут мерять частоту, если она изменчива ?

  6. #46

    По умолчанию

    Цитата Сообщение от Валенок Посмотреть сообщение
    Я. Просто я.
    Хоть я и программист, но не забыл физику и математику.
    Обратите внимание на размерность частоты : Гц. Они же с^-1
    Теорему Котельникова помните?

    Теорема Котельникова: ...Разумеется, реальные сигналы (например, звук на цифровом носителе) не обладают такими свойствами, так как они конечны по времени и обычно имеют разрывы во временно́й характеристике. Соответственно, ширина их спектра бесконечна.
    Перевожу с русского на русский: в реальном сигнале бесконечно много частотных гармоник.
    И их там много не из-за того, что "не бывает источника постоянной частоты", а из-за того, что невозможно измерить сигнал бесконечной длительности.


    Цитата Сообщение от Валенок Посмотреть сообщение
    А в какой момент мы получаем информацию об очередном герце ? только по фронту импульса.
    В другие моменты мы может только фантазировать.
    Не существует способа <<получить информацию "о герце">>.
    Спектр сигнала можно выяснять математически, но "напрямую снимать герцы" невозможно.
    Проблема выяснения плотности вероятности является фундаментальной проблемой в науке: https://en.wikipedia.org/wiki/Kernel_density_estimation
    Если бы был известен способ "напрямую снимать герцы", он непременно появился бы в этой статье.


    Цитата Сообщение от Валенок Посмотреть сообщение
    -------------------------------------
    Вот Вам генератор
    t(in:=not t.q, pt := t#1s);

    ...просто прямую частоты. Прям в визуализации. Прям в эмуляции. (на незначительные колебания глаза закрою ессно, всеж нг только/только)))
    Увеличим время раза в два - поищем снижение прямой примерно на столько же.
    Вот что получается у меня в эмуляторе.
    Исходный вариант.
    усреднение_60с_1Гц.png

    Ну, ждать несколько минут "выхода на режим у меня терпения нет", поэтому на двух следующих я показываю 10с-усреднение.

    Вот генератор "1Гц"
    усреднение_10с_1Гц.png

    Вот генератор "2Гц"
    усреднение_10с_2Гц.png

    Зоркий глаз заметит, что "1Гц" при усреднении получается 0.9Гц (см первую и вторую картинку -- там last1m равно 0.9).
    Как же так? А всё просто: глючит CoDeSys -- неправильно работают таймеры.
    На графиках красные линии идут раз в минуту.

    1-ая картинка: за чуть большее чем 5 минут время насчиталось 289 импульсов.
    Т.е. реальная частота заведомо меньше, чем -- 289/(5*60) == 0.96. Результат усреднения -- 0.9

    2-ая картинка: за 4 минуты 225 импульсов. 225/(4*60) == 0.93Гц максимум. Результат усреднения -- 0.9

    3-я картинка: за 4 минуты 404 импульса. 404/(4*60) == 1.68Гц. Результат усреднения -- 1.6.


    Во всех случаях показатель last1m сошёлся к "delta". Переменная delta -- это количество импульсов за "последние 10 секунд".
    Тут я опираюсь на то, что если указал T#10s в task configuration, то считаю, что задача раз в 10 секунд и будет выполняться.
    Возможно, не стоит доверять task configuration'у, а при усреднениях явно получать текущее время.

  7. #47

    По умолчанию

    Цитата Сообщение от melky Посмотреть сообщение
    И еще вопрос, в течении секунды несколько раз открывали и закрывали краны и расход менялся, то есть мы за секунду получаем не меандр а хаотичные во времени импульсы - на кой тут мерять частоту, если она изменчива ?
    Не-не-не, Девид Блейн.
    В тех задании сказано "измерять расход" -- надо измерять. И отмазка "частота импульсов изменчива" липовая.

    Другое дело, что во многих случаях нужно использовать не сырые измерения, а сглаженные: скользящее среднее, эксп. сглаживание, фильтр низких частот. Все эти механизмы об одном и том же.

    Будет ли лучше, если брать показатели "1/интервал_между_последними_импульсами" и сглаживать их? Хз. Но гонять функции даты/времени/математику только ради того, чтобы обработать каждый импульс может и быть расточительным.

  8. #48
    Пользователь
    Регистрация
    27.11.2011
    Адрес
    Краснодар
    Сообщений
    10,653

    По умолчанию

    не, надо считать количество импульсов в секунду и измерять расход, принять мгновенный расход исходя из времени = 1 секунды и не заморачиваться частотой, которую высчитать невозможно.

Страница 5 из 5 ПерваяПервая ... 345

Похожие темы

  1. Ответов: 9
    Последнее сообщение: 07.07.2015, 19:37
  2. Ответов: 23
    Последнее сообщение: 21.02.2015, 04:32
  3. Счетчик воды РСЦ
    от mib_z в разделе Master SCADA 3
    Ответов: 1
    Последнее сообщение: 14.03.2013, 08:55
  4. Датчики бесконтактные. Очень помогите!!!
    от Антон ТТС в разделе Трёп (Курилка)
    Ответов: 1
    Последнее сообщение: 05.09.2007, 15:59

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •