31 #include "TRegimenMotor.h"
34 TRegimenMotor::TRegimenMotor() {
41 TRegimenMotor::~TRegimenMotor() {
52 void TRegimenMotor::LeeDatosEntrada(
char *Ruta, FILE *fich) {
58 for(
int i = 0; i <= (int) strlen(Ruta); i++) {
59 DatosRegimen[i] = Ruta[i];
62 fscanf(fich,
"%s ", &FileRegimen);
63 strcat(DatosRegimen, FileRegimen);
65 FichRegimen = fopen(DatosRegimen,
"r");
66 if((FichRegimen = fopen(DatosRegimen,
"r")) == NULL) {
67 std::cout <<
"ERROR: Fichero de regimen de giro no cargado";
72 while(!feof(FichRegimen)) {
73 fscanf(FichRegimen,
"%lf %lf ", &temp1, &temp2);
77 FTiempo =
new double[FNumeroDatos];
78 FRegimen =
new double[FNumeroDatos];
79 FichRegimen = fopen(DatosRegimen,
"r");
81 while(!feof(FichRegimen)) {
82 fscanf(FichRegimen,
"%lf %lf ", &FTiempo[i], &FRegimen[i]);
88 }
catch(exception &N) {
89 std::cout <<
"ERROR: LeeDatosEntrada de RegimenMotor (DLL)" << std::endl;
90 std::cout <<
"Tipo de error: " << N.what() << std::endl;
98 void TRegimenMotor::CalculaRegimen(
double TiempoActual) {
102 int j = 0, jmax = FNumeroDatos - 1;
103 double RegimenAct = 0., deltaT = 0., t = 0.;
104 while(TiempoActual > FTiempo[j] && j < jmax) {
108 RegimenAct = FRegimen[jmax];
110 deltaT = FTiempo[j] - FTiempo[j - 1];
111 t = TiempoActual - FTiempo[j - 1];
112 RegimenAct = xit_(FRegimen[j - 1], FRegimen[j], deltaT, t);
115 FRegimenMotor = RegimenAct;
117 }
catch(exception &N) {
118 std::cout <<
"ERROR: Calculo del Regimen del Engine(DLL)" << std::endl;
119 std::cout <<
"Tipo de error: " << N.what() << std::endl;
126 double TRegimenMotor::xit_(
double vizq,
double vder,
double axid,
double xif) {
128 double xx = 0., yy = 0.;
133 yy = xx / axid * xif;
136 printf(
"ERROR: valores entrada xit\n");
140 }
catch(exception &N) {
141 std::cout <<
"ERROR: xit_" << std::endl;
142 std::cout <<
"Tipo de error: " << N.what() << std::endl;
149 #pragma package(smart_init)