1 | /*\file ControlConstrain.c
|
---|
2 | *\brief: constrain updated parameters during inverse control run
|
---|
3 | */
|
---|
4 |
|
---|
5 | #include "./ControlConstrain.h"
|
---|
6 |
|
---|
7 | void mexFunction( int nlhs, mxArray* plhs[], int nrhs, const mxArray* prhs[]){
|
---|
8 |
|
---|
9 | /*diverse: */
|
---|
10 | int noerr=1;
|
---|
11 |
|
---|
12 | /*input datasets: */
|
---|
13 | double* p_g=NULL;
|
---|
14 | double cm_min;
|
---|
15 | double cm_max;
|
---|
16 | int control_type=NULL;
|
---|
17 | int gsize;
|
---|
18 | Parameters* parameters=NULL;
|
---|
19 |
|
---|
20 | /*Boot module: */
|
---|
21 | MODULEBOOT();
|
---|
22 |
|
---|
23 | /*checks on arguments on the matlab side: */
|
---|
24 | CheckNumMatlabArguments(nlhs,NLHS,nrhs,NRHS,__FUNCT__,&ControlConstrainUsage);
|
---|
25 |
|
---|
26 | /*Input datasets: */
|
---|
27 | FetchData(&p_g,&gsize,PG);
|
---|
28 | FetchParams(¶meters,PARAMETERS);
|
---|
29 |
|
---|
30 | parameters->FindParam(&cm_min,CmMinEnum);
|
---|
31 | parameters->FindParam(&cm_max,CmMaxEnum);
|
---|
32 | parameters->FindParam(&control_type,ControlTypeEnum);
|
---|
33 |
|
---|
34 | /*!Call core code: */
|
---|
35 | ControlConstrainx(p_g,gsize,cm_min,cm_max,control_type);
|
---|
36 |
|
---|
37 | /*write output : */
|
---|
38 | WriteData(PGOUT,p_g,gsize);
|
---|
39 |
|
---|
40 | /*Free ressources: */
|
---|
41 | delete parameters;
|
---|
42 |
|
---|
43 | /*end module: */
|
---|
44 | MODULEEND();
|
---|
45 | }
|
---|
46 |
|
---|
47 | void ControlConstrainUsage(void)
|
---|
48 | {
|
---|
49 | _printf_("\n");
|
---|
50 | _printf_(" usage: [p_g] = %s(p_g,parameters);\n",__FUNCT__);
|
---|
51 | _printf_("\n");
|
---|
52 | }
|
---|