const double T1 = 10,
T2 = 50,
K1 = 50,
K2 = 1;
const double XValue = 10;
const double StepPrn = 0.1;
class System : public aContiBlock {
Integrator y2, y1;
public:
System(Input inp, double T1, double T2, double K1, double K2) :
y2( (K1*inp-y2)/T1 ),
y1( (K2*y2-y1)/T2 ) {}
double Value() { return y1.Value(); }
};
class Model : public aContiBlock {
Relay r;
System s;
public:
Model(Input inp, double T1, double T2, double K1, double K2) :
r( inp - s, 0, 0, 1, 1, 0, 1 ),
s( r, T1, T2, K1, K2 ) {}
double Value() { return s.Value(); }
double relayValue() { return r.Value(); }
};
Model s(XValue, T1, T2, K1, K2);
Print(
"%-8.2f %g %g\n",
T.
Value(), s.Value(), s.relayValue());
}
Print(
"# heating --- model of temperatre regulation\n");
Print(
"# Time temp relay\n");
}