test

Fork of AutomationElements by TVZ Mechatronics Team

Committer:
tgw
Date:
Sat Nov 25 02:03:00 2017 +0000
Revision:
2:a45cbb512c99
Parent:
0:3dd7aeceee65
test

Who changed what in which revision?

UserRevisionLine numberNew contents of line
tbjazic 0:3dd7aeceee65 1 #ifndef PDT1_H
tbjazic 0:3dd7aeceee65 2 #define PDT1_H
tbjazic 0:3dd7aeceee65 3
tbjazic 0:3dd7aeceee65 4 #include "mbed.h"
tbjazic 0:3dd7aeceee65 5
tbjazic 0:3dd7aeceee65 6 /** Transfer function of a PDT1 form.
tbjazic 0:3dd7aeceee65 7 * G(s) = Y(s) / U(s) = K * (1 + T_D s) / (1 + T_1 s)
tbjazic 0:3dd7aeceee65 8 *
tbjazic 0:3dd7aeceee65 9 * Author(s): TVZ Mechatronics Team
tbjazic 0:3dd7aeceee65 10 *
tbjazic 0:3dd7aeceee65 11 */
tbjazic 0:3dd7aeceee65 12 class PDT1 {
tbjazic 0:3dd7aeceee65 13 public:
tbjazic 0:3dd7aeceee65 14 /** Default constructor.
tbjazic 0:3dd7aeceee65 15 * K = 1, T_1 = 1, T_D = 0.5, sampleTime = 0.1
tbjazic 0:3dd7aeceee65 16 */
tbjazic 0:3dd7aeceee65 17 PDT1();
tbjazic 0:3dd7aeceee65 18 /** PDT1 transfer function parameters and sample time in seconds. */
tbjazic 0:3dd7aeceee65 19 PDT1(double K, double T_1, double T_D, double sampleTime);
tbjazic 0:3dd7aeceee65 20 /** Update PDT1 transfer function parameters and sample time. */
tbjazic 0:3dd7aeceee65 21 void setParameters(double K, double T_1, double T_D, double sampleTime);
tbjazic 0:3dd7aeceee65 22 /** Calculate the output y. */
tbjazic 0:3dd7aeceee65 23 double out();
tbjazic 0:3dd7aeceee65 24 /** Set the input u. */
tbjazic 0:3dd7aeceee65 25 void in(double u);
tbjazic 0:3dd7aeceee65 26 private:
tbjazic 0:3dd7aeceee65 27 double y, y_p1;
tbjazic 0:3dd7aeceee65 28 double u, u_p1;
tbjazic 0:3dd7aeceee65 29 double K, T_1, T_D, T_d, a_1, b_0, b_1;
tbjazic 0:3dd7aeceee65 30 };
tbjazic 0:3dd7aeceee65 31
tbjazic 0:3dd7aeceee65 32 #endif // PDT1_H