////////////////////////////////////////////////////////////////////////////
// Model KOLO.CPP SIMLIB/C++
//
// kmitání kola (verze 1)
//
// popis systému kola:
// y'' = ( F - D * y' - k * y ) / M
// kde:
// y výchylka kola
// D koeficient tlumení
// k tuhost pružiny
// F síla působící na kolo
//
#include "simlib.h"
struct Kolo { // popis systému kola
Integrator v, y;
Kolo(Input F, double M, double D, double k):
v( (F - D*v - k*y) / M ), // rychlost
y( v ) {} // výchylka
};
// objekty modelu ...
//problem C++ | Constant F = 100; // síla působící na kolo k
Constant F(100); // síla působící na kolo k
Kolo k(F, 10, 500, 5e4); // model systému
// sledování stavu modelu ...
void Sample() {
Print("%6.3f %.4g %.4g\n", T.Value(), k.y.Value(), k.v.Value());
}
Sampler S(Sample, 0.001);
int main() { // popis experimentu ...
SetOutput("kolo.dat");
_Print("# KOLO - model tlumení kola\n");
Print("# Time y v \n");
Init(0, 0.5); // inicializace parametrů experimentu
SetStep(1e-3, 0.1); // rozsah kroku integrace
SetAccuracy(1e-5, 0.001); // max. povolená chyba integrace
Run(); // simulace
Print("# konec \n");
return 0;
}
// konec
syntax highlighted by Code2HTML, v. 0.9.1