Changeset 471 for library/bdm/estim
- Timestamp:
- 08/05/09 00:01:58 (15 years ago)
- Location:
- library/bdm/estim
- Files:
-
- 3 modified
Legend:
- Unmodified
- Added
- Removed
-
library/bdm/estim/arx.cpp
r412 r471 196 196 void ARX::from_setting( const Setting &set ) 197 197 { 198 RV *yrv = UI::build<RV>(set,"y" );199 RV *rrv = UI::build<RV>(set,"rgr" );198 RV *yrv = UI::build<RV>(set,"y", UI::compulsory); 199 RV *rrv = UI::build<RV>(set,"rgr", UI::compulsory); 200 200 int ylen = yrv->_dsize(); 201 201 int rgrlen = rrv->_dsize(); … … 204 204 mat V0; 205 205 vec dV0; 206 try { 207 UI::get( dV0, set, "dV0" ); 208 } catch(...){ 206 if( !UI::get( dV0, set, "dV0" ) ) 209 207 dV0=concat ( 1e-3*ones ( ylen ), 1e-5*ones ( rgrlen ) ); 210 }211 208 V0=diag ( dV0 ); 212 209 213 210 double nu0; 214 if ( ! set.lookupValue( "nu0", nu0) )211 if ( !UI::get( nu0, set, "nu0") ) 215 212 nu0 = rgrlen+ylen+2; 216 213 217 214 double frg; 218 if ( ! set.lookupValue( "frg", frg) )215 if ( !UI::get( frg, set, "frg") ) 219 216 frg = 1.0; 220 217 … … 230 227 } 231 228 232 /*void ARX::to_setting( Setting &set ) const 233 { 234 Transport::to_setting( set ); 235 236 Setting &kilometers_setting = set.add("kilometers", Setting::TypeInt ); 237 kilometers_setting = kilometers; 238 239 UI::save( passengers, set, "passengers" ); 240 }*/ 241 242 243 } 229 } -
library/bdm/estim/arx.h
r384 r471 142 142 void from_setting( const Setting &set ); 143 143 144 // TODO dodelat void to_setting( Setting &set ) const;145 144 }; 146 145 -
library/bdm/estim/kalman.cpp
r384 r471 251 251 252 252 void EKFCh::from_setting( const Setting &set ) 253 { 254 diffbifn* IM = UI::build<diffbifn>(set, "IM" );255 diffbifn* OM = UI::build<diffbifn>(set, "OM" );253 { 254 diffbifn* IM = UI::build<diffbifn>(set, "IM", UI::compulsory); 255 diffbifn* OM = UI::build<diffbifn>(set, "OM", UI::compulsory); 256 256 257 257 //statistics 258 258 int dim=IM->dimension(); 259 259 vec mu0; 260 if(set.exists("mu0")) 261 UI::get( mu0, set, "mu0"); 262 else 260 if(!UI::get( mu0, set, "mu0")) 263 261 mu0=zeros(dim); 264 262 265 263 mat P0; 266 if(set.exists("dP0")) 267 { 268 vec dP0; 269 UI::get( dP0, set, "dP0"); 264 vec dP0; 265 if(UI::get( dP0, set, "dP0")) 270 266 P0=diag(dP0); 271 } 272 else if ( set.exists( "P0" ) ) 273 UI::get(P0, set, "P0"); 274 else 267 else if ( !UI::get(P0, set, "P0") ) 275 268 P0=eye(dim); 276 269 … … 278 271 279 272 //parameters 280 vec dQ, dR; 281 UI::get( dQ, set, "dQ" );282 UI::get( dR, set, "dR" );273 vec dQ, dR; 274 UI::get( dQ, set, "dQ", UI::compulsory); 275 UI::get( dR, set, "dR", UI::compulsory); 283 276 set_parameters(IM, OM, diag(dQ), diag(dR)); 284 277 285 278 //connect 286 RV* drv = UI::build<RV>(set, "drv" );279 RV* drv = UI::build<RV>(set, "drv", UI::compulsory); 287 280 set_drv(*drv); 288 RV* rv = UI::build<RV>(set, "rv" );281 RV* rv = UI::build<RV>(set, "rv", UI::compulsory); 289 282 set_rv(*rv); 290 283 284 string options; 285 if( UI::get( options, set, "options" ) ) 286 set_options(options); 287 } 288 289 void MultiModel::from_setting( const Setting &set ) 290 { 291 Array<EKFCh*> A; 292 UI::get( A, set, "models", UI::compulsory); 293 294 set_parameters(A); 295 set_drv(A(0)->_drv()); 296 //set_rv(A(0)->_rv()); 297 291 298 string options; 292 299 if(set.lookupValue( "options", options )) … … 294 301 } 295 302 296 /*void EKFCh::to_setting( Setting &set ) const 297 { 298 Transport::to_setting( set ); 299 300 Setting &kilometers_setting = set.add("kilometers", Setting::TypeInt ); 301 kilometers_setting = kilometers; 302 303 UI::save( passengers, set, "passengers" ); 304 }*/ 305 306 void MultiModel::from_setting( const Setting &set ) 307 { 308 Array<EKFCh*> A; 309 UI::get( A, set, "models"); 310 311 set_parameters(A); 312 set_drv(A(0)->_drv()); 313 //set_rv(A(0)->_rv()); 314 315 string options; 316 if(set.lookupValue( "options", options )) 317 set_options(options); 318 } 319 320 /*void MultiModel::to_setting( Setting &set ) const 321 { 322 Transport::to_setting( set ); 323 324 Setting &kilometers_setting = set.add("kilometers", Setting::TypeInt ); 325 kilometers_setting = kilometers; 326 327 UI::save( passengers, set, "passengers" ); 328 }*/ 329 330 331 } 303 }