-
Notifications
You must be signed in to change notification settings - Fork 7
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Squashed commit of the following: commit 17e8c97 Author: joaquin.f.fernandez <[email protected]> Date: Tue Aug 27 21:37:24 2024 -0300 Fix GUI debug flags bug. commit 46a66ff Author: joaquin.f.fernandez <[email protected]> Date: Tue Aug 27 21:37:10 2024 -0300 Updated vs code config files. commit 5067c01 Author: joaquin.f.fernandez <[email protected]> Date: Tue Aug 27 21:36:58 2024 -0300 Added initi code time test. commit 08aefce Merge: 2351872 757f4e1 Author: joaquin.f.fernandez <[email protected]> Date: Tue Aug 27 21:06:39 2024 -0300 Merge branch 'qss-solver-dev' into mmoc/iss-249-add-time-var-to-initialization-code commit 2351872 Merge: 7efbd30 eb9521c Author: joaquin.f.fernandez <[email protected]> Date: Tue Aug 27 18:55:25 2024 -0300 Merge branch 'qss-solver-dev' into mmoc/iss-249-add-time-var-to-initialization-code commit 7efbd30 Author: joaquin.f.fernandez <[email protected]> Date: Tue Aug 27 10:22:07 2024 -0300 Added code for time variable in initialization code. commit e225f11 Author: joaquin.f.fernandez <[email protected]> Date: Tue Aug 27 10:21:29 2024 -0300 Added autonomous method to statements. commit 8f417c8 Author: joaquin.f.fernandez <[email protected]> Date: Tue Aug 27 10:20:52 2024 -0300 Use expression autonomous method in equation. commit 76fd9f7 Author: joaquin.f.fernandez <[email protected]> Date: Tue Aug 27 10:20:15 2024 -0300 Added autonomous method to expressions.
- Loading branch information
1 parent
a85eb22
commit da5616c
Showing
13 changed files
with
343 additions
and
31 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
144 changes: 144 additions & 0 deletions
144
src/mmoc/tests/system/gt_data/init_code_time/init_code_time.c
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,144 @@ | ||
#include <stdlib.h> | ||
#include <stdio.h> | ||
#include <string.h> | ||
#include <math.h> | ||
|
||
#include "init_code_time.h" | ||
#include <common/utils.h> | ||
#include <common/model.h> | ||
#include <common/commands.h> | ||
#include <qss/qss_model.h> | ||
#include <classic/classic_model.h> | ||
|
||
void MOD_settings(SD_simulationSettings settings) | ||
{ | ||
settings->debug = 0; | ||
settings->parallel = FALSE; | ||
settings->hybrid = FALSE; | ||
settings->method = 0; | ||
} | ||
|
||
void MOD_definition(int idx, double *x, double *d, double *a, double t, double *dx) | ||
{ | ||
int _d1; | ||
int i; | ||
if (_is_var_u(idx)) { | ||
_get_u_idxs(idx); | ||
_apply_usage_eq_1(_d1); | ||
if ((i >= 1 && i <= 1000)) { | ||
_der_u(i,0) = _time; | ||
|
||
|
||
} | ||
return; | ||
} | ||
} | ||
|
||
void MOD_zeroCrossing(int idx, double *x, double *d, double *a, double t, double *zc) | ||
{ | ||
} | ||
|
||
void MOD_handlerPos(int idx, double *x, double* q, double *d, double *a, double t) | ||
{ | ||
} | ||
|
||
void MOD_handlerNeg(int idx, double *x, double* q, double *d, double *a, double t) | ||
{ | ||
} | ||
|
||
void MOD_output(int idx, double *x, double *d, double *a, double t, double *out) | ||
{ | ||
} | ||
|
||
void MOD_jacobian(double *x, double *d, double *a, double t, SD_jacMatrices dvdx, double *jac) | ||
{ | ||
int row, row_t, eq_var, c_row, c_row_g; | ||
int col, col_g, col_t; | ||
int x_ind; | ||
double aux; | ||
int _d1; | ||
int _rg_d1; | ||
int i; | ||
SD_cleanJacMatrices(dvdx); | ||
for(row = 1; row <= 1000; row++) { | ||
c_row = _c_index(row); | ||
_get_eq_1_var_idxs(row, eq_var); | ||
_get_u_idxs(eq_var); | ||
} | ||
// Assign Jacobian Matrix values for equation: 0 | ||
for (row = 0; row < 1000; row++) { | ||
for (col = 0; col < dvdx->df_dx[0]->size[row]; col++) { | ||
row_t = dvdx->df_dx[0]->index[row][col]; | ||
_assign_jac(row_t, dvdx->df_dx[0]->value[row][col]); | ||
} | ||
} | ||
} | ||
|
||
void MOD_dependencies(int idx, double *x, double *d, double *a, double t, double *dx, int *map) | ||
{ | ||
} | ||
|
||
void MOD_BDF_definition(double *x, double *d, double *a, double t, double *dx, int *BDFMap, int nBDF) | ||
{ | ||
int idx; | ||
int __bdf_it; | ||
for(__bdf_it = 0; __bdf_it < nBDF; __bdf_it++) { | ||
idx = BDFMap[__bdf_it]; | ||
int _d1; | ||
int i; | ||
if (_is_var_u(idx)) { | ||
_get_u_idxs(idx); | ||
_apply_usage_eq_1(_d1); | ||
if ((i >= 1 && i <= 1000)) { | ||
_eval_dep_u(i,1) = _time; | ||
|
||
|
||
} | ||
continue; | ||
} | ||
} | ||
} | ||
|
||
void QSS_initializeDataStructs(QSS_simulator simulator) | ||
{ | ||
simulator->data = QSS_Data(1000,0,0,1000,0,1,0,"init_code_time"); | ||
QSS_data modelData = simulator->data; | ||
MODEL_DATA_ACCESS(modelData) | ||
int* states = (int*) malloc(1000*sizeof(int)); | ||
int row, eq_var, c_row; | ||
int x_ind; | ||
int _d1; | ||
int _rg_d1; | ||
int i; | ||
int t = 0; | ||
for(i = 1; i<=999; i+=1) { | ||
_init_u(i,0) = _time; | ||
} | ||
_init_u(1000,0) = _time; | ||
for(row = 1; row <= 1000; row++) { | ||
c_row = _c_index(row); | ||
_get_eq_1_var_idxs(row, eq_var); | ||
_get_u_idxs(eq_var); | ||
} | ||
QSS_allocDataMatrix(modelData); | ||
cleanVector(states, 0, 1000); | ||
for(row = 1; row <= 1000; row++) { | ||
c_row = _c_index(row); | ||
_get_eq_1_var_idxs(row, eq_var); | ||
_get_u_idxs(eq_var); | ||
} | ||
SD_setupJacMatrices(modelData->jac_matrices); | ||
simulator->time = QSS_Time(1000,0,1000,0,ST_Binary, NULL); | ||
for(i = 1; i<=1000; i+=1) { | ||
modelData->IT[_input_1(i)] = _idx_u(i,0); | ||
} | ||
simulator->output = SD_Output("init_code_time",0,0,1000,NULL,0,0,CI_Step,SD_Memory,NULL); | ||
SD_output modelOutput = simulator->output; | ||
simulator->model = QSS_Model(MOD_definition, MOD_dependencies, MOD_zeroCrossing, MOD_handlerPos, MOD_handlerNeg, MOD_jacobian, MOD_BDF_definition); | ||
free(states); | ||
} | ||
|
||
void CLC_initializeDataStructs(CLC_simulator simulator) | ||
{ | ||
} | ||
|
51 changes: 51 additions & 0 deletions
51
src/mmoc/tests/system/gt_data/init_code_time/init_code_time.h
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,51 @@ | ||
// Model data access macro. | ||
|
||
#define MODEL_DATA_ACCESS(m) \ | ||
double* x = m->x; | ||
|
||
// Coeff multipliers definition. | ||
|
||
#define COEFF_MULTIPLIER(c) COEFF_MULTIPLIER_##c | ||
#define COEFF_MULTIPLIER_0 1 | ||
#define COEFF_MULTIPLIER_1 1 | ||
|
||
// Model Variables Macros | ||
|
||
// Macros definition for variable: u | ||
#define _idx_u(d1,coeff) ((d1-1)) | ||
#define _state_idx_u(d1,coeff) ((d1-1))*2 + coeff | ||
#define _u(d1,coeff) x[_state_idx_u(d1,coeff)] * COEFF_MULTIPLIER(coeff) | ||
#define _init_u(d1,coeff) x[_state_idx_u(d1,coeff)] | ||
#define _q_u(d1,coeff) q[_state_idx_u(d1,coeff)] * COEFF_MULTIPLIER(coeff) | ||
#define _eval_u(d1,coeff) ((d1-1)) | ||
#define _is_var_u(idx) idx >= 0 && idx < 1000 | ||
#define _get_u_idxs(idx)\ | ||
_d1 = (idx)+ 1; | ||
#define _eval_dep_u(d1,coeff) dx[_state_idx_u(d1,coeff)] | ||
|
||
|
||
// Derivative Equations Macros | ||
|
||
// Macros for equation: 1 | ||
#define _apply_usage_eq_1(_d1) \ | ||
i = _d1; | ||
#define _get_eq_1_var_idxs(row, var)\ | ||
_rg_d1 = 0 + (row-1)+ 1;\ | ||
var = _idx_u(_rg_d1,0); | ||
|
||
// Input Matrix Macros | ||
|
||
#define _input_1(i) ((i-1)) | ||
|
||
// Jacobian Macros definition. | ||
#define _assign_jac(r, val) \ | ||
col_t = dvdx->df_dx_t->size[r] + dvdx->df_dx_t->index[r][0]; \ | ||
dvdx->df_dx_t->index[r][0]++; \ | ||
jac[col_t] = val; | ||
#define _c_index(i) (i-1) | ||
|
||
#define _time t | ||
|
||
// Derivative Macros definition. | ||
// Derivative definition for variable: u | ||
#define _der_u(d1,coeff) dx[coeff+1] |
Oops, something went wrong.