[1] | 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;
|
---|
[2354] | 14 | double cm_min;
|
---|
| 15 | double cm_max;
|
---|
[3751] | 16 | int control_type=NULL;
|
---|
[1] | 17 | int gsize;
|
---|
[3712] | 18 | Parameters* parameters=NULL;
|
---|
[1] | 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: */
|
---|
[2333] | 27 | FetchData(&p_g,&gsize,PG);
|
---|
| 28 | FetchParams(¶meters,PARAMETERS);
|
---|
[1] | 29 |
|
---|
[3712] | 30 | parameters->FindParam(&cm_min,CmMinEnum);
|
---|
| 31 | parameters->FindParam(&cm_max,CmMaxEnum);
|
---|
| 32 | parameters->FindParam(&control_type,ControlTypeEnum);
|
---|
[2333] | 33 |
|
---|
[1] | 34 | /*!Call core code: */
|
---|
[2354] | 35 | ControlConstrainx(p_g,gsize,cm_min,cm_max,control_type);
|
---|
[1] | 36 |
|
---|
| 37 | /*write output : */
|
---|
[2316] | 38 | WriteData(PGOUT,p_g,gsize);
|
---|
[1] | 39 |
|
---|
| 40 | /*Free ressources: */
|
---|
[2333] | 41 | delete parameters;
|
---|
[1] | 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 | }
|
---|