test

Fork of AutomationElements by TVZ Mechatronics Team

Committer:
tbjazic
Date:
Thu Jan 22 11:41:02 2015 +0000
Revision:
0:3dd7aeceee65
Initial commit.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
tbjazic 0:3dd7aeceee65 1 #include "I.h"
tbjazic 0:3dd7aeceee65 2
tbjazic 0:3dd7aeceee65 3 I::I() {
tbjazic 0:3dd7aeceee65 4 u = y = u_p1 = y_p1 = 0;
tbjazic 0:3dd7aeceee65 5 setParameters(1, 0.1);
tbjazic 0:3dd7aeceee65 6 }
tbjazic 0:3dd7aeceee65 7
tbjazic 0:3dd7aeceee65 8 I::I(double K_I_, double T_d_) {
tbjazic 0:3dd7aeceee65 9 u = y = u_p1 = y_p1 = 0;
tbjazic 0:3dd7aeceee65 10 setParameters(K_I_, T_d_);
tbjazic 0:3dd7aeceee65 11 }
tbjazic 0:3dd7aeceee65 12
tbjazic 0:3dd7aeceee65 13 void I::setParameters(double K_I_, double T_d_) {
tbjazic 0:3dd7aeceee65 14 if (T_d_ > 0)
tbjazic 0:3dd7aeceee65 15 T_d = T_d_;
tbjazic 0:3dd7aeceee65 16 else
tbjazic 0:3dd7aeceee65 17 T_d = 0.1;
tbjazic 0:3dd7aeceee65 18 K_I = K_I_;
tbjazic 0:3dd7aeceee65 19 }
tbjazic 0:3dd7aeceee65 20
tbjazic 0:3dd7aeceee65 21 double I::out() {
tbjazic 0:3dd7aeceee65 22 y = y_p1 + K_I * T_d * u_p1;
tbjazic 0:3dd7aeceee65 23 y_p1 = y;
tbjazic 0:3dd7aeceee65 24 u_p1 = u;
tbjazic 0:3dd7aeceee65 25 return y;
tbjazic 0:3dd7aeceee65 26 }
tbjazic 0:3dd7aeceee65 27
tbjazic 0:3dd7aeceee65 28 void I::in(double u_) {
tbjazic 0:3dd7aeceee65 29 u = u_;
tbjazic 0:3dd7aeceee65 30 }