estimator
with ARX data fields //Data generating system system = { type = "ArxDS"; y = {type="rv"; names=["y", "u"];}; u = {type="rv"; names=[]; }; rgr = {type="rv"; names = ["y","y","y","u"]; times = [-1, -2, -3, -1]; }; //AR parameters theta = [0.8, -0.3, 0.4, 1.0, 0.0, 0.0, 0.0, 0.0]; // offset offset = [0.0, 0.0]; //variance r = [0.1, 0.0, 0.0, 1.0]; // log also theta opt="L_theta"; }; //store results logger = { type= "dirfilelog"; dirname = "exp/arx_ui"; maxlen = 1000; // }; //estimation estimator = { type = "ARXest"; y = {type="rv"; names=["y"]; }; rgr = {type="rv"; names = ["y","y","y","u"]; times = [-1, -2, -3, -1]; }; //optional fields dV0 = [1e-3, 1e-5, 1e-5, 1e-5, 1e-5]; //default: 1e-3 for y, 1e-5 for rgr nu0 = 8.; //default: rgrlen + 2 frg = 1.0; // forgetting, default frg=1.0 }; //experiment description experiment:{ ndat = 9000; };
The structure is interpreted by application estimator
, which looks for fields:
type="DS_offspring"
. In our example, it is of type "ArxDS" which is parsed by bdm::UIArxDS UIbuilder generating a Data Source simulating ARX process. type="logger_offspring"
. In this case, it is of class "dirfilelog" which is parsed by bdm::UIdirfilelog which generates object storing data in directory specified by dirname="" field in fileformat understood by program kst. type="mexlog"
which will store the results in a matlab structure.The exact configuration file may look as follows:
//Data generating system system = { type="external"; filename="arx_test.cfg"; path="system";}; //store results logger = { type= "mexlog"; maxlen = 90; // //dirname = "exp/ax"; }; //estimation estimator = { type = "ARXest"; y = {type="rv"; names=["y"]; }; rgr = {type="rv"; names = ["y","y","y","u"]; times = [-1, -2, -3, -1]; }; //optional fields dV0 = [1e-3, 1e-5, 1e-5, 1e-5, 1e-5]; //default: 1e-3 for y, 1e-5 for rgr //nu0 = 8.; //default: rgrlen + 2 frg = .9991; // forgetting, default frg=1.0 }; //experiment description experiment:{ ndat = 90; };
The resulting structure can be displayed using matlab script arx_test_disp.m, typically producing the following results: