|
UniSet
2.6.0
|
Открытые члены | |
| void | step (const double &X, const double &Z, const double &Ts) |
| void | reset () |
| void | recalc () |
Открытые атрибуты | |
| double | Y |
| double | Kc |
| double | Ti |
| double | Td |
| double | vlim |
| double | d0 |
| double | d1 |
| double | d2 |
| double | sub1 |
| double | sub2 |
| double | sub |
| double | prevTs |
Друзья | |
| std::ostream & | operator<< (std::ostream &os, PID &p) |
| std::ostream & | operator<< (std::ostream &os, PID *p) |
ПИД Формулы выведены на основе разностных уравнений см. http://atm.h1.ru/root/theory/theory33.html
Он даёт неплохой результат и опимальнее по расчётам (содержит только умножение, не переполняется т.к. учитывает только два последних шага)
| void uniset::PID::recalc | ( | ) |
пересчёт констант
| void uniset::PID::reset | ( | ) |
рестарт регулятора...
| void uniset::PID::step | ( | const double & | X, |
| const double & | Z, | ||
| const double & | Ts | ||
| ) |
Выполнение очередного шага расчётов
| X | - входное значение |
| Z | - заданное значение |
| Ts | - интервал расчёта данных, [сек] (интервал между шагами расчёта). Ts - должно быть больше нуля |
| double uniset::PID::Kc |
пропорциональный коэффициент
| double uniset::PID::Td |
постоянная времени дифференциала, [сек]
| double uniset::PID::Ti |
постоянная времени интеграла, [сек]
| double uniset::PID::vlim |
максимальное(минимальное) разрешённое значение (для любого растущего во времени коэффициента) защита от переполнения
| double uniset::PID::Y |
расчётное выходное значение
1.7.6.1