- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

# arx_ui.h

Go to the documentation of this file.

    00001
    00013 #ifndef ARX_UI_H
    00014 #define ARX_UI_H
    00015
    00016
    00017 #include "arx.h"
    00018 #include "stat/loggers_ui.h"
    00019
    00038 class UIARX : public UIbuilder {
    00039 public:
    00040         UIARX() :UIbuilder ( "ARXest" ) {};
    00041         bdmroot* build ( Setting &S ) const {
    00042                 int ylen = S["ychns"].getLength();
    00043                 int rgrlen = S["rgrid"].getLength();
    00044                 // create rvs
    00045                 RV yrv;
    00046                 RV rrv;
    00047                 int i;
    00048                 for ( i=0;i<ylen; i++ ) {yrv.add ( RV ( "y"+num2str(i),i+1 ));}
    00049                 //build regressor
    00050                 Setting& ids=S["rgrid"];
    00051                 Setting& del=S["delays"];
    00052
    00053                 for ( int i=0;i<ids.getLength(); i++ ) {
    00054                         rrv.add (RV("rgr",ids[i],1,del[i]));
    00055                 }
    00056
    00057                 //init
    00058                 mat V0;
    00059                 if ( S.exists ( "dV0" ) ) {
    00060                         V0=diag ( getvec(S["dV0"]) );
    00061                 }
    00062                 else {
    00063                         V0=concat ( 1e-3*ones ( ylen ), 1e-5*ones ( rgrlen ) );
    00064                 }
    00065                 double nu0;
    00066                 if ( S.exists ( "nu0" ) ) {
    00067                         nu0=double(S["nu0"]);
    00068                 }
    00069                 else {
    00070                         nu0 = rgrlen+ylen+2;
    00071                 }
    00072                 double frg;
    00073                 if ( S.exists ( "frg" ) ) {
    00074                         frg = S["frg"];
    00075                 }
    00076                 else {
    00077                         frg = 1.0;
    00078                 }
    00079                 RV thr("{theta r }", vec_2(rgrlen*ylen, ylen*ylen));
    00080                 ARX* A=new ARX (thr, V0, nu0, frg);
    00081                 A->set_drv(concat(yrv,rrv));
    00082
    00083                 return A;
    00084         };
    00085 };
    00086
    00087 UIREGISTER ( UIARX );
    00088
    00089 #endif // DS_UI_H