ПИД-регулятор

Конфигурируемый ПИД-регулятор

Текущий релиз
1.1.3
Разработчик
mcm1957
Лицензия
MIT

Общая информация:

Версия:

Тесты:

Пожертвование:


Часовой

Этот адаптер использует библиотеки Sentry для автоматического сообщения разработчикам об исключениях и ошибках в коде. Более подробную информацию, а также инструкции по отключению отправки сообщений об ошибках см. в документации Sentry-Plugin ! Система отчетности Sentry используется начиная с js-controller 3.0.


PID-адаптер для ioBroker

Этот адаптер обеспечивает настраиваемый ПИД-регулятор.


Отказ от ответственности

Все названия продуктов и компаний, а также логотипы являются товарными знаками™ или зарегистрированными® товарными знаками соответствующих владельцев. Их использование не подразумевает какой-либо связи с ними или их дочерними компаниями, а также не подразумевает одобрения с их стороны! Этот личный проект ведется в свободное время и не преследует коммерческих целей.


Общая информация

Этот адаптер обеспечивает функциональность ПИД-регулятора.

На практике ПИД-регулятор автоматически вычисляет корректирующее значение для системы на основе фактического значения и заданного значения. Поведение регулируется параметрами. Примером из повседневной жизни является круиз-контроль автомобиля, где при подъеме в гору скорость снижается, если мощность двигателя остается постоянной. Алгоритм ПИД-регулятора восстанавливает измеренную скорость до желаемой с минимальной задержкой и перерегулированием, управляемым образом увеличивая выходную мощность двигателя. [(c) Википедия]

В рамках одного экземпляра адаптера может быть настроено более одного контроллера. Адаптер поддерживает настройку параметров (компонентов P, I, D) и времени цикла, используемого для вычислений. Кроме того, вычисления могут быть приостановлены и возобновлены, а контроллер может быть полностью перезагружен. В качестве удобного сервера можно включить ручной режим для непосредственной установки выходных параметров. Выходные параметры могут быть ограничены минимальным/максимальным значением и содержать фиксированное смещение.

Все соответствующие значения, включая внутренние данные, доступны в виде состояний для целей диагностики.

Документация

английская документация
немецкая документация

Кредиты

Создание этого адаптера было бы невозможно без замечательной работы @Philmod ( https://github.com/Philmod ), разработавшего node-pid-controller ( https://github.com/Philmod/node-pid-controller ).

Как сообщать о проблемах и отправлять запросы на добавление новых функций

Пожалуйста, используйте для этого раздел "Проблемы" на GitHub.

Лучше всего установить для адаптера режим отладочного логирования (Экземпляры -> Экспертный режим -> Уровень логирования столбцов). Затем, пожалуйста, получите лог-файл с диска (подкаталог "log" в каталоге установки ioBroker, а не из Admin, поскольку Admin обрезает строки). Если вы не хотите предоставлять его в рамках задачи на GitHub, вы также можете отправить его мне по электронной почте ( mcm57@gmx.at ). Пожалуйста, добавьте ссылку на соответствующую задачу на GitHub И опишите, что я вижу в логе и в какое время. "title": "lblCtrlInvert",


Если вам понравился этот адаптер, пожалуйста, рассмотрите возможность пожертвования:

PayPal


Changelog

1.1.3 (2024-03-22)

  • (mcm1957) Adapter uses sentry to report errors now.

1.0.0 (2024-03-11)

  • (mcm1957) BREAKING: Adapter requires node.js 18 or newer now
  • (mcm1957) BREAKING: Adapter requires js-controller 5.x.x and admin 6.x.x or newer now
  • (mcm1957) BREAKING: Adapter requires node.js 18 or newer now
  • (mcm1957) Incorrect error message whenever no controllers have been defied has been removed. [#68]
  • (mcm1957) State roles have been reviewed and adapted. [#88]
  • (mcm1957) Dependencies have been updated.

0.0.8 (2023-07-13)

  • (mcm1957) changed: Overall stability during state updates has been increased
  • (mcm1957) changed: Dependencies have been updated

0.0.7 (2023-04-24)

  • (mcm1957) changed: Cycle time is now required to be at least 100ms
  • (mcm1957) changed: Recalculations are now controlled by cycle timer only, no extra updates are performed (#62)
  • (mcm1957) changed: Several dependencies have been updated

0.0.6 (2023-04-14)

  • (mcm1957) solved: Calculation of sumerr in case of hitting max/min Limits has been corrected

0.0.5 (2023-04-14)

  • (mcm1957) new: npm/npmjs support has been added

0.0.4 (2023-04-14)

  • (mcm1957) changed: State last_upd_str has been removed
  • (mcm1957) changed: Some roles have been updated
  • (mcm1957) changed: Translations have been updated

0.0.3-alpha.1 (2023-04-13)

  • (mcm1957) changed: Setting rst state does no longer trigger a recalculation
  • (mcm1957) changed: State diff now displays error value even if sup is active
  • (mcm1957) changed: Calculation of I-part has been changed, changing Tn effects future calculations only now

0.0.3-alpha.0 (2023-04-12)

  • (mcm1957) new: optionally use folder structure for states
  • (mcm1957) changed: reset timer at restart after pausing calculation
  • (mcm1957) changed: use values stored for ack and set when starting adapter
  • (mcm1957) changed: log state changes with unexpected ack=true
  • (mcm1957) changed: fix incorrect updates occuring whenever act is written
  • (mcm1957) changed: fix invert flag not working at all
  • (mcm1957) changed: remove error display whenever adapter is hitting the limits
  • (mcm1957) changed: fix q flag handling
  • (mcm1957) changed: fix unexpected bahavior of sup parameter
  • (mcm1957) changed: rename run state to hold

0.0.2-alpha.2 (2023-04-06)

  • (mcm1957) changed: values of 'kp', 'xp' and 'sup' are now verified if set using states
  • (mcm1957) changed: values of 'min' and 'max' are now verified if set using states
  • (mcm1957) changed: activation of 'man' updates output 'y' with current value of 'man_inp' now
  • (mcm1957) changed: 'min' value is now conserved when restarting the instance
  • (mcm1957) changed: conversion between and xp has been fixed at several places
  • (mcm1957) changed: 'kp' or 'xp' are writepotected now depending on 'useXp' parameter

0.0.2-alpha.1 (2023-04-04)

  • (mcm1957) changed: some small fixes

0.0.2-alpha.0 (2023-04-04)

  • (mcm1957) THIS IS AN ALPHA RELEASE ONLY
  • (mcm1957) major changes after discussion in forum
  • (mcm1957) new initial release

License

MIT License

Copyright (c) 2023-2024 mcm1957 mcm57@gmx.at

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.