Открытые члены |
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 - должно быть больше нуля |
Данные класса
пропорциональный коэффициент
постоянная времени дифференциала, [сек]
постоянная времени интеграла, [сек]
максимальное(минимальное) разрешённое значение (для любого растущего во времени коэффициента) защита от переполнения
расчётное выходное значение