diff --git a/examples/datasets/buck_id.csv b/examples/datasets/buck_id.csv new file mode 100644 index 00000000..69b1b6b5 --- /dev/null +++ b/examples/datasets/buck_id.csv @@ -0,0 +1,1002 @@ +sampling_time,input,y +0.0,2.21,14.0 +1e-05,2.21,14.0 +2e-05,2.2,14.2 +3e-05,2.21,14.2 +4e-05,2.21,14.4 +5e-05,2.21,14.4 +6e-05,2.21,14.6 +7e-05,2.2,14.6 +8.000000000000002e-05,2.2,14.6 +9.000000000000002e-05,2.2,14.8 +0.0001,2.21,14.8 +0.00011,2.2,15.6 +0.00012,2.2,15.0 +0.00013,2.2,15.2 +0.00014,2.21,15.2 +0.00015,2.21,15.2 +0.00016,2.21,15.4 +0.00017,2.2,15.4 +0.00018,2.21,15.4 +0.00019,2.2,15.4 +0.0002,2.21,15.6 +0.00021,2.2,15.4 +0.00022,2.2,15.6 +0.00023,2.21,15.6 +0.00024,2.21,15.8 +0.00025,2.21,15.6 +0.00026,2.2,15.8 +0.00027,2.2,15.8 +0.00028,2.2,15.8 +0.00029,2.2,15.8 +0.0003,2.2,15.8 +0.00031,2.21,15.8 +0.00032,2.2,15.8 +0.00033,2.21,15.8 +0.00034,2.2,15.8 +0.00035,2.2,15.8 +0.00036,2.2,15.8 +0.00037,2.2,15.8 +0.00038,2.2,15.8 +0.00039,2.2,15.8 +0.0004,2.21,16.0 +0.00041,2.2,15.6 +0.00042,2.2,15.6 +0.00043,2.2,15.6 +0.00044,2.2,15.6 +0.00045,2.2,15.4 +0.00046,2.21,15.4 +0.00047,2.2,15.4 +0.00048,2.2,15.4 +0.00049,2.21,15.4 +0.0005,2.21,15.2 +0.00051,2.21,15.2 +0.00052,2.21,15.2 +0.00053,2.2,15.2 +0.00054,2.2,15.0 +0.00055,2.2,15.0 +0.00056,2.21,15.0 +0.00057,2.21,15.0 +0.00058,2.21,15.0 +0.00059,2.2,14.8 +0.0006,2.2,14.8 +0.00061,2.2,14.8 +0.00062,2.2,14.8 +0.00063,2.2,14.6 +0.00064,2.2,14.6 +0.00065,2.2,14.6 +0.00066,2.2,14.6 +0.00067,2.2,14.4 +0.00068,2.2,14.4 +0.00069,2.2,14.4 +0.0007,2.2,14.4 +0.00071,2.21,14.4 +0.00072,2.2,14.2 +0.00073,2.21,14.2 +0.00074,2.21,14.2 +0.00075,2.2,14.2 +0.00076,2.2,14.2 +0.00077,2.2,14.2 +0.00078,2.2,14.0 +0.00079,2.21,14.0 +0.0008,2.2,14.0 +0.00081,2.2,14.0 +0.00082,2.21,14.0 +0.00083,2.2,14.0 +0.00084,2.2,14.0 +0.00085,2.2,13.8 +0.00086,2.2,14.0 +0.00087,2.2,14.0 +0.00088,2.2,13.8 +0.0008899999999999998,2.21,13.8 +0.0009,2.2,13.8 +0.00091,2.2,13.8 +0.00092,2.2,13.8 +0.00093,2.2,13.8 +0.00094,2.2,13.8 +0.00095,2.2,13.8 +0.00096,2.2,13.8 +0.00097,2.2,13.8 +0.00098,2.2,13.8 +0.00099,2.2,13.8 +0.001,2.2,14.0 +0.00101,2.21,13.8 +0.00102,2.21,13.8 +0.00103,2.2,14.0 +0.00104,2.2,14.0 +0.00105,2.2,14.0 +0.00106,2.2,14.0 +0.00107,2.2,14.0 +0.00108,2.21,14.0 +0.00109,2.2,14.0 +0.0011,2.21,14.0 +0.00111,2.2,14.0 +0.00112,2.2,14.0 +0.00113,2.2,14.2 +0.00114,2.2,13.8 +0.00115,2.2,14.0 +0.00116,2.2,14.2 +0.00117,2.2,14.2 +0.00118,2.2,14.2 +0.00119,2.21,14.2 +0.0012,2.21,14.2 +0.00121,2.21,14.2 +0.00122,2.2,14.2 +0.00123,2.2,14.4 +0.00124,2.2,14.4 +0.00125,2.2,14.4 +0.00126,2.21,14.4 +0.00127,2.2,14.4 +0.00128,2.2,14.4 +0.00129,2.2,14.4 +0.0013,2.19,13.2 +0.00131,2.2,14.4 +0.00132,2.2,14.6 +0.00133,2.2,14.4 +0.00134,2.2,14.4 +0.00135,2.21,14.4 +0.00136,2.2,14.6 +0.00137,2.2,14.6 +0.00138,2.2,14.6 +0.00139,2.2,14.6 +0.0014,2.2,14.6 +0.00141,2.21,14.6 +0.00142,2.21,14.6 +0.00143,2.2,14.4 +0.00144,2.2,14.6 +0.00145,2.2,14.6 +0.00146,2.21,14.6 +0.00147,2.2,14.6 +0.00148,2.21,14.6 +0.00149,2.2,14.6 +0.0015,2.2,14.6 +0.00151,2.21,14.6 +0.00152,2.2,14.6 +0.00153,2.2,14.6 +0.00154,2.2,14.6 +0.00155,2.2,14.6 +0.00156,2.2,14.6 +0.00157,2.2,14.6 +0.00158,2.2,14.6 +0.00159,2.2,14.4 +0.0016,2.2,14.6 +0.00161,2.2,14.6 +0.00162,2.2,14.6 +0.00163,2.21,14.6 +0.00164,2.2,14.6 +0.00165,2.2,14.6 +0.00166,2.2,14.6 +0.00167,2.21,14.6 +0.00168,2.21,14.6 +0.00169,2.2,14.6 +0.0017,2.2,14.6 +0.00171,2.21,14.6 +0.00172,2.2,14.6 +0.00173,2.21,14.6 +0.00174,2.21,14.6 +0.00175,2.2,14.6 +0.00176,2.2,14.4 +0.00177,2.2,14.6 +0.00178,2.2,14.6 +0.00179,2.2,14.6 +0.0018,2.2,14.6 +0.00181,2.2,14.6 +0.00182,2.2,14.4 +0.00183,2.2,14.6 +0.00184,2.2,14.4 +0.00185,2.2,14.4 +0.00186,2.2,14.4 +0.00187,2.2,14.4 +0.00188,2.21,14.4 +0.00189,2.2,14.4 +0.0019,2.2,14.4 +0.00191,2.2,14.4 +0.00192,2.2,14.4 +0.00193,2.2,14.4 +0.00194,2.21,14.4 +0.00195,2.21,14.4 +0.00196,2.21,14.4 +0.00197,2.21,14.4 +0.00198,2.2,14.4 +0.00199,2.21,14.4 +0.002,2.2,14.4 +0.00201,2.2,14.4 +0.00202,2.2,14.4 +0.00203,2.2,14.4 +0.00204,2.21,15.0 +0.00205,2.2,14.4 +0.00206,2.2,14.4 +0.00207,2.2,14.4 +0.00208,2.2,14.2 +0.00209,2.2,14.4 +0.0021,2.21,14.4 +0.00211,2.2,14.4 +0.00212,2.2,14.4 +0.00213,2.2,14.4 +0.00214,2.21,14.4 +0.00215,2.2,14.4 +0.00216,2.2,14.4 +0.00217,2.2,14.2 +0.00218,2.2,14.4 +0.00219,2.21,14.4 +0.0022,2.2,14.4 +0.00221,2.2,14.4 +0.00222,2.2,14.4 +0.00223,2.21,14.4 +0.00224,2.2,14.4 +0.00225,2.2,14.4 +0.00226,2.21,14.4 +0.00227,2.2,14.4 +0.00228,2.2,14.4 +0.00229,2.2,14.4 +0.0023,2.2,14.4 +0.00231,2.2,14.4 +0.00232,2.21,14.4 +0.00233,2.21,14.6 +0.00234,2.2,14.4 +0.00235,2.2,14.4 +0.00236,2.2,14.4 +0.00237,2.2,14.4 +0.00238,2.2,14.4 +0.00239,2.2,14.4 +0.0024,2.2,14.4 +0.00241,2.2,14.4 +0.00242,2.2,14.4 +0.00243,2.2,14.4 +0.00244,2.2,14.4 +0.00245,2.21,14.4 +0.00246,2.21,14.4 +0.00247,2.2,14.4 +0.00248,2.2,14.4 +0.00249,2.19,13.4 +0.0025,2.2,14.4 +0.00251,2.21,14.4 +0.00252,2.21,14.4 +0.00253,2.2,14.4 +0.00254,2.2,14.4 +0.00255,2.2,14.4 +0.00256,2.2,14.4 +0.00257,2.2,14.4 +0.00258,2.2,14.4 +0.00259,2.2,14.4 +0.0026,2.2,14.4 +0.00261,2.2,14.4 +0.00262,2.2,14.4 +0.00263,2.2,14.4 +0.00264,2.2,14.4 +0.00265,2.2,14.4 +0.00266,2.2,14.4 +0.00267,2.2,14.4 +0.00268,2.21,14.4 +0.00269,2.2,14.4 +0.0027,2.2,14.4 +0.00271,2.2,14.4 +0.00272,2.2,14.4 +0.00273,2.2,14.4 +0.00274,2.21,14.4 +0.00275,2.21,14.4 +0.00276,2.21,14.4 +0.00277,2.21,14.4 +0.00278,2.2,14.0 +0.00279,2.2,14.4 +0.0028,2.2,14.4 +0.00281,2.21,14.4 +0.00282,2.2,14.4 +0.00283,2.21,14.4 +0.00284,2.21,14.4 +0.00285,2.2,14.4 +0.00286,2.2,14.4 +0.00287,2.2,14.4 +0.00288,2.21,14.4 +0.00289,2.2,14.4 +0.0029,2.24,14.4 +0.00291,2.35,14.4 +0.00292,2.42,14.4 +0.00293,2.47,14.4 +0.00294,2.49,14.4 +0.00295,2.5,14.4 +0.00296,2.5,14.4 +0.00297,2.51,14.2 +0.00298,2.51,14.2 +0.00299,2.51,14.2 +0.003,2.51,14.0 +0.00301,2.51,14.0 +0.00302,2.51,14.0 +0.00303,2.51,14.0 +0.00304,2.51,13.8 +0.00305,2.51,13.8 +0.00306,2.51,13.8 +0.00307,2.51,13.8 +0.00308,2.51,13.8 +0.00309,2.51,13.6 +0.0031,2.51,13.6 +0.00311,2.51,13.6 +0.00312,2.51,13.6 +0.00313,2.51,13.4 +0.00314,2.51,13.4 +0.00315,2.51,13.4 +0.00316,2.51,13.4 +0.00317,2.51,13.4 +0.00318,2.51,13.4 +0.00319,2.51,13.2 +0.0032,2.51,13.2 +0.00321,2.51,13.2 +0.00322,2.51,13.2 +0.00323,2.51,13.0 +0.00324,2.5,13.0 +0.00325,2.51,13.0 +0.00326,2.51,13.0 +0.00327,2.5,13.0 +0.00328,2.51,13.0 +0.00329,2.5,13.0 +0.0033,2.51,12.8 +0.00331,2.5,12.8 +0.00332,2.51,12.8 +0.00333,2.51,12.8 +0.00334,2.5,12.8 +0.00335,2.51,12.6 +0.00336,2.51,12.6 +0.00337,2.51,12.6 +0.00338,2.51,12.6 +0.00339,2.51,12.6 +0.0034,2.5,12.4 +0.00341,2.5,12.4 +0.00342,2.51,12.4 +0.00343,2.5,12.4 +0.00344,2.51,12.4 +0.00345,2.51,12.4 +0.00346,2.51,12.2 +0.00347,2.5,12.2 +0.00348,2.51,12.2 +0.00349,2.51,12.2 +0.0035,2.5,12.2 +0.00351,2.51,12.0 +0.00352,2.51,12.0 +0.00353,2.51,12.0 +0.00354,2.51,12.0 +0.00355,2.51,12.0 +0.00356,2.51,12.0 +0.00357,2.5,12.0 +0.00358,2.51,12.0 +0.00359,2.51,11.8 +0.0036,2.51,11.8 +0.00361,2.51,11.8 +0.00362,2.51,11.8 +0.00363,2.51,11.8 +0.00364,2.51,11.8 +0.00365,2.51,11.8 +0.00366,2.51,11.8 +0.00367,2.51,11.8 +0.00368,2.5,11.6 +0.00369,2.51,11.6 +0.0037,2.5,11.6 +0.00371,2.51,11.6 +0.00372,2.51,11.6 +0.00373,2.51,11.6 +0.00374,2.51,11.6 +0.00375,2.51,11.6 +0.00376,2.51,11.6 +0.00377,2.51,11.6 +0.00378,2.51,11.6 +0.00379,2.51,11.6 +0.0038,2.5,11.6 +0.00381,2.51,11.6 +0.00382,2.51,11.6 +0.00383,2.51,11.6 +0.00384,2.51,11.6 +0.00385,2.51,11.6 +0.00386,2.5,11.6 +0.00387,2.5,11.6 +0.00388,2.51,11.6 +0.00389,2.51,11.6 +0.0039,2.51,11.6 +0.00391,2.51,11.6 +0.00392,2.51,11.6 +0.00393,2.51,11.8 +0.00394,2.51,11.6 +0.00395,2.51,11.8 +0.00396,2.51,11.8 +0.00397,2.51,12.0 +0.00398,2.5,11.8 +0.00399,2.51,11.8 +0.004,2.51,11.8 +0.00401,2.51,11.8 +0.00402,2.51,11.8 +0.00403,2.51,11.8 +0.00404,2.51,11.8 +0.00405,2.51,11.8 +0.00406,2.51,11.8 +0.00407,2.51,11.8 +0.00408,2.51,12.0 +0.00409,2.51,11.8 +0.0041,2.51,12.0 +0.00411,2.51,11.8 +0.00412,2.51,12.0 +0.00413,2.519999975,12.8 +0.00414,2.5,12.0 +0.00415,2.51,12.0 +0.00416,2.51,12.0 +0.00417,2.51,12.0 +0.00418,2.51,12.0 +0.00419,2.51,12.0 +0.0042,2.5,12.0 +0.00421,2.51,12.0 +0.00422,2.5,12.0 +0.00423,2.51,12.0 +0.00424,2.51,12.0 +0.00425,2.51,12.0 +0.00426,2.51,12.2 +0.00427,2.5,12.0 +0.00428,2.51,12.0 +0.00429,2.51,12.0 +0.0043,2.51,12.0 +0.00431,2.5,12.2 +0.00432,2.51,12.0 +0.00433,2.51,12.0 +0.00434,2.51,12.2 +0.00435,2.51,12.2 +0.00436,2.51,12.2 +0.00437,2.51,12.2 +0.00438,2.51,12.2 +0.00439,2.51,12.2 +0.0044,2.51,12.2 +0.00441,2.51,12.2 +0.00442,2.51,12.2 +0.00443,2.51,12.2 +0.00444,2.51,12.2 +0.00445,2.51,12.2 +0.00446,2.51,12.2 +0.00447,2.51,12.2 +0.00448,2.51,12.2 +0.00449,2.51,12.0 +0.0045,2.51,12.2 +0.00451,2.51,12.2 +0.00452,2.5,12.0 +0.00453,2.51,12.0 +0.00454,2.51,12.2 +0.00455,2.51,12.0 +0.00456,2.5,12.2 +0.00457,2.51,12.2 +0.00458,2.51,12.0 +0.00459,2.51,12.0 +0.0046,2.51,12.0 +0.00461,2.51,12.0 +0.00462,2.51,12.0 +0.00463,2.51,12.0 +0.00464,2.51,12.0 +0.00465,2.51,12.0 +0.00466,2.51,12.2 +0.00467,2.5,12.0 +0.00468,2.5,12.0 +0.00469,2.51,12.0 +0.0047,2.51,12.0 +0.00471,2.51,12.2 +0.00472,2.51,12.0 +0.00473,2.51,12.0 +0.00474,2.51,12.0 +0.00475,2.51,12.0 +0.00476,2.5,12.0 +0.00477,2.51,12.0 +0.00478,2.51,12.0 +0.00479,2.51,12.0 +0.0048,2.51,12.0 +0.00481,2.51,12.0 +0.00482,2.51,12.0 +0.00483,2.51,12.0 +0.00484,2.51,12.0 +0.00485,2.51,12.0 +0.00486,2.51,12.0 +0.00487,2.5,11.6 +0.00488,2.51,12.0 +0.00489,2.51,12.0 +0.0049,2.51,12.0 +0.00491,2.51,12.0 +0.00492,2.51,12.0 +0.00493,2.51,12.0 +0.00494,2.5,12.0 +0.00495,2.51,12.0 +0.00496,2.51,12.0 +0.00497,2.51,12.0 +0.00498,2.51,12.0 +0.00499,2.51,12.0 +0.005,2.5,11.8 +0.00501,2.51,12.0 +0.00502,2.51,12.0 +0.00503,2.5,12.0 +0.00504,2.51,12.0 +0.00505,2.51,12.0 +0.00506,2.51,12.0 +0.00507,2.51,12.0 +0.00508,2.51,12.0 +0.00509,2.51,12.0 +0.0051,2.51,12.0 +0.00511,2.51,12.0 +0.00512,2.51,12.0 +0.00513,2.51,11.8 +0.00514,2.51,12.0 +0.00515,2.51,12.0 +0.00516,2.51,11.8 +0.00517,2.51,12.0 +0.00518,2.51,12.0 +0.00519,2.51,12.0 +0.0052,2.51,12.0 +0.00521,2.51,12.0 +0.00522,2.51,12.0 +0.00523,2.51,12.0 +0.00524,2.51,12.0 +0.00525,2.51,12.0 +0.00526,2.51,12.0 +0.00527,2.51,12.0 +0.00528,2.51,12.0 +0.00529,2.51,12.0 +0.0053,2.51,12.0 +0.00531,2.51,12.0 +0.00532,2.47,11.0 +0.00533,2.51,12.0 +0.00534,2.51,12.0 +0.00535,2.51,12.0 +0.00536,2.51,12.0 +0.00537,2.51,12.0 +0.00538,2.51,12.0 +0.00539,2.51,12.0 +0.0054,2.51,12.0 +0.00541,2.51,12.0 +0.00542,2.51,12.0 +0.00543,2.51,12.0 +0.00544,2.51,12.0 +0.00545,2.5,12.0 +0.00546,2.51,12.0 +0.00547,2.51,12.0 +0.00548,2.51,12.0 +0.00549,2.51,12.0 +0.0055,2.51,12.0 +0.00551,2.51,12.0 +0.00552,2.51,12.0 +0.00553,2.51,12.0 +0.00554,2.51,12.0 +0.00555,2.51,12.0 +0.00556,2.51,12.0 +0.00557,2.44,12.0 +0.00558,2.33,12.0 +0.00559,2.28,12.0 +0.0056,2.25,12.2 +0.00561,2.22,12.2 +0.00562,2.22,12.2 +0.00563,2.22,12.2 +0.00564,2.21,12.4 +0.00565,2.21,12.4 +0.00566,2.21,12.4 +0.00567,2.21,12.6 +0.00568,2.21,12.6 +0.00569,2.2,12.6 +0.0057,2.21,12.8 +0.00571,2.2,12.8 +0.00572,2.21,12.8 +0.00573,2.2,13.0 +0.00574,2.21,13.0 +0.00575,2.2,13.2 +0.00576,2.2,13.4 +0.00577,2.21,13.4 +0.00578,2.2,13.4 +0.00579,2.2,13.6 +0.0058,2.21,13.6 +0.00581,2.21,13.8 +0.00582,2.2,13.8 +0.00583,2.2,14.0 +0.00584,2.2,14.0 +0.00585,2.2,14.2 +0.00586,2.2,14.2 +0.00587,2.2,14.4 +0.00588,2.21,14.4 +0.00589,2.2,14.6 +0.0059,2.2,14.6 +0.00591,2.2,14.6 +0.00592,2.2,14.8 +0.00593,2.21,14.8 +0.00594,2.2,14.8 +0.00595,2.21,15.2 +0.00596,2.2,15.0 +0.00597,2.2,15.2 +0.00598,2.2,15.2 +0.00599,2.2,15.2 +0.006,2.21,15.2 +0.00601,2.2,15.4 +0.00602,2.2,15.4 +0.00603,2.2,15.4 +0.00604,2.21,15.6 +0.00605,2.2,15.6 +0.00606,2.2,15.4 +0.00607,2.2,15.6 +0.00608,2.21,15.8 +0.00609,2.2,15.8 +0.0061,2.21,15.8 +0.00611,2.2,15.8 +0.00612,2.2,15.8 +0.00613,2.2,15.8 +0.00614,2.21,15.8 +0.00615,2.2,15.8 +0.00616,2.2,15.8 +0.00617,2.21,15.8 +0.00618,2.21,15.8 +0.00619,2.2,15.8 +0.0062,2.2,15.8 +0.00621,2.2,15.8 +0.00622,2.2,15.8 +0.00623,2.21,15.6 +0.00624,2.2,15.6 +0.00625,2.2,15.6 +0.00626,2.2,15.6 +0.00627,2.2,15.6 +0.00628,2.2,15.6 +0.00629,2.21,15.4 +0.0063,2.2,15.4 +0.00631,2.2,15.4 +0.00632,2.21,15.4 +0.00633,2.21,15.4 +0.00634,2.2,15.4 +0.00635,2.21,15.4 +0.00636,2.21,15.2 +0.00637,2.2,15.2 +0.00638,2.2,15.2 +0.00639,2.2,15.0 +0.0064,2.2,15.0 +0.00641,2.21,15.0 +0.00642,2.21,14.8 +0.00643,2.2,14.8 +0.00644,2.2,14.8 +0.00645,2.21,14.8 +0.00646,2.21,14.8 +0.00647,2.2,14.6 +0.00648,2.21,14.6 +0.00649,2.2,14.6 +0.0065,2.21,14.6 +0.00651,2.2,14.4 +0.00652,2.21,14.4 +0.00653,2.2,14.4 +0.00654,2.21,14.4 +0.00655,2.2,14.2 +0.00656,2.2,14.2 +0.00657,2.2,14.2 +0.00658,2.2,14.2 +0.00659,2.2,14.2 +0.0066,2.21,14.2 +0.00661,2.21,14.0 +0.00662,2.21,14.0 +0.00663,2.2,14.0 +0.00664,2.2,14.0 +0.00665,2.21,14.0 +0.00666,2.2,14.0 +0.00667,2.2,14.0 +0.00668,2.2,14.0 +0.00669,2.2,14.0 +0.0067,2.2,13.8 +0.00671,2.2,13.8 +0.00672,2.2,13.8 +0.00673,2.2,13.8 +0.00674,2.2,13.8 +0.00675,2.2,13.8 +0.00676,2.21,13.8 +0.00677,2.2,13.8 +0.00678,2.2,13.8 +0.00679,2.2,13.8 +0.0068,2.21,14.2 +0.00681,2.2,13.8 +0.00682,2.2,13.8 +0.00683,2.2,13.8 +0.00684,2.2,13.8 +0.00685,2.2,13.8 +0.00686,2.2,14.0 +0.00687,2.2,14.0 +0.00688,2.31,13.8 +0.00689,2.4,13.8 +0.0069,2.45,13.8 +0.00691,2.48,13.8 +0.00692,2.5,13.8 +0.00693,2.5,13.8 +0.00694,2.51,13.8 +0.00695,2.5,13.8 +0.00696,2.51,13.6 +0.00697,2.51,13.6 +0.00698,2.51,13.6 +0.00699,2.51,13.6 +0.007,2.51,13.6 +0.00701,2.51,13.4 +0.00702,2.51,13.4 +0.00703,2.51,13.4 +0.00704,2.51,13.4 +0.00705,2.51,13.4 +0.00706,2.51,13.2 +0.00707,2.5,13.2 +0.00708,2.51,13.2 +0.00709,2.51,13.2 +0.0071,2.51,13.0 +0.00711,2.51,13.0 +0.00712,2.51,13.0 +0.00713,2.51,13.0 +0.00714,2.5,13.0 +0.00715,2.51,12.8 +0.00716,2.51,13.0 +0.00717,2.51,12.8 +0.00718,2.51,12.8 +0.00719,2.5,12.8 +0.0072,2.5,12.8 +0.00721,2.51,12.8 +0.00722,2.51,12.6 +0.00723,2.5,12.6 +0.00724,2.5,12.6 +0.00725,2.51,12.6 +0.00726,2.5,12.6 +0.00727,2.5,12.4 +0.00728,2.51,12.4 +0.00729,2.51,12.4 +0.0073,2.51,12.4 +0.00731,2.51,12.4 +0.00732,2.51,12.4 +0.00733,2.51,12.2 +0.00734,2.51,12.2 +0.00735,2.51,12.2 +0.00736,2.51,12.2 +0.00737,2.51,12.2 +0.00738,2.51,12.0 +0.00739,2.51,12.2 +0.0074,2.51,12.0 +0.00741,2.51,12.0 +0.00742,2.51,12.0 +0.00743,2.51,12.0 +0.00744,2.51,12.0 +0.00745,2.51,11.8 +0.00746,2.51,11.8 +0.00747,2.51,11.8 +0.00748,2.5,11.8 +0.00749,2.51,11.8 +0.0075,2.51,11.8 +0.00751,2.51,11.8 +0.00752,2.51,11.8 +0.00753,2.51,11.8 +0.00754,2.5,11.6 +0.00755,2.5,11.6 +0.00756,2.51,11.8 +0.00757,2.51,11.6 +0.00758,2.5,11.6 +0.00759,2.51,11.6 +0.0076,2.51,11.6 +0.00761,2.51,11.6 +0.00762,2.51,11.6 +0.00763,2.51,11.6 +0.00764,2.51,11.6 +0.00765,2.51,11.6 +0.00766,2.51,11.6 +0.00767,2.5,11.6 +0.00768,2.51,11.6 +0.00769,2.51,11.6 +0.0077,2.51,11.8 +0.00771,2.51,11.6 +0.00772,2.51,11.6 +0.00773,2.5,11.6 +0.00774,2.51,11.6 +0.00775,2.51,11.6 +0.00776,2.51,11.6 +0.00777,2.51,11.6 +0.00778,2.51,11.6 +0.00779,2.51,11.6 +0.0078,2.51,11.6 +0.00781,2.51,11.6 +0.007820000000000002,2.51,11.8 +0.00783,2.5,11.6 +0.00784,2.51,11.8 +0.007849999999999998,2.51,11.8 +0.007860000000000002,2.5,11.6 +0.00787,2.51,11.8 +0.00788,2.51,11.8 +0.007889999999999998,2.51,11.8 +0.0079,2.51,11.8 +0.00791,2.51,11.8 +0.00792,2.51,11.8 +0.00793,2.51,11.8 +0.00794,2.51,12.0 +0.00795,2.51,11.8 +0.00796,2.51,11.8 +0.00797,2.51,12.0 +0.00798,2.51,12.0 +0.007990000000000002,2.5,11.6 +0.008,2.51,12.0 +0.00801,2.51,12.0 +0.008019999999999998,2.51,12.0 +0.008030000000000002,2.51,12.0 +0.00804,2.51,12.0 +0.00805,2.51,12.0 +0.008059999999999998,2.51,12.0 +0.00807,2.51,12.2 +0.00808,2.51,12.0 +0.00809,2.51,12.0 +0.0081,2.5,12.2 +0.00811,2.51,12.2 +0.00812,2.5,12.0 +0.00813,2.51,12.2 +0.00814,2.51,12.2 +0.00815,2.5,11.4 +0.008160000000000002,2.51,12.2 +0.00817,2.51,12.2 +0.00818,2.51,12.2 +0.008189999999999998,2.51,12.2 +0.008200000000000002,2.51,12.2 +0.00821,2.51,12.2 +0.00822,2.51,12.2 +0.008229999999999998,2.51,12.2 +0.00824,2.51,12.2 +0.00825,2.5,12.2 +0.00826,2.51,12.2 +0.00827,2.51,12.2 +0.00828,2.51,12.2 +0.00829,2.51,12.2 +0.0083,2.5,12.2 +0.00831,2.51,12.2 +0.008319999999999998,2.51,12.2 +0.008330000000000002,2.51,12.2 +0.00834,2.51,12.2 +0.00835,2.51,12.2 +0.008359999999999998,2.51,12.2 +0.008370000000000002,2.51,12.2 +0.00838,2.51,12.2 +0.00839,2.51,12.2 +0.008399999999999998,2.51,12.2 +0.00841,2.51,12.2 +0.00842,2.51,12.2 +0.00843,2.51,12.2 +0.00844,2.5,11.8 +0.00845,2.51,12.2 +0.008460000000000002,2.5,12.2 +0.00847,2.51,12.2 +0.00848,2.51,12.2 +0.008489999999999998,2.51,12.2 +0.008500000000000002,2.51,12.2 +0.00851,2.51,12.2 +0.00852,2.5,12.2 +0.008529999999999998,2.5,12.2 +0.008540000000000002,2.5,12.0 +0.00855,2.51,12.0 +0.00856,2.51,12.2 +0.008569999999999998,2.51,12.0 +0.00858,2.51,12.0 +0.00859,2.51,12.0 +0.0086,2.51,12.0 +0.00861,2.51,12.0 +0.00862,2.51,12.0 +0.008630000000000002,2.51,12.0 +0.00864,2.51,12.0 +0.00865,2.51,12.0 +0.008659999999999998,2.51,12.0 +0.008670000000000002,2.51,12.0 +0.00868,2.51,12.0 +0.00869,2.51,12.0 +0.008699999999999998,2.51,12.0 +0.008710000000000002,2.51,12.0 +0.00872,2.5,12.0 +0.00873,2.51,12.0 +0.00874,2.51,12.0 +0.00875,2.51,12.0 +0.00876,2.51,12.0 +0.00877,2.51,12.0 +0.00878,2.51,12.0 +0.00879,2.51,12.0 +0.008800000000000002,2.51,12.0 +0.00881,2.51,12.0 +0.00882,2.51,12.0 +0.008829999999999998,2.51,12.0 +0.008840000000000002,2.51,12.0 +0.00885,2.51,12.0 +0.00886,2.5,12.0 +0.008869999999999998,2.51,12.0 +0.00888,2.5,12.0 +0.00889,2.51,12.2 +0.0089,2.5,12.0 +0.00891,2.51,12.0 +0.00892,2.51,12.0 +0.00893,2.51,12.0 +0.00894,2.51,12.0 +0.00895,2.51,12.0 +0.00896,2.51,12.0 +0.008970000000000002,2.51,12.0 +0.00898,2.51,12.0 +0.00899,2.51,12.0 +0.008999999999999998,2.51,12.0 +0.00901,2.51,12.0 +0.00902,2.51,12.0 +0.00903,2.51,12.0 +0.00904,2.5,12.0 +0.00905,2.51,12.0 +0.00906,2.51,12.0 +0.00907,2.51,12.0 +0.00908,2.51,12.0 +0.00909,2.51,12.0 +0.0091,2.51,12.0 +0.00911,2.51,12.0 +0.00912,2.51,12.0 +0.00913,2.51,12.0 +0.00914,2.5,12.0 +0.00915,2.51,12.0 +0.00916,2.51,12.0 +0.00917,2.51,12.0 +0.00918,2.51,12.2 +0.00919,2.51,12.0 +0.0092,2.51,12.0 +0.00921,2.51,12.0 +0.00922,2.51,12.0 +0.00923,2.51,12.0 +0.00924,2.51,12.0 +0.00925,2.51,12.0 +0.00926,2.51,12.0 +0.00927,2.51,12.0 +0.00928,2.51,12.0 +0.00929,2.51,12.0 +0.0093,2.51,12.0 +0.00931,2.51,12.0 +0.00932,2.51,12.0 +0.00933,2.51,12.0 +0.00934,2.51,12.0 +0.00935,2.51,12.0 +0.00936,2.51,12.0 +0.00937,2.51,12.0 +0.00938,2.51,12.0 +0.00939,2.51,12.0 +0.0094,2.51,12.0 +0.00941,2.51,12.0 +0.00942,2.51,12.0 +0.00943,2.51,12.0 +0.00944,2.51,12.0 +0.00945,2.51,12.0 +0.00946,2.51,12.0 +0.00947,2.51,12.2 +0.00948,2.51,12.0 +0.00949,2.51,12.0 +0.0095,2.44,12.0 +0.00951,2.33,12.0 +0.00952,2.28,12.2 +0.00953,2.25,12.0 +0.00954,2.23,12.0 +0.00955,2.22,12.2 +0.00956,2.22,12.2 +0.00957,2.21,12.2 +0.00958,2.21,12.2 +0.00959,2.21,12.4 +0.0096,2.21,12.4 +0.00961,2.21,12.4 +0.00962,2.2,12.6 +0.00963,2.21,13.4 +0.00964,2.2,12.6 +0.00965,2.21,12.8 +0.00966,2.21,12.8 +0.00967,2.21,13.0 +0.00968,2.2,13.0 +0.00969,2.21,13.0 +0.0097,2.2,13.2 +0.00971,2.2,13.4 +0.00972,2.2,13.4 +0.00973,2.21,13.4 +0.00974,2.21,13.6 +0.00975,2.2,13.6 +0.00976,2.21,13.8 +0.00977,2.2,13.8 +0.00978,2.21,14.0 +0.00979,2.21,14.0 +0.0098,2.2,14.0 +0.00981,2.21,14.2 +0.00982,2.2,14.2 +0.00983,2.2,14.4 +0.00984,2.2,14.4 +0.00985,2.2,14.6 +0.00986,2.2,14.6 +0.00987,2.2,14.6 +0.00988,2.21,14.8 +0.00989,2.21,14.8 +0.0099,2.2,15.0 +0.00991,2.2,15.0 +0.00992,2.21,15.2 +0.00993,2.21,15.2 +0.00994,2.21,15.2 +0.00995,2.21,15.2 +0.00996,2.2,15.2 +0.00997,2.2,15.4 +0.00998,2.2,15.4 +0.00999,2.21,15.4 +0.01,2.2,15.6 diff --git a/examples/datasets/buck_valid.csv b/examples/datasets/buck_valid.csv new file mode 100644 index 00000000..85affa38 --- /dev/null +++ b/examples/datasets/buck_valid.csv @@ -0,0 +1,1000 @@ +sampling_time,input,y +0.01001,2.2,15.6 +0.01002,2.21,15.6 +0.01003,2.2,15.6 +0.01004,2.2,15.6 +0.01005,2.2,15.6 +0.01006,2.2,15.6 +0.01007,2.21,15.8 +0.01008,2.22,16.6 +0.01009,2.21,15.6 +0.0101,2.2,15.6 +0.01011,2.21,15.8 +0.01012,2.2,15.6 +0.01013,2.21,15.8 +0.01014,2.2,15.6 +0.01015,2.31,15.6 +0.01016,2.4,15.6 +0.01017,2.46,15.6 +0.01018,2.48,15.6 +0.01019,2.5,15.4 +0.0102,2.5,15.4 +0.01021,2.51,15.4 +0.01022,2.5,15.2 +0.01023,2.51,15.2 +0.01024,2.51,15.2 +0.01025,2.5,15.2 +0.01026,2.51,15.0 +0.01027,2.51,15.0 +0.01028,2.51,15.0 +0.01029,2.51,14.8 +0.0103,2.51,14.8 +0.01031,2.51,14.8 +0.01032,2.51,14.8 +0.01033,2.51,14.6 +0.01034,2.51,14.6 +0.01035,2.5,14.6 +0.01036,2.5,14.6 +0.01037,2.51,14.4 +0.01038,2.5,14.4 +0.01039,2.51,14.4 +0.0104,2.51,14.4 +0.01041,2.51,14.2 +0.01042,2.51,14.2 +0.01043,2.51,14.2 +0.01044,2.51,14.0 +0.01045,2.51,14.2 +0.01046,2.51,14.0 +0.01047,2.51,14.0 +0.01048,2.5,14.0 +0.01049,2.51,14.0 +0.0105,2.51,13.8 +0.01051,2.51,13.8 +0.01052,2.51,13.8 +0.01053,2.51,13.6 +0.01054,2.5,13.6 +0.01055,2.51,13.6 +0.01056,2.51,13.6 +0.01057,2.5,13.6 +0.01058,2.51,13.6 +0.01059,2.5,13.6 +0.0106,2.51,13.4 +0.01061,2.51,13.4 +0.01062,2.51,13.4 +0.01063,2.51,13.4 +0.01064,2.51,13.4 +0.01065,2.51,13.4 +0.01066,2.51,13.2 +0.01067,2.51,13.2 +0.01068,2.51,13.2 +0.01069,2.51,13.0 +0.0107,2.51,13.0 +0.01071,2.51,13.0 +0.01072,2.51,13.0 +0.01073,2.51,13.0 +0.01074,2.51,13.0 +0.01075,2.51,12.8 +0.01076,2.51,12.8 +0.01077,2.51,12.8 +0.01078,2.51,12.8 +0.01079,2.51,12.8 +0.0108,2.51,12.6 +0.01081,2.51,12.6 +0.01082,2.51,12.6 +0.01083,2.51,12.6 +0.01084,2.5,12.6 +0.01085,2.51,12.6 +0.01086,2.51,12.4 +0.01087,2.51,12.4 +0.01088,2.51,12.4 +0.01089,2.51,12.4 +0.0109,2.51,12.4 +0.01091,2.51,12.2 +0.01092,2.51,12.2 +0.01093,2.51,12.2 +0.01094,2.51,12.2 +0.01095,2.51,12.2 +0.01096,2.51,12.2 +0.01097,2.51,12.2 +0.01098,2.51,12.0 +0.01099,2.5,12.0 +0.011,2.51,12.0 +0.01101,2.51,12.0 +0.01102,2.51,12.0 +0.01103,2.51,12.0 +0.01104,2.51,11.8 +0.01105,2.51,11.8 +0.01106,2.51,11.8 +0.01107,2.51,11.8 +0.01108,2.51,11.8 +0.01109,2.51,11.8 +0.0111,2.51,11.8 +0.01111,2.5,11.8 +0.01112,2.51,11.8 +0.01113,2.51,11.8 +0.01114,2.51,11.6 +0.01115,2.51,11.6 +0.01116,2.5,11.6 +0.01117,2.51,11.6 +0.01118,2.51,11.6 +0.01119,2.51,11.6 +0.0112,2.51,11.6 +0.01121,2.51,11.6 +0.01122,2.51,11.6 +0.01123,2.51,11.6 +0.01124,2.51,11.6 +0.01125,2.5,11.6 +0.01126,2.51,11.6 +0.01127,2.5,11.6 +0.01128,2.51,11.6 +0.01129,2.51,11.6 +0.0113,2.51,11.6 +0.01131,2.51,11.6 +0.01132,2.51,11.6 +0.01133,2.51,11.6 +0.01134,2.51,11.6 +0.01135,2.5,11.6 +0.01136,2.51,11.6 +0.01137,2.51,11.6 +0.01138,2.51,11.6 +0.01139,2.51,11.8 +0.0114,2.51,11.6 +0.01141,2.5,11.8 +0.01142,2.51,11.8 +0.01143,2.51,11.8 +0.01144,2.51,11.8 +0.01145,2.51,11.8 +0.01146,2.51,11.8 +0.01147,2.51,11.8 +0.01148,2.51,11.8 +0.01149,2.51,11.8 +0.0115,2.51,11.8 +0.01151,2.51,11.8 +0.01152,2.51,11.8 +0.01153,2.51,11.8 +0.01154,2.51,12.0 +0.01155,2.51,12.0 +0.01156,2.5,11.8 +0.01157,2.51,12.0 +0.01158,2.51,12.0 +0.01159,2.51,12.0 +0.0116,2.51,12.0 +0.01161,2.51,12.0 +0.01162,2.51,12.0 +0.01163,2.51,12.0 +0.01164,2.51,12.0 +0.01165,2.51,12.0 +0.01166,2.51,12.0 +0.01167,2.51,12.0 +0.01168,2.51,12.0 +0.01169,2.51,12.0 +0.0117,2.51,12.0 +0.01171,2.51,12.0 +0.01172,2.5,12.0 +0.01173,2.51,12.0 +0.01174,2.51,12.2 +0.01175,2.51,12.0 +0.01176,2.51,12.2 +0.01177,2.51,12.2 +0.01178,2.51,12.2 +0.01179,2.51,12.2 +0.0118,2.51,12.2 +0.01181,2.51,12.2 +0.01182,2.51,12.2 +0.01183,2.5,12.2 +0.01184,2.51,12.2 +0.01185,2.51,12.0 +0.01186,2.51,12.2 +0.01187,2.51,12.2 +0.01188,2.51,12.2 +0.01189,2.51,12.2 +0.0119,2.51,12.2 +0.01191,2.51,12.2 +0.01192,2.51,12.2 +0.01193,2.51,12.2 +0.01194,2.51,12.2 +0.01195,2.5,12.0 +0.01196,2.5,12.2 +0.01197,2.51,12.2 +0.01198,2.51,12.0 +0.01199,2.51,12.2 +0.012,2.51,12.2 +0.01201,2.5,12.0 +0.01202,2.51,12.0 +0.01203,2.51,12.2 +0.01204,2.51,12.0 +0.01205,2.51,12.0 +0.01206,2.51,12.2 +0.01207,2.51,12.0 +0.01208,2.5,12.0 +0.01209,2.51,12.2 +0.0121,2.51,12.0 +0.01211,2.51,12.0 +0.01212,2.51,12.0 +0.01213,2.49,12.0 +0.01214,2.36,12.0 +0.01215,2.29,12.0 +0.01216,2.26,12.0 +0.01217,2.22,11.0 +0.01218,2.23,12.2 +0.01219,2.22,12.2 +0.0122,2.21,12.2 +0.01221,2.21,12.2 +0.01222,2.21,12.2 +0.01223,2.21,12.4 +0.01224,2.21,12.4 +0.01225,2.2,12.4 +0.01226,2.2,12.6 +0.01227,2.21,12.6 +0.01228,2.2,12.6 +0.01229,2.2,12.8 +0.0123,2.2,12.6 +0.01231,2.2,12.8 +0.01232,2.2,13.0 +0.01233,2.2,13.0 +0.01234,2.21,13.0 +0.01235,2.21,13.4 +0.01236,2.2,13.4 +0.01237,2.2,13.4 +0.01238,2.2,13.4 +0.01239,2.21,13.6 +0.0124,2.2,13.6 +0.01241,2.21,13.8 +0.01242,2.21,14.0 +0.01243,2.21,14.0 +0.01244,2.21,14.0 +0.01245,2.21,14.2 +0.01246,2.2,13.6 +0.01247,2.2,14.4 +0.01248,2.2,14.4 +0.01249,2.2,14.6 +0.0125,2.2,14.6 +0.01251,2.2,14.6 +0.01252,2.2,14.8 +0.01253,2.2,14.8 +0.01254,2.2,14.8 +0.01255,2.2,15.0 +0.01256,2.2,15.0 +0.01257,2.2,15.2 +0.01258,2.2,15.2 +0.01259,2.21,15.2 +0.0126,2.2,15.2 +0.01261,2.2,15.4 +0.01262,2.2,15.4 +0.01263,2.2,15.4 +0.01264,2.21,15.6 +0.01265,2.21,15.6 +0.01266,2.2,15.6 +0.01267,2.2,15.6 +0.01268,2.2,15.6 +0.01269,2.21,15.6 +0.0127,2.2,15.6 +0.01271,2.2,15.6 +0.01272,2.2,15.6 +0.01273,2.2,15.8 +0.01274,2.2,15.8 +0.01275,2.2,15.4 +0.01276,2.2,15.6 +0.01277,2.21,15.6 +0.01278,2.2,15.6 +0.01279,2.21,15.6 +0.0128,2.27,15.6 +0.01281,2.38,15.6 +0.01282,2.44,15.6 +0.01283,2.48,15.4 +0.01284,2.49,15.4 +0.01285,2.5,15.4 +0.01286,2.5,15.2 +0.01287,2.51,15.2 +0.01288,2.51,15.2 +0.01289,2.51,15.2 +0.0129,2.51,15.2 +0.01291,2.51,15.0 +0.01292,2.51,15.0 +0.01293,2.51,14.8 +0.01294,2.51,14.8 +0.01295,2.51,14.8 +0.01296,2.5,14.8 +0.01297,2.51,14.8 +0.01298,2.51,14.6 +0.01299,2.51,14.6 +0.013,2.51,14.6 +0.01301,2.51,14.4 +0.01302,2.5,14.4 +0.01303,2.51,14.4 +0.01304,2.51,14.4 +0.01305,2.51,14.4 +0.01306,2.5,14.2 +0.01307,2.51,14.2 +0.01308,2.51,14.2 +0.01309,2.5,14.2 +0.0131,2.51,14.0 +0.01311,2.51,14.0 +0.01312,2.51,14.0 +0.01313,2.51,13.8 +0.01314,2.51,13.8 +0.01315,2.5,13.8 +0.01316,2.51,13.8 +0.01317,2.51,13.8 +0.01318,2.51,13.8 +0.01319,2.51,13.6 +0.0132,2.51,13.6 +0.01321,2.5,13.6 +0.01322,2.51,13.6 +0.01323,2.51,13.4 +0.01324,2.51,13.4 +0.01325,2.51,13.4 +0.01326,2.51,13.4 +0.01327,2.51,13.4 +0.01328,2.51,13.4 +0.01329,2.51,13.4 +0.0133,2.51,13.2 +0.01331,2.51,13.2 +0.01332,2.5,13.2 +0.01333,2.51,13.0 +0.01334,2.51,13.0 +0.01335,2.51,13.0 +0.01336,2.51,13.0 +0.01337,2.51,13.0 +0.01338,2.51,13.0 +0.01339,2.51,13.0 +0.0134,2.5,12.8 +0.01341,2.51,12.8 +0.01342,2.51,12.8 +0.01343,2.51,12.8 +0.01344,2.5,12.8 +0.01345,2.4,12.6 +0.01346,2.31,12.6 +0.01347,2.26,12.6 +0.01348,2.24,12.6 +0.01349,2.23,12.6 +0.0135,2.22,12.6 +0.01351,2.21,12.6 +0.01352,2.21,12.6 +0.01353,2.21,12.6 +0.01354,2.21,12.8 +0.01355,2.21,12.8 +0.01356,2.2,12.8 +0.01357,2.2,12.8 +0.01358,2.2,12.8 +0.01359,2.2,12.8 +0.0136,2.2,13.0 +0.01361,2.2,13.0 +0.01362,2.2,13.0 +0.01363,2.2,13.0 +0.01364,2.21,13.0 +0.01365,2.21,13.6 +0.01366,2.2,13.2 +0.01367,2.2,13.2 +0.01368,2.2,13.4 +0.01369,2.2,13.4 +0.0137,2.2,13.4 +0.01371,2.2,13.6 +0.01372,2.2,13.6 +0.01373,2.2,13.6 +0.01374,2.21,13.6 +0.01375,2.2,13.8 +0.01376,2.2,13.8 +0.01377,2.2,14.0 +0.01378,2.21,14.0 +0.01379,2.2,14.0 +0.0138,2.2,14.2 +0.01381,2.19,13.2 +0.01382,2.2,14.2 +0.01383,2.2,14.4 +0.01384,2.2,14.4 +0.01385,2.2,14.6 +0.01386,2.2,14.6 +0.01387,2.2,14.6 +0.01388,2.2,14.6 +0.01389,2.2,14.8 +0.0139,2.2,14.8 +0.01391,2.21,14.8 +0.01392,2.2,15.0 +0.01393,2.2,15.0 +0.01394,2.2,15.0 +0.01395,2.2,15.0 +0.01396,2.2,15.2 +0.01397,2.21,15.2 +0.01398,2.2,15.2 +0.01399,2.2,15.2 +0.014,2.2,15.2 +0.01401,2.2,15.2 +0.01402,2.2,15.2 +0.01403,2.2,15.2 +0.01404,2.2,15.4 +0.01405,2.2,15.4 +0.01406,2.2,15.4 +0.01407,2.2,15.4 +0.01408,2.2,15.4 +0.01409,2.2,15.4 +0.0141,2.2,15.2 +0.01411,2.2,15.4 +0.01412,2.26,15.4 +0.01413,2.37,15.4 +0.01414,2.44,15.4 +0.01415,2.47,15.2 +0.01416,2.49,15.2 +0.01417,2.5,15.2 +0.01418,2.5,15.2 +0.01419,2.5,15.0 +0.0142,2.51,15.0 +0.01421,2.5,15.0 +0.01422,2.51,14.8 +0.01423,2.51,14.8 +0.01424,2.5,14.8 +0.01425,2.51,14.8 +0.01426,2.51,14.6 +0.01427,2.51,14.6 +0.01428,2.51,14.6 +0.01429,2.51,14.6 +0.0143,2.5,14.4 +0.01431,2.51,14.4 +0.01432,2.51,14.4 +0.01433,2.51,14.4 +0.01434,2.51,14.4 +0.01435,2.5,14.2 +0.01436,2.51,14.2 +0.01437,2.51,14.2 +0.01438,2.51,14.0 +0.01439,2.51,14.0 +0.0144,2.51,14.0 +0.01441,2.51,14.0 +0.01442,2.51,13.8 +0.01443,2.51,13.8 +0.01444,2.51,13.8 +0.01445,2.51,13.8 +0.01446,2.51,13.8 +0.01447,2.51,13.6 +0.01448,2.51,13.6 +0.01449,2.51,13.6 +0.0145,2.51,13.6 +0.01451,2.51,13.6 +0.01452,2.51,13.4 +0.01453,2.5,13.4 +0.01454,2.51,13.4 +0.01455,2.51,13.4 +0.01456,2.51,13.4 +0.01457,2.51,13.4 +0.01458,2.51,13.2 +0.01459,2.51,13.2 +0.0146,2.51,13.2 +0.01461,2.51,13.0 +0.01462,2.51,13.0 +0.01463,2.51,13.0 +0.01464,2.51,13.0 +0.01465,2.51,13.0 +0.01466,2.5,13.0 +0.01467,2.51,13.0 +0.01468,2.51,12.8 +0.01469,2.51,12.8 +0.0147,2.51,12.8 +0.01471,2.51,12.8 +0.01472,2.51,12.6 +0.01473,2.51,12.6 +0.01474,2.51,12.6 +0.01475,2.51,12.6 +0.01476,2.51,12.6 +0.01477,2.5,12.6 +0.01478,2.51,12.6 +0.01479,2.5,12.4 +0.0148,2.51,12.4 +0.01481,2.51,12.4 +0.01482,2.5,12.4 +0.01483,2.51,12.4 +0.01484,2.51,12.2 +0.01485,2.51,12.2 +0.01486,2.51,12.2 +0.01487,2.51,12.2 +0.01488,2.51,12.2 +0.01489,2.51,12.2 +0.0149,2.51,12.0 +0.01491,2.51,12.0 +0.01492,2.51,12.0 +0.01493,2.51,12.0 +0.01494,2.51,12.0 +0.01495,2.51,12.0 +0.01496,2.51,12.0 +0.01497,2.51,11.8 +0.01498,2.5,11.8 +0.01499,2.51,11.8 +0.015,2.5,11.6 +0.01501,2.51,11.8 +0.01502,2.51,11.8 +0.01503,2.5,11.8 +0.01504,2.51,11.8 +0.01505,2.51,11.8 +0.01506,2.51,11.6 +0.01507,2.51,11.6 +0.01508,2.51,11.6 +0.01509,2.51,11.6 +0.0151,2.5,11.6 +0.01511,2.51,11.6 +0.01512,2.51,11.6 +0.01513,2.51,11.6 +0.01514,2.51,11.6 +0.01515,2.51,11.6 +0.01516,2.51,11.6 +0.01517,2.51,11.6 +0.01518,2.51,11.6 +0.01519,2.51,11.6 +0.0152,2.51,11.6 +0.01521,2.51,11.6 +0.01522,2.51,11.6 +0.01523,2.51,11.6 +0.01524,2.51,11.6 +0.01525,2.51,11.6 +0.01526,2.51,11.6 +0.01527,2.51,11.6 +0.01528,2.51,11.6 +0.01529,2.51,11.6 +0.0153,2.51,11.6 +0.01531,2.51,11.6 +0.01532,2.51,11.6 +0.01533,2.51,11.6 +0.01534,2.51,11.8 +0.01535,2.51,11.6 +0.01536,2.5,11.6 +0.01537,2.51,11.8 +0.01538,2.51,11.8 +0.01539,2.51,11.8 +0.0154,2.51,11.8 +0.01541,2.51,11.8 +0.01542,2.5,11.8 +0.01543,2.51,11.8 +0.01544,2.51,11.8 +0.01545,2.49,11.4 +0.01546,2.51,11.8 +0.01547,2.51,12.0 +0.01548,2.51,12.0 +0.01549,2.51,12.0 +0.0155,2.51,12.0 +0.01551,2.51,12.0 +0.01552,2.51,12.0 +0.01553,2.51,12.0 +0.01554,2.51,12.0 +0.01555,2.51,12.0 +0.01556,2.51,12.0 +0.01557,2.51,12.0 +0.01558,2.51,12.0 +0.01559,2.5,12.2 +0.0156,2.51,12.2 +0.01561,2.5,12.2 +0.01562,2.51,12.2 +0.01563,2.51,12.2 +0.01564,2.51,12.2 +0.01565,2.51,12.2 +0.01566,2.51,12.2 +0.01567,2.51,12.2 +0.01568,2.51,12.2 +0.01569,2.51,12.2 +0.0157,2.51,12.2 +0.01571,2.51,12.2 +0.01572,2.51,12.2 +0.01573,2.51,12.2 +0.01574,2.5,12.0 +0.01575,2.51,12.2 +0.01576,2.51,12.2 +0.01577,2.51,12.2 +0.01578,2.51,12.2 +0.01579,2.51,12.2 +0.0158,2.51,12.2 +0.01581,2.51,12.2 +0.01582,2.51,12.2 +0.01583,2.51,12.2 +0.01584,2.5,12.2 +0.01585,2.51,12.2 +0.01586,2.51,12.2 +0.01587,2.51,12.2 +0.01588,2.51,12.2 +0.01589,2.51,12.2 +0.0159,2.51,12.2 +0.01591,2.51,12.2 +0.01592,2.51,12.2 +0.01593,2.51,12.2 +0.01594,2.51,12.2 +0.01595,2.51,12.2 +0.01596,2.51,12.2 +0.01597,2.51,12.2 +0.01598,2.51,12.2 +0.01599,2.5,12.2 +0.016,2.51,12.2 +0.01601,2.51,12.2 +0.01602,2.51,12.2 +0.01603,2.51,12.0 +0.01604,2.51,12.0 +0.01605,2.51,12.2 +0.01606,2.51,12.2 +0.01607,2.5,12.0 +0.01608,2.45,12.2 +0.01609,2.34,12.2 +0.0161,2.28,12.0 +0.01611,2.25,12.2 +0.01612,2.23,12.2 +0.01613,2.22,12.2 +0.01614,2.22,12.2 +0.01615,2.21,12.4 +0.01616,2.21,12.4 +0.01617,2.21,12.4 +0.01618,2.2,12.6 +0.01619,2.21,11.6 +0.0162,2.2,12.6 +0.01621,2.2,12.8 +0.01622,2.2,12.8 +0.01623,2.2,12.8 +0.01624,2.2,13.0 +0.01625,2.2,13.0 +0.01626,2.2,13.0 +0.01627,2.2,13.2 +0.01628,2.2,13.4 +0.01629,2.2,13.4 +0.0163,2.21,13.4 +0.01631,2.21,13.6 +0.01632,2.2,13.6 +0.01633,2.2,13.8 +0.01634,2.21,13.8 +0.01635,2.2,14.0 +0.01636,2.2,14.0 +0.01637,2.21,14.2 +0.01638,2.2,14.2 +0.01639,2.21,14.4 +0.0164,2.21,14.4 +0.01641,2.2,14.4 +0.01642,2.21,14.6 +0.01643,2.21,14.6 +0.01644,2.21,14.8 +0.01645,2.21,14.8 +0.01646,2.2,15.0 +0.01647,2.2,15.0 +0.01648,2.2,14.6 +0.01649,2.2,15.2 +0.0165,2.2,15.2 +0.01651,2.2,15.2 +0.01652,2.21,15.2 +0.01653,2.2,15.4 +0.01654,2.2,15.4 +0.01655,2.2,15.4 +0.01656,2.2,15.6 +0.01657,2.2,15.6 +0.01658,2.2,15.6 +0.01659,2.2,15.6 +0.0166,2.2,15.6 +0.01661,2.21,15.6 +0.01662,2.21,15.6 +0.01663,2.21,15.8 +0.01664,2.23,15.6 +0.01665,2.21,15.8 +0.01666,2.2,15.8 +0.01667,2.2,15.8 +0.01668,2.2,15.8 +0.01669,2.2,15.8 +0.0167,2.21,15.8 +0.01671,2.2,15.8 +0.01672,2.2,15.8 +0.01673,2.2,15.8 +0.01674,2.2,15.6 +0.01675,2.21,15.6 +0.01676,2.2,15.6 +0.01677,2.21,15.6 +0.01678,2.2,15.6 +0.01679,2.2,15.6 +0.0168,2.2,15.6 +0.01681,2.2,15.4 +0.01682,2.21,15.6 +0.01683,2.2,15.4 +0.01684,2.21,15.4 +0.01685,2.2,15.4 +0.01686,2.2,15.2 +0.01687,2.21,15.2 +0.01688,2.2,15.2 +0.01689,2.21,15.2 +0.0169,2.2,15.0 +0.01691,2.21,15.0 +0.01692,2.2,15.0 +0.01693,2.21,15.0 +0.01694,2.2,14.8 +0.01695,2.2,14.8 +0.01696,2.21,14.8 +0.01697,2.2,14.6 +0.01698,2.2,14.6 +0.01699,2.21,14.6 +0.017,2.2,14.6 +0.01701,2.2,14.6 +0.01702,2.2,14.4 +0.01703,2.21,14.4 +0.01704,2.2,14.4 +0.01705,2.2,14.4 +0.01706,2.2,14.4 +0.01707,2.2,14.2 +0.01708,2.21,14.4 +0.01709,2.21,15.2 +0.0171,2.2,14.2 +0.01711,2.21,14.2 +0.01712,2.21,14.2 +0.01713,2.21,14.2 +0.01714,2.2,14.2 +0.01715,2.21,14.0 +0.01716,2.21,14.0 +0.01717,2.2,14.0 +0.01718,2.2,14.0 +0.01719,2.2,14.0 +0.0172,2.2,14.0 +0.01721,2.21,14.0 +0.01722,2.2,13.8 +0.01723,2.2,14.0 +0.01724,2.2,13.8 +0.01725,2.2,13.8 +0.01726,2.21,13.8 +0.01727,2.2,13.8 +0.01728,2.2,13.8 +0.01729,2.2,13.8 +0.0173,2.2,13.8 +0.01731,2.2,13.8 +0.01732,2.21,13.8 +0.01733,2.21,13.8 +0.01734,2.21,13.8 +0.01735,2.2,13.8 +0.01736,2.2,14.0 +0.01737,2.2,14.0 +0.01738,2.2,13.6 +0.01739,2.2,14.0 +0.0174,2.2,14.0 +0.01741,2.23,14.0 +0.01742,2.34,14.0 +0.01743,2.42,14.0 +0.01744,2.47,14.0 +0.01745,2.49,14.0 +0.01746,2.5,14.0 +0.01747,2.51,14.0 +0.01748,2.51,13.8 +0.01749,2.5,13.8 +0.0175,2.51,13.8 +0.01751,2.51,13.8 +0.01752,2.51,13.8 +0.01753,2.51,13.8 +0.01754,2.51,13.6 +0.01755,2.5,13.6 +0.01756,2.51,13.6 +0.01757,2.51,13.4 +0.01758,2.51,13.4 +0.01759,2.5,13.4 +0.0176,2.51,13.4 +0.01761,2.51,13.4 +0.01762,2.51,13.2 +0.01763,2.51,13.4 +0.01764,2.51,13.2 +0.01765,2.51,13.2 +0.01766,2.51,13.2 +0.01767,2.51,13.0 +0.01768,2.51,13.0 +0.01769,2.51,13.0 +0.0177,2.51,13.0 +0.01771,2.5,13.0 +0.01772,2.51,13.0 +0.01773,2.51,12.8 +0.01774,2.51,12.8 +0.01775,2.51,12.8 +0.01776,2.51,12.8 +0.01777,2.51,12.6 +0.01778,2.51,12.6 +0.01779,2.51,12.6 +0.0178,2.51,12.6 +0.01781,2.51,12.6 +0.01782,2.51,12.6 +0.01783,2.51,12.4 +0.01784,2.51,12.4 +0.01785,2.51,12.4 +0.01786,2.51,12.4 +0.01787,2.5,12.4 +0.01788,2.51,12.4 +0.01789,2.51,12.4 +0.0179,2.5,12.2 +0.01791,2.51,12.2 +0.01792,2.5,12.2 +0.01793,2.51,12.2 +0.01794,2.51,12.2 +0.01795,2.51,12.2 +0.01796,2.5,12.0 +0.01797,2.51,12.0 +0.01798,2.5,12.0 +0.01799,2.5,12.0 +0.018,2.51,12.0 +0.01801,2.51,12.0 +0.01802,2.51,11.8 +0.01803,2.51,11.8 +0.01804,2.51,11.8 +0.01805,2.51,11.8 +0.01806,2.51,11.8 +0.01807,2.51,11.8 +0.01808,2.51,11.8 +0.01809,2.51,11.6 +0.0181,2.51,11.8 +0.01811,2.51,11.6 +0.01812,2.51,11.8 +0.01813,2.51,11.6 +0.01814,2.51,11.6 +0.01815,2.51,11.6 +0.01816,2.51,11.6 +0.01817,2.51,11.6 +0.01818,2.5,11.6 +0.01819,2.51,11.6 +0.0182,2.51,11.6 +0.01821,2.51,11.6 +0.01822,2.51,11.6 +0.01823,2.51,11.6 +0.01824,2.51,11.6 +0.01825,2.51,11.6 +0.01826,2.51,11.6 +0.01827,2.51,11.6 +0.01828,2.519999975,12.4 +0.01829,2.51,11.6 +0.0183,2.51,11.6 +0.01831,2.51,11.6 +0.01832,2.51,11.6 +0.01833,2.51,11.6 +0.01834,2.51,11.6 +0.01835,2.51,11.6 +0.01836,2.51,11.6 +0.01837,2.51,11.6 +0.01838,2.5,11.6 +0.01839,2.51,11.8 +0.0184,2.51,11.8 +0.01841,2.51,11.8 +0.01842,2.51,11.8 +0.01843,2.5,11.8 +0.01844,2.51,11.8 +0.01845,2.51,11.8 +0.01846,2.51,11.8 +0.01847,2.51,11.8 +0.01848,2.5,11.8 +0.01849,2.51,11.8 +0.0185,2.51,11.8 +0.01851,2.51,11.8 +0.01852,2.51,12.0 +0.01853,2.51,12.0 +0.01854,2.51,11.8 +0.01855,2.51,12.0 +0.01856,2.51,12.0 +0.01857,2.51,12.0 +0.01858,2.51,12.0 +0.01859,2.51,12.0 +0.0186,2.51,12.0 +0.01861,2.51,12.0 +0.01862,2.51,12.0 +0.01863,2.51,12.0 +0.01864,2.51,12.0 +0.01865,2.51,12.0 +0.01866,2.51,12.0 +0.01867,2.5,12.0 +0.01868,2.51,12.2 +0.01869,2.51,12.2 +0.0187,2.51,12.0 +0.01871,2.51,12.0 +0.01872,2.51,12.2 +0.01873,2.51,13.0 +0.01874,2.51,12.2 +0.01875,2.51,12.2 +0.01876,2.51,12.2 +0.01877,2.51,12.2 +0.01878,2.51,12.2 +0.01879,2.51,12.2 +0.0188,2.51,12.2 +0.01881,2.51,12.2 +0.01882,2.51,12.2 +0.01883,2.51,12.2 +0.01884,2.51,12.2 +0.01885,2.51,12.2 +0.01886,2.51,12.2 +0.01887,2.51,12.0 +0.01888,2.51,12.2 +0.01889,2.51,12.2 +0.0189,2.51,12.0 +0.01891,2.51,12.2 +0.01892,2.51,12.0 +0.01893,2.51,12.0 +0.01894,2.51,12.2 +0.01895,2.51,12.2 +0.01896,2.51,12.0 +0.01897,2.51,12.2 +0.01898,2.51,12.2 +0.01899,2.51,12.2 +0.019,2.51,12.2 +0.01901,2.51,12.0 +0.01902,2.5,11.8 +0.01903,2.51,12.2 +0.01904,2.51,12.2 +0.01905,2.51,12.0 +0.01906,2.51,12.2 +0.01907,2.51,12.0 +0.01908,2.51,12.0 +0.01909,2.51,12.0 +0.0191,2.51,12.0 +0.01911,2.5,12.0 +0.01912,2.51,12.0 +0.01913,2.51,12.0 +0.01914,2.51,12.0 +0.01915,2.51,12.0 +0.01916,2.51,12.0 +0.01917,2.51,12.0 +0.01918,2.51,12.0 +0.01919,2.51,12.0 +0.0192,2.51,12.0 +0.01921,2.51,12.0 +0.01922,2.51,12.0 +0.01923,2.51,12.0 +0.01924,2.51,12.0 +0.01925,2.51,12.0 +0.01926,2.51,12.0 +0.01927,2.51,12.0 +0.01928,2.51,12.0 +0.01929,2.51,12.0 +0.0193,2.51,12.0 +0.01931,2.51,12.0 +0.01932,2.51,12.0 +0.01933,2.5,12.0 +0.01934,2.51,12.0 +0.01935,2.51,12.0 +0.01936,2.51,12.0 +0.01937,2.51,12.0 +0.01938,2.51,12.0 +0.01939,2.51,12.0 +0.0194,2.51,12.0 +0.01941,2.51,12.0 +0.01942,2.51,12.0 +0.01943,2.51,12.0 +0.01944,2.51,12.0 +0.01945,2.51,12.0 +0.01946,2.51,12.0 +0.01947,2.49,11.2 +0.01948,2.51,12.0 +0.01949,2.51,12.0 +0.0195,2.51,12.0 +0.01951,2.51,12.0 +0.01952,2.51,12.0 +0.01953,2.51,12.0 +0.01954,2.51,12.0 +0.01955,2.51,12.0 +0.01956,2.51,12.0 +0.01957,2.51,12.0 +0.01958,2.51,12.0 +0.01959,2.51,12.0 +0.0196,2.51,12.0 +0.01961,2.51,12.0 +0.01962,2.51,12.0 +0.01963,2.51,12.0 +0.01964,2.51,12.0 +0.01965,2.51,12.0 +0.01966,2.51,12.0 +0.01967,2.51,12.0 +0.01968,2.51,12.0 +0.01969,2.51,12.0 +0.0197,2.51,12.0 +0.01971,2.51,12.0 +0.01972,2.51,12.0 +0.01973,2.51,12.0 +0.01974,2.51,12.0 +0.01975,2.51,12.0 +0.01976,2.5,11.6 +0.01977,2.51,12.0 +0.01978,2.51,12.0 +0.01979,2.51,12.0 +0.0198,2.51,12.0 +0.01981,2.5,12.0 +0.01982,2.51,12.0 +0.01983,2.51,12.0 +0.01984,2.51,12.0 +0.01985,2.51,12.0 +0.01986,2.51,12.0 +0.01987,2.51,12.0 +0.01988,2.51,12.0 +0.01989,2.51,12.0 +0.0199,2.51,12.0 +0.01991,2.51,12.0 +0.01992,2.51,12.0 +0.01993,2.51,12.0 +0.01994,2.51,12.0 +0.01995,2.51,12.0 +0.01996,2.51,12.0 +0.01997,2.51,12.0 +0.01998,2.51,12.0 +0.01999,2.51,12.0 diff --git a/examples/multiobjective.ipynb b/examples/multiobjective.ipynb new file mode 100644 index 00000000..3814cbc1 --- /dev/null +++ b/examples/multiobjective.ipynb @@ -0,0 +1,756 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Multiobjective parameter estimation" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example: Buck converter\n", + "\n", + "Example created by Gabriel Bueno Leandro, Samir Milani Martins and Wilson Rocha\n", + "\n", + "
A buck converter is a type of DC/DC converter that steps down the voltage from its input to its output while increasing the current. It is a type of switched-mode power supply (SMPS) that typically contains at least two semiconductors, such as a diode and a transistor, and at least one energy storage element, such as a capacitor or inductor. Modern buck converters often replace the diode with a second transistor for synchronous rectification. Buck converters are similar to boost converters, which step up the voltage from their input to their output.
\n", + "\n", + "## Reference \n", + "\n", + "**For further information, check this reference: https://doi.org/10.1080/00207170601185053**." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "import pandas as pd\n", + "from sysidentpy.model_structure_selection import FROLS\n", + "from sysidentpy.multiobjective_parameter_estimation import AILS\n", + "from sysidentpy.basis_function._basis_function import Polynomial\n", + "from sysidentpy.utils.display_results import results\n", + "from sysidentpy.utils.plotting import plot_results\n", + "from sysidentpy.metrics import root_relative_squared_error\n", + "from sysidentpy.utils.narmax_tools import set_weights" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Dynamic Behavior" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYEAAAEWCAYAAACAOivfAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8rg+JYAAAACXBIWXMAAAsTAAALEwEAmpwYAABLtElEQVR4nO2deZgU1bXAf7eXYRiWgWHfB5BF1mERVwQVDUHFPUoSlxBjTJ7GxKeJLxq3vGxKXnyJLxqjRo0LLom7cRch7qCggKKgCAMIw77M1st9f9yu7p6eXqq7q7qqu+/v++ar7ltVt05V19xz7z3nniOklGg0Go2mPPE4LYBGo9FonEMrAY1GoyljtBLQaDSaMkYrAY1GoyljtBLQaDSaMkYrAY1GoyljtBLQaDSaMkYrAU1ZIoS4QAjxkRCiUQjxlRDiNiFEN5PnrhdCzLJQFkvr02iyQSsBTdkhhPhP4HfAlUA1cBgwBHhJCFHhpGwaTaHRSkBTVgghugI3AJdKKZ+XUgaklOuBb6AUwbeFEPcIIf477pyZQoj6yOe/A4OBp4UQ+4UQPxVC1AohpBDiIiHEZiHEloiiMc7Pqj77n4JGE8PntAAaTYE5AqgE/hlfKKXcL4T4F3A80JLqZCnluUKI6cCFUsqXAYQQtZHdxwAjgGHAq0KIFcYx2dSn0RQSPRLQlBs9ge1SymCSfVsi+3PlBinlASnlR8DfgHl51KXRFAStBDTlxnagpxAi2Si4X2R/rmyM+/wl0D+PujSagqCVgKbceAs13XN6fKEQohPwdeAV4ABQFbe7b0IdqULvDor7PBjYHPmca30aje1oJaApK6SUe1CG4T8JIWYLIfyROf1HgXrg78ByYI4QokYI0Rf4cUI1W1Hz/on8QghRJYQYC3wHeDhSnmt9Go3taCWgKTuklDcBPwcWAHuBd1BTOcdJKVtQimAFsB54kVhjbvAb4BohxG4hxBVx5a8Da1GjiQVSyhcj5bnWp9HYjtBJZTSa/IiMJL4A/CkMzhqNa9EjAY1GoyljtBLQaDSaMkZPB2k0Gk0Zo0cCGo1GU8YURdiI2bNny+eff95pMTQajabYEJkOKIqRwPbt+Szi1Gg0Gk0qikIJaDQajcYetBLQaDSaMkYrAY1GoyljisIwrNFo3EMgEKC+vp7m5manRdFEqKysZODAgfj9/qzP1UpAo9FkRX19PV26dKG2thYhMjqfaGxGSsmOHTuor69n6NChWZ+vp4M0Gk1WNDc306NHD60AXIIQgh49euQ8MtNKQKPRZI1WAO4in99DKwGNJl8+egya9zgthUaTE1oJaDT5sHUV/OO78OR/OC1JWdG5c+ek5RdccAGPPfZYTnUuX76c5557Lvr9qaee4re//S0ADQ0NHHrooUyaNIklS5YwZ84cdu/enfU1Fi1axJtvvhn9fvvtt3PfffflJK9VaMOwRpMPrY1qu3eLs3Jo8mb58uUsXbqUOXPmADB37lzmzp0LwCuvvMLo0aO59957AZg+fXpO11i0aBGdO3fmiCOOAODiiy+2QPL80CMBjcYSdDReJ5BScskllzBmzBhOPPFEtm3bFt23bNkyZsyYwZQpU/ja177Gli1KUc+cOZOf/exnTJs2jZEjR7JkyRJaW1u59tprefjhh6mrq+Phhx/mnnvu4ZJLLmH58uX89Kc/5bnnnqOuro6mpiZqa2uj4Wzuu+8+JkyYwMSJEzn33HMBePrpp6Mjh1mzZrF161bWr1/P7bffzh/+8Afq6upYsmQJ119/PQsWLACUEjrssMOYMGECp512Grt27Uopr5XokYBGo8mZG55exerNey2tc0z/rlx38lhTxz7++OOsWbOGjz76iK1btzJmzBjmz59PIBDg0ksv5cknn6RXr148/PDDXH311dx9990ABINB3n33XZ577jluuOEGXn75ZW688UaWLl3KrbfeCsA999wDQF1dXbt9BqtWreJXv/oVb7zxBj179mTnzp0AHHXUUbz99tsIIbjzzju56aab+P3vf8/FF19M586dueIKlUX0lVdeidZ13nnn8ac//YkZM2Zw7bXXcsMNN3DLLbeklNcqtBLQaCxBe8s4weLFi5k3bx5er5f+/ftz7LHHArBmzRpWrlzJ8ccfD0AoFKJfv37R804//XQApkyZwvr163O+/quvvsqZZ55Jz549AaipqQHUWoqzzz6bLVu20NramtF/f8+ePezevZsZM2YAcP7553PWWWdZLm8ytBLQaDQ5Y7bHbifJ3COllIwdO5a33nor6TkdOnQAwOv1EgzmnhZaSpn0+pdeeimXX345c+fOZdGiRVx//fU5XwOskzcZ2iag0eSFtgU4ydFHH83ChQsJhUJs2bKF1157DYBRo0bR0NAQVQKBQIBVq1alratLly7s27cvq+sfd9xxPPLII+zYsQMgOh20Z88eBgwYABA1Jqe7RnV1Nd27d4/O9//973+PjgrsRisBjcYK9OIpRzjttNMYMWIE48eP5wc/+EG04ayoqOCxxx7jZz/7GRMnTqSurq6Na2YyjjnmGFavXh01DJth7NixXH311cyYMYOJEydy+eWXA3D99ddz1llnMX369OhUEcDJJ5/M448/HjUMx3Pvvfdy5ZVXMmHCBJYvX861116bzaPImaLIMTx16lS5dOlSp8XQaNqz4R24+wQYeAhcaJ2xzs18/PHHHHzwwU6LoUkgxe9SGpnFNBr3o0cCmuJEKwGNRqMpY7QS0Gjywv3TqRpNOrQS0Gg0mjJGKwGNRqMpY7QS0Gg0mjJGKwGNxgr0OoGCMXPmTF544YU2Zbfccgs//OEPUx5vuJinCgEdH8gtFU888QSrV6+Ofr/22mstjeHjFFoJaDT5UATrbEqNefPmsXDhwjZlCxcuZN68eRnPfe655+jWrVtO101UAjfeeCOzZs3KqS43oZWARmMJeiRQKM4880yeeeYZWlpaAFi/fj2bN2/mwQcfZOrUqYwdO5brrrsu6bnxIaB/9atfMWrUKGbNmsWaNWuix/z1r3/lkEMOYeLEiZxxxhk0Njby5ptv8tRTT3HllVdSV1fHunXr2iSweeWVV5g0aRLjx49n/vz5Udlqa2u57rrrmDx5MuPHj+eTTz6x89HkhG0B5IQQdwMnAduklOPiyi8FLgGCwLNSyp/aJYNGo7GZf10FX31kbZ19x8PXf5tyd48ePZg2bRrPP/88p5xyCgsXLuTss8/mv/7rv6ipqSEUCnHcccfx4YcfMmHChKR1LFu2jIULF/LBBx8QDAaZPHkyU6ZMAVTEzu9973sAXHPNNdx1111ceumlzJ07l5NOOokzzzyzTV3Nzc1ccMEFvPLKK4wcOZLzzjuP2267jR//+McA9OzZk/fff58///nPLFiwgDvvvNOCh2Qddo4E7gFmxxcIIY4BTgEmSCnHAukn4TQa16Ong5wgfkrImAp65JFHmDx5MpMmTWLVqlVtpm4SWbJkCaeddhpVVVV07do1mkEMYOXKlUyfPp3x48fzwAMPZAw8t2bNGoYOHcrIkSMBFQZ68eLF0f12hoG2AttGAlLKxUKI2oTiHwC/lVK2RI7Z1u7EAtDYGmTz7iYO6t3FictrSpFyNQyn6bHbyamnnsrll1/O+++/T1NTE927d2fBggW89957dO/enQsuuIDm5ua0dSQLAQ0qT/ETTzzBxIkTueeee1i0aFHaejLFX7MzDLQVFNomMBKYLoR4RwjxuhDikFQHCiEuEkIsFUIsbWhosFSIi+5bxqz/WUw4rHtxGk0x0rlzZ2bOnMn8+fOZN28ee/fupVOnTlRXV7N161b+9a9/pT3/6KOP5vHHH6epqYl9+/bx9NNPR/ft27ePfv36EQgEeOCBB6LlqcJAjx49mvXr17N27VqgsGGgraDQSsAHdAcOA64EHhEp1LGU8g4p5VQp5dRevXpZKsS/1yrDUEh7dmg0Rcu8efNYsWIF55xzDhMnTmTSpEmMHTuW+fPnc+SRR6Y9d/LkyZx99tnU1dVxxhlntEkc/8tf/pJDDz2U448/ntGjR0fLzznnHG6++WYmTZrEunXrouWVlZX87W9/46yzzmL8+PF4PB5XJJA3i62hpCPTQc8YhmEhxPOo6aBFke/rgMOklGm7+laHkq696lkAPvnlbCr9Xsvq1ZQhX74Jf/s6DD4c5j/vtDQFQYeSdifFEkr6CeBYACHESKAC2F5gGaLogYAmb/RLpCly7HQRfQiYCfQUQtQD1wF3A3cLIVYCrcD50sGsNno6SJM/xjtUpoZhTdFjp3dQquV737brmtkS0oZhTb6UaUciVYJ1jTPk05e2TQm4kbXb9vPF9gPR79o7yHrWbtvPV3uUa97EQdV0qfQ7LJHdRN6hje84K0Y69m+DQBN0H2JJdZWVlezYsYMePXq4TxFICc17lctuRRV4Sr+Jk1KyY8cOKisrczq/9J9QHLP+5/U238Nl2ouzi3BYctKfltAcCANw3uFDuPGUcRnOKnJkOLINqZWzfcc7K08y/jYHdn8Jv7DG1XrgwIHU19djteu2JTTthpa96nNFZ6iqcVScQlFZWcnAgQNzOreslIDBKXX9eXL5Zm0TsJjWUJjmQJhvHjqYVz/ext6mgNMi2U8obvHP7g3uVAI7PrO0Or/fz9ChQy2t0zL+NAV2KH99xpwK37jXUXGKgbIMIHfo0B4AhMMOC1JiBELqgQ7t0YlOHbwEQmWgZEOtTkugiSf+9wiVQSfEAspGCcQbTryRu9YjAWsxGn2/V+D3eqJKoaQJ64bGVcSPzPRvY4qyUQLxnkCeiDFLG4atJRhp9H1eT/kogfjepu5UOE+oJe6zHqWZoWyUQPzURFQJ6H9aS2mNNPoVXg9+r9DTQZrCEz8S0NNBpigLJbCnKcDuptg/q9ejlEBTIOSUSCXJgRb1PH1egc/rYdXmPSU9Gti9ZzfbP14SKzjgQm+ZnV/EPu9a75gYBSEcgpY9se+bliljvSYtZaEEJt7wIof/5tXo984dlFPUHa9/7pRIJcllCz+Ifu5a6WdXY4C/vL4uzRnFzYcfraDnmgdjBc9d4ZwwydjfAH+cFPv+vxOhcadz8tjN8gfafg82wy3j244ONO0oCyUQz/+eU8fMUSoqaRlMVhSUT75SYXZDYcmvT1frA3Y1lu6QfF+Hfnyn9Uq2HXOzKvB2cFagRJp30+4tb96T7MjSoHGH2p56G1yxNlaup+zSUnbrBPp364jP62FYr07ROWyN9fTuUkm3Kn9JTwc1eap4LTyJ5nHHQMsGeNddaQOTNn6lPE9u3Nv4b4A3rmnTXkJpKbuRgLHIvcLriXqzaOxBeQiV7njLeH/8PgHeCvc1NskafLfJaCWhACDAkxAeXk8HpaXslICBr1y8VxzE7xElPRIw7s3n8YDHD+Ggu9xEkymBUp4aCbWC198+1Wcp37MFlK0SKBs/dgcwgor5faU92jI6ERVej2p8wF3TLcl6/aXcKw4H1YisXbmLfhMXUr5KwOOhfleT02KUND6P4LNt+0s2ZPf+FtWg+rwiTgm4qNcZTJJoPVlZtrQ2QsMa2PdV/nVZSeNOEEmaNDcpZhdSdkqgeyfVU/B6BF9sP8BLq7c6LFFp0Nga62H276ZC2nbu4GPV5r0seHGNU2LZyiNLNwJQ4fOAiMxDr33JQYkSWPGw2naLCyH94cP51/vAmfB/0+D3o2CHi1yAVzyo1goksurxwstSRJSVEph1cG+G9+oMwH+eMBKAhn0t6U7RmGR/s1IChw6t4YjhPQH4/TfqgNJ9xtUd/Qzo1hG/1wMjZ6tCN7lgGqOTH74FF73etiwf9myMfXbTArnKahgwOfb9xyvVNpli0EQpKyVw1tRB0c9De3YCIKhDiVpCIDLlc8bkWEzzg3p3ZkiPqpK1CwRDkvEDqtWXysjWTVMP4SB0GwwVnaB/HXTpb5F8cYZXN92vlG1DeXcbpKaHtE0gLWWlBPze2Mvri4QSbQ2WZgNVaAJBI3hcW88Mn6d0vbACoXDsfg2/dDc1iqFW5bVk4PVZI5+M+59xkw0k1No+k5jH7y4ZXUiZKYHY7VZEPgdL1GhZaIwRVfwzNr6XqhdWIByOvkdRrxQ39TpDgbbeMlatZYhXJGEXeRsl3i+o76XsEWUBZaUEfJ7Y7Ro9uIAeCVhCazCWSyCeklYCQRkbCXhc6B0UCrRdOWtVr7hN4haX3G84rFJ8Jto8vD73yOhSykoJVPjipoMikUT3t+peghUYITjajwRE1JWylJBSsvNAa+x+jcanZb9zQiXSvLv9dNCBHfnV2drYdiQQcImbtTHCSVQCHp+7jPUupKyUQKU/tpzcWND0Fx1J1BJO/b83AOjob7tkPyThvfW7aAmWlofGXf/+gtZQOHa/xirVN25xTKY27N4IG95qO38vPLDhTfjyzdzqDAVVVM7WfbGyl2/IT06rWPo3tfVXtS2XEj56RCmvDx6A66th75bCy+diykoJHNy3a5vvRww3cg1ru0A+xKfuPGRoTZt94weoZ97YUlpKYNNu1QP+3tHDYoW109XWDaEj9kfWv4w9LVZ21E/Udu/m3OoMNkHjdpXA/VuPqbKKqrSnFAzDVXXivLblI7+mti17YcVD6vOOzwonVxFQVkrA42k7X33kQcqfPaDdRPMiXocmTgeNjijeUrMLBEJhajpV0KdrZaxw2Ay1dYOx1JgH7zcxVtavru2+rOuMTLkMPhxGHA/jz3KPN5QMq6mvjt3alg8+XG1Dre5Qzi6k5JWATPPDG0bMUnVhLBTpwkIY3jOlFrY7EJTtjOBRzxQ3GCKNxjnROwjyUAKR84x5d2+Fu5RAspAR0XuOl1O0P66MKQMlkHqf4S1UqouZCkW6XM2G90ywxBRtIBxu420GxHkIuaBhDCUxlOYb5C6xTo/PPS6xMtw+eii4c/2Gy7BNCQgh7hZCbBNCrIwru14IsUkIsTzyN8eu6xuka3r8vtLspRaadErAmB4qvekgqWIGxeOmSKLJvGXyVgLGSKAitnXDqAcAmWEk0IrOJZgcO0cC9wCzk5T/QUpZF/l7zsbrAxmmgzx6OsgK0k0HleqUWyAYjroZRzEaWTf0jo2GPt5F1JOnfIatw1iV6/VD0CVxocIhkk7zJBudJRsxlDG2KQEp5WLA8azW6Rx/DJfR655cmfqgHPmfF9dQe9WzltfrRtLZ1TtEnvHzq1wWdjhPXv80SeA0o9f5mQsiiW58R239HWNlvkgO5M9fz63ON/+UUKeAQCNsXZ1bfVby9p8hcKB9uT9iuP/3/2jDcAqcsAlcIoT4MDJd1D3VQUKIi4QQS4UQSxsaco9UKCNDwJMn9m+377iDewOw24Zk6H98dW3mg0qEUOSf6/zDh7Tbd/gw5YZbajGaajpVtFl3AsCwY9TWDYuTfJHGrybOhdUYqSR60JilNdLIDpuptoMPU9v4qKJuI947KIoeCcRTaCVwGzAcqAO2AL9PdaCU8g4p5VQp5dRevXrlfEFD+R/cr0u7fV0q/cwY2avk5qsLjWETOKh353b7Kv1eOlV4S+4Zh8Ky/TtV1SOy0wXz5KFW8HVsP/XR6+D8vIN6j1VRSQG618bKnSTdUNTXAQZOS5BRjwjiKagSkFJulVKGpJRh4K/ANPuvqbYihfa3Oxl6OptEqWAsthMp5lpLMc1kMBxutyYiZhNwwTqBVKkWvf7cA6qFgwmG5mTulw6Qycahg8ilpaBKQAjRL+7raYD1k/EJGNNBiTY8A7/X3mToZaADotNB3hQP2efx0FpihuHWYBIlIITKMOZ0zxgiSdd97cu9eQSRMxK5x9cFziuBTPfTLoicng6KJ8lbYg1CiIeAmUBPIUQ9cB0wUwhRhxqPrQe+b9f1DQzDcCqHAL/XY2s46dJq+pJjeAd5UzzkCq8owZFAksVi4J4FVMnCKkN+4aTbhaZ2iTdUpuftrYDwHvB40x9XptimBKSU85IU32XX9dLIAaSeDvJ5ha1Gy7CUeEu852GMdhLDchj4SjCctEook8wv3e8eJeDxty/35JFYJhSIeRiBe8JnZ7ofT+Q3MYzl2kW0DSW/Ynj7fvWCplrQ5BWCTbubeH/DLluun24hVanw5rrtQOopN4+AJ5ZvZl2Di8Is58GexgCBkEx+v1LCO7c5Pwe94sHksx4en4ou+sWS7OoLNMHGt9suyDIUgtORRHd/mX6/ELB1pTu8tlxIySuBHfvVYpaenTsk3T97XF8A1m2zp4EqAx3AzgOqJ2YkmE/klLoBAHy5I4kfdxHy1d5mALpXJZlu6V+ntq1OKzwBnfu2Lz7kQrVt+CS76hojeQhqhsbKqmqgQ7U1yevzoWl3+v09R6jtPh1COhklrwQMz5/+3Tom3T+2v0oQbpddoBxGAsZ8f8/OSRpF4ISxfYDSWTVsTG0NrkkSRnnMKWrrpIeQ8c4Z/vzx1B6pttnKZ0y5DExw6JvwjchqXQfJZJMYMEVto9NGejoonjJQAkbGq9Q2gfjjrKYcUhUYzy6Vd1CpxQ8KpMiiBsRCKjg5Tx4OATJ5Dz3XefxkAemM707bQDLdi1tsFy6l5JVAqgToBrEGyp7WuhzWCQTCkgqvJ/U6Aa8RrbU0noUxakz6TrnBdz5VqkXIXb5UdXr9LvAOyjCq8WolkI6SVwJGAnRfipGAX48E8iYQDKd8vhDL51wq0VoDEW+ypPfsBt95o7FL5h2U64K2xAiiBlYlr8+HjOsEEp6D9g5qQ8krAWMkUJFhJGCXH3s5jASUz3zqV8kIuVwqI4FA2pGAC3znjZ5xsnUCQkTcRLOdDjIiiCaOBCpULH8n7QJmVgxrUmLbOgG38MwK5RGQqpEyeqkLXvyUS44dkbaup1Zs5kcPfdCuvGfniqgrao9OFSz7xfHRfcZI4EBLkGMWLOKWs+s44qDkXjTFyoPvbKBjReqFOIYC/sPLn/LNQwcXSizbeH6lioiatGPhjXihLb0b5txcQKni2PCW2qZaHCUlvH8fHHet+TrfuV1tk00HAXz8NIw9NSsxLWPju+n3t5sW0yOBeEp+JGB45yT15EDFuxmQwnMokSseWZG0vG5Qt+jnHQfa9rCM63+6dR/b9rXwuxfWmLpWMdGxwku3qtRugt2q/FT4PCUzKjIWF47q2z4oIUOOUFsj0bsT7N2ktkaUz0Q6dmsbYtoMTZF1NAOnti03Gv6tq7Krz0qM9QrzFibf32d8QkFpvIdWUfJKIBAKM35AdcrVrABnThkIxAKhpUImvDyHDq0BYP5RQ5MdruqMNHzRM0ukIYwnHJYcO7p3yv1CCM6eOiht8pliIhAKU9ujqn1mMVANbJ/x7rAJVA9Kvn/U17Ofvgm1qrDMRgRRg5phzmcYC7VCl/7qvpLhq4DDflhYmYqIMlACKWK8xGH8MwfShaTNldJo99LSGgqntLkY2B2ttZAEQkmCx8WTT5A2K0hlxDXIpdEOBVIvCnM6XlI62QycXtDmYspACaSI8RKHYReww3BZIp3ftATDMq13ENgfrbWQBEIy/TvltO981DCcouHz5CBfOEUsInA+4bwZJRAvewmOxvOhLJSAmV6qcazVlPqK4XBYEsrgHQTGSKBUlECYinRKz/GecauK8ZPKMJyLkgq1WjuysJJ0shm02V/a/5PZUvJKwGwvFTIvGMulPTeUQCZ7Q7ESyLAYz8DnFYRl+qT0xUIwnGF06XTPOF2vHXJb4BUKJs9PYNTnZMC8cDC2UjsV8bKXeMcsW0reRfTD+j3MOrhP2mOMBuwvr6/jmpPGJD3m+qdWtYsv1KmDenyJcfSPXbAo+vmo370GQL9qFcZ2Rf2eaAL6YT2Vka01FKZ+VxMDu3ekwuthRJ/O/OXcBC8Ml2K4xvrSGN4h9owXrdnGcRl+D7fzxtodUaeApHj9UP8e7KmH6oGFE8xg/Rvp9xs99+UPQV2yiO8JSAkNH0Pvg5Pv93hh+f1wzM+hekD28uZDOAyfPh+LD5QKPRJIScmPBCDzgq3pI1UO49Vb9qY85qXVMZe/n8wayf3fPZTfnTGBHx03gkNqa7j925MZ0qOKAd06MnZANaMT3AfHD1CB6uK9aMYOqGbsgGpaIi6HwZCaVnlh1daicaf8ao+KqGkoxFR8LRJEbsXG3XaLZDtdOvjST231n6S22UbqtIrKrumnZ4wgd18sNldfdOooxTtZe7TabnfA/TnQqLYduqY/btSc2Oci+d8qFCU9EjCmHiYM7Jb2uAHdOnLE8B5p/7GDcZ5Dl82KLSq7/PiRAMwe14/Z42LZM5sDIUb/4vno99+dMYE7zlO9EWMk8Kd5qrFY8MIabn1tLfOmDcbrgTUv7iMQklT43L+oxXhmxqgmFQf17kKFtzTSTIalZPLg7qkPGDkbXv+dc3YBKdv788fTZ6xy7TQ7j28cZyi3RKbOVyMBJ+7XkG3k19If12N43JfifwetpKRHAtFojyYa00wujNl6DiXOkaezSxizSUIQnWsO2uGuagPGc/En85lPwF8iaSYDYZn+fh0PIifbJn9JRjZpJqPB41IZhh2MlxTO4AmVDD0SaEN5KAGPuQYq3Ugg2+BniWGVMxlOE48rFp9645llsglA6aSZDITC+NPdr9NRK2WYjKERsnETNY5LZXx1Ml5SumB5KSmO/61CUdJKINpLzeAdpI7xpO3t57uGwKwSqLA5qqnVpI2tn4Df64kGXytWQmGJlBnuN9dInVYhzYwEclAC6VxE448rJJlkS4YeCbShpJVAtJdqooHK1EvNt1FOlXAlmRxQPBE3A1FFa3K0FSwO5ZYKU++U00lMpMwcLjmbVc3RFchpFouBw0pAjwRypaSVgJEL1txIQPD59gM8uXxTm/J1DfupvepZ29JPtpdD/STLi8SLZvUWlbw701oMUIrw0WX1rNq8h3BYcvnDy4vOW8gIEJj2nTJ6pU9dWvhep5Tw5b+Vi2o6vBXwxevQuDNzndGopKmmgyL3+8kz5uW0CiPJfKZ1AvG8fpM9shQpJa0EtkeSzHetzNxLmDuxPwAvf7ytTflV//gw5+tfc+LB/HzOaH46e5TpcwxX0g07iyMpu6EbU0Vpjcd4xkvX72L7/hb++cEmLrxvqZ3iWc6W3U0AaUNn06lX7HOhE84b18vUyze8ZRpMuHU+8QO1NdwxE+kcWfcRbM5cl9UYSebjn3kqzrhLbXess02cYqSklYAxVTG4R+YGauao3ozs07md94rhZjp5cLesr3/h9GFcdPRwfjjzINPnDI24WhaLYTgYClNV4TU1HXTxTNXwFIu9IxnG7zK8V+fUB8U7IhQ62YpZO8T4syLHZzGFkzJ2kAeGHOmQd1DkmmYWqY0/Ew65EKSDCXBcSIkrAfNGSwCfp71dwOjpdvCl6flZiN3pLq0mEJKmPIMg5qVVLAouGbF3yuQajkIbh80qnVzsFunsDB6fs+sEzHoH5RI8r8QpaSUQzMJoCcrXPbGBMmL/dPAX5lEJIfB5RBEZhsPJ4+onwWg4i3mtQNBkrKQohW5wzCqdqBurRUoqm3UHVpKtd5DTEV5diG0tmxDibiHENiHEyiT7rhBCSCGErXkWW7PwYQfwe9qvFTCySHUw2dBZga+Iwi4HQmF8JtZhQMxDKhBOTM9TPLQGleRm77ngHkJmr2f1WgancihElYBJw7DTuR5ciJ0t2z3A7MRCIcQg4Hhgg43XBmIjAfM91fZrBZoDanhdqOkgQ45imTIJhqSpFdmgRjkVEVfcYg2xbYwETIf0KPR0kNlertFztqr37lQk0UyrmRPxViibQJGsyC8EtikBKeViIJn/2R+An1IAZ90nPlDunmZHAj6v4N31O6m96lm+3HGA2queZf2OxqzqsAKPENz9xhdFEUTunS92mu8Vo57xU8s3c99byrWvYV8Ly7404aboEl77pAHIYiRQaLfJTe+bO85wqfz0RWuu6/GrSKN7NmU+1krql8aubwbjvm/sDju/gOur4Q/j4LVf2yNfEVBQm4AQYi6wSUqZPGN722MvEkIsFUIsbWhoyOl6x4/pw8kT+9Otylwv4eQJ/aOfv/nXd9rsS5ejOF8uPGoYJ03ox/lH1AJEk7bvbXYwRrtJqiq87G8xL+fZhwxiX3OAh9/bGC37xRMOJinPkn3NqufZr1tl+gO/HvFF35K7i3FO7PrC3HFG/uGW1JFzs8IIM13/rjX1mcWY1jK7WGzYMbHP956stns2wrt3WCtXEVEwJSCEqAKuBq41c7yU8g4p5VQp5dRevUz4ACfhe0cP40/zJplerfuNQ2KJuY1pIIPEnAFWUl3l59ZvTqa6o3qR5x+pEtcXgwE1GJYcNqyH6eOvO3ks04bWtHm+uxqLZ442EAozfkB15unBQ78PPUcV3lhqdr7bV6GiglplJDXCUxd6SijUCr0OzrxC2mBgXN6BYEtcPe7vcNlFIUcCw4GhwAohxHpgIPC+EKJvAWUwTaJh1s6RQCLFFESuNRg27y4Zwe/1RHMoFBuBkDR/v06kmczG6GllWkinguaZyS+ciBFXKV5Bl7GxuGD5BKSUHwHRjCoRRTBVSrm9UDJkQ2IDXEAdEA3BUAweQsFw2FSU1nh8Xk/RppkMhDKklozH64DvfDY9Wo8/s+HarF3KmJMv+MgnByXgrVCrm+NHAk6mA3UYO11EHwLeAkYJIeqFEN+161p2kNgAm51SsoIKGxPfW00gC+8gg2xHDm5CJZk3qwQcSMCe1UjAhLtktt5GTox8sokgCjGFFR/mQoYLv7rbJdg2EpBSpk1eKqWstevaVpAYMM5jo00gEWMkUKigdfmQzToBg2xHDm4iGJamguUB5nraVpNNj9bMwimz9XkdiiRqJsl8IsbIQSZ0skIBlS+5zMj43yiEuEQIkSaXXnlQSCVg2AQefMf2pRR5EQpL9jUHTa/DMEgcOWzZ08wzH262UjTb+LB+j/nVwl4/fPlGYX3Ss2mEvRWwZXn6xPRNu8zXBbDoN4WNnLrhrexHAqmmj977a/7yFCFm3ua+wHtCiEeEELOFKGBr6ADXnKhc3Xp36QDAHedOYcqQ7lw4fWjBZBjTTyXNfnOdK80lUTbtUhE1s53fP+qgnozq06VN2d8j6waKgaZWk9MGRmOz/yv7hEkkGyUw4ni1/XBh6mN2mfxd/FWqMW7ZC/u3ZT7eKjz+7CO1nvOg2nZNCDq37F5rZCoyMo6jpJTXCCF+AZwAfAe4VQjxCHCXlLLkYrJeOH0YF04f1qbshLGFdWAaVFPFiRP68fEWi3y4bcIIyzFhYHVW580e14/Z4/pFv3/rzrdpDrjf/mEou0Nqa8ydMOYU+OzFwk6RZGMTmHIBLF6Q3phsdjpICJizAJ7+UYGNrFJFMM2GgVPh+j3qd/llJHLN+LNiC8/KDFPjWqmWrn4V+QsC3YHHhBA6O4NNVGRId+kGoiEUzE6PpECF63C/EohGEDVrCI+GZiigXSDba3n96RvtbLyNCm0cllLdb7bTQQbxKTi9Fc6lA3WYjCMBIcSPgPOB7cCdwJVSyoAQwgN8hgoBobEYX5Jgdm4jYARTy1MJ+DweWl2u8CBOCZg1bEfTLhbQQyjba3kyeAhl620EhVMC2QaPSyReCTgVCtsFmHl6PYHTpZRtJgellGEhxEn2iKVJFtbabQSiYZXzMxNV+ERRjARiocmzHAkUdDooy2t5K6yZDoKYEijUdFC2weMSiTdvOuHO6xLM2ARShnmQUn5srTgag2Rhrd2GkTTetLdMCpIl83EjppLMx1PonnEu1/L6MowEcsg8VqjGNNuEMunwOuDO6xKK12G7xPF7PexpClC/K0VeVxewYaeSLV8l4Pd6WL+jkbXb9lkhlm3sjMQ4Mr9YLNI4vXhN4WLTZBvAzVsBa19qu3rWYN2r8NSPsqsLYPlD2cmQK0Z+4WxXDCfD61eeTc178q+ryNBKwKWM7KtcKF9evdVhSVKzp0n1Ent2znE4HmHaULUM5akVW/KWyU4Ml1jTWeZ6jlTbDW/CjrU2SZWAMc8963pzx3dQ7shsbZf7Cf5+GgQOmL92zxFq+5lF4akzsWu92uajBAYdBnNvhY6RpVAbCxwF1QVoJeBS5oxXLpRutgsYLpN9qzOEVc7A2YcMjiabcTPGCu6DeqdJMh9P9UA4+wH1uZDzzUdeBkf9xNyxh/9Qba2Ysuo+BCbOK1widyPMQ++xudfx3Rdg8rkw/Dj1vQztAloJuBQjiU2rixvG6By5BWEgfF4RtTG4lViS+Szut+AeM63ZzZFbPY9fSC8bQ+ZcvYPicSoKqgvQSsClGA2Nm9cKBLL1lkmD3+txfaykmHdQDkqgEB4z4ZCKh5ONt4zVHkyFDJ+dr3dQPNHnUH7GYa0EXIrXI/AId0cSVcHjBFZEEvF7hatHPRAblWWVarSQHjO5+M1bHfjNTFA6qzCuY4V3kBNrOlyCVgIuxu/1RH3x3UgwLPP2DDIohlXDxkggq4B5hVwrkEvP2I6E84VaJxBVelZ4B1n8HIoIrQRcjBDwl9c/Z0+jO1/MxZ82mM7qlwmvR/DI0nrzwdkKzPMrt/DoMpUXOauRgNHTfutWG6RKYOtqtc3FJvDqr6A1C0+gdPUFGuHzRfnXlYkNb6mtVS6iAE9fBi3udlW2Gq0EHOC8w4dw2LDMQcgG11QBsGRtg90i5cT2/S00WtRod69SPbH3N5gMXVxgLr7/fT7YsBuALpVZNDrVg9V23avQuNN6weJZ/aTa9hlj/pyukUB+DR/Dxnfyl6HfRLVd9Lv868rE7kio9SrzOa5TUhkXBDGbtRElgFYCDnDjKeNYeNHhGY+749ypgMrj60akhG8dOtiSum48Rbn5ufVeDY48qEd200Gde8FJf1Cfky3IshSp/P6HHm3+lMpq+N6r6nMwxXx43/Hm6xt7qnK3DNl9ryhX1EGHgb9j/nV5/VA7XX3eWxy5LaxCKwEX4/e5O81kayhsqU3AqNPN5HS/UbuAzUbHcIic5ucyyZd10pYCxeHJJb9wOgod+8glaCXgYvweI+G8O10ngyFpWb7gYnCJhRzXRESTsNvsfihDIHJIj5gpSXy23jdeX2FcLS1XAgVS1i5DKwEX43d5wvmApSMBQ+G5814NKszmEoinUAuRwqHccuRmWtCWbUNbsJFADknm0xF1Ey2vtQJaCbiYaMJ5F/aOpZSRpOvWTge5XQnkNBIo1KrhXEcCVisBT4HcRHNJMp8OPRLQuA2jYXzJhUHkjCmqCoungxZ96k5PKIO8bAI7bc7GKsNtE6WYxZBvU4r0irkkct+9wf4etdUjAUPZ2f07uQytBLJg3ICuzBzVq2DXM0IWL3Oh22QwnEMcnTR0q1L/gO99YbMbZZ7kNB3UbYjabnzPWmESCYdzmw6q7Ka221NEOj30+2o75Ahz9RmKaMuK7GXJhlDAWiUw5QK19VngbVREaCWQBc9cOp17vjOtYNfzeATfnzEMr1UrsizEqtSSBpV+L2dPHWTZ4jMrUSm2FTlNB/UeDRWdAZun9WQot5GAvzKSrD1Bvu61MP4bMPxYlZi9e625+sadrrbB5uxlyYZQwJrgcQZDjoCDT1bRUMsIrQRcTodI6Ij4hsgNBKJJ5q1rtSt8HlfaP+Lj2uU88ilEYLVcDcOQXD6Z48iiUCEYwhaPBAC8Hcou17BWAi7H5/UgZSx2v1vIOtWiCXwuDSIXr4Bzdon1ZkjobgUynJthGJLLJyWQw/16CmQIzzZsthkKGQDPJdimBIQQdwshtgkhVsaV/VII8aEQYrkQ4kUhRH+7rl8qRP3nXaYEcgqrnIEKrztHAvES5TUSKMg6AQvlkzJHQ3OhlEDQ2nUCUNgAeC7BzpHAPcDshLKbpZQTpJR1wDNAyiT2GoXR83RbD7k1mmDFuukgn1e40kU0HG8TyPV+PRkSultBPtNByeST4RxXIBdoXUSo1Xol4CnAiM1l2KYEpJSLgZ0JZXvjvnbCdktZ8WP0PF9c5S430X3Nqtdo5UjASCzz5PJNltVpBdISm4AfPnrU3iByG9/NYzqoArZ/Cps/UN/3b4N9m/NzOV16d+p4RPkSaLLJJlABjTtg28e5nd96ANa+Yq1MNlNwm4AQ4ldCiI3At0gzEhBCXCSEWCqEWNrQ4G7fcTsZVKPc1a54dIWr4u1/3rAfiLmxWsGg7ipq6mULl1tWpxXEK4Gqihwb2S6RaJ0fPZq/QMkIh+HANmjcntv5hufPc1eq7Xt3qW23QdnX1amn2n7xOnz5Rm7yZGJdJOid1UrAeA4vXZfb+U/9CO4/HXYUz1qDgisBKeXVUspBwAPAJWmOu0NKOVVKObVXr8L55ruNY0f34T+OGQ64zy4AMLJPF8vqOmPKQMvqshIZN2CddXCf3Co550G1DTRaIFESjHnsqd/N7fxjfg5DjoLWiHyGnNOvyL6ujt1h/guReppykycTRr0Hz7W23sMuhj7jcv+dtq9R29b91slkM056Bz0InOHg9YsGI9a+m+wCMe8gFzr2W4wl00FGuGO7jKXGPLavQ27nC6F68IYyCQVUWOpcF2506NJWLqvJJZWmWapqyspDqKBKQAgxIu7rXOCTQl6/WHFjhM2ADd5B8bhpXUTYChdRjxcQNioBC5Kux68VCOcZoTO6VsAmjygrk8wn4q0oKw8hG9SoQgjxEDAT6CmEqAeuA+YIIUYBYeBL4GK7rl9K+FwYYTNgg3dQ2/plbiEabCBeHeW1LsLO6JpW9IzjfeTz9cG3O3G7Ua/V6wSMOsvIQ8g2JSClnJek+C67rlfKuDHCph3rBNrUHw5T4ZK1jPGDkrwM4V6/u3vG8T7yoWD+owqwceQTeY5Wu4gadZZROGl3/Jdp0mL0ttd8ZT4B9ubdTazfbkHi8BR8EpHFLpvA5w32yZ4t0op1AqDcLT95tq1WsYqm3WqbV+/dD/u3wq4vYfUTua85gFjjXG9T0Lxtq9tex0q8fpVz2S73VpehlUAR0KdrJQD/+8pnps854revMnPBIpskghX1uwHw5xJQzQR/eOlTW+rNhfg22+fJQwmEg7DrC9i6Kn+hEnnkXLXNJ2ibkXT+L0cr75iO3XOvyzAMf/xU7nWkY9MytbUj4qehSNe+bH3dLkQrgSLgiOE9GT+guo2B0mm8QnDUQT3x5NMoJmHdr+fQr7qSgIvcYeOfu8gnzOnpd6htqw2jnJ2fq63MY8rwqMvVtnm32n4rjzUN/o4w7ozcw1hkQnhU5FM7vIOmR55DPr+Ti/5XM6GVQJHQr7rSXd5B4XA0B4CVeD2Cgd07Egi6x/5h2VOvrFZbO42O+WTaEgI6x62D6JDnGpBOvdQiNjsIB/MbqaTDcLMtE+OwVgJFgt/rcZ1h2C6jsM/jiSatcQOWdeoyJXR3A/E2hXw9bzw+++7V6iTz8VjxO7kxMUYKtBIoEvxeEfXNdwOBUDi/+fE0+H0eWl10r5atWbDbY8YKjIZVeCFfe4+tLrEWp5aMpxh+JwvRSqBI8Hk9roodFAhJ/D57Xh+/R7jqXi1TR8b8tZsbF0MJWNHLNlxi7ZgfDwftWSMAxfE7WYhWAkWC3+th855m9jU7/2KGw5Lt+1vw2zUS8HpYtXkvTa0hW+rPFssM8kYPc/2/ranPDgwZrehlG4pky/L860pk7yZ7jMIQu/e1LxeVgTdXtBIoEnp0Ui/mnUu+cFgSWB5xD7XLg6e6o2o8Hlm60Zb6s8Wy2+xYo7bv3KZCNdtB3/H5nV/Vo+02r7oi0UTvPSX/uuL55Fm1Xfm4tfUaeCOG4XWvwOb37bmGi9BKoEi4bJYKu2TE8XcSQ4ZT6wbYUv8vTh4TuY7zox4gOjX169PybGC79IFjr1GfW8wv/DOFvxOM+BoMmJxfPWffD99fAhdaEBN/8vkwag607Mm/rniMWP9W12vg9cFZ96jPzXvTHloKaCVQJPi9HrpX+V3hNWM0ipV+e16fTpGY/W4xhBtydK60YPqhZpjaWh0+Qoah16j866nsCv0mQCcLRgIeD/SdoD5bOa1id5pOgOpBhbuWw2glUET4XOImGg0jbdNqYSEEPo97Uk1Gg+VZYQOJJmG32GvGjlSLVmCHkbUQDbPdAfBchFYCRUSF1+OK3rEhg51RPo1Uk27A0mB5drgfhsMqybxdLpP5EA0pbeH9FsJrJ9/fqYgMyloJFBFuScRu90gA1L22umTVcKuVCXRs6RlH6spntbBd2DHyKcRIwBhV5fw7aSWgsQGfR7B0/S7HFcH2/S0Atq0TABU+YumXOwm5YDRgGKgtyads9DB3f5l/XQZG0DhXjgQijel+C/OEN+5UWzuVniH3hreSh77YtT79+fnEcCowWgkUEZ07+Ni0u4lHl9Y7KsfzK79S8lTY909Y4fWwctNeXlz1lW3XMMtzH20BoGtHC+bcjXg3//pZ/nUZfBrJ5+vGkYBxvy/83Lo6P35abTt0ta7ORIy6l94F6xcnXP8Z+N+JsOZfqc93vu9iGq0Eiohbv6nc//Y0Oes6WVXho2/XSqptCCBncNu3pwDO3yvEbAFj+1vQ6PQZB/0n5xerPxEjKfroE62r0yrGnAoVXaydDqqoUlsr1jKkoqoGzvyb+mzkajAwFr999VGaCopHC2glUET076Zipzs9HdQaCjOkR5Wt1xhco+p3+l4NGfp2rcwvjLSBEMqXP2zhamhj3tpv72+SE14f9K8rPu8giC28y0V2PR2ksQOvRyAEjsfVCYbCVNhoD4DY/LsbvKGCIYnfSk8ob4W1DVk0v7ALXUTB+sTthUr96M0jmqj2DtLYhd/rfITNQEjaFkHUwPDEccNIoDUUtjaDmsdn7fSIUZdrlYDFidsLNRLIx7NJjwQ0duGGCJuBUNi2XAIGRv1uWCtgee4Eb4U9LqJu9A4C6xO3FyofQ15rBZx/b83iQncCTTo8QrCuYb/p45sDIXY1trJ9XytCqO+Vfi/De3VmX3OA6io/HXzmjZRSSr7c0cjwXp1zEd80/shIYPnG3YTCEm+GkUdzIMTHW/YSlrLN/bQEQ3Tweanu6GdQTds5850HWqnpFGs4D7QE8XoElX51vhEtdfWWvXSxImSEgdevFnft26riCZmheQ9s/0z1MD0+aN2vMnd16g07Iqkl3egdBKpHvW01BFtiWbvSsfNzFVsp2KKeVXyKymBL4VbxGms6tmeR73rPpsg5kd/K20E5AXTsDjVDrZfRAlz61mhSEZaS19Y08HnDfoaZaIgP+e+X2deSuhc2um8Xnv/x0aav/9a6HTQF7A/xbBhhX1q9lZ/940MWnDUx7fGjf/F8xjrvmz+No0f2AuCdz3dw9h1v89fzpnL8GNUQj73uBXp36cC7V88C4M+L1rLgRdUAjOhtodIz3A//cjRcscbcOb8dnPkYt2azquwKSHjxFzDnpvTHbv8Mbp1aELEyYiSxf/cOmPpd6D06/fF76qEpsobh6R+13//jj6Cbid+xwOjpoCLjP09QQcJ2NZrrDcUrgFPr+rfb/8lX2UWz3HFAXff8I2qzOi8XTpzQD4DHlmW3LuLGU8Zyx7lTuOrrbf9pl325K/p5RSQc9rtf7GhzzLZ9LdHPL6zaGv387cOGZCVDWqZcAL3HwAELF1Adcal1dVnNcdepbeOO9McBHNiutkdeFis750H1l4jdSs9fCbNuUJ/NyB5/zLBj2u/f7Y7Q6IloJVBkjO6nkn+3BrOfcxw3oDrv6xuG2t5dTAzr82R8jvIedVBPThjbl8OGWedHbqlLbEWVCrFs5bxxnzzDXNtJVQ30Gm1uGsc4pnZ6rGz0ieqvSz975EvHoGlt5UpHvN2jz1h75LEBrQSKjJjB1BnjsBFMzZI4OhnI1QPJmEryWthTtNwQ7vWrOWOr1gu4dSrIwOM359UTTrPmwQmbRzTpfBayFxm2KQEhxN1CiG1CiJVxZTcLIT4RQnwohHhcCNHNruuXKv6o/7wzSsAIpmZJHJ0M5Lo4y9AdVnp12qIEwEIvIZcrAbNuotGFb5X2ymMWbxZuokUadtrO/+R7gNkJZS8B46SUE4BPgf+y8folidE7dmoRVTAaUdO9g0gRaRAzeRRlg+UjH08eC5GS4faRgNdvTuGFsnB3LcSCrGyUdZEmprdtfCWlXCyEqE0oezHu69vAmXZdv1QxVuoakTwTaQmGsu6lb9jRiEQiENFtWEo8kYbFKANoMCKIFmA6yAyhsKRhX9tnYbSHnoSGceeBVjbsUHF2duxXvbYdcWUGxve9cektLV0sBrFGrnkvdOiS/JjWRtj/Fa7v5ZvBW6FcP0PB1Anim3bD3s2x492AIcf+ramPCYdVVNg9GRwY9m6GnYk5wiVtf19DscWVde4Ti5dkA066iM4HHnbw+kVJpw7qJ7v68ZV0qfQzd2LM42fjzkam3/RaynMT/eQNjr459TnJ8HqE7WEjAAZ17xj9vHFnY1L5h//8uXZlqZTA39/+kr+/3TaE8z/f38Q/39/UpizZ8+hYYWHAN4AOEZfT+8+A/3g7+TG/zsIQ6vapiIrOsGcjPHMZnPJ/7feHAnDLhFje4IpOalsd51I5+HD4qMAeNoYc//opjDszedrNR8+Hj59qW9ZzRPvj/nlhbjJ86x8wYlZu55rAESUghLgaCAIPpDnmIuAigMGD3edb6xQDunXk9m9P5uL732fb3uY2+z7ffqDd8deceDDrGg7wjakDqRvUjd+cPp4PNuxiTL+urNm6n1F9OnP906szXveXp4ylKhI6ekD3jlktMMuVE8b2ZfqIniz5bDsN+1tSKrFEDFuCoQO6Vfk555DB7Xz9P926j5F9Yr3wrfuaqfB66F6len9hKVm+cTej+3VleK9OFtxRHGNPV+GVW0wkMj/xf9TiqdrpqrHvPgTe+Qs0fAKfRtZHBJvT1+E0s38Dn/4L9qUIDR5oUgpg3Jkw8RyoHgg/eAu69I0dM+cmlUfZ39Ha0NTp6NofJs6DFQ+pNQDJlIChAMadqbygxsyFniOhZT/Uvwern1D7T7297XlbV8Jbt6oFf8ffqMqeuLj9sX3GWHpLiRRcCQghzgdOAo6TMvWknpTyDuAOgKlTpxbPGuwCMHNUb8CcXeDC6cPafJ83bTDzprVVqnf++wvqdzWlrWfuxAG2ho5OxcUzhrPks+1Rr6R0eASEZcwwbFBTVdFuzYBZzpo6KKfzMlJRpcIsG7kA0jFxXvvpgOMj/utPXwbL7rFaOuupGQqDDks9b2543wycCiOOV58TG7+O3eHoK6BhTeGUAMCoryslkGnOv/ZImDo/9v2IS2DvFqUEfJVQN6/t8Z+9rJRA33GxfYYSSDzWRgqqBIQQs4GfATOklI2ZjtckJ2YcLqCHkEPT0rncqyiWOXSzHjNuDQyXLemMw0bAtWzcQAtlDM8nkFw0EmkSV2CXvKZ2uog+BLwFjBJC1AshvgvcCnQBXhJCLBdC3J62Ek1SnAgpbXPQ0JQYKSyzUgIu+efKiNmQ0m6NCZQtXn9qbyjjOViZbMcqDONwLtFLDSUg7Q+1kit2egclG8/cZdf1ygkhBH5PYUNKW5JQJQcMr5xsXGKLRgmYDSldNDeUAU+akY/RwAo3KoFIM5nLSMAYRbg4tLR7nb01afF7BftbAgVLxO5UM2Qkc0mWZrI5RSC74pkOqlANS3OCcTgUhAMmYtXEUwxJTLx+lSQ+kMSIbcQMcuOoJ+rOu6dtuZSxpPeZznUxWgkUKR0rvNz/9gZ+cP+yaNn5d7+bV50DIy6Zw3oqT5iD+8Vy6jrVGe0YCet8xaMrqL3qWZ5esZnaq57lxD8uSRk51JC1KuLWOaKPvWGvc8bfUfUQfzsI1r6synath1/2gJuHpT01RpEoPFD2gD0b4Vd9YoogFITrq+GOGeq7G6eD/BFX5YfOUbIavHEL3BQXHrpzkrDgxv30GWebePniQrWrMcMf503ixqdXszGJV8/lx4/k9U8buPO87ELy3v7tKextDjC2XzX3vrWe8w4fQt2NLwHO9a4H11Txv+fUcdnC5QA89O4GAFZtTu1aaawP6FfdkQcuPJS6Qd3sFjM3plygYuW/ckMswuSWFbH9R/8UBh7iiGi20Hs0fBbxhmrdr0JDJLq2Chf2S/tOhIPntl8LEGiEii5wzM8h2BQJCpiAEPCd55XLqEtx4RPXmOGI4T0Z1qtTUoPpD2YO5x8/OILunbIbilZ39HPE8J5UV/n50XEj6FYVO9+pkYAQglPqBkS/m8k0Fi/qkQf1jC6wcx2desLk89TnZF4zx14NI08orEx2UhM3ujHm19sZW104svF4oO6byfdVVsPhP4Tp/5n6n2TI4cnXF7gErQSKGL/Xk9RDyO78v05ixiMqcaWwq8knmXkxYyi9QuULtosScN/VSqCI8Xk8Sb1m7PDkcUvD2mrGVdQdoprDkxCgLGcDbxEYhuMx7jfR4yab98wNxnCtBDROUuET5hpFC3CJDjC1ctgtspoir2TmFNnNxmE0/vkoATdQBN4/mXDpZKnGDGokEC6Im6hb/jVbgyU2HWR4j4Ra1KpSF/uT5018zz3YrO43mDwarikK+TvHyx7/G7nRpTVLiv8OyphKv4fdjYGkkTSzYUiPKup3NaWNDOrUYrFEkgXJAxVi27AXuENSkwihEpovvln9lTJVNbHPf02Sgxcw9ev5IglnulmY9zkTlXGuoUt+316WIkYrgSLmvMNrqe7oxxgI1O9qZGIO7pB//uYU3v5iB326pn6hnW5Y750/jb8u/pwpQ7rzxtrtTK2t4YVVX3Hvd6ZRv6uRwT2qODoSRtsl+so8p/9FBUUz2PhO8nDLxc7Bc+HkP6ponPHTX1++CRvfhcABcz9e9yFw9v1t8xDbzZAjYOTXwVehfP4/e0kFuhs6w9rrXPxGwcOCayVQxAyqqeKSY5PELc+S6io/XxvbN+0xTjesM0b2YsbIXgD85Hjlc21EBh2ckAS+qKaDAMackn8dbjCSZkIImHJ+8n0Pfxs+fhrT3Y2DT7ZMLFMIAd9cGPs+46f2XKdv4ReVacOwxhRumQ7SJFIiv4uhxMrpPTP0tsMKXCsBTclRdCMBTRz6tys0WgloSg6tAzRFgfGeOvzCaiWgKTm0DihCotNBukkqNPqJa0qGftUq2qO2XxQhRmydxDSaGtvR3kGakuHRiw9n2Ze78JZw7KSS5Wu/gX51MCzV+gGNXWgloCkZ+nfrSP9uHZ0WQ5MLHTrDId91WoqyRE8HaTQaTRmjlYBGU8wY9o9iWCymcSVaCWg0RY22f2jyQysBjUajKWO0EtBoNBon8HZQ2w5dHBVDewdpNBqNE9QeBbNuiOWZdgitBDQajcYJhICjfuy0FHo6SKPRaMoZrQQ0Go2mjLFNCQgh7hZCbBNCrIwrO0sIsUoIERZCTLXr2hqNRqMxh50jgXuA2QllK4HTgcU2Xlej0Wg0JrHNMCylXCyEqE0o+xh0lEeNxjJ8ETdDj9dZOTRFi2u9g4QQFwEXAQwePNhhacqXJ/7jSFZt3uO0GJpUzLxKxeCfdK7TkmiKFCFtjDkSGQk8I6Ucl1C+CLhCSrnUTD1Tp06VS5eaOlSj0Wg0MTJOu2jvII1GoyljtBLQaDSaMsZOF9GHgLeAUUKIeiHEd4UQpwkh6oHDgWeFEC/YdX2NRqPRZMZO76B5KXY9btc1NRqNRpMdejpIo9FoyhitBDQajaaM0UpAo9FoyhitBDQajaaMsXWxmFUIIRqAL3M8vSew3UJxrELLlR1aruxwq1zgXtlKUa7tUsrEGG5tKAolkA9CiKVSStdFLNVyZYeWKzvcKhe4V7ZylUtPB2k0Gk0Zo5WARqPRlDHloATucFqAFGi5skPLlR1ulQvcK1tZylXyNgGNRqPRpKYcRgIajUajSYFWAhqNRlPOSCld/YfKU7wGWAtclWS/AP4Y2f8hMDnTuUAN8BLwWWTbPW7ff0WOXwN8rcBy3Qx8Ejn+caBbpLwWaAKWR/5uL7Bc1wOb4q4/xyXP6+E4mdYDywv8vO4GtgErE87J+/2yUTan37FUcjn9jqWSy7F3DBgEvAZ8DKwCLrP6HZNSulsJAF5gHTAMqABWAGMSjpkD/CvyIA8D3sl0LnCT8WMAVwG/i3weEzmuAzA0cr63gHKdAPgin38XJ1dt4stZ4Od1PSoTXOL1HH1eCef/Hri2UM8rsu9oYHLitfJ9v2yWzbF3LINcjr1j6eRy8h0D+hFTCF2AT7GoDYv/c/t00DRgrZTycyllK7AQOCXhmFOA+6TibaCbEKJfhnNPAe6NfL4XODWufKGUskVK+QVKm04rlFxSyhellMHI+W8DA80+KDvlSoOjz8tACCGAbwAPZZDXSrmQUi4GdiapN9/3yzbZHH7H0j2zVBTiHcsolxPvmJRyi5Ty/Yh8+1AjggFx5+T7jgHutwkMADbGfa8n9hAyHZPu3D5Syi0AkW3vLK5np1zxzEf1DgyGCiE+EEK8LoSYnuR4u+W6RAjxoRDibiFE9yyuZ7dcANOBrVLKz+LK7H5e6cj3/bJTtngK/Y5lwql3zAyOvmORfO2TgHciRVa8Y4D7lUCyJMnS5DFmzs3lerbLJYS4GggCD0SKtgCDpZSTgMuBB4UQXQso123AcKAuIsvvs7ienXIZzKNtD60QzysXsqnLVtkcesfS4eQ7ZgbH3jEhRGfgH8CPpZR7M8iZ9T26XQnUo4wjBgOBzSaPSXfuVmMYGNluy+J6dsqFEOJ84CTgWzIyyRcZ2u2IfF6GmucbWSi5pJRbpZQhKWUY+Cux4aUbnpcPOB1lwCMibyGeVzryfb/slM3JdywlDr9jaXHyHRNC+FEK4AEp5T/jjrHiHYvejGv/UOkvP0cZOAyjytiEY06krVHl3Uznojwk4o0qN0U+j6WtUeVzkhuh7JJrNrAa6JVQVy9DDpSBaRNQU0C5+sWd/xPUnKPjzyvumb1e6OcVt7+W5B44Ob9fNsvm2DuWQS7H3rF0cjn5jkW+3wfckqTevN+xaF3pdrrhD2U5/xSlaa+OlF0MXBz3oP4vsv8jYGq6cyPlPYBXUO5Vr8T/eMDVkePXAF8vsFxrUfN5y4lzOwPOQLmIrQDeB04usFx/jxz7IfAUbf9hHXtekX33GHXElRXqeT2EmhYIoHpg37Xq/bJRNqffsVRyOf2OJZXLyXcMOAo1lfMhCa6zWPSOSSl12AiNRqMpZ9xuE9BoNBqNjWgloNFoNGWMVgIajUZTxmgloNFoNGWMVgIajUZTxmgloCk7hBBXCyFWRUIULBdCHGrjtRYJIVyXvFyjMfA5LYBGU0iEEIejVstOllK2CCF6ohbxaDRliR4JaMqNfsB2KWULgJRyu5RysxDiWiHEe0KIlUKIOyJRI42e/B+EEIuFEB8LIQ4RQvxTCPGZEOK/I8fUCiE+EULcGxldPCaEqEq8sBDiBCHEW0KI94UQj0ZiwiCE+K0QYnXk3AUFfBYajVYCmrLjRWCQEOJTIcSfhRAzIuW3SikPkVKOAzqiRgsGrVLKo4HbgSeB/wDGARcIIXpEjhkF3CGlnADsBX4Yf9HIiOMaYJaUcjKwFLhcCFEDnIYKJTAB+G8b7lmjSYlWApqyQkq5H5gCXAQ0AA8LIS4AjhFCvCOE+Ag4FhWDxeCpyPYjYJVUcd5bUHFZjGBdG6WUb0Q+349a8h/PYaiEH28IIZYD5wNDUAqjGbhTCHE60GjVvWo0ZtA2AU3ZIaUMAYuARZFG//vABFTMlo1CiOuByrhTWiLbcNxn47vxP5QYfyVZuOCXpJTzEuURQkwDjgPOAS5BKSGNpiDokYCmrBBCjBJCjIgrqkMF2gLYHpmnPzOHqgdHjM6gYs//O2H/28CRQoiDInJUCSFGRq5XLaV8DvhxRB6NpmDokYCm3OgM/EkI0Q2VVGUtampoN2q6Zz3wXg71fgycL4T4Cyqy423xO6WUDZFpp4eEEB0ixdcA+4AnhRCVqNHCT3K4tkaTMzqKqEaTJ5HUf89EjMoaTVGhp4M0Go2mjNEjAY1Goylj9EhAo9FoyhitBDQajaaM0UpAo9FoyhitBDQajaaM0UpAo9Foypj/BwXUvQ2u27yPAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# Reading Buck's input and output data\n", + "df_train = pd.read_csv(r'datasets/buck_id.csv')\n", + "df_valid = pd.read_csv(r'datasets/buck_valid.csv')\n", + "\n", + "# Plotting the measured output (identification and validation data)\n", + "plt.figure(1)\n", + "plt.title('Output')\n", + "plt.plot(df_train.sampling_time, df_train.y, label='Identification', linewidth=1.5)\n", + "plt.plot(df_valid.sampling_time, df_valid.y , label='Validation', linewidth=1.5)\n", + "plt.xlabel('Samples')\n", + "plt.ylabel('y')\n", + "plt.legend()\n", + "plt.show()\n" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# Plotting the measured input(identification and validation data)\n", + "plt.figure(2)\n", + "plt.title('Input')\n", + "plt.plot(df_train.sampling_time, df_train.input, label='Identification', linewidth=1.5)\n", + "plt.plot(df_valid.sampling_time, df_valid.input, label='Validation', linewidth=1.5)\n", + "plt.ylim(2.1, 2.6)\n", + "plt.ylabel('u')\n", + "plt.xlabel('Samples')\n", + "plt.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Buck Converter Static Function\n", + "\n", + "The duty cycle, represented by the symbol $D$, is defined as the ratio of the time the system is on ($T_{on}$​) to the total operation cycle time ($T$). Mathematically, this can be expressed as $D=\\frac{T_{on}}{T}$. The complement of the duty cycle, represented by $D'$, is defined as the ratio of the time the system is off ($T_{off}$) to the total operation cycle time ($T$) and can be expressed as $D'=\\frac{T_{off}}{T}$.\n", + "\n", + "The load voltage ($V_o$) is related to the source voltage ($V_d$) by the equation $V_o​=D⋅V_d​=(1−D’)⋅V_d$. For this particular converter, it is known that $D′=\\frac{\\bar{u}-1}{3}​$,​ which means that the static function of this system can be derived from theory to be:\n", + "\n", + "$$\n", + "V_o = \\frac{4V_d}{3} - \\frac{V_d}{3}\\cdot \\bar{u}\n", + "$$\n", + "\n", + "If we assume that the source voltage $V_d$​ is equal to 24 V, then we can rewrite the above expression as follows:\n", + "\n", + "$$\n", + "V_o = (4 - \\bar{u})\\cdot 8\n", + "$$" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# Static data\n", + "Vd = 24\n", + "Uo = np.linspace(0, 4, 50)\n", + "Yo = (4-Uo)*Vd/3\n", + "Uo = Uo.reshape(-1, 1)\n", + "Yo = Yo.reshape(-1, 1)\n", + "plt.figure(3)\n", + "plt.title('Buck Converter Static Function')\n", + "plt.xlabel('$\\\\bar{u}$')\n", + "plt.ylabel('$\\\\bar{y}$')\n", + "plt.plot(Uo, Yo, linewidth=1.5, linestyle='-', marker='o')\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Buck converter static gain\n", + "\n", + "The gain of a Buck converter is a measure of how its output voltage changes in response to changes in its input voltage. Mathematically, the gain can be calculated as the derivative of the converter’s static function, which describes the relationship between its input and output voltages.\n", + "In this case, the static function of the Buck converter is given by the equation:\n", + "\n", + "$$\n", + "V_o = (4 - \\bar{u})\\cdot 8\n", + "$$\n", + "\n", + "Taking the derivative of this equation with respect to $\\hat{u}$, we find that the gain of the Buck converter is equal to −8. In other words, for every unit increase in the input voltage $\\hat{u}$, the output voltage Vo​ will decrease by 8 units." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# Defining the gain\n", + "gain = -8*np.ones(len(Uo)).reshape(-1, 1)\n", + "plt.figure(3)\n", + "plt.title('Gain of the Static Converter')\n", + "plt.xlabel('$\\\\bar{u}$')\n", + "plt.ylabel('$\\\\bar{gain}$')\n", + "plt.plot(Uo, gain, linewidth=1.5, label='gain', linestyle='-', marker='o')\n", + "plt.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Information about the static function and static gain of a system, along with its usual input/output data, can be used as sources of affine information to estimate the parameters of a mathematical model. In this context, a composite cost function is often used to measure the accuracy of the estimated model parameters. This cost function is typically defined as a weighted sum of several individual cost functions, each representing a different aspect of the model’s performance.\n", + "\n", + "In this case, the composite cost function is given by the equation:\n", + "\n", + "$$\n", + "\\gamma(\\hat\\theta) = w_1\\cdot J_{LS}(\\hat{\\theta})+w_2\\cdot J_{SF}(\\hat{\\theta})+w_3\\cdot J_{SG}(\\hat{\\theta})\n", + "$$\n", + "\n", + "where $\\hat{\\theta}$ represents the estimated model parameters, $w_1$​, $w_2$​, and $w_3$ are weighting factors, and $J_{LS}$​, $J_{SF}$​, and $J_{SG}$ are individual cost functions representing the least squares, static function, and static gain aspects of the model’s performance, respectively.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\wilso\\Desktop\\projects\\GitHub\\gabriel\\sysidentpy\\sysidentpy\\utils\\deprecation.py:37: FutureWarning: Passing a string to define the estimator will rise an error in v0.4.0. \n", + " You'll have to use FROLS(estimator=LeastSquares()) instead. \n", + " The only change is that you'll have to define the estimator first instead of passing a string like 'least_squares'. \n", + " This change will make easier to implement new estimators and it'll improve code readability.\n", + " warnings.warn(message, FutureWarning)\n" + ] + }, + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "x_train = df_train.input.values.reshape(-1, 1)\n", + "y_train = df_train.y.values.reshape(-1, 1)\n", + "x_valid = df_valid.input.values.reshape(-1, 1)\n", + "y_valid = df_valid.y.values.reshape(-1, 1)\n", + "\n", + "basis_function = Polynomial(degree=2)\n", + "\n", + "model = FROLS(\n", + " order_selection=True,\n", + " n_info_values=8,\n", + " extended_least_squares=False,\n", + " ylag=2, xlag=2,\n", + " info_criteria='aic',\n", + " estimator='least_squares',\n", + " basis_function=basis_function\n", + ")\n", + "\n", + "model.fit(X=x_train, y=y_train)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The Affine Information Least Squares method will now be called to perform several calculations related to the performance of the objectives. These calculations include the computation of the performance matrix (J), the weights matrix (w), the Euclidean norm (E), and the values of $\\theta$ for each weight. Additionally, the method will also calculate the product of matrix H and matrix R, as well as the product of matrix Q and matrix R." + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
w1w2w3J_lsJ_sgJ_sf||J||:
00.0068420.0030780.9900800.9999701.095045e-050.0000130.245244
10.0075730.0023470.9900800.9999382.294701e-050.0000160.245236
20.0083820.0015380.9900800.9998856.505062e-050.0000180.245223
30.0092770.0006420.9900800.9997174.505632e-040.0000210.245183
40.0068420.0986630.8944951.0000007.393225e-080.0000150.245252
........................
22900.6596320.3335270.0068420.9958963.965701e-041.0000000.244489
22910.7301190.2630390.0068420.9956325.602985e-040.9728410.244412
22920.8081390.1850200.0068420.9953648.321075e-040.8682990.244300
22930.8944950.0986630.0068420.9951001.365000e-030.6604850.244160
22940.9900800.0030780.0068420.9925849.825994e-020.3054920.261455
\n", + "

2295 rows × 7 columns

\n", + "
" + ], + "text/plain": [ + " w1 w2 w3 J_ls J_sg J_sf ||J||:\n", + "0 0.006842 0.003078 0.990080 0.999970 1.095045e-05 0.000013 0.245244\n", + "1 0.007573 0.002347 0.990080 0.999938 2.294701e-05 0.000016 0.245236\n", + "2 0.008382 0.001538 0.990080 0.999885 6.505062e-05 0.000018 0.245223\n", + "3 0.009277 0.000642 0.990080 0.999717 4.505632e-04 0.000021 0.245183\n", + "4 0.006842 0.098663 0.894495 1.000000 7.393225e-08 0.000015 0.245252\n", + "... ... ... ... ... ... ... ...\n", + "2290 0.659632 0.333527 0.006842 0.995896 3.965701e-04 1.000000 0.244489\n", + "2291 0.730119 0.263039 0.006842 0.995632 5.602985e-04 0.972841 0.244412\n", + "2292 0.808139 0.185020 0.006842 0.995364 8.321075e-04 0.868299 0.244300\n", + "2293 0.894495 0.098663 0.006842 0.995100 1.365000e-03 0.660485 0.244160\n", + "2294 0.990080 0.003078 0.006842 0.992584 9.825994e-02 0.305492 0.261455\n", + "\n", + "[2295 rows x 7 columns]" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "w = set_weights(static_function=True, static_gain=True)\n", + "mo_estimator = AILS(final_model=model.final_model)\n", + "J, E, theta, HR, QR, position = mo_estimator.estimate(\n", + " y=y_train, gain=gain, y_static=Yo, X_static=Uo, X=x_train, weighing_matrix=w\n", + ")\n", + "result = {\n", + " \"w1\": w[0, :],\n", + " \"w2\": w[2, :],\n", + " \"w3\": w[1, :],\n", + " \"J_ls\": J[0, :],\n", + " \"J_sg\": J[1, :],\n", + " \"J_sf\": J[2, :],\n", + " \"||J||:\": E,\n", + "}\n", + "pd.DataFrame(result)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "At this point, we can select a value for $\\theta$ that corresponds to the weights in our model. This value of $\\theta$ will determine the relative importance of each objective in the performance matrix, and will affect the overall performance of the model." + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
RegressorsParametersERR
011.5405E+009.999E-01
1y(k-1)2.9687E-012.042E-05
2y(k-2)6.4693E-011.108E-06
3x1(k-1)-4.1302E-014.688E-06
4y(k-1)^22.7671E-013.922E-07
5y(k-2)y(k-1)-5.3474E-018.389E-07
6x1(k-1)y(k-1)4.0624E-035.690E-07
7y(k-2)^22.5832E-013.827E-06
\n", + "
" + ], + "text/plain": [ + " Regressors Parameters ERR\n", + "0 1 1.5405E+00 9.999E-01\n", + "1 y(k-1) 2.9687E-01 2.042E-05\n", + "2 y(k-2) 6.4693E-01 1.108E-06\n", + "3 x1(k-1) -4.1302E-01 4.688E-06\n", + "4 y(k-1)^2 2.7671E-01 3.922E-07\n", + "5 y(k-2)y(k-1) -5.3474E-01 8.389E-07\n", + "6 x1(k-1)y(k-1) 4.0624E-03 5.690E-07\n", + "7 y(k-2)^2 2.5832E-01 3.827E-06" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "model.theta = theta[position, :].reshape(-1, 1) # get the best theta concerning the objectives\n", + "# the model structure is exactly the same, but the order of the regressors is changed in estimate method. Thats why you have to change the model.final_model\n", + "model.final_model = mo_estimator.final_model\n", + "yhat = model.predict(X=x_valid, y=y_valid)\n", + "rrse = root_relative_squared_error(y_valid, yhat)\n", + "r = pd.DataFrame(\n", + " results(\n", + " model.final_model,\n", + " model.theta,\n", + " model.err,\n", + " model.n_terms,\n", + " err_precision=3,\n", + " dtype=\"sci\",\n", + " ),\n", + " columns=[\"Regressors\", \"Parameters\", \"ERR\"],\n", + ")\n", + "r" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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NTUVmZmZ2LRpk/W+KSkpWL9+PXr27IlWrVph3LhxOHfuHB577DG0atUKw4cPx5UrVwAA77//Pl5++WW88cYbaNWqFTIzM7FlyxbRdq1YsQLdunVDeno6hgwZgry8POttu3fvxoABA9CyZUvcf//9+OSTTwKwZwgh4YqCM0JI2Hr88cexfPlydOnSBdnZ2Vi/fj1u3bqFxo0bIyYmBjNnzsSJEyfw+eefY926dWjXrh0mTZoEg8FgfY733nsPM2fOxMcff4yNGzdiyJAhGD58OL766isUFBTg888/t95327ZtMJvNWLNmDQYOHIiXX34ZR44ccWrXtm3bsGDBAkycOBFr167FfffdhxEjRuDKlSswm814+eWX0aVLF/zwww946623sHDhQuzYsSMo+4wQIn+qUDeAEEK89eKLL6Jhw4b46quvsGbNGqxcuRJarRYvv/wynnnmGbRp0waPP/44UlJSAABPPfUUVq5cicuXL6Nu3boAuACvdevWALiRtLvvvhuZmZkAgG7duuHkyZPW16tcuTKmT58OjUaDu+66Cz///DNWrVqFN998065dn376KZ599ll0794dAPD8889j586dWLlyJYYNG4YbN27gjjvuQJ06dVCnTh188cUX1vYQQggFZ4SQsNarVy/06tULt27dws6dO7FixQrMnj0bDRo0QFZWFrZs2YKVK1fi5MmTOHjwIADAYrFYH28bFGm1WtSuXdv6d0xMjN0oW/PmzaHRaKx/p6am4tixY05tOnHiBObOnYsFCxZYtxkMBtSqVQuJiYl49tlnMXXqVHz00Ufo0qUL+vXrh6SkJP/sEEJI2KPgjBASlg4fPoxVq1YhOzsbADeq9eCDDyIzMxMDBw7Ezp07sXHjRvz111946KGHMGTIECQlJeHRRx+1ex6Vyv5jUKEQn+3heF+z2QyGYZzuZzab8frrr+Nf//qX3fa4uDgAwLhx49C/f39s3boV27dvx2OPPYacnBw8/PDD7u8AQkjEojlnhJCwZDabsWTJEuzbt89uO8MwqFSpEqpVq4Z169Zhzpw5GD16NB544AHcvHkTALxOs3H06FG7UbcDBw5YL5naatiwIS5duoT69etb/33++ef4448/UFhYiClTpiA5ORn/+c9/8NVXX2HAgAHYsGGDV20ihEQeCs4IIWGpRYsW6NKlC1566SWsXbsW586dQ35+PubNm4dDhw7h4YcfRmxsLDZv3ozz58/j119/xbRp0wDA7lKlJwoKCjBr1iycPHkSH3/8MQ4cOIBBgwY53e/JJ5/EkiVLsHbtWpw9exYffPABVq9ejUaNGqFKlSrYsmULZsyYgTNnziAvLw979uxBixYtfNofhJDIQZc1CSFha/78+Vi0aBE++eQTTJ48GRqNBu3atcOyZctw5513Yvbs2XjnnXewbNky1KlTByNHjsT777+Pv//+G02aNPH49VJTU3H79m30798f9evXx6JFi9CgQQOn+/Xq1Qv//PMPPvjgA1y5cgWNGjXCwoUL0axZMwDARx99hLfffhtZWVnQarXo1asXXnzxRV93ByEkQjAspdEmhBCX3n//fezcuRPLly8PdVMIIRGOLmsSQgghhMgIBWeEEEIIITJClzUJIYQQQmSERs4IIYQQQmSEgjNCCCGEEBmh4IwQQgghREYoOCOEEEIIkREKzgghhBBCZISCM0IIIYQQGfl/3CRBl6+eaYgAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot_results(y=y_valid, yhat=yhat, n=1000)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The static gain of a system can be represented graphically to provide a visual representation of how the system’s output changes in response to changes in its input. This graphical representation can be useful for understanding the behavior of the system and for designing control strategies.\n", + "\n", + "To create a graphical representation of the static gain, the input variable is typically plotted on the horizontal axis, while the corresponding changes in the output variable are plotted on the vertical axis. The resulting graph shows how the output variable changes as the input variable is varied, providing a visual representation of the system’s static gain." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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39vl0hGGyDXk4rD4uXazNm3aRFJSEo888ggTJ06kR48el9z2m2++YcOGDaSnp7N8+XL27t2LYRiUlpYyevRo2rVr5xYWAMuXL6dx48akpaUxa9Ystm/fTlpaGrVr12b58uUsXLiQP/3pT5w6dQpwXvHh9ddfJyoqivfee4+YmBjef/99DMMgIyODe++9l0OHDvHPf/6TpUuXsnTpUj755BP27dsHOI+Yli9fzpNPPknNmjVJSUkhPT2d2rVrs2TJEubOnctzzz0HQEFBAUOHDnULC4DVq1fzzDPPkJaWRpMmTTAMgyFDhtCrVy+io6P57rvvePHFF3njjTfo1q0bH3zwATabjfr16/PHP/7R9Tg//PADr7zyCkuXLmX16tXk5ua6Xf4oIyODnJwcVq5cycyZM/n+++8B2Lt3L+PGjeP1119n4MCBrF69uszv4uJxulI6whD5H/Jwx7AKjwaiZq3lSM65Mu2NawWR9vidl73fTp06uSa5ffv2ER8fz4YNG9y2Of8Z4P379xMZGYnVaiUoKIhJkyaRnZ3Nnj17CAkJoaCgoMzj79u3jy5dugAQERFBREQEU6dO5a677gKc15Br3rw5hw87j65uueUWABo2bMjJkyepWbMmrVu3ZuvWrbz55puMGzeOPXv2cPToUQYMGADAmTNnOHTIeZTVtGnTMjV8++23bN26lR07dgDOq16fPn36kts///zzvPbaa7z00ku0a9eOiz8Dff311zNjxgyuu+46jh8/TocOHcod28OHD9OiRQsCAwMBmDhxYpmxadeuHQB16tShWbNmADRo0IC5c+cSGBhIfn4+ISEhZR774nG6UjrCELmGjOnRkiA/q1tbkJ+VMT1aVto+6tWr5/rZ39+fEydOAM4jC4BmzZrxzTff4HA4KCkpYeDAgRQXF9OmTRvmz5/PO++8U+YrCZo3b87OnTsB5wT69NNP07x5c7Zs2QI4r1L97bffVnjlhri4OFJTUyksLKR58+Y0a9aMm2++mTfeeINFixYRGxvruu6cxWJx3e/8RN+sWTMefPBBFi1axCuvvMJvfvMbatasCYCPT9mpcsWKFUydOpXFixeze/duvvzyS3x8fHA4nEdzkyZNYubMmcyaNYsGDRq49mOxWFzbAISHh7Nv3z6Ki4sBGD58OMePH3f1t2jRgq+++gpwht75C7LOmDGD4cOHM3v2bCIiIsoE1tWgIwyRa0if9s416hc/3MPRnHPcUCuIMT1autov1/klKR8fH/Lz8xk/fjyBgYEkJyfz3HPP0ahRIxo0aABA69at6dy5MwkJCTgcDhISElxfcBYYGEhKSgrjxo0jPT3d1R4fH8/EiRPp378/drudiRMn0rJlSyZPnkxCQgJFRUUMGzaMunXrXrLGO+64g8mTJ/Pkk08C0KpVK+68804SEhIoLi4mMjKS66+/vsz9mjdvzujRo5k5cyaTJk2if//+5OXlkZiYWG5QnNeyZUv69u1L7dq1uf7667ntttsICQnh5Zdfpk2bNsTExBAXF0eNGjWoV68e//3vfwG4/fbbGTJkCL///e8B51HD4MGD6d+/PxaLhXvvvdetznvuuYcNGzYQHx9PvXr1CAwMxM/Pj4ceeoihQ4dSt25dGjZs6Doaupp0LSkRES+WlZVFZmYmDz74IKdPn6ZXr16sW7fOI98yqiMMEREv1qhRI1566SVSU1Ox2+2MHj3aY19JrcAQEfFi1113XaV+VuRK6KS3iIiYosAQERFTFBgiImKKAkNERExRYIhci3KPwcIHIPf4z2/7MzZv3sztt9/uuiQFwEsvveR2KYrt27fTtm1b16ekwXnpjHvuuYekpCSSkpKIiYlh6tSpAGzcuJGHHnqIwsJCAI4fP07v3r3dPrBWWUaNGsXmzZsv2d+tWzeKioou+/Hnz5/v9ryvZV4XGHa7nenTpxMfH09sbCzr1q0rs8306dOJjY11/UPMzc31QKUiXmz9C3BoE6yfXSkP5+fnx4QJEy75aeL09HQGDhzI0qVL3dp79erFokWLWLRoEW+++Sa7d+9m586dREVFcffddzNr1ixKSkoYNWoU48ePL/eDdd5uyJAhREZGerqMKuF1b6t9++23KS0tZfny5Rw/fpz333+/zDa7du3i1VdfpU6dOh6oUMSDvloGX/7M9zeUFsPRLWA4YOtCOLYTrBW8b799f2iXUOFDdurUCYfDwZIlS+jfv79bX35+Pps2beK9996jd+/enDp1qty/zfz8fHJzcwkNDQWcr/wTExMZOnQod911F1FRUWXuc99999G+fXsOHjxIp06dyM3NZceOHTRt2pQXX3yR7OxsnnnmGUpLS7FYLEyaNIlWrVqxZMkS0tPTqV+/Pj/88AMAJSUl5V6Ntjzr1q3jL3/5CyEhIdSsWZOWLVsydOhQpkyZwrFjxzh9+jRdunRh5MiRjB8/np49e3Ly5EnWr19PYWEhhw4dYvDgwcTGxlY4rv9rvC4wPv30UyIiIhgyZAiGYTB58mS3fofDwcGDB5kyZQonT56kb9++9O3b10PVinihM4fg/JGAYUDOIah78xU/bEpKCjabzXWp8vP++c9/ct999xEQEMADDzzAypUrXVejXbNmDV999RUnTpwgODiYJ554gptuuglwHrXExcWRkpLiWqq62JEjR0hNTaV+/frccccdpKenM3nyZKKjozl79iwvvPACSUlJdO/end27dzNx4kRSU1N54403ePfdd7FYLK5J+/zVaGfOnMnp06fp379/uVdwPb/KkZaWRr169Xj66acB+P7772nXrh02m42ioiJXYFwoLy+PBQsWcODAAZ544gkFRmVKT08nNTXVra127doEBAQwb948vvjiCyZMmMCSJUtc/QUFBfTv35+BAwdit9tJTk6mbdu2tGrVqqrLF6l67RIqPhrIPQZ/vg04v3RkQGEO9H0NQq9suad27dpMnDiR8ePHu115NT09HavVymOPPUZhYSHHjh1j0KBBgHNJavTo0Rw+fJhBgwa5wgKcYfDqq68yZswYxowZwxtvvIHV6n7hxFq1anHDDTcAzg+w3XyzM/hCQ0MpKioiKyuLX/3qV4DzGlbHjh1j37593Hzzza5PQ59fLqroarQXOnXqFCEhIa6LLN5+++2cPHmSWrVqsXPnTjZt2kRISIjrYoEXOj8PNWrUqNz+/3UePYdhs9lYs2aN23/16tXjnnvuwWKxcMcdd7iuzHheUFAQycnJBAUFERISQqdOncpc+VKk2lr/gnMp6kKGo9LOZXTr1o2mTZvy5ptvArBnzx7sdjvLli1jwYIFLFmyhPDw8DLnHps0acKzzz7LiBEjOHfuHMXFxYwcOZKJEycyYMAAGjVqVO43xV14VdnyXHhF2927d1OvXj2aNGnC3r17KSwsxG63s3v3bqDiq9FeqG7duuTn57u+e2P79u2A8yR+aGgof/jDH3j00UcpLCwsc07n5+r9X+d1J707duzI+vXrAcjMzKRRo0Zu/QcOHCAxMRG73U5JSQnbtm2jTZs2nihVxPtk/wfsF72ytRc72yvJM8884/ruhvT0dGJiYtz6bTab26rAeXfddRd33XUXf/nL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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure(4)\n", + "plt.title('Gain')\n", + "plt.plot(Uo, gain, linewidth=1.5, linestyle='-', marker='o', label='Buck converter static gain')\n", + "plt.plot(Uo, HR.dot(model.theta), linestyle='-', marker='^', linewidth=1.5, label='NARX model gain')\n", + "plt.xlabel('$\\\\bar{u}$')\n", + "plt.ylabel('$\\\\bar{g}$')\n", + "plt.ylim(-10, -6)\n", + "plt.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The static function of a system can be represented graphically to provide a visual representation of the relationship between the system’s input and output. This graphical representation can be useful for understanding the behavior of the system and for designing control strategies.\n", + "\n", + "To create a graphical representation of the static function, the input variable is typically plotted on the horizontal axis, while the corresponding output variable is plotted on the vertical axis. The resulting graph shows how the output variable changes as the input variable is varied, providing a visual representation of the system’s static function." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure(5)\n", + "plt.title('Static Curve')\n", + "plt.plot(Uo, Yo, linewidth=1.5, label='Static curve', linestyle='-', marker='o')\n", + "plt.plot(Uo, QR.dot(model.theta), linewidth=1.5, label='NARX ​​static representation', linestyle='-', marker='^')\n", + "plt.xlabel('$\\\\bar{u}$')\n", + "plt.xlabel('$\\\\bar{y}$')\n", + "plt.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "A Pareto-optimal curve, also known as a Pareto frontier, is a graphical representation of the trade-offs between multiple objectives in a multi-objective optimization problem. The curve shows the set of solutions that are considered optimal, in the sense that no other solution can improve one objective without worsening at least one other objective.\n", + "\n", + "To create a Pareto-optimal curve, the values of the different objectives are typically plotted on different axes, with each point on the curve representing a solution that is optimal with respect to the trade-offs between the objectives. The shape of the curve can provide insight into the nature of the trade-offs between the objectives and can help decision-makers to identify solutions that best meet their needs and preferences." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure(6)\n", + "ax = plt.axes(projection='3d')\n", + "ax.plot3D( J[0,:], J[1,:], J[2,:], 'o', linewidth=0.1)\n", + "ax.set_title('Optimum pareto-curve', fontsize=15)\n", + "ax.set_xlabel('$J_{ls}$', fontsize=10)\n", + "ax.set_ylabel('$J_{sg}$', fontsize=10)\n", + "ax.set_zlabel('$J_{sf}$', fontsize=10)\n", + "plt.show()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "meu_env", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.11" + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/examples/multiobjective_parameter_estimation.ipynb b/examples/multiobjective_parameter_estimation.ipynb new file mode 100644 index 00000000..e42c50db --- /dev/null +++ b/examples/multiobjective_parameter_estimation.ipynb @@ -0,0 +1,2995 @@ +{ + "cells": [ + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example: Multiobjective Parameter Estimation for NARMAX models - An Overview\n", + "\n", + "Example created by Gabriel Bueno Leandro, Samir Milani Martins and Wilson Rocha Lacerda Junior\n", + "\n", + "Multiobjective parameter estimation represents a fundamental paradigm shift in the way we approach the parameter tuning problem for NARMAX models. Instead of seeking a single set of parameter values that optimally fits the model to the data, multiobjective approaches aim to identify a set of parameter solutions, known as the Pareto front, that provide a trade-off between competing objectives. These objectives often encompass a spectrum of model performance criteria, such as goodness-of-fit, model complexity, and robustness." + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Reference \n", + "\n", + "**For further information, check this reference: https://doi.org/10.1080/00207170601185053**.\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Use case: Buck converter\n", + " \n", + "
A buck converter is a type of DC/DC converter that decreases the voltage (while increasing the current) from its input (power supply) to its output (load). It is similar to a boost converter (elevator) and is a type of switched-mode power supply (SMPS) that typically contains at least two semiconductors (a diode and a transistor, although modern buck converters replace the diode with a second transistor used for synchronous rectification) and at least one energy storage element, a capacitor, inductor or both combined.
" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "ExecuteTime": { + "end_time": "2023-07-11T17:36:23.655307700Z", + "start_time": "2023-07-11T17:36:22.803948400Z" + } + }, + "outputs": [], + "source": [ + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "import pandas as pd\n", + "from sysidentpy.model_structure_selection import FROLS\n", + "from sysidentpy.multiobjective_parameter_estimation import AILS\n", + "from sysidentpy.basis_function._basis_function import Polynomial\n", + "from sysidentpy.utils.display_results import results\n", + "from sysidentpy.utils.plotting import plot_results\n", + "from sysidentpy.metrics import root_relative_squared_error\n", + "from sysidentpy.utils.narmax_tools import set_weights" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Dynamic Behavior" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": { + "ExecuteTime": { + "end_time": "2023-07-11T17:36:23.786668800Z", + "start_time": "2023-07-11T17:36:23.657311200Z" + } + }, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYEAAAEWCAYAAACAOivfAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8rg+JYAAAACXBIWXMAAAsTAAALEwEAmpwYAABNhElEQVR4nO2deZgcVdW439M9PZlMlsm+74EkZJ0shDULEBRBwi7EBfgQERVEERUF2fxUlPiJyk8QFAEFAi4gIPsSguwJJJAEAgmErGTfZ+vpvr8/qqq7p6eX6u6qruru+z7PPNVdy61T1Xfuufeec88RpRQajUajqUwCXgug0Wg0Gu/QSkCj0WgqGK0ENBqNpoLRSkCj0WgqGK0ENBqNpoLRSkCj0WgqGK0ENBqNpoLRSkBTkYjI+SLyrog0iMinInKriHSzee1aEZnjoCyOlqfR5IJWApqKQ0S+B/wS+D5QBxwODAWeEZFqL2XTaIqNVgKaikJEugLXA5cqpZ5USoWVUmuBL2Aogi+LyF0i8r8J18wWkQ3m578CQ4BHRWS/iPxARIaJiBKRi0Rkk4hsNhWNdX1O5bn/FjSaOFVeC6DRFJkjgRrgX4k7lVL7ReQJ4HigOd3FSqmviMgM4EKl1LMAIjLMPHwMcDAwAnheRJZZ5+RSnkZTTPRIQFNp9AK2K6VaUxzbbB7Pl+uVUgeUUu8CfwHmFVCWRlMUtBLQVBrbgV4ikmoU3N88ni/rEz5/AgwooCyNpihoJaCpNF7FmO45PXGniHQCPgc8BxwAahMO90sqI13o3cEJn4cAm8zP+Zan0biOVgKaikIptQfDMPx7ETlBRELmnP7fgQ3AX4GlwIki0kNE+gHfSSpmC8a8fzI/EZFaERkH/A/wgLk/3/I0GtfRSkBTcSilfgX8GJgP7AVex5jKOU4p1YyhCJYBa4GniTfmFr8ArhaR3SJyRcL+F4HVGKOJ+Uqpp839+Zan0biO6KQyGk1hmCOJj4FQGoOzRuNb9EhAo9FoKhitBDQajaaC0dNBGo1GU8HokYBGo9FUMCURNuKEE05QTz75pNdiaDQaTakh2U4oiZHA9u2FLOLUaDQaTTpKQgloNBqNxh20EtBoNJoKRisBjUajqWBKwjCs0Wj8QzgcZsOGDTQ1NXktisakpqaGQYMGEQqFcr5WKwGNRpMTGzZsoEuXLgwbNgyRrM4nGpdRSrFjxw42bNjA8OHDc75eTwdpNJqcaGpqomfPnloB+AQRoWfPnnmPzLQS0Gg0OaMVgL8o5PfQSkCjKZR3/wFNe7yWQqPJC60ENJpC2LIC/vlV+Pe3vJakoujcuXPK/eeffz7/+Mc/8ipz6dKlPP7447HvjzzyCDfeeCMA27Zt47DDDmPy5Mm89NJLnHjiiezevTvneyxcuJBXXnkl9v22227jnnvuyUtep9CGYY2mEFoajO3ezd7KoSmYpUuXsnjxYk488UQA5s6dy9y5cwF47rnnGDNmDHfffTcAM2bMyOseCxcupHPnzhx55JEAXHzxxQ5IXhh6JKDROIKOxusFSikuueQSxo4dy0knncTWrVtjx5YsWcKsWbOYOnUqn/3sZ9m82VDUs2fP5oc//CHTp09n1KhRvPTSS7S0tHDNNdfwwAMPUF9fzwMPPMBdd93FJZdcwtKlS/nBD37A448/Tn19PY2NjQwbNiwWzuaee+5h4sSJTJo0ia985SsAPProo7GRw5w5c9iyZQtr167ltttu4ze/+Q319fW89NJLXHfddcyfPx8wlNDhhx/OxIkTOe2009i1a1daeZ1EjwQ0Gk3eXP/oClZu2utomWMHdOXak8fZOvehhx5i1apVvPvuu2zZsoWxY8dywQUXEA6HufTSS/n3v/9N7969eeCBB7jqqqu48847AWhtbeWNN97g8ccf5/rrr+fZZ5/lhhtuYPHixdxyyy0A3HXXXQDU19e3O2axYsUKfvazn/Hyyy/Tq1cvdu7cCcDRRx/Na6+9hojwpz/9iV/96lf8+te/5uKLL6Zz585ccYWRRfS5556LlXXuuefy+9//nlmzZnHNNddw/fXXc/PNN6eV1ym0EtBoHEF7y3jBokWLmDdvHsFgkAEDBnDssccCsGrVKpYvX87xxx8PQCQSoX///rHrTj/9dACmTp3K2rVr877/888/z5lnnkmvXr0A6NGjB2CspTj77LPZvHkzLS0tWf339+zZw+7du5k1axYA5513HmeddZbj8qZCKwGNRpM3dnvsbpLKPVIpxbhx43j11VdTXtOhQwcAgsEgra35p4VWSqW8/6WXXsrll1/O3LlzWbhwIdddd13e9wDn5E2FtgloNAWhbQFeMnPmTBYsWEAkEmHz5s288MILAIwePZpt27bFlEA4HGbFihUZy+rSpQv79u3L6f7HHXccDz74IDt27ACITQft2bOHgQMHAsSMyZnuUVdXR/fu3WPz/X/9619jowK30UpAo3ECvXjKE0477TQOPvhgJkyYwDe+8Y1Yw1ldXc0//vEPfvjDHzJp0iTq6+vbuGam4phjjmHlypUxw7Adxo0bx1VXXcWsWbOYNGkSl19+OQDXXXcdZ511FjNmzIhNFQGcfPLJPPTQQzHDcCJ333033//+95k4cSJLly7lmmuuyeVV5E1J5BieNm2aWrx4sddiaDTtWfc63PkZGHQoXOicsc7PvPfeexxyyCFei6FJIs3vUh6ZxTQa/6NHAprSRCsBjUajqWC0EtBoCsL/06kaTSa0EtBoNJoKRisBjUajqWC0EtBoNJoKRisBjcYJ9DqBojF79myeeuqpNvtuvvlmvvnNb6Y933IxTxcCOjGQWzoefvhhVq5cGft+zTXXOBrDxyu0EtBoCqEE1tmUG/PmzWPBggVt9i1YsIB58+Zlvfbxxx+nW7dued03WQnccMMNzJkzJ6+y/IRWAhqNI+iRQLE488wzeeyxx2hubgZg7dq1bNq0ifvuu49p06Yxbtw4rr322pTXJoaA/tnPfsbo0aOZM2cOq1atip1zxx13cOihhzJp0iTOOOMMGhoaeOWVV3jkkUf4/ve/T319PWvWrGmTwOa5555j8uTJTJgwgQsuuCAm27Bhw7j22muZMmUKEyZM4P3333fz1eSFawHkRORO4PPAVqXU+IT9lwKXAK3Af5RSP3BLBo1G4zJPXAmfvutsmf0mwOduTHu4Z8+eTJ8+nSeffJJTTjmFBQsWcPbZZ/OjH/2IHj16EIlEOO6443jnnXeYOHFiyjKWLFnCggULePvtt2ltbWXKlClMnToVMCJ2fu1rXwPg6quv5s9//jOXXnopc+fO5fOf/zxnnnlmm7Kampo4//zzee655xg1ahTnnnsut956K9/5zncA6NWrF2+99RZ/+MMfmD9/Pn/6058ceEnO4eZI4C7ghMQdInIMcAowUSk1Dsg8CafR+B49HeQFiVNC1lTQgw8+yJQpU5g8eTIrVqxoM3WTzEsvvcRpp51GbW0tXbt2jWUQA1i+fDkzZsxgwoQJ3HvvvVkDz61atYrhw4czatQowAgDvWjRothxN8NAO4FrIwGl1CIRGZa0+xvAjUqpZvOcre0uLAINLa1s2t3IQX26eHF7TTlSqYbhDD12Nzn11FO5/PLLeeutt2hsbKR79+7Mnz+fN998k+7du3P++efT1NSUsYxUIaDByFP88MMPM2nSJO666y4WLlyYsZxs8dfcDAPtBMW2CYwCZojI6yLyoogcmu5EEblIRBaLyOJt27Y5KsRF9yxhzv8tIhrVvTiNphTp3Lkzs2fP5oILLmDevHns3buXTp06UVdXx5YtW3jiiScyXj9z5kweeughGhsb2bdvH48++mjs2L59++jfvz/hcJh77703tj9dGOgxY8awdu1aVq9eDRQ3DLQTFFsJVAHdgcOB7wMPShp1rJS6XSk1TSk1rXfv3o4K8d/VhmEooj07NJqSZd68eSxbtoxzzjmHSZMmMXnyZMaNG8cFF1zAUUcdlfHaKVOmcPbZZ1NfX88ZZ5zRJnH8T3/6Uw477DCOP/54xowZE9t/zjnncNNNNzF58mTWrFkT219TU8Nf/vIXzjrrLCZMmEAgEPBFAnm7uBpK2pwOeswyDIvIkxjTQQvN72uAw5VSGbv6ToeSHnblfwB4/6cnUBMKOlaupgL55BX4y+dgyBFwwZNeS1MUdChpf1IqoaQfBo4FEJFRQDWwvcgyxNADAU3B6EqkKXHcdBG9H5gN9BKRDcC1wJ3AnSKyHGgBzlMeZrXR00GawrHqUIUahjUlj5veQemW733ZrXvmSkQbhjWFUqEdiXQJ1jXeUEhf2jUl4EdWb93Px9sPxL5r7yDnWb11P5/uMVzzJg2uo0tNyGOJ3MasQ+tf91aMTOzfCuFG6D7UkeJqamrYsWMHPXv29J8iUAqa9houu9W1ECj/Jk4pxY4dO6ipqcnr+vJ/QwnM+b8X23yPVmgvzi2iUcXnf/8STeEoAOceMZQbThmf5aoSR0XNbcRYOdtvgrfypOIvJ8LuT+AnzrhaDxo0iA0bNuC067YjNO6G5r3G5+rOUNvDU3GKRU1NDYMGDcrr2opSAhan1A/g30s3aZuAw7REojSFo3zxsCE8/95W9jaGvRbJfSIJi392r/OnEtjxoaPFhUIhhg8f7miZjvH7qbDD8Ndn7Knwhbs9FacUqMgAcocN7wlANOqxIGVGOGK80OE9O9GpQ5BwpAKUbKTFawk0iST+HpEK6IQ4QMUogUTDSdB8aj0ScBar0Q8FhVAwEFMKZU1UNzS+InFkpn8bW1SMEkj0BAqYxixtGHaWVrPRrwoGKkcJJPY2dafCeyLNCZ/1KM0OFaMEEqcmYkpA/9M6SovZ6FcHA4SCoqeDNMUncSSgp4NsURFKYE9jmN2N8X/WYMBQAo3hiFcilSUHmo33WRUUqoIBVmzaU9ajgd17drP9vZfiOw740Ftm58fxz7vWeiZGUYhGoHlP/PvGJYaxXpORilACk65/miN+8Xzse+cOhlPU7S9+5JVIZcllC96Ofe5aE2JXQ5g/vrgmwxWlzTvvLqPXqvviOx6/wjthUrF/G/xucvz7bydBw07v5HGbpfe2/d7aBDdPaDs60LSjIpRAIr89p57Zo42opBUwWVFU3v/UCLMbiSp+frqxPmBXQ/kOyfd16M//tHyfrcfcZOwIdvBWoGSadtOuljftSXVmedCww9ieeitcsTq+X0/ZZaTi1gkM6NaRqmCAEb07xeawNc7Tp0sN3WpDZT0d1Bio5YXoZJrGHwPN6+ANf6UNTNn4lfM8ufVsE74AwYSmTXsJZaTiRgLWIvfqYCDmzaJxB8NDqHzHW1b9CVUJBKv919ikavD9JqOTRMKAQCApPLyeDspIxSkBi6pK8V7xkFBAynokYD1bVSAAgRBEW/3lJppKCZTz1EikBYKh9qk+y/mZHaBilUDF+LF7gBVULFRV3qMtqxNRHQwYjQ/4a7olVa+/nHvF0VZjRNZuv49+Ex9SuUogEGDDrkavxShrqgLCh1v3l23I7v3NRoNaFZQEJeCjXmdrikTrqfblSksDbFsF+z4tvCwnadgJkqJJ85Ni9iEVpwS6dzJ6CsGA8PH2AzyzcovHEpUHDS3xHuaAbkZI284dqlixaS/zn17llViu8uDi9QBUVwVAzHno1c94KFESyx4wtt0SQki/80Dh5d57Jvy/6fDr0bDDRy7Ay+4z1goks+Kh4stSQlSUEphzSB9G9u4MwPc+MwqAbfuaM12iscn+JkMJHDa8B0eO7AXAr79QD5TvO67rGGJgt46EggEYdYKx008umNbo5JuvwkUvtt1XCHvWxz/7aYFcTR0MnBL//p3lxjaVYtDEqCglcNa0wbHPw3t1AqBVhxJ1hLA55XPGlHhM84P6dGZoz9qytQu0RhQTBtYZX2rMrZ+mHqKt0G0IVHeCAfXQZYBD8iUYXv30vEq1DeXdbbAxPaRtAhmpKCUQCsYrb5UZSrSltTwbqGITbrWCx7X1zKgKlK8XVjgSjT+v5Zfup0Yx0mJ4LVkEq5yRTyX8z/jJBhJpaZ9JLBDyl4w+pMKUQPxxq83PrWVqtCw21ogq8R1b38vVCyscjcbqUcwrxU+9zki4rbeMU2sZEhVJ1EfeRsnPC8b3cvaIcoCKUgJVgfjjWj24sB4JOEJLazyXQCJlrQRaVXwkEPChd1Ak3HblrFO94jaJW3zyvNGokeIz2eYRrPKPjD6lopRAdVXCdJAZSXR/i+4lOIEVgqP9SEBirpTlhFKKnQda4s9rNT7N+70TKpmm3e2ngw7sKKzMloa2I4GwT9ysrRFOshIIVPnLWO9DKkoJ1ITiy8mtBU1/1JFEHeHU//cyAB1DbZfsRxS8uXYXza3l5aHx5/9+TEskGn9ea5Xqyzd7JlMbdq+Hda+2nb+XAKx7BT55Jb8yI61GVM6WffF9z15fmJxOsfgvxjZU23a/UvDug4byevteuK4O9m4uvnw+pqKUwCH9urb5fuRIK9ewtgsUQmLqzkOH92hzbMJA4503NJeXEti42+gBf23miPjOYTOMrR9CR+w317+MOy2+7+jvGtu9m/Irs7URGrYbCdy/9A9jX3VtxkuKhuWqOmle2/2jPmtsm/fCsvuNzzs+LJ5cJUBFKYFAoO189VEHGf7sYe0mWhCJOjR5OmiMqXjLzS4QjkTp0amavl1r4jtHzDK2fjCWWvPg/SfF9/Wvb3ss5zLNKZchR8DBx8OEs/zjDaWixtRXx25t9w85wthGWvyhnH1I2SsBleGHt4yY5erCWCwyhYWwvGfKLWx3uFW1M4LHPFP8YIi0Gudk7yAoQAmY11nz7sFqfymBVCEjYs+cKKe0P6+CqQAlkP6Y5S1UrouZikWmXM2W90xrmSnacDTaxtsMSPAQ8kHDGElhKC00yF1ymYEq/7jEqmj76KHgz/UbPsM1JSAid4rIVhFZnrDvOhHZKCJLzb8T3bq/RaamJ1RVnr3UYpNJCVjTQ+U3HaSMmEGJ+CmSaCpvmYKVgDUSqI5v/TDqAUBlGQm0oHMJpsbNkcBdwAkp9v9GKVVv/j3u4v2BLNNBAT0d5ASZpoPKdcot3BqNuRnHsBpZP/SOrYY+0UU0UKB8lq3DWpUbDEGrT+JCRSOknOZJNTpLNWKoYFxTAkqpRYDnWa0zOf5YLqPX/nt5+pPy5P+eXsWwK//jeLl+JJNdvYP5jp9c4bOwwwXy4gcpAqdZvc4PfRBJdP3rxjbUMb6vysyB/NGL+ZX5yu+TyhQIN8CWlfmV5ySv/QHCB9rvD5mG+//+nzYMp8ELm8AlIvKOOV3UPd1JInKRiCwWkcXbtuUfqVCZQ8CTJw1od+y4Q/oAsNuFZOi/e3519pPKhIj5z3XeEUPbHTtihOGGW24xmnp0qm6z7gSAEccYWz8sTqoyG78eCS6s1kgl2YPGLi1mIztitrEdcrixTYwq6jcSvYNi6JFAIsVWArcCI4F6YDPw63QnKqVuV0pNU0pN6927d943tJT/If27tDvWpSbErFG9y26+uthYNoGD+nRud6wmFKRTdbDs3nEkqtrXqdqe5kEfzJNHWqCqY/upj96HFOYd1GecEZUUoPuw+H4vyTQUreoAg6YnyahHBIkUVQkopbYopSJKqShwBzDd/XsaW0mj/d1Ohp7JJlEuWIvtJM1cazmmmWyNRtutiYjbBHywTiBdqsVgKP+AatHWJENzKvdLD8hm49BB5DJSVCUgIv0Tvp4GOD8Zn4Q1HZRsw7MIBd1Nhl4BOiA2HRRM85KrAgFaysww3NKaQgmIGBnGvO4Zg5l0var9/mABQeSsRO6JZYH3SiDb87QLIqengxJJUUucQUTuB2YDvURkA3AtMFtE6jHGY2uBr7t1fwvLMJzOISAUDLgaTrq8mr7UWN5BwTQvuTooZTgSSLFYDPyzgCpVWGUoLJx0u9DUPvGGyva+g9UQ3QOBYObzKhTXlIBSal6K3X92634Z5ADSTwdVBcVVo2VUKYJl3vOwRjvJYTksqsownLSRUCaVX3rIP0ogEGq/P1BAYplIOO5hBP4Jn53teQLmb2IZy7WLaBvKfsXw9v1GBU23oCkowsbdjby1bpcr98+0kKpceGXNdiD9lFtA4OGlm1izzUdhlgtgT0OYcESlfl6l4PVbvZ+DXnZf6lmPQJURXfTjl3IrL9wI619ruyDLUgheRxLd/Unm4yKwZbk/vLZ8SNkrgR37jcUsvTp3SHn8hPH9AFiz1Z0GqgJ0ADsPGD0xK8F8MqfUDwTgkx0p/LhLkE/3NgHQvTbFdMuAemPb4rXCE+jcr/3uQy80ttvez624BjMPQY/h8X21PaBDnTPJ6wuhcXfm470ONrb7dAjpVJS9ErA8fwZ065jy+LgBRoJwt+wClTASsOb7e3VO0SgCnxnXFyifVcPW1NaQHinCKI89xdh66SFk1TnLnz+RYUcZ21zls6ZcBiU59E38grla10Oy2SQGTjW2sWkjPR2USAUoASvjVXqbQOJ5TlMJqQqsd5fOO6jc4geF02RRA+IhFbycJ49GAJW6h57vPH6qgHTWd69tINmexS+2C59S9kogXQJ0i3gD5U5rXQnrBMJRRXUwkH6dQNCK1loe78IaNaasU37wnU+XahHyly9dmcGQD7yDsoxqgloJZKLslYCVAL0qzUggpEcCBRNujaZ9vxDP51wu0VrDpjdZymf2g++81dil8g7Kd0FbcgRRC6eS1xdC1nUCSe9Bewe1oeyVgDUSqM4yEnDLj70SRgKGz3z6qmSFXC6XkUA440jAB77zVs841ToBEdNNNNfpICuCaPJIoNqI5e+lXcDOimFNWlxbJ+AXHltmeASka6SsXur8pz/gkmMPzljWI8s28e373263v1fn6pgras9O1Sz5yfGxY9ZI4EBzK8fMX8jNZ9dz5EGpvWhKlfteX0fH6vQLcSwF/JtnP+CLhw0plliu8eRyIyJqyo5F0PRCW3wnnHhTEaVKYN2rxjbd4iil4K174Lhr7Jf5+m3GNtV0EMB7j8K4U3MS0zHWv5H5eLtpMT0SSKTsRwKWd05KTw6MeDcD03gOJXPFg8tS7q8f3C32eceBtj0s6/4fbNnH1n3N/PKpVbbuVUp0rA7SrTa9m2C32hDVVYGyGRVZiwtH92sflJChRxpbK9G7F+zdaGytKJ/JdOzWNsS0HRrNdTSDprXdbzX8W1bkVp6TWOsV5i1IfbzvhKQd5VEPnaLslUA4EmXCwLq0q1kBzpw6CIgHQkuHSqo8hw3vAcAFRw9PdbpRptnwxa4sk4YwkWhUceyYPmmPiwhnTxucMflMKRGORBnWs7Z9ZjEwGti+E/xhE6gbnPr46M/lPn0TaTHCMlsRRC16jPA+w1ikBboMMJ4rFVXVcPg3iytTCVEBSiBNjJcErH/mcKaQtPlSHu1eRloi0bQ2Fwu3o7UWk3AkRfC4RAoJ0uYE6Yy4Fvk02pFw+kVhXsdLyiSbhdcL2nxMBSiBNDFeErDsAm4YLsuk85uR1qjK6B0E7kdrLSbhiMpcp7z2nY8ZhtM0fIE85IumiUUE3iect6MEEmUvw9F4IVSEErDTS7XOdZpyXzEcjSoiWbyDwBoJlIsSiFKdSel53jNuMWL8pDMM56OkIi3OjiycJJNsFm2Ol/f/ZK6UvRKw20uF7AvG8mnPLSWQzd5QqoSzLMazqAoKUZU5KX2p0BrNMrr0umecqdcO+S3wirSmzk9gledlwLxoa3yldjoSZS/zjlmulL2L6Dsb9jDnkL4Zz7EasD++uIarPz825TnXPbKiXXyhTh2M15ccR//Y+Qtjn4/+5QsA9K8zwtgu27AnloB+RC/DyNYSibJhVyODunekOhjg4L6d+eNXkrwwfIrlGluVwfAO8Xe8cNVWjsvye/idl1fviDkFpCQYgg1vwp4NUDeoeIJZrH0583Gr5770fqhPFfE9CaVg23vQ55DUxwNBWPo3OObHUDcwd3kLIRqFD56MxwdKhx4JpKXsRwKQfcHWjFFGDuOVm/emPeeZlXGXv+/OGcXfvnoYvzxjIt8+7mAOHdaD2748haE9axnYrSPjBtYxJsl9cMJAI1BdohfNuIF1jBtYR7PpctgaMaZVnlqxpWTcKT/dY0TUtBRiOj5rBpFbtn632yK5TpcOVZmntgZMNra5Rup0ipqumadnrCB3Hy+yV15s6ihNnRw209hu98D9OdxgbDt0zXze6BPjn0vkf6tYlPVIwJp6mDioW8bzBnbryJEje2b8x25N8By6bE58Udnlx48C4ITx/TlhfDx7ZlM4wpifPBn7/sszJnL7uUZvxBoJ/H6e0VjMf2oVt7ywmnnThxAMwKqn9xGOKKqr/L+oxXpn1qgmHQf16UJ1sDzSTEaVYsqQ7ulPGHUCvPhL7+wCSrX350+k7zjDtdPuPL51nqXckpl2gTES8OJ5LdlGfTbzeT1HJnwp/TroJGU9EohFe7TRmGZzYczVcyh5jjyTXcKaTRIhNtfc6oa7qgtY7yWUymc+iVCZpJkMR1Xm5/U8iJxqm/wlFbmkmYwFj0tnGPYwXlI0iydUKvRIoA2VoQQC9hqoTCOBXIOfJYdVzmY4TT6vVHzqrXeWzSYA5ZNmMhyJEsr0vF5HrVRRsoZGyMVN1DovnfHVy3hJmYLlpaU0/reKRVkrgVgvNYt3kHFOIGNvv9A1BHaVQLXLUU2dJmNs/SRCwUAs+FqpEokqlMryvPlG6nQKZWckkIcSyOQimnheMckmWyr0SKANZa0EYr1UGw1Utl5qoY1yuoQrqeSA0om4GY4pWpujrdbSUG7psFWnvE5iolT2cMm5rGqOrUDOsFgMPFYCeiSQL1n/c0VklIg8JyLLze8TReRq90UrHCsXrL2RgPDR9gP8e+nGNvvXbNvPsCv/41r6yfZyGD/J0hLxolm52UjenW0tBhiK8O9LNrBi0x6iUcXlDywtOW8hK0Bgxjpl9UofubT4vU6l4JP/Gi6qmQhWw8cvQsPO7GXGopKmmw4yn/f9x+zL6RRWkvls6wQSefFX7shSotgZCdwB/AgIAyil3gHOcVMop9huJpnvWpO9lzB30gAAnn1va5v9V/7znbzvf/VJh/DjE8fwgxNG277GciVdt7M0krJbujFdlNZErHe8eO0utu9v5l9vb+TCexa7KZ7jbN7dCJAxdDadesc/FzvhvHW/bL18y1tmmw23zoe/YWwtd8xkOpvrPlqbspflNFaS+cR3no4z/mxsd6xxTZxSxI4SqFVKJQfs9nB5oH2sqYohPbM3ULNH92FU387tvFcsN9MpQ7rlfP8LZ4zgopkj+ebsg2xfM9x0tSwVw3BrJEptddDWdNDFs42Gp1TsHamwfpeRvTunPynREaHYyVbs2iEmnGWen8MUTtrYQQEYepRH3kHmPe0sUptwJhx6ISgPE+D4EDtKYLuIjMScSBORM4HNrkrlELkYLQGqAu3tAlZPt0NVhp6fg7id7tJpwhFlyzMI4l5apaLgUhGvUzbXcBTbOGxX6eRjt8hkZwhUebtOwK53UD7B88ocOxNp3wJuB8aIyEbgY+DLrkrlEK05GC3B8HVPbqCs2D8dQsWxoYsIVQEpIcNwNHVc/RRYDWcprxVotRkrKUaxGxy7SifmxuqQkgpWF3/qC3L3DvI6wqsPyVqTlVIfKaXmAL2BMUqpo5VSa7NdJyJ3ishWy6CcdOwKEVEi4mqexZYcfNgBQoH2awWsLFIdbDZ0TlBVQmGXw5EoVTbWYUDcQyocTU7PUzq0tBqS233monsI2b2f02sZvMqhEFMCNg3DXud68CFZ35yIXJ70HWAPsEQptTTDpXcBtwD3JF0/GDgeWJebqLlj9abt91TbrxVoChvD62JNB1lylMqUSWtE2VqRDUbdqTZdcUs1xLY1ErAd0qPY00F2e7lWz9mpBV5eRRLNtpo5mWC1YROIRtvabioYO29hGnAxMND8uwiYDdwhIj9Id5FSahGQyv/sN8APKIKz7sNvG+6edkcCVUHhjbU7GXblf/hkxwGGXfkf1u5oyKkMJwiIcOfLH5dEELnXP95pv1eM8Y4fWbqJe141XPu27WtmySc23BR9wgvvbwNyGAkU221y41v2zrNcKj942pn7BkJGpNE9G7Of6yQbFsfvbwfruW/oDjs/huvq4Dfj4YWfuyNfCWCnJvcEpiilvqeU+h6GUugNzATOz+VmIjIX2KiUSp2xve25F4nIYhFZvG3btlxuE+P4sX05edIAutXa6yWcPHFA7PMX73i9zbFMOYoL5cKjR/D5if0578hhALGk7Xub/O+EVVsdZH+zfTnPPnQw+5rCPPDm+ti+nzzsYZLyHNnXZPQ8+3eryXzi50xf9M35uxjnxa6P7Z1n5R9uTh85NyesMNMbkh0JXcaa1rK7WGzEMfHPd59sbPeshzdud1auEsKOEhgCJE6ihYGhSqlGoNnujUSkFrgKuMbO+Uqp25VS05RS03r3tuEDnIKvzRzB7+dNtr1a9wuHxhNzW9NAFsk5A5ykrjbELV+cQl1HoyJfcJSRuL4UDKitUcXhI3raPv/ak8cxfXiPNu93V0PpzNGGI1EmDKzLPj142Neh1+jix9OxO99dVW1EBXXKSGqFpy72lFCkBXofkn2FtMWghLwDrQnNl5dJcTzGjjXlPuA1Efm3+f1k4H4R6QSszOFeI4HhwDLTrjAIeEtEpiulPs2hnKKQbJh1cySQTCkFkWtpjdp3lzQJBQOxHAqlRjii7D+vF2kmczF6OpkW0qugeXbyCycjASPIXqKCrmBjcVYloJT6qYg8ARyFEZrwYqWUtczzS3ZvpJR6F4hlVBGRtcA0pdT2nCQuEskNcBF1QCwEQyl4CLVGo7aitCZSFQyUbJrJcCRLaslEgh74zufSow2Eshuu7dqlrDn5oo988lACwWpjdXPiSMDLdKAeY6s2m43+/cC/gK0iMiTbNSJyP/AqMFpENojIVwuStMgkN8B2p5ScoNrFxPdOE87BO8gi15GDnzCSzNtVAh4kYM9pJGDDXTJXbyMvRj65RBCFuMJKDHOhosVf3e0T7LiIzgV+DQwAtmLYCN4HxmW6TimVMXmpUmqYbSk9IDlgXMBFm0Ay1kigWEHrCiGXdQIWuY4c/ERrVNkKlgfY62k7TS49WjsLp+yWF/QokqidJPPJWCMHldTJioSNfMkVhp3/xp8ChwMfKKWGA3OALJmsy49iKgHLJnDf664vpSiISFSxr6nV9joMi+SRw+Y9TTz2ziYnRXONdzbssb9aOBiCT142fNKLRS6NcLAaNi/NnJi+cZf9sgAW/qK4kVPXvZr7SCDd9NGbdxQuTwlipzaHlVI7gICIBJRSLwD17orlHVefZLi69enSAYDbvzKVqUO7c+GM4UWTYWx/I2n2K2t8aS6JsXGXEVEz1/n9ow/qxei+Xdrs+6u5bqAUaGyxOW1gNTb7i+j3kIsSOPh4Y/vOgvTn7LL5u4Rqjca4eS/s35r9fKcIhHIPV3HOfca2a1LQuSV3OyNTiWFnHLVbRDoDi4B7RWQrJRJFNB8unDGCC2eMaLPvM+P6FVWGwT1qOWlif97b7JAPt0tYYTkmDqrL6boTxvfnhPH9Y9+/9KfXaAr73/5hKbtDh/Wwd8HYU+DDp4s7RZKLTWDq+bBofmZjst3pIBE4cT48+u0iG1mVEcE0FwZNg+v2GL/LT83INRPOii88qzDsjAROARqA7wJPAmuAz7splMYwDvs9iFwshILd6ZE0GOE6/K8EYhFE7RrCY6EZithnyvVewVDmRjsXb6NiG4eVMp431+kgi8QUnMFq79KBeoyd/95rlFJRpVSrUupupdTvgB+6LVilU5UimJ3fCFvB1ApUAlWBAC0+V3iQoATsGrZjaReL6CGU670CWTyEcvU2guIpgVyDxyWTqAS8CoXtA+zU5uNT7Puc04Jo2pIqrLXfCMfCKhdmNK+ukpIYCcRDk+c4EijqdFCO9wpWOzMdBHElUKzpoFyDxyWT6OzhhTuvT0irQkXkG8A3gREikhgApQsV6B1UbFKFtfYbVtJ4294yaUiVzMeP2Eoyn0ixe8b53CtYlWUkkEfmsWI1prkmlMlE0AN3Xp+QqTbfhxEi4hFza/1NVUqVRFKZUiYUDLCnMcyGXWnyuvqAdTsN2QpVAqFggLU7Gli9dZ8TYrnGTjPGkf3FYmbj9PTVxYtNk2sAt2A1rH6m7epZizXPwyPfzq0sgKX35yZDvlj5hXNdMZyKYMjwbGraU3hZJUam2hwE9mJkFtuX8IeI2HSP0OTLqH6GC+WzK7d4LEl69jQavcRenfMcjptMH94dgEeW+TtrqeUSazvLXK9RxnbdK7BjtUtSJWHNc8+5zt75HQx3ZLa0y/0Efz0Nwgfs37vXwcb2Q4fCU2dj11pjW4gSGHw4zL0FOhp1kPVFjoLqAzLV5iXAYvNvSdJfZfpSFZETJxgulH62C1guk/3qsoRVzsLZhw6JJZvxM9YK7oP6ZEgyn0jdIDj7XuNzMeebj7oMjv6uvXOP+KaxdWLKqvtQmDSveIncrTAPfTIGL8jMV5+CKV+BkccZ3yvQLpDWJmCuDtZ4hJXEpsXHDWNsjtyBMBBVQYnZGPxKPMl8Ds9bdI+ZltzmyJ2exy+ml40lc77eQYl4FQXVB9h6e2b8oJnm14VKqSKnS6o8rIbGz2sFwrl6y2QgFAz4PlZS3DsoDyVQDI+ZaMSIh5OLt4zTHkzFDJ9dqHdQIrH3UHnG4ay1WURuBC7DyB2wErhMRH7htmCVTjAgBMTfkUSN4HFi5Z0uiFBQfD3qgfioLKdUo8X0mMnHb97pwG92gtI5hXUfJ7yDvFjT4RPs1JYTgXqljJB7InI38DbwIzcF05gJ54sZfCxHWqOqYM8gi1JYNWyNBHIKmFfMtQL59IzdSDhfrHUCMaXnhHeQw++hhLBbm7slfM4tUIwmb0Tgjy9+xJ4Gf1bMRR9ss53VLxvBgPDg4g32g7MVmSeXb+bvS4y8yDmNBKye9qu3uCBVElvMRH/52ASe/xm05OAJlKm8cAN8tLDwsrKx7lVj65SLKMCjl0Gzv12VnSatEhCRW0TkKODnGGkg7zJHAUvMfZo8OfeIoRw+IruX7ZAetQC8tHqb2yLlxfb9zTQ41Gh3rzV6Ym+tsxm6uMhc/Le3eHvdbgC61OTQ6NSZ+ZfWPA8NO50XLJGVZgbYvmPtX9PVDOS37T1Y/3rhMvSfZGwX/rLwsrKx2wy1Xms/x3VaahL6trmsjSgDMo0EPgTmAzcCT2MEjvsncIRSKkPsWU02bjhlPAsuOiLrebd/ZRpg5PH1I0rBlw7LmmTOFjecYrj5+fVZLY46qGdu00Gde8Pnf2N8TrUgy1GU4fc/fGb2Uy1q6uBrzxufW9PMh/ebYL+8caca7pYRt58VwxV18OEQ6lh4WcEQDJthfN5bGrktnCJtbVZK/VYpdQQwC0MBnA78EviaiBxcJPkqmlCVv9NMtkSijtoErDL9TF7PG7MLuGx0jEbIa34um3w5J20pUhyefPILZ6LYsY98QtYarZT6RCn1S6XUZOCLGMrgfdcl0xAKWAnn/ek62RpRjuULLgWXWMhzTUQsCbvL7ocqApJHesRsSeJz9b4JVhXH1dJxJVAkZe0z7LiIhkTkZBG5F3gC+AA4w3XJNLGG0a8jgbCjIwFL4fnzWS2q7eYSSKRYC5Gikfxy5GZb0JZrQ1u0kUAeSeYzEXMTray1ApmiiB4PzANOAt4AFgAXKaUccCHQ2CGWcN6HvWOllJl03dnpIL8rgbxGAsVaNZzvSMBpJRAokptoPknmM6FHAu34MfAqcIhS6mSl1L1aARQXq2F8xodB5KwpqmqHp4MWfuBPTyiLgmwCO9c4K0wyKto2UYpdLPk2pgkJlk8i993r3O9ROz0SsJSd27+Tz8hkGD5GKXWHUsplv7bSYfzArswe3bto97NCFi/xodtkazSPODoZ6FZr/AO++bG/q1te00Hdhhrb9W86K0wy0Wh+00E13Yzt9jSRTg/7urEdeqS98ixFtHlZ7rLkQiTsrBKYer6xrXLA26iEcOY/uEJ47NIZ3PU/04t2v0BA+PqsEQSdWpHlIE6llrSoCQU5e9pgxxafOYlS8em4vKaD+oyB6s6Ay9N6KpLfSCBUYyZrT5Kv+zCY8AUYeayRmL37MHvljT/d2LY25S5LLkTCzgSPsxh6JBxyshENtYLQSsDndDBDRyQ2RH4gHEsy71yrXV0V8KX9IzGuXd4jn2IEVsvXMAyp5VN5jiyKFYIh6vBIACDYoeJyDWsl4HOqggGUisfu9ws5p1q0QZVPg8glKuC8XWKDWRK6O4GK5mcYhtTyKQXk8byBIhnCcw2bbYdiBsDzCa4pARG5U0S2isjyhH0/FZF3RGSpiDwtIgPcun+5EPOf95kSyCuschaqg/4cCSRKVNBIoCjrBByUT6k8Dc3FUgKtzq4TgOIGwPMJbo4E7gJOSNp3k1JqolKqHngMuMbF+5cFVs/Tbz3klliCFeemg6qC4ksX0WiiTSDf5w1kSejuBIVMB6WST0XzXIFcpHURkRbnlUCgCCM2n+GaElBKLQJ2Ju3bm/C1E65bykofq+f59Ap/uYnuazJ6jU6OBKzEMv9eutGxMp1AOWITCMG7f3c3iNz6NwqYDqqG7R/ApreN7/u3wr5NhbmcLr4zfTyiQgk3umQTqIaGHbD1vfyubzkAq59zViaXKbpNQER+JiLrgS+RYSQgIheJyGIRWbxtm799x91kcA/DXe2Kvy/zVbz9j7btB+JurE4wuLsRNfWyBUsdK9MJEpVAbXWejWwXM1rnu38vXKBURKNwYCs0bM/vesvz5/HvG9s3/2xsuw3OvaxOvYztxy/CJy/nJ0821phB75xWAtZ7eOba/K5/5Nvwt9NhR+msNSi6ElBKXaWUGgzcC1yS4bzblVLTlFLTevcunm++3zh2TF++dcxIwH92AYBRfbs4VtYZUwc5VpaTqIQB65xD+uZXyDn3GdtwgwMSpcCax5721fyuP+bHMPRoaDHls+SccUXuZXXsDhc8ZZbTmJ882bDKPWSus+UefjH0HZ//77R9lbFt2e+cTC7jpXfQfegYRLawYu37yS4Q9w7yoWO/wzgyHWSFO3bLWGrNY1d1yO96EaMHbymTSNgIS53vwo0OXdrK5TT5pNK0S22PivIQKqoSSApBPRcdjdQWfoywGXbBOygRP62LiDrhIhoIAuKiEnAg6XriWoFogRE6Y2sFXPKIcjLJfDLB6oryEHJBjRqIyP3AbKCXiGwArgVOFJHRQBT4BLjYrfuXE1U+jLAZdsE7qG35Kr8QDS6QqI4KWhfhZnRNJ3rGiT7yhfrgu5243SrX6XUCVpkV5CHkmhJQSs1LsfvPbt2vnPFjhE031gm0KT8apdonaxkTByUFGcKDIX/3jBN95COthY8qwMWRj/kenXYRtcqsoHDS/vgv02TE6m2v+tR+AuxNuxtZu929oK/vm7K4ZRP4aJt/AtYqJ9YJgOFu+f5/2moVp2jcbWwL6r2HYP8W2PUJrHw4/zUHEG+cN7gUNG/ryrb3cZJgyMi57JZ7q8/QSqAE6Nu1BoDfPveh7WuOvPF5Zs9f6JJEsGzDbgBC+QRUs8FvnvnAlXLzIbHNrgoUoASirbDrY9iyonChknnwK8a2kKBtVtL5P840vGM6ds+/LMsw/N4j+ZeRiY1LjK0bET8tRbr6WefL9iFaCZQAR47sxYSBdW0MlF4TFOHog3oRKKRRTMGan59I/7oawj5yh01871JImNPTbze2LS6McnZ+ZGxVAVOGR19ubJt2G9svFbCmIdQRxp+RfxiLbEjAiHzqhnfQDPM9FPI7+eh/NRtaCZQI/etq/OUdFI3GcgA4STAgDOrekXCrf+wfjr31mjpj66bRsZBMWyLQOWEdRIcC14B06m0sYnODaGthI5VMWG62FWIc1kqgRAgFA74zDLtlFK4KBGJJa/yAY526bAnd/UCiTaFQz5tAlXvP6nSS+USc+J38mBgjDVoJlAihoMR88/1AOBItbH48A6GqAC0+elbH1iy47THjBFbDKkEo1N7jqkusw6klEymF38lBtBIoEaqCAV/FDgpHFKEqd6pPKCC+elbH1JE1f+3nxsVSAk70si2XWDfmx6Ot7qwRgNL4nRxEK4ESIRQMsGlPE/uavK+Y0ahi+/5mQm6NBIIBVmzaS2NLxJXyc8Uxg7zVw1z7X2fKcwNLRid62ZYi2by08LKS2bvRHaMwxJ999bMlZeDNF60ESoSenYyK+aeXPvZYElhquoe65cFT19FoPB5cvN6V8nPFscfs2MPYvn6rEarZDfpNKOz62p5ttwWVZUYTvfuUwstK5P3/GNvlDzlbrkXQNAyveQ42veXOPXyEVgIlwmVzjLBLVhx/L7FkOLV+oCvl/+TkseZ9vB/1ALGpqZ+fVmAD26UvHHu18bnZ/sI/W4Q6wcGfhYFTCivn7L/B11+CCx2IiT/lPBh9IjTvKbysRKxY/06XaxGsgrPuMj437c14ajmglUCJEAoG6F4b8oXXjNUo1oTcqT6dzJj9fjGEW3J0rnFg+qHHCGPrdPgIFYXeowsvp6Yr9J8InRwYCQQC0G+i8dnJaRW303QC1A0u3r08RiuBEqLKJ26isTDSLq0WFhGqAv5JNRkLlueEDSSWhN1hrxk3Ui06gRtG1mI0zG4HwPMRWgmUENXBgC96x5YMbkb5tFJN+gFHg+W54X4YjRpJ5t1ymSyEWEhpB5+3GF47hf5OJWRQ1kqghPBLIna3RwJgPGuLT1YNtziZQMeVnrFZViGrhd3CjZFPMUYC1qgq799JKwGNC1QFhMVrd3muCLbvbwZwbZ0AGOEjFn+yk4gPRgOWgdqRfMpWD3P3J4WXZWEFjfPlSMBsTPc7mCe8YaexdVPpWXKvezV16ItdazNfX0gMpyKjlUAJ0blDFRt3N/L3xRs8lePJ5Z8a8lS7909YHQywfONenl7xqWv3sMvj724GoGtHB+bcrXg3T/yw8LIsPjDz+fpxJGA971M/dq7M9x41th26OldmMlbZi/8Maxcl3f8x+O0kWPVE+uu977vYRiuBEuKWLxruf3savXWdrK2uol/XGupcCCBnceuXpwLePyvEbQHjBjjQ6PQdDwOmFBarPxkrKfqYk5wr0ynGngrVXZydDqquNbZOrGVIR20POPMvxmcrV4OFtfjt03czFFA6WkArgRJiQDcjdrrX00EtkShDe9a6eo8hPYzyvX5WS4Z+XWsKCyNtIWL48kcdXA1tzVuH3P1N8iJYBQPqS887COIL7/KRXU8HadwgGBBE8DyuTmskSrWL9gCIz7/7wRuqNaIIOekJFax2tiGL5Rf2oYsoOJ+4vVipH4MFRBPV3kEatwgFvY+wGY4o1yKIWlieOH4YCbREos5mUAtUOTs9YpXlWyXgcOL2Yo0ECvFs0iMBjVv4IcJmOBJ1LZeAhVW+H9YKOJ47IVjtjouoH72DwPnE7cXKx1DQWgHv661dfOhOoMlEQIQ12/bbPr8pHGFXQwvb97UgYnyvCQUZ2bsz+5rC1NWG6FBl30iplOKTHQ2M7N05H/FtEzJHAkvX7yYSVQSzjDyawhHe27yXqFJtnqe5NUKHqiB1HUMM7tF2znzngRZ6dIo3nAeaWwkGhJqQcb0VLXXl5r10cSJkhEUwZCzu2rfFiCdkh6Y9sP1Do4cZqIKW/Ubmrk59YIeZWtKP3kFg9Ki3roTW5njWrkzs/MiIrdTabLyrxBSVrc3FW8VrrenYnkO+6z0bzWvM3yrYwXAC6Ngdegx3XkYH8Gmt0aQjqhQvrNrGR9v2M8JGQ3zo/z7Lvub0vbAx/brw5Hdm2r7/q2t20Bh2P8SzZYR9ZuUWfvjPd5h/1qSM54/5yZNZy7zngunMHNUbgNc/2sHZt7/GHedO4/ixRkM87tqn6NOlA29cNQeAPyxczfynjQbg4D4OKj3L/fCPM+GKVfauuXFI9nP8ms2qpiug4OmfwIm/ynzu9g/hlmlFESsrVhL7N26HaV+FPmMyn79nAzSaaxge/Xb74995F7rZ+B2LjJ4OKjG+9xkjSNiuBnu9oUQFcGr9gHbH3/80t2iWOw4Y9z3vyGE5XZcPJ03sD8A/luS2LuKGU8Zx+1emcuXn2v7TLvlkV+zzMjMc9hsf72hzztZ9zbHPT63YEvv85cOH5iRDRqaeD33GwgEHF1AdealzZTnNcdca24Ydmc8DOLDd2B51WXzfOfcZf8m4rfRCNTDneuOzHdkTzxlxTPvju/0RGj0ZrQRKjDH9jeTfLa25zzmOH1hX8P0tQ22fLjaG9QUyIU95jz6oF58Z14/DRzjnR+6oS2x1rRFi2cl5474Fhrl2k9oe0HuMvWkc65xhM+L7xpxk/HXp7458mRg8va1cmUi0e/Qd5448LqCVQIkRN5h6Yxy2gqk5EkcnC/l6IFlTSUEHe4qOG8KDIWPO2Kn1An6dCrIIhOx59UQzrHnwwuYRSzqfg+wlhmtKQETuFJGtIrI8Yd9NIvK+iLwjIg+JSDe37l+uhGL+894oASuYmiNxdLKQ7+IsS3c46dXpihIAB72EfK4E7LqJxha+1bgrj12CObiJlmjYaTf/k+8CTkja9wwwXik1EfgA+JGL9y9LrN6xV4uoWmMRNf07iBSzQczmUZQLjo98AgUsREqF30cCwZA9hRfJwd21GAuyclHWJZqY3rXxlVJqkYgMS9r3dMLX14Az3bp/uWKt1LUieSbT3BrJuZe+bkcDCoUgsW1UKQJmw2LtA9hmRRAtwnSQHSJRxbZ9bd+F1R4GkhrGnQdaWLfDiLOzY7/Ra9uRsM/C+r43Ib2lo4vFIN7INe2FDl1Sn9PSAPs/xfe9fDsEqw3Xz0hr+gTxjbth76b4+X7AkmP/lvTnRKNGVNg9WRwY9m6Cnck5whVtf19LsSXs69w3Hi/JBbx0Eb0AeMDD+5cknToYP9lVDy2nS02IuZPiHj/rdzYw41cvpL022U/eYuZN6a9JRTAgroeNABjcvWPs8/qdDSnlH/njx9vtS6cE/vraJ/z1tbYhnP/11kb+9dbGNvtSvY+O1Q4GfAPoYLqc/u0M+NZrqc/5eQ6GUL9PRVR3hj3r4bHL4JT/1/54JAw3T4znDa7uZGzrElwqhxwB7xbZw8aS44kfwPgzU6fd/Pt58N4jbff1Orj9ef+6MD8ZvvRPOHhOftfawBMlICJXAa3AvRnOuQi4CGDIEP/51nrFwG4due3LU7j4b2+xdW9Tm2MfbT/Q7vyrTzqENdsO8IVpg6gf3I1fnD6Bt9ftYmz/rqzasp/RfTtz3aMrs973p6eMo9YMHT2we8ecFpjly2fG9WPGwb146cPtbNvfnFaJJWPZEiwd0K02xDmHDmnn6//Bln2M6hvvhW/Z10R1MED3WqP3F1WKpet3M6Z/V0b27uTAEyUw7nQjvHKzjUTmJ/2fsXhq2Ayjse8+FF7/I2x7Hz4w10e0NmUuw2tO+AV88ATsSxMaPNxoKIDxZ8Kkc6BuEHzjVejSL37Oib8y8iiHOjobmjoTXQfApHmw7H5jDUAqJWApgPFnGl5QY+dCr1HQvB82vAkrHzaOn3pb2+u2LIdXbzEW/B1/g7Hv4Yvbn9t3rKOPlEzRlYCInAd8HjhOqfSTekqp24HbAaZNm1Y6a7CLwOzRfQB7doELZ4xo833e9CHMm95Wqf7pvx+zYVdjxnLmThroaujodFw8ayQvfbg95pWUiYBAVMUNwxY9aqvbrRmwy1nTBud1XVaqa40wy1YugExMmtd+OuB403/90ctgyV1OS+c8PYbD4MPTz5tb3jeDpsHBxxufkxu/jt1h5hWwbVXxlADA6M8ZSiDbnP+wo2DaBfHvR14CezcbSqCqBurntT3/w2cNJdBvfPyYpQSSz3WRoioBETkB+CEwSynVkO18TWrixuEiegh5NC2dz7NKqcyh2/WY8WtguFzJZBy2Aq7l4gZaLGN4IYHkYpFIU7gC+6Sauukiej/wKjBaRDaIyFeBW4AuwDMislREbstYiCYlXoSUdjloaFqsFJY5KQGf/HNlxW5Iab/GBMqVYCi9N5T1HpxMtuMUlnE4n+illhJQ7odayRc3vYNSjWf+7Nb9KgkRIRQobkhpRxKq5IHllZOLS2zJKAG7IaVL5oGyEMgw8rEaWPGjEjCbyXxGAtYowsehpf3r7K3JSCgo7G8OFy0Ru1fNkJXMJVWayaY0gexKZzqo2mhYmpKMw5FWOGAjVk0ipZDEJBgyksSHUxixrZhBfhz1xNx597Tdr1Q86X22a32MVgIlSsfqIH97bR3f+NuS2L7z7nyjoDIHmS6ZI3oZnjCH9I/n1PWqM9rRDOt8xd+XMezK//Dosk0Mu/I/nPS7l9JGDrVkrTXdOg/u627Y67wJdTR6iDcOhtXPGvt2rYWf9oSbRmS8NE6JKDww7AF71sPP+sYVQaQVrquD22cZ3/04HRQyXZXvP8eQ1eLlm+FXCeGhO6cIC249T9/xrolXKD5Uuxo7/G7eZG54dCXrU3j1XH78KF78YBt/Oje3kLy3fXkqe5vCjOtfx92vruXcI4ZSf8MzgHe96yE9avntOfVctmApAPe/sQ6AFZvSu1Za6wP613Xk3gsPo35wN7fFzI+p5xux8p+7Ph5hcvOy+PGZP4BBh3oimiv0GQMfmt5QLfuN0BDJrq3iw35pv0lwyNz2awHCDVDdBY75MbQ2mkEBkxCB/3nScBn1KT584xo7HDmyFyN6d0ppMP3G7JH88xtH0r1TbkPRuo4hjhzZi7raEN8+7mC61cav92okICKcUj8w9t1OprFEUY86qFdsgZ3v6NQLppxrfE7lNXPsVTDqM8WVyU16JIxurPn1dsZWH45sAgGo/2LqYzV1cMQ3Ycb30v+TDD0i9foCn6CVQAkTCgZSegi5nf/XS+x4RCWvFPY1hSQzL2UspVesfMFuUQbuu1oJlDBVgUBKrxk3PHn80rC22HEV9Yeo9ggkBSjL28BbAobhRKznTfa4yaWe+cEYrpWAxkuqq8Reo+gAPtEBtlYO+0VWWxSUzJwSe9gErMa/ECXgB0rA+ycbPp0s1djBGAlEi+Im6pd/zZbWMpsOsrxHIs3GqlIf+5MXTGLPvbXJeN7W1NFwbVHM3zlR9sTfyI8urTlS+k9QwdSEAuxuCKeMpJkLQ3vWsmFXY8bIoF4tFksmVZA8MEJsW/YCf0hqExEjofmim4y/cqa2R/zzHSly8AK2fr0qM+FMNwfzPmejJsE19KVft5elhNFKoIQ594hh1HUMYQ0ENuxqYFIe7pB/+OJUXvt4B327pq/QXjesd18wnTsWfcTUod15efV2pg3rwVMrPuXu/5nOhl0NDOlZy0wzjLZP9JV9Tv+jERTNYv3rqcMtlzqHzIWTf2dE40yc/vrkFVj/BoQP2Pvxug+Fs//WNg+x2ww9EkZ9DqqqDZ//D58xAt0Nn+XsfS5+uehhwbUSKGEG96jlkmNTxC3PkbraEJ8d1y/jOV43rLNG9WbWqN4AfPd4w+faigw6JCkJfElNBwGMPaXwMvxgJM2GCEw9L/WxB74M7z2K7e7GISc7JpYtROCLC+LfZ/3Anfv0K/6iMm0Y1tjCL9NBmmTK5HexlFgl1TNLb3uswLUS0JQdJTcS0CSgf7tio5WApuzQOkBTElj11OMKq5WApuzQOqAEiU0H6Sap2Og3rikb+tcZ0R61/aIEsWLrJKfR1LiO9g7SlA1/v/gIlnyyi2AZx04qWz77C+hfDyPSrR/QuIVWApqyYUC3jgzo1tFrMTT50KEzHPpVr6WoSPR0kEaj0VQwWgloNKWMZf8ohcViGl+ilYBGU9Jo+4emMLQS0Gg0mgpGKwGNRqPxgmAHY9uhi6diaO8gjUaj8YJhR8Oc6+N5pj1CKwGNRqPxAhE4+jteS6GngzQajaaS0UpAo9FoKhjXlICI3CkiW0VkecK+s0RkhYhERWSaW/fWaDQajT3cHAncBZyQtG85cDqwyMX7ajQajcYmrhmGlVKLRGRY0r73QEd51Ggco8p0MwwEvZVDU7L41jtIRC4CLgIYMmSIx9JULg9/6yhWbNrjtRiadMy+0ojBP/krXkuiKVFEuRhzxBwJPKaUGp+0fyFwhVJqsZ1ypk2bphYvtnWqRqPRaOJknXbR3kEajUZTwWgloNFoNBWMmy6i9wOvAqNFZIOIfFVEThORDcARwH9E5Cm37q/RaDSa7LjpHTQvzaGH3LqnRqPRaHJDTwdpNBpNBaOVgEaj0VQwWgloNBpNBaOVgEaj0VQwri4WcwoR2QZ8kuflvYDtDorjFFqu3NBy5YZf5QL/ylaOcm1XSiXHcGtDSSiBQhCRxUop30Us1XLlhpYrN/wqF/hXtkqVS08HaTQaTQWjlYBGo9FUMJWgBG73WoA0aLlyQ8uVG36VC/wrW0XKVfY2AY1Go9GkpxJGAhqNRqNJg1YCGo1GU8kopXz9h5GneBWwGrgyxXEBfmcefweYku1aoAfwDPChue2ecOxH5vmrgM8WWa6bgPfN8x8Cupn7hwGNwFLz77Yiy3UdsDHh/if65H09kCDTWmBpkd/XncBWYHnSNQXXLxdl87qOpZPL6zqWTi7P6hgwGHgBeA9YAVzmdB1TSvlbCQBBYA0wAqgGlgFjk845EXjCfJGHA69nuxb4lfVjAFcCvzQ/jzXP6wAMN68PFlGuzwBV5udfJsg1LLlyFvl9XYeRCS75fp6+r6Trfw1cU6z3ZR6bCUxJvleh9ctl2TyrY1nk8qyOZZLLyzoG9CeuELoAH+BQG5b45/fpoOnAaqXUR0qpFmABcErSOacA9yiD14BuItI/y7WnAHebn+8GTk3Yv0Ap1ayU+hhDm04vllxKqaeVUq3m9a8Bg+y+KDflyoCn78tCRAT4AnB/FnmdlAul1CJgZ4pyC61frsnmcR3L9M7SUYw6llUuL+qYUmqzUuotU759GCOCgQnXFFrHAP/bBAYC6xO+byD+ErKdk+navkqpzQDmtk8O93NTrkQuwOgdWAwXkbdF5EURmZHifLflukRE3hGRO0Wkew73c1sugBnAFqXUhwn73H5fmSi0frkpWyLFrmPZ8KqO2cHTOmbma58MvG7ucqKOAf5XAqmSJCub59i5Np/7uS6XiFwFtAL3mrs2A0OUUpOBy4H7RKRrEeW6FRgJ1Juy/DqH+7kpl8U82vbQivG+8iGXslyVzaM6lgkv65gdPKtjItIZ+CfwHaXU3ixy5vyMflcCGzCMIxaDgE02z8l07RZrGGhut+ZwPzflQkTOAz4PfEmZk3zm0G6H+XkJxjzfqGLJpZTaopSKKKWiwB3Eh5d+eF9VwOkYBjxMeYvxvjJRaP1yUzYv61haPK5jGfGyjolICEMB3KuU+lfCOU7UsdjD+PYPI/3lRxgGDsuoMi7pnJNoa1R5I9u1GB4SiUaVX5mfx9HWqPIRqY1Qbsl1ArAS6J1UVm9LDgwD00agRxHl6p9w/Xcx5hw9f18J7+zFYr+vhOPDSO2Bk3f9clk2z+pYFrk8q2OZ5PKyjpnf7wFuTlFuwXUsVlamg374w7Ccf4Chaa8y910MXJzwov6fefxdYFqma839PYHnMNyrnkv88YCrzPNXAZ8rslyrMebzlpLgdgacgeEitgx4Czi5yHL91Tz3HeAR2v7Deva+zGN3WWUk7CvW+7ofY1ogjNED+6pT9ctF2byuY+nk8rqOpZTLyzoGHI0xlfMOSa6zOFTHlFI6bIRGo9FUMn63CWg0Go3GRbQS0Gg0mgpGKwGNRqOpYLQS0Gg0mgpGKwGNRqOpYLQS0FQcInKViKwwQxQsFZHDXLzXQhHxXfJyjcaiymsBNJpiIiJHYKyWnaKUahaRXhiLeDSaikSPBDSVRn9gu1KqGUAptV0ptUlErhGRN0VkuYjcbkaNtHryvxGRRSLynogcKiL/EpEPReR/zXOGicj7InK3Obr4h4jUJt9YRD4jIq+KyFsi8nczJgwicqOIrDSvnV/Ed6HRaCWgqTieBgaLyAci8gcRmWXuv0UpdahSajzQEWO0YNGilJoJ3Ab8G/gWMB44X0R6mueMBm5XSk0E9gLfTLypOeK4GpijlJoCLAYuF5EewGkYoQQmAv/rwjNrNGnRSkBTUSil9gNTgYuAbcADInI+cIyIvC4i7wLHYsRgsXjE3L4LrFBGnPdmjLgsVrCu9Uqpl83Pf8NY8p/I4RgJP14WkaXAecBQDIXRBPxJRE4HGpx6Vo3GDtomoKk4lFIRYCGw0Gz0vw5MxIjZsl5ErgNqEi5pNrfRhM/Wd+t/KDn+Sqpwwc8opeYlyyMi04HjgHOASzCUkEZTFPRIQFNRiMhoETk4YVc9RqAtgO3mPP2ZeRQ9xDQ6gxF7/r9Jx18DjhKRg0w5akVklHm/OqXU48B3THk0mqKhRwKaSqMz8HsR6YaRVGU1xtTQbozpnrXAm3mU+x5wnoj8ESOy462JB5VS28xpp/tFpIO5+2pgH/BvEanBGC18N497azR5o6OIajQFYqb+e8w0Kms0JYWeDtJoNJoKRo8ENBqNpoLRIwGNRqOpYLQS0Gg0mgpGKwGNRqOpYLQS0Gg0mgpGKwGNRqOpYP4/ddN2ZmTxewcAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "df_train = pd.read_csv(r\"datasets/buck_id.csv\")\n", + "df_valid = pd.read_csv(r\"datasets/buck_valid.csv\")\n", + "\n", + "# Plotting the measured output (identification and validation data)\n", + "plt.figure(1)\n", + "plt.title(\"Output\")\n", + "plt.plot(df_train.sampling_time, df_train.y, label=\"Identification\", linewidth=1.5)\n", + "plt.plot(df_valid.sampling_time, df_valid.y, label=\"Validation\", linewidth=1.5)\n", + "plt.xlabel(\"Samples\")\n", + "plt.ylabel(\"Voltage\")\n", + "plt.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": { + "ExecuteTime": { + "end_time": "2023-07-11T17:36:23.899524600Z", + "start_time": "2023-07-11T17:36:23.787667800Z" + } + }, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# Plotting the measured input (identification and validation data)\n", + "plt.figure(2)\n", + "plt.title(\"Input\")\n", + "plt.plot(df_train.sampling_time, df_train.input, label=\"Identification\", linewidth=1.5)\n", + "plt.plot(df_valid.sampling_time, df_valid.input, label=\"Validation\", linewidth=1.5)\n", + "plt.ylim(2.1, 2.6)\n", + "plt.ylabel(\"u\")\n", + "plt.xlabel(\"Samples\")\n", + "plt.legend()\n", + "plt.show()" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Buck Converter Static Function\n", + "\n", + "The duty cycle, represented by the symbol $D$, is defined as the ratio of the time the system is on ($T_{on}$​) to the total operation cycle time ($T$). Mathematically, this can be expressed as $D=\\frac{T_{on}}{T}$. The complement of the duty cycle, represented by $D'$, is defined as the ratio of the time the system is off ($T_{off}$) to the total operation cycle time ($T$) and can be expressed as $D'=\\frac{T_{off}}{T}$.\n", + "\n", + "The load voltage ($V_o$) is related to the source voltage ($V_d$) by the equation $V_o​=D⋅V_d​=(1−D’)⋅V_d$. For this particular converter, it is known that $D′=\\frac{\\bar{u}-1}{3}​$,​ which means that the static function of this system can be derived from theory to be:\n", + "\n", + "$$\n", + "V_o = \\frac{4V_d}{3} - \\frac{V_d}{3}\\cdot \\bar{u}\n", + "$$\n", + "\n", + "If we assume that the source voltage $V_d$​ is equal to 24 V, then we can rewrite the above expression as follows:\n", + "\n", + "$$\n", + "V_o = (4 - \\bar{u})\\cdot 8\n", + "$$" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": { + "ExecuteTime": { + "end_time": "2023-07-11T17:36:24.099777400Z", + "start_time": "2023-07-11T17:36:23.919547400Z" + } + }, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# Static data\n", + "Vd = 24\n", + "Uo = np.linspace(0, 4, 50)\n", + "Yo = (4 - Uo) * Vd / 3\n", + "Uo = Uo.reshape(-1, 1)\n", + "Yo = Yo.reshape(-1, 1)\n", + "plt.figure(3)\n", + "plt.title(\"Buck Converter Static Curve\")\n", + "plt.xlabel(\"$\\\\bar{u}$\")\n", + "plt.ylabel(\"$\\\\bar{y}$\")\n", + "plt.plot(Uo, Yo, linewidth=1.5, linestyle=\"-\", marker=\"o\")\n", + "plt.show()" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Buck converter Static Gain\n", + "\n", + "The gain of a Buck converter is a measure of how its output voltage changes in response to changes in its input voltage. Mathematically, the gain can be calculated as the derivative of the converter’s static function, which describes the relationship between its input and output voltages.\n", + "In this case, the static function of the Buck converter is given by the equation:\n", + "\n", + "$$\n", + "V_o = (4 - \\bar{u})\\cdot 8\n", + "$$\n", + "\n", + "Taking the derivative of this equation with respect to $\\hat{u}$, we find that the gain of the Buck converter is equal to −8. In other words, for every unit increase in the input voltage $\\hat{u}$, the output voltage Vo​ will decrease by 8 units.\n", + "\n", + "so $gain=V_o'=-8$" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "ExecuteTime": { + "end_time": "2023-07-11T17:36:24.264197200Z", + "start_time": "2023-07-11T17:36:24.101783Z" + } + }, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# Defining the gain\n", + "gain = -8 * np.ones(len(Uo)).reshape(-1, 1)\n", + "plt.figure(3)\n", + "plt.title(\"Buck Converter Static Gain\")\n", + "plt.xlabel(\"$\\\\bar{u}$\")\n", + "plt.ylabel(\"$\\\\bar{gain}$\")\n", + "plt.plot(Uo, gain, linewidth=1.5, label=\"gain\", linestyle=\"-\", marker=\"o\")\n", + "plt.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Building a dynamic model using the mono-objective approach" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "ExecuteTime": { + "end_time": "2023-07-11T17:36:24.328953300Z", + "start_time": "2023-07-11T17:36:24.264197200Z" + } + }, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "C:\\Users\\wilso\\Desktop\\projects\\GitHub\\gabriel\\sysidentpy\\sysidentpy\\utils\\deprecation.py:37: FutureWarning: Passing a string to define the estimator will rise an error in v0.4.0. \n", + " You'll have to use FROLS(estimator=LeastSquares()) instead. \n", + " The only change is that you'll have to define the estimator first instead of passing a string like 'least_squares'. \n", + " This change will make easier to implement new estimators and it'll improve code readability.\n", + " warnings.warn(message, FutureWarning)\n" + ] + }, + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "x_train = df_train.input.values.reshape(-1, 1)\n", + "y_train = df_train.y.values.reshape(-1, 1)\n", + "x_valid = df_valid.input.values.reshape(-1, 1)\n", + "y_valid = df_valid.y.values.reshape(-1, 1)\n", + "\n", + "basis_function = Polynomial(degree=2)\n", + "\n", + "model = FROLS(\n", + " order_selection=True,\n", + " n_info_values=8,\n", + " extended_least_squares=False,\n", + " ylag=2,\n", + " xlag=2,\n", + " info_criteria=\"aic\",\n", + " estimator=\"least_squares\",\n", + " basis_function=basis_function,\n", + ")\n", + "\n", + "model.fit(X=x_train, y=y_train)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Affine Information Least Squares Algorithm (AILS)\n", + "\n", + "AILS is a multiobjective parameter estimation algorithm, based on a set of affine information pairs. The multiobjective approach proposed in the mentioned paper and implemented in SysIdentPy leads to a convex multiobjective optimization problem, which can be solved by AILS. AILS is a LeastSquares-type non-iterative scheme for finding the Pareto-set solutions for the multiobjective problem.\n", + "\n", + "So, with the model structure defined (we will be using the one built using the dynamic data above), one can estimate the parameters using the multiobjective approach.\n", + "\n", + "The information about static function and static gain, besides the usual dynamic input/output data, can be used to build the pair of affine information to estimate the parameters of the model. We can model the cost function as:\n", + "\n", + "$$\n", + "\\gamma(\\hat\\theta) = w_1\\cdot J_{LS}(\\hat{\\theta})+w_2\\cdot J_{SF}(\\hat{\\theta})+w_3\\cdot J_{SG}(\\hat{\\theta})\n", + "$$\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Multiobjective parameter estimation considering 3 different objectives: the prediction error, the static function and the static gain " + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": { + "ExecuteTime": { + "end_time": "2023-07-11T17:36:24.328953300Z", + "start_time": "2023-07-11T17:36:24.297851300Z" + } + }, + "outputs": [], + "source": [ + "# you can use any set of model structure you want in your use case, but in this notebook we will use the one obtained above the compare with other work\n", + "mo_estimator = AILS(final_model=model.final_model)\n", + "\n", + "# setting the log-spaced weights of each objective function\n", + "w = set_weights(static_function=True, static_gain=True)\n", + "\n", + "# you can also use something like\n", + "\n", + "# w = np.array(\n", + "# [\n", + "# [0.98, 0.7, 0.5, 0.35, 0.25, 0.01, 0.15, 0.01],\n", + "# [0.01, 0.1, 0.3, 0.15, 0.25, 0.98, 0.35, 0.01],\n", + "# [0.01, 0.2, 0.2, 0.50, 0.50, 0.01, 0.50, 0.98],\n", + "# ]\n", + "# )\n", + "\n", + "# to set the weights. Each row correspond to each objective" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "AILS has an `estimate` method that returns the cost functions (J), the Euclidean norm of the cost functions (E), the estimated parameters referring to each weight (theta), the regressor matrix of the gain and static_function affine information HR and QR, respectively.\n" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": { + "ExecuteTime": { + "end_time": "2023-07-11T17:36:24.435488200Z", + "start_time": "2023-07-11T17:36:24.301867Z" + } + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
w1w2w3J_lsJ_sgJ_sf||J||:
00.0068420.0030780.9900800.9999701.095045e-050.0000130.245244
10.0075730.0023470.9900800.9999382.294701e-050.0000160.245236
20.0083820.0015380.9900800.9998856.505062e-050.0000180.245223
30.0092770.0006420.9900800.9997174.505632e-040.0000210.245183
40.0068420.0986630.8944951.0000007.393225e-080.0000150.245252
........................
22900.6596320.3335270.0068420.9958963.965701e-041.0000000.244489
22910.7301190.2630390.0068420.9956325.602985e-040.9728410.244412
22920.8081390.1850200.0068420.9953648.321075e-040.8682990.244300
22930.8944950.0986630.0068420.9951001.365000e-030.6604850.244160
22940.9900800.0030780.0068420.9925849.825994e-020.3054920.261455
\n", + "

2295 rows × 7 columns

\n", + "
" + ], + "text/plain": [ + " w1 w2 w3 J_ls J_sg J_sf ||J||:\n", + "0 0.006842 0.003078 0.990080 0.999970 1.095045e-05 0.000013 0.245244\n", + "1 0.007573 0.002347 0.990080 0.999938 2.294701e-05 0.000016 0.245236\n", + "2 0.008382 0.001538 0.990080 0.999885 6.505062e-05 0.000018 0.245223\n", + "3 0.009277 0.000642 0.990080 0.999717 4.505632e-04 0.000021 0.245183\n", + "4 0.006842 0.098663 0.894495 1.000000 7.393225e-08 0.000015 0.245252\n", + "... ... ... ... ... ... ... ...\n", + "2290 0.659632 0.333527 0.006842 0.995896 3.965701e-04 1.000000 0.244489\n", + "2291 0.730119 0.263039 0.006842 0.995632 5.602985e-04 0.972841 0.244412\n", + "2292 0.808139 0.185020 0.006842 0.995364 8.321075e-04 0.868299 0.244300\n", + "2293 0.894495 0.098663 0.006842 0.995100 1.365000e-03 0.660485 0.244160\n", + "2294 0.990080 0.003078 0.006842 0.992584 9.825994e-02 0.305492 0.261455\n", + "\n", + "[2295 rows x 7 columns]" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "J, E, theta, HR, QR, position = mo_estimator.estimate(\n", + " X=x_train, y=y_train, gain=gain, y_static=Yo, X_static=Uo, weighing_matrix=w\n", + ")\n", + "result = {\n", + " \"w1\": w[0, :],\n", + " \"w2\": w[2, :],\n", + " \"w3\": w[1, :],\n", + " \"J_ls\": J[0, :],\n", + " \"J_sg\": J[1, :],\n", + " \"J_sf\": J[2, :],\n", + " \"||J||:\": E,\n", + "}\n", + "pd.DataFrame(result)" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we can set theta related to any weight results" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": { + "ExecuteTime": { + "end_time": "2023-07-11T17:36:24.522223600Z", + "start_time": "2023-07-11T17:36:24.435488200Z" + } + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
RegressorsParametersERR
012.2930E+009.999E-01
1y(k-1)2.3307E-012.042E-05
2y(k-2)6.3209E-011.108E-06
3x1(k-1)-5.9333E-014.688E-06
4y(k-1)^22.7673E-013.922E-07
5y(k-2)y(k-1)-5.3228E-018.389E-07
6x1(k-1)y(k-1)1.6667E-025.690E-07
7y(k-2)^22.5766E-013.827E-06
\n", + "
" + ], + "text/plain": [ + " Regressors Parameters ERR\n", + "0 1 2.2930E+00 9.999E-01\n", + "1 y(k-1) 2.3307E-01 2.042E-05\n", + "2 y(k-2) 6.3209E-01 1.108E-06\n", + "3 x1(k-1) -5.9333E-01 4.688E-06\n", + "4 y(k-1)^2 2.7673E-01 3.922E-07\n", + "5 y(k-2)y(k-1) -5.3228E-01 8.389E-07\n", + "6 x1(k-1)y(k-1) 1.6667E-02 5.690E-07\n", + "7 y(k-2)^2 2.5766E-01 3.827E-06" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "model.theta = theta[-1, :].reshape(\n", + " -1, 1\n", + ") # setting the theta estimated for the last combination of the weights\n", + "# the model structure is exactly the same, but the order of the regressors is changed in estimate method. Thats why you have to change the model.final_model\n", + "model.final_model = mo_estimator.final_model\n", + "yhat = model.predict(X=x_valid, y=y_valid)\n", + "rrse = root_relative_squared_error(y_valid, yhat)\n", + "r = pd.DataFrame(\n", + " results(\n", + " model.final_model,\n", + " model.theta,\n", + " model.err,\n", + " model.n_terms,\n", + " err_precision=3,\n", + " dtype=\"sci\",\n", + " ),\n", + " columns=[\"Regressors\", \"Parameters\", \"ERR\"],\n", + ")\n", + "r" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### The dynamic results for that chosen theta is" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": { + "ExecuteTime": { + "end_time": "2023-07-11T17:36:24.667179100Z", + "start_time": "2023-07-11T17:36:24.475149700Z" + } + }, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot_results(y=y_valid, yhat=yhat, n=1000)" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### The static gain result is" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": { + "ExecuteTime": { + "end_time": "2023-07-11T17:36:24.793210700Z", + "start_time": "2023-07-11T17:36:24.688253500Z" + } + }, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYMAAAESCAYAAAAfXrn0AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8rg+JYAAAACXBIWXMAAAsTAAALEwEAmpwYAAAsb0lEQVR4nO3deVyU5f7/8dc9AwME5r7lvmuLGXrK1BbF5USmZmGYy9E6+iuPG6mJJIVpqJWdOueURzupqKiEqZWtih795lFKU1NTyl009xUEkZn798fI6Ai4IjPC+/l4+Ii57vue+8MVXO/7vua+bwzTNE1ERKRYs3i6ABER8TyFgYiIKAxERERhICIiKAxERASFgYiIoDAQuWbz588nLCyM0NBQ2rZtS9++fdm4ceMVt9m0aRODBw8upApFbpyh+wxEru69997jp59+4t1336VKlSoArF69moiICBYsWMBdd93l4QpFbo7CQOQqjh49SkhICEuWLKFChQpuyxYtWsR9993H3r17mTJlCllZWRw/fpwuXbowdOhQkpOTGTt2LIsXLyYyMpKgoCBSUlI4ePAgDRo0YOLEiQQGBnroOxO5yMfTBYh4uw0bNlCnTp1cQQDQpUsXTNMkJiaGCRMmULNmTQ4dOkTr1q3p3bt3rvU3b97MzJkzMQyDbt268e233/LMM88UxrchckUKA5GruPzkOS0tjR49egBw9uxZnnjiCf7973/z3//+l8WLF7Njxw5M0yQjIyPXez3yyCPYbDYA6tevz6lTp279NyByDfQBsshVNG7cmF27dnHixAkAgoKC+Pzzz/n888/p1KkTR44c4emnn2bLli3cfffdvPrqq/j4+OQKEQB/f3/X14Zh5LmOiCcoDESuomLFivTu3ZshQ4Zw4MABV/v+/fv5+eefOXnyJGlpaQwdOpQ2bdqQnJxMVlYWDofDg1WLXB9NE4lcg4iICL744guGDRtGRkYGZ86coWTJkoSGhtKjRw/Gjh3LE088gc1mo379+tStW5c9e/a4poREvJ2uJhIREU0TiYiIwkBERPDSzwwcDgcxMTGkpKRgs9kYN24cNWrU8HRZIiJFlleeGSxdupSsrCwSEhIYNmwYEyZM8HRJIiJFmleGwbp163jkkUcAaNKkCZs3b3Zbnp2dTWpqKtnZ2Z4oT0SkyPHKMEhLSyMoKMj12mq1ug38Bw8eJCQkhIMHD3qiPBGRIscrwyAoKIj09HTXa4fDgY+PV368ISJSJHhlGAQHB7Ny5UrA+ZCw+vXre7giEZGizSsPt9u1a8eqVasIDw/HNE1iY2M9XZKISJHmlWFgsVh48803PV2GiEix4ZXTRCIiUrgUBiIiojAQERGFgYiIoDAQua0sWr+flhOWUSvyK1pOWMai9ftv6v2Sk5N5+OGH6dWrFz179iQ8PJwdO3Zc13ukpqbSrVu3m6rjVpk9e3aBvdeBAwdYtmzZFddJSEjg/PnzbN26lX/9618Ftu8cAwcOLPD3zKEwELlNLFq/n1ELNrH/ZAYmsP9kBqMWbLrpQGjevDmzZs1i9uzZDBw4kLfffrtgCvYCkydPLrD3WrNmDT///PMV15kyZQoOh4NGjRrdkoH7VgRMDq+8tFSkOPpsXSqfrt2X7/L1e0+SZXf/U5oZ5+28Ov8X5v64N89tujWrxjNNq15zDadPn6ZKlSoA9OrVi5iYGOrUqcPcuXM5evQogwYN4qOPPmLp0qXY7Xa6d+9Oq1atALDb7URGRlKvXj369+/ves/MzExGjRrFgQMHOH/+PNHR0dx7771ERUWxb98+7HY7ffv2JTQ0lF69etGwYUN+//130tLS+OCDD0hKSuL06dMMHDiQrKwsOnXqxBdffEFCQgKLFy/GMAxCQ0Pp3bs3kZGRnDx5kpMnT/LYY49x6tQpYmJieO2113jjjTfYs2cPDoeDoUOH8tBDD9GxY0dq1qyJzWbjvffec9UcHx/PokWLsFgsBAcHM3z4cKZOnUpmZiYPPPAAJUqUcA3MmZmZTJw4kbVr13LkyBEiIiL4y1/+wrx58/j73/9OYmIic+fOxeFwEBISwqBBg1z7MU2TMWPGsHnzZsqVK8f+/fuZPHkyZ8+eZcKECTgcDk6fPs3o0aMJDg6mZcuWrFq1Ks9+yvn/dqN0ZiBym7g8CK7Wfq3WrFlDr169eO6554iKiqJDhw75rvvrr7+ycuVKEhMTmTdvHtu3b8c0TbKzsxk+fDhNmjRxCwKAefPmUaVKFRISEpgwYQIbN24kISGB0qVLM2/ePKZPn87777/P8ePHAWjcuDEzZsygZcuWfPXVV3Tu3JlvvvkG0zRJSkqidevW7N27l6+//po5c+YwZ84cli5dys6dOwHnmc68efN4+eWXKVmyJDExMSQmJlK6dGni4+P56KOPXPcxnT17lgEDBrgFAcCCBQt47bXXSEhIoFq1apimSf/+/enYsSMhISH8/vvvvPPOO8ycOZM2bdrw7bffEhYWRvny5fn73//uep9jx47x8ccfM2fOHBYsWMCZM2fcHrWTlJTEyZMnmT9/PrGxsfzxxx8AbN++nZEjRzJjxgz69u3LggULcv2/uLyfbpbODES8xDNNq17xKL7lhGXsP5mRq71KqQAS/t/DN7zf5s2buwawnTt3Eh4e7nocTI6cv467a9cuGjdujNVqJSAggNGjR5OamkpKSgpBQUGcPXs21/vv3LmTRx99FID69etTv359xowZQ4sWLQDns8jq1KnDvn3Os6K7774bgEqVKnH06FFKlixJo0aNWLduHQsXLmTkyJGkpKRw4MAB+vTpA8CpU6fYu9d5dlSrVq1cNfz222+sW7eOX375BXA++fjEiRP5rj9+/HimTZvGu+++S5MmTbj8rwNXrFiRt956izvuuINDhw4RHBycZ9/u27ePevXq4e/vD0BUVFSuvmnSpAkAZcqUoXbt2gBUqFCBjz76CH9/f9LT090e3Jnj8n66WTozELlNjOjQgABfq1tbgK+VER0aFNg+ypUr5/raZrNx5MgRwHlGAFC7dm1+/fVXHA4H58+fp2/fvmRlZXHPPfcwdepUvvjiC7Zt2+b2nnXq1GHTpk2Ac3AcNmwYderUYe3atYDzKcW//fYbVavmH4TdunUjLi6OzMxM6tSpQ+3atalbty4zZ85k1qxZdO3a1fUMM8MwXNvlDOK1a9fmySefZNasWXz88cf8+c9/pmTJkoDziQeX+/TTTxkzZgyzZ89m69atrF+/HovFgsPhPAsbPXo0sbGxTJgwgQoVKrj2YxiGax2A6tWrs3PnTrKysgAYPHgwhw4dci2vV68eGzZsAJyBtnv3bgDeeustBg8ezMSJE6lfv36uMLoVdGYgcpvo8oBzTvid71I4cDKDu0oFMKJDA1f7jcqZJrJYLKSnpxMZGYm/vz+9e/fmzTffpHLlylSoUAGARo0a8cgjj9C9e3ccDgfdu3fHZrMB4O/vT0xMDCNHjiQxMdHVHh4eTlRUFD179sRutxMVFUWDBg2Ijo6me/funDt3joEDB1K2bNl8a3zwwQeJjo7m5ZdfBqBhw4Y8/PDDdO/enaysLBo3bkzFihVzbVenTh2GDx9ObGwso0ePpmfPnqSlpfH888/nGQI5GjRowLPPPkvp0qWpWLEi999/P0FBQUyePJl77rmHzp07061bN+68807KlSvH4cOHAWjWrBn9+/fnb3/7G+A82u/Xrx89e/bEMAxat27tVufjjz/OypUrCQ8Pp1y5cvj7++Pr60unTp0YMGAAZcuWpVKlSq6zmFvJMAsjcgpYamoqISEhJCUlXfFoQkTEm+3YsYNt27bx5JNPcuLECTp27Mjy5ctdQVqYdGYgIuIhlStX5t133yUuLg673c7w4cM9EgSgMBAR8Zg77rijQO+FuBn6AFlERBQGIiKiMBARERQGIiKCwkDk9nPmIEx/As4cuvq6V5GcnEyzZs1cj0EAePfdd90ef7Bx40buvfde19274Hxcw+OPP06vXr3o1asXnTt3ZsyYMQCsWrWKTp06kZmZCcChQ4d46qmn3G62KigREREkJyfnu7xNmzacO3fuht9/6tSpbt93UeZ1YXDmzBleeuklevbsyXPPPcf69es9XZKId1nxNuxdAysmFsjb+fr6MmrUqHzvck1MTKRv377MmTPHrb1jx47MmjWLWbNmsXDhQrZu3cqmTZto2bIlrVq1YsKECZw/f56IiAgiIyPzvCnM2/Xv35/GjRt7uoxC4XWXlk6fPp3mzZvTp08fdu7cybBhw1i4cKGnyxK59TbMhfVXef5+dhYcWAumA9ZNh4ObwHqF69If6AlNul/xLZs3b47D4SA+Pp6ePXu6LUtPT2fNmjV89dVXPPXUUxw/fpwyZcrkeo/09HTOnDlDiRIlAOcR+/PPP8+AAQNo0aIFLVu2zLVNu3bteOCBB9izZw/NmzfnzJkz/PLLL9SqVYt33nmH1NRUXnvtNbKzszEMg9GjR9OwYUPi4+NJTEykfPnyHDt2DIDz58/n+VTSvCxfvpx//OMfBAUFUbJkSRo0aMCAAQN4/fXXOXjwICdOnODRRx9l6NChREZGEhoaytGjR1mxYgWZmZns3buXfv360bVr1yv26+3G68KgT58+rpsu7HY7fn5+Hq5IxIuc2gs5R/CmCSf3Qtm6N/22MTExhIWFuR5HnePrr7+mXbt2+Pn58cQTTzB//nzXU0kXL17Mhg0bOHLkCIGBgbz00kvUrFkTcJ5tdOvWjZiYGNf00eX2799PXFwc5cuX58EHHyQxMZHo6GhCQkI4ffo0b7/9Nr169aJt27Zs3bqVqKgo4uLimDlzJl9++SWGYbgG5JynksbGxnLixAl69uyZ55M87XY748aNIyEhgXLlyjFs2DAA/vjjD5o0aUJYWBjnzp1zhcGl0tLS+OSTT9i9ezcvvfSSwqAgJSYmEhcX59YWGxtL48aNOXLkCCNGjMj1lD+RIqtJ9ysfxZ85CB/cD+RM55iQeRKenQYlbm4KpnTp0kRFRREZGen2BM7ExESsVisvvvgimZmZHDx4kL/+9a+Ac5po+PDh7Nu3j7/+9a+uIADnQP+f//yHESNGMGLECGbOnInV6v6QvVKlSnHXXXcBzpuv6tZ1hlqJEiU4d+4cO3bs4E9/+hPgfCbSwYMH2blzJ3Xr1nUdMOZM4VzpqaSXOn78OEFBQa4H8jVr1oyjR49SqlQpNm3axJo1awgKCnI9WO5SDRs2BJx3Dee1/Hbn0c8MwsLCWLx4sdu/xo0bk5KSQp8+fYiIiODBBx/0ZIki3mPF287poUuZjgL77KBNmzbUqlXLNS2bkpKC3W5n7ty5fPLJJ8THx1O9enWWL1/utl21atV44403GDJkCBkZGWRlZTF06FCioqLo06cPlStXzvMvdF36dNG8XPpk061bt1KuXDmqVavG9u3byczMxG63s3XrVuDKTyW9VNmyZUlPT3f97YSNGzcCzg/ES5QowaRJk3jhhRfIzMzM9RnK1eq93XndNNH27dsZMmQI77//viuJRQRI/RHslx2R2rOc7QXktddeY82aNYDzrKBz585uy8PCwoiPj6djx45u7S1atKBFixb84x//ICsri6ZNm/LYY48Bzimorl270rx583zn8fPy6quvEh0dzbRp08jOzuatt96iTJkyDBkyhPDwcMqUKUNAQADgfDLqtTyV1GKxEB0dTb9+/ShRogQOh4MaNWrw8MMP88orr7Bu3ToCAgKoUaOG60mkxYXXPbX05ZdfJiUlxfUn3HIeG3spPbVURG7UlClT6Nu3LzabjeHDh9OqVSu6dOni6bI8zuvODLzloU0iUjQFBgbSrVs3/P39qVKlCqGhoZ4uySt4XRiIiNxKPXv2zHUJrXjhTWciIlL4FAYiIqIwEBERhYGIiKAwEBERFAYiIoLCQEREUBiIiAgKAxERQWEgIiIoDEREBIWBiIigMBARERQGIiKCwkBERFAYiIgICgMREUFhICIieHEY7Nixg6ZNm3Lu3DlPlyIiUuR5ZRikpaUxceJEbDabp0sRESkWvC4MTNMkOjqaV155hYCAAE+XIyJSLPh4cueJiYnExcW5td11112EhobSsGFDD1UlIlL8GKZpmp4u4lLt2rWjUqVKAGzYsIHGjRsTHx/vtk5qaiohISEkJSVRtWpVT5QpIlKkePTMIC9Llixxfd2mTRumTZvmwWpERIoHr/vMQERECp/XnRlcatmyZZ4uQUSkWNCZgYiIKAxERERhICIiKAxERASFgYiIoDAQEREUBiIigsJARERQGIiICAoDERFBYSAiIigMREQEhYGIiKAwEBERFAYiIoLCQEREUBiIiAgKAxERQWEgIiJ44d9AttvtjB8/ns2bN5OVlcWgQYNo3bq1p8sSESnSvC4MPv/8c7Kzs5k3bx6HDh3im2++8XRJIiJFnteFwQ8//ED9+vXp378/pmkSHR3t6ZJERIo8j4ZBYmIicXFxbm2lS5fGz8+PKVOm8NNPPzFq1Cji4+M9VKGISPHg0TAICwsjLCzMrS0iIoLHH38cwzB48MEH2b17t2eKExEpRrzuaqKmTZuyYsUKALZt20blypU9XJGISNHndWHQrVs3TNOkW7duREdHM2bMGE+XJCJS5HndB8g2m43x48d7ugwRkWLF684MRESk8CkMREREYSAiIgoDERFBYSAiIigMREQEhYGIiKAwEBERFAYiIoLCQEREUBiIiAgKAxERQWEgIiIoDEREBIWBiIigMBARufXOHITpT8CZQ7emvQAoDERE8nIjA3J+y1a8DXvXwIqJ19+eeQpOH4Cjv8PXI2DP6tzrFwCv+0tnIiJXdeYgzO8Lz86AEhWvbdn1tl86IHd87+rtpgnL3nIO1t+/Bi0GQVY6nEqFn2eC6XD+168EGAakHYGNc53t66bDgZ/Bfh4yTzq3AVj7ifPf5TbMhsdG5v7eb4LCQEQKz60eqK+07NL2JydBdqZzsP5+tHMA/2oYNOsLWWnOI/Gf4y4M4HHOQRoHpB+D379ztq+dBtuXXnyfrLSL+9qU6Px3Ocd5WPU+WHzAsIBpd7abpvN7vSsYjmRcWOYAwwpVmkGT7rBlEez5ARzZzvXz+t5vgmGapllg71YAzpw5Q0REBBkZGfj6+vLOO+9Qvnx5t3VSU1MJCQkhKSmJqlWreqhSkWLiegfqKy1b/IrzKLhpX/eB7GrtwX+BkNedA+6JPTC7K9izwGqD9m+BxeIckM8cguR/OwdZwwq1HnUOnhkn4NAWIGe4swCOa+8Diy8ElnPu49zpC40GlKkFNVuBrQTsWQUHNzn3bbFCrdbQ5HlY9JKz1hw+/vDiUvikrTNIbqZ9yC8FdnbgdWEQFxfHoUOHePXVV/n000/ZuXMnkZGRbuvcaBgsWr+fd75L4cDJDO4qFcCIDg3o8kCVfNtvZJuCate+b+99FNa+p327mtcy3mFcwKu8+OfmV2zP2ff1bLNo/X4ci1+hS/Z3LPTpgLXje1dsB/h83R4sX0XwpH0ZS60tsbUaxOO17mDdL5tovD4aX+ycx8quur2pXyGIvXv3UCV1MVYcODA4VbIhpW1w9swxAjIPY1znGGICxoX/ZtlK4VfpbtIP78I/8yBWTOwYnC7ZiNLNwji6/ktKHd+ADw6ysXKo0uNUaTcYe3wYVsfFAdxu8cPaLwn7xyFYHefc2yM2ASb2vzfOvey+rth/mY/VPH+x3fDFWq4O9qM7br69ae8COzu4pjBo37499evXp2HDhq5/t+qIfPXq1Xz77beMGTOGadOmcfz4cYYPH+62zo2EwaL1+xm1YBMZ5+2utgBfK880rcJn6/bnah/f9T6A69qmoNq171u3b2/5/oLOH+Vftn8yMGswab5lXdtcb3uU+TE9rEnMtocw3uiXb/ul+7502QTjRcKblGXphp28Ys6kk3U139uDWWi0o3XtAHbv+p1hxlx8DTvZpoXPzUepVTaA08f/4BE2YjVMHKbBH5ShnJ8Dn+yzbgPi1WQZfjgcDvw4j2GAw4SDlOV4qfu442QKNTiI1TDJNi1soB6Hq7Sj7f7J2IyLfXvO9OWH1gnYrQE8urQT/sbFATPTtPFxgyn0S+l/ze2/lmnDPceX4mdkX7IPH074V6N05r5c7ftrPQtAlV3zcy3L9gkk0H4qz+/bZubup+ttP3lnQ0q9kpy7Y29AvmHw7LPPMn/+fAA++eQT9u3bR926dfntt9/48ssvqVq1Km3btmXAgAH4+vre0M4TExOJi4tza3v99deJiorCZrNx6tQp4uPjqVmzpts6NxIGLScsY//JjGuuzWZ1XmiVZb+OU8kCon3fun3fzD7Kc8I1IB+h1HW3X7rvsT7TXAPy69kvuLa5Wvtce2veyw4j0MikKoeZbnsHPyObLNOH8dndsWOhIif4fz6L8TEcZJsWljvux2aYBJJBCdKoZ+zHYjinnY3rOOw2TTiHD0cpRSAZlCQdiwF202C3WZE15n2cxZ8/sYV7LbvxMRycNy2sdNxHov1xPvD90G2wzDB9efrcmyzye91tQM4wbTx9bkye7YvtD9HJujrXoJvoaI0BPGtZnmvZLrMitYxD19yejj9ljEvm/y+pN+CSenL86qgBwN2WPbmWbXHU4Mms8Vfr2htWpVQAqyLbFMh75RsGXbp0YdGiRQB07tyZzz//3LVs69atfPbZZ1SuXJkDBw4QHR1dIMUADBw4kFatWhEeHs62bdsYMWIEX375pds6NxIGtSK/wqvmw6RAXe9AfSPbXN8AbvKWzyd0ty5nkb0F/7Z3IpBMAo1MKnOUt3ynYTPsnDetzLC3xwKU4RSdrKuxGiZ20yDFrIof2ZQwzlKeU9c9cBsXBvxT3MEesxLppj/VjMPcZRy7cLRtsMWsyWL7w4RYfqaZ5bcLA7iVJfZgZtg7MMs2Eb9rHKgfPfc+YPJ/fkOveRAvqIF6y4UB+Z48BuT8BvH82m/1AF6QDGDXhCcL5L3yvZooMDDQ9XWJEiXYtm0bDRs2BKBRo0Zs3LiR0aNH8/TTTxdIITnuvPNOSpQoAUDZsmVJT08vkPe9q1RAnmcGVsPAnkceVikVAHBd2xRUe3HZ9+WD7qX7vnxZftvktA/2WcifjBQG+Szg9ewX8m2/dB+XLhuT/RfuNDLxNzOJ9JnDn4wU3vL9hE/tjxNknKMixwi3LsdimDxvXUYgmVgNk9KcoZVlExbDpKd1Ke2s67iDLO4gA1/DefbR1WcVXX1W5eoHAF/DTj+fb0gz/bHgwLhwyGJgcidn2WDWpwG7KWOcxgfndMlaRz2+czzEKJ94t+mSTNOXF7JGMs020TUYGwb4mdmMDhiNgcmnmS9hNZz78DFM6rOfVY7GDPNJxOdCvb6GndbWjZwlAC47hLLg4APbh646L22PDPwCAzCycy8LsW5wG9gB/IxsanD4utq3O8oSfG5qrn4s6J/by7/vK63vyd/Xuy7suyDke9NZfHy86+sxY8YQFRVFVFQUs2bN4s0338RicW56/nzuZL0ZQ4YMYdGiRfTo0YOBAwcyduzYAnnfER0aEOBrdWsL8LXS/aFqebaP6NDgurcpqHZv33d5TpBge5PynLyp9ksH48v3ffmyy7d5xedTqvueYuD9JiG+m3jO+l8shkm4dTkv277mH7VWM9o2l+7WZa4BPM7vbRaWeIcvA2JI8htOD+tSLIZJL+tSdvj3Yr1fP1b7D6Kzz2oshkl76zr+Y5vE+77/YpSvc94cwIqDUOuPPBKwm/ssO10Do4nBWQL4tfwT/EZ1sk3n70i2aeEHR2P+13wKax78J+dM92OwTNPG9AaTsWBiuXD0bzGgnHGGXY36U804io9rAHfQxLKLpyocxrzso1UDk/fujM9zoP6g8ve8X3lJnsum3Tklz/Yn/DbmOSDXsh7Jsz0kcDdtAnfnuSwzoBKN7AnUzJzj+tfInsBbDyy/rva5wfG35e/Mrdx3Qbmm+wzq1KlDYmIi33//PSkpKVSvXp1BgwZx9uxZQkNDC6wYgIoVK/Lxxx8X6HsCrisd8roqo1mNMvle+XG92xRU+43uO68rQq63PUd+2zgWv8KfslOIDPzCdRVJvu3VS2MsHsKf7CmMvWMetkeH0qZWGp0te2jy83+xYNLdZzkP1atJg2PJkJVOs2p7qHwgCQsmPX2S6BK0izv32BkdcAq/rBMYQHef/9Kd/8I24JLfEZthZ6QxGw4AlovHd1bDQXPfXfj5NYASZbCdO4p51nkE6DAsnCp1D2Ueep4jaxdQ+tjP+Fy44uXQXW2p2iECe1wn19UlhgE2i0FA3wTsH4dgceTsw6Sm5Rh1nhl64aoT5wIfw8HD1hSsLVvDionYLYbbgaevxWTQiYnYLVxze3Dmj5DHoFvJ/kee7bUztzhfXMc2fuWrs+ihhAK7Wmp8Pu2e/p0pKvu+WV53aem1KHL3GRTk3ZQ3eh13074XbsQ557yWOysNlsY4b3Sp3wGa9HBeY336APw31nnttmGFe5523hxz9jjsXun8GgPuKHfhZpwz194PFh+wBTlv8DmfMz1oQMlqUL05/LERjv1+8Wac6s3h7i7wfdSFm4Iu8PGDngud16LndV02Jnxw/7Vfy33P07D5M/drxa02KFMbju+89vYHekHqj85r0S/n4+++36u1V7oPXvohj04UuTG6A/lmeMPdlElvwuORzoH65B5YP+vibe8lqzlvfjlzCNbNuHDb+ww4vst5J2TGSTi0GTAv3PY+nTxvxPntW+e/y5l2SPka7qwCGcedn1YCzjAoA3Xb5nEjzuPOYMnrRpwhG51ff3D/pTuB9MPQYrBzoDYdF/e9fx2Uqu7cn1tdJnz1ysV1Xe2Oi890yWvZgr/m3f7bd+61gvP1id3X1576owZw8VrFLwwK8m7K63l2icMOy8Y6b3v/Lgoe/lsezy2JA99A59iWlQbpR2Hb4ou3vu9a6TxyP3fK+fAqcD6jZMPs3N+n4zwkxeRuN+3wxwYo38B5V2YOw+I82ry7s/Nuyq1fwN7/Oeu2+ECjp6D5yzDjKbBfcr2z6YBnpzsHatdchsMZTPd3d4ZMzi33DrszHIIq5FGXw9lvOV9fvqygBurUHy9+fa3blKwCI3flrlmkCCl+00TXMl0S+i6cP3vxeSNJY+DXL6Bee7g//MJ0yR+wcuLF6ZJGnZyD3tnjzgEv5z7IgNJwPgOyr/0eB3z8ndMl2ZmXPO/EgFI1oEYLOLAejqZcnC6p0QLu6Qrfvpp7uqT3FzCz8/Xd3p7fNEpBTZfYgpxnEper5Lwx6rqmUTRdIlIgilcYnDkI79/nHJwMC9RodfG5JUe2kdflZNfMFgglq8PZo84jekzAAuXrQ712sGsVHNx4cbqkdht4oCcs6JfHdImH57XBOd10rYO45rtFbnvFa5poxdvOqQpwHlUf3gIV7r5w9H3h2mLDApXvdw6utiD49XPnkb4j+8J0SWdoMRCm/9k5ZZPDYYeuH+eeLjmxG+57Dn782H26ZPf/OR98dTlvmNfO+fryZZouESmyik8YnDkIG+IvDsjgnO7pMP7CAJ7zwaQDDm+F7gmA6Zzfd1y47M6RDSlfgY/tkg9LubhdfgP19Q7gmtcWkUJWfMJgxdvXN1Bf6ei8oI7CNYCLiJcoPmGQ+qOmS0RE8lF8wkAfWIqI5CvfZxOJiEjxoTAQERGFgYiIKAxERASFgYiIoDAQEREUBiIigsJARERQGIiICAoDERHBS8JgyZIlDBs2zPV6w4YNhIWFER4ezr/+9S8PViYiUjx4PAzGjRvHpEmTcDguPh30jTfeYNKkScydO5eNGzeyZcsWD1YoIlL0eTwMgoODiYmJcb1OS0sjKyuL6tWrYxgGrVq1YvXq1Z4rUESkGCi0p5YmJiYSFxfn1hYbG0toaCjJycmutrS0NIKCglyvAwMD2bdvX2GVKSJSLBVaGISFhREWFnbV9YKCgkhPT3e9Tk9P584777yVpYmIFHsenya6XFBQEL6+vuzduxfTNPnhhx9o1qyZp8sSESnSvPKP24wZM4bhw4djt9tp1aoV999/v6dLEhEp0gzTvPwvu3u/1NRUQkJCSEpKomrVqp4uR0Tktud100QiIlL4FAYiIqIwEBERhYGIiKAwEBERFAYiIoLCQEREUBiIiAgKAxERQWEgIiIoDEREBIWBiIigMBARERQGIiKCwkBERFAYiIgICgMREUFhICIiKAxERAQvCYMlS5YwbNgw1+vVq1fz3HPP0aNHDwYPHkxGRoYHqxMRKfo8Hgbjxo1j0qRJOBwOV1tMTAwffvgh8fHx1KhRg8TERA9WKCJS9Hk8DIKDg4mJiXFrmzVrFuXKlQMgOzsbPz8/D1QmIlJ8+BTWjhITE4mLi3Nri42NJTQ0lOTkZLf2ChUqAM7po+TkZIYOHVpYZYqIFEuFFgZhYWGEhYVd8/ozZszg22+/5T//+Y/ODEREbrFCC4PrMXnyZLZs2cKMGTPw9/f3dDkiIkWexz8zuNzRo0f58MMPOXz4MP369aNXr17MmTPH02WJiBRpXnFm8NBDD/HQQw8BUK5cOTZv3uzhikREihevOzMQEZHCpzAQERGFgYiIKAxERASFgYiIoDAQEREUBiIigsJARERQGIiICAoDERFBYSAiIigMREQEhYGIiKAwEBERFAYiIoLCQEREUBiIiAgKAxERQWEgIiJ4SRgsWbKEYcOG5WqfPHkyERERHqhIRKR48XgYjBs3jkmTJuFwONzaV6xYwcqVKz1UlYhI8eLxMAgODiYmJsatbc+ePSQkJDBo0CDPFCUiUsz4FNaOEhMTiYuLc2uLjY0lNDSU5ORkV1t6ejpvvvkmEydOZMeOHYVVnohIsVZoYRAWFkZYWNhV11u1ahVHjhwhIiKC06dPc/jwYaZOnUr//v0LoUoRkeKp0MLgWrVv35727dsDkJyczLx58xQEIiK3mMc/MxAREc8zTNM0PV3E9UpNTSUkJISkpCSqVq3q6XJERG57OjMQERGFgYiIKAxERASFgYiIoDAQEREUBiIigsJARERQGIiICAoDERFBYSAiIigMREQEhYGIiKAwEBERFAYiIoLCQEREUBiIiAgKAxERQWEgIiIoDEREBC8JgyVLljBs2DDX6z179tCnTx969OhB3759OXHihAerExEp+nw8XcC4ceP44YcfaNSokastOjqaV155hSZNmvDdd9+xe/duSpcu7cEqRUSKNo+HQXBwMG3btiUhIQGAzMxMjh8/zvLly5k0aRL33nsvw4cPd9vGbrcDcPDgwUKvV0TkdlepUiV8fNyH/0ILg8TEROLi4tzaYmNjCQ0NJTk52dV26tQpfv/9d0aPHs3QoUN57bXXWLhwIc8++6xrnSNHjgDQo0ePwileRKQISUpKomrVqm5thRYGYWFhhIWFXXW9kiVLEhgYSPPmzQFo3bo1q1atcguDe++9l/j4eMqXL4/Var1lNYuIFEWVKlXK1ebxaaLL+fv7U7NmTdauXUuzZs346aefqFevXq51mjVr5qEKRUSKHq8LA3BOH40ZMwa73U7VqlVzfWYgIiIFyzBN0/R0EbeCw+EgJiaGlJQUbDYb48aNo0aNGq7ly5Yt48MPP8THx4dnnnmGbt26eU1t06dPZ/78+ZQpUwaAMWPGULt27UKpbePGjbz77rvMmjXLrd2T/XWlujzZV+fPnycqKor9+/eTlZXFyy+/TEhIiGu5p/rsanV5qs/sdjujR49m165dWK1Wxo8fT/Xq1V3LPdVfV6vLkz9jAMeOHaNr165MmzaNOnXquNoLvL/MIuq7774zR44caZqmaa5fv9586aWXXMuysrLMtm3bmidPnjTPnTtndu3a1Tx8+LBX1Gaapjls2DBz06ZNhVZPjqlTp5odO3Y0w8LC3No93V/51WWanusr0zTN+fPnm+PGjTNN0zSPHz9uPvbYY65lnuyzK9Vlmp7rsyVLlpiRkZGmaZrmmjVrvOZ38kp1maZnf8aysrLMAQMGmO3btze3b9/u1l7Q/eUVN53dCuvWreORRx4BoEmTJmzevNm1bMeOHVSvXp2SJUtis9lo2rQpa9eu9YraALZs2cLUqVPp3r07U6ZMKbS6qlevzj//+c9c7Z7ur/zqAs/1FcCf//xnhgwZ4np96cUMnuyzK9UFnuuztm3bMnbsWAAOHDhAuXLlXMs82V9Xqgs8+zM2ceJEwsPDqVChglv7reivIhsGaWlpBAUFuV5brVays7Ndy0qUKOFaFhgYSFpamlfUBvDkk08SExNDXFwc69atY/ny5YVSV4cOHXJde5xTryf7K7+6wHN9Bc5+CAoKIi0tjcGDBzN06FDXMk/22ZXqAs/2mY+PDyNHjmTs2LF06NDB1e7pn7H86gLP9deCBQsoU6aM68DxUreiv4psGAQFBZGenu567XA4XAPK5cvS09PdOtaTtZmmyV/+8hfKlCmDzWbjscce49dffy202vLi6f7Kjzf01R9//EHv3r3p3LkzTz31lKvd032WX13e0GcTJ07ku+++Izo6mrNnzwKe76/86vJkf3322Wf873//o1evXmzdupWRI0e67rG6Ff1VZMMgODiYlStXArBhwwbq16/vWlanTh327NnDyZMnycrKYu3atTzwwANeUVtaWhodO3YkPT0d0zRJTk7m3nvvLbTa8uLp/sqPp/vq6NGjvPDCC4wYMcLtPhjwbJ9dqS5P9tmiRYtc0ywBAQEYhuGawvJkf12pLk/2V3x8PLNnz2bWrFk0atSIiRMnUr58eeDW9JdXXlpaENq1a8eqVasIDw/HNE1iY2P58ssvOXv2LM899xyRkZG8+OKLmKbJM888Q8WKFb2mtoiICHr37o3NZuPhhx/mscceK7TaLuUt/XWlujzZV//+9785ffo0H330ER999BHgvLkyIyPDo312tbo81Wft27dn1KhR9OjRg+zsbKKiovj+++89/jN2tbq85fcRbu3vZJG9tFRERK5dkZ0mEhGRa6cwEBERhYGIiCgMREQEhYGIiFCELy0V8YTnn3+e9PR0rFYrCxYs8HQ5ItdMl5aKiIimiURERGEgUmC6detGamoqAIcOHaJr164erkjk2ikMRAqAaZocOHCAKlWqALBt2zYaNGjg4apErp3CQKQA7Nmzh6pVq2IYBgApKSluDyAU8XYKA5EC8Ntvv7kN/ps3b9aZgdxWFAYiBeDUqVP4+/sDzr9CtWLFCp0ZyG1FYSBSAFq1asXq1asZMmQI33zzDaVKlcr15xNFvJnuMxAREZ0ZiIiIwkBERFAYiIgICgMREUFhICIiKAxERASFgYiIoDAQEREUBiIiAvx/6qNnE4bMmHwAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure(4)\n", + "plt.title(\"Gain\")\n", + "plt.plot(\n", + " Uo,\n", + " gain,\n", + " linewidth=1.5,\n", + " linestyle=\"-\",\n", + " marker=\"o\",\n", + " label=\"Buck converter static gain\",\n", + ")\n", + "plt.plot(\n", + " Uo,\n", + " HR.dot(model.theta),\n", + " linestyle=\"-\",\n", + " marker=\"^\",\n", + " linewidth=1.5,\n", + " label=\"NARX model gain\",\n", + ")\n", + "plt.xlabel(\"$\\\\bar{u}$\")\n", + "plt.ylabel(\"$\\\\bar{g}$\")\n", + "plt.ylim(-16, 0)\n", + "plt.legend()\n", + "plt.show()" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### The static function result is" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": { + "ExecuteTime": { + "end_time": "2023-07-11T17:36:24.902396Z", + "start_time": "2023-07-11T17:36:24.793210700Z" + } + }, + "outputs": [ + { + "data": { + "image/png": "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1gUKFGDOnDn3HP/iiwymDhdzvs5IRJosu65+gvmJw+HqaijwmFyXLVLVCkx3Cib2Csx5Buxxm4KkGOiy+KF+dooWLUpISAjBwcE8++yz9uNr165F13X69etHUlISV65coX///kBqDDJy5EguXLhA//797Y0a4NKlSyxatIhRo0YxatQoli1bhq7/bwGqggULMn78eMaPH09cXBzt27dPU4/BYMDLy4vhw4dToEABrly5gsWS9l+td5w5c8a+CmDx4sUZNmzYPc+5s3rfH3/8weXLl3nttdcA+Pvvvzl/PvUvuzv/Uq9duzZTp04FwNfX1762yalTp+y5vNlsply5cjRq1IizZ88yePBgjEYjgwYNSvd7VKlSBYASJUqwb9++NDV6e3tz8+ZN+2dOSEjAbDY7/MynTp2yr8dSsGBBKlSowIULqeugV61a1f49/vzzT4evfxBufwdjVnK4ZrYyUF6Lxjq/IUf/00aybHF/fv4gNf64m7JlSXbdtGlTypUrZ183+vjx41itVlatWsVnn33GihUrKFOmjP2y2jtKly7NhAkTePvtt0lMTCQlJYWhQ4cSEhLCa6+9RsmSJfn444/TvObatWtERUXxySef8OmnnzJz5kwsFguapqGU4tixY2zZsoXZs2czfvx4bDYbSikMBgM2W9rPX758efs0HRsbS79+/e75bHfuxyhfvjwVK1Zk2bJlLF++nE6dOlGpUiXgfyv+7du3j6effjrN6yC14c+YMYPly5czatQoGjduTGRkJI8//jiLFy9m0KBBzJo1K93vcecCibvd+cx3tkabNWsWw4cPJykpyelnrlChAnv27AFS/5Xyxx9/PPR6SM54xB2MWcVRlu2l2Tiv+XLcUoI2+q+gQTvLFppLli3Sc/FXsKakPWZNST2eBd555x12794NpE7VHTp0SPN4QEAAK1asoF27dmmOv/DCC7zwwgvMnTuXlJQU6tSpQ+PGjYHUiKVTp040aNDAvk528eLFuX79Oq+88goFChSgb9++GI1GnnnmGT788ENmzZpF/vz56dSpEyaTieLFi3Pt2jVq166N2Wxm5syZ5MuXD4BmzZqxa9cuAgMDsVqtvPnmm04/37/+9S+ef/55AgMDSUlJoWbNmvZffEZERBAeHo7NZrOv7323iRMnMmbMGKzW1JU433//fYoUKcKwYcP4/PPPMRgM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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure(5)\n", + "plt.title(\"Static Curve\")\n", + "plt.plot(Uo, Yo, linewidth=1.5, label=\"Static curve\", linestyle=\"-\", marker=\"o\")\n", + "plt.plot(\n", + " Uo,\n", + " QR.dot(model.theta),\n", + " linewidth=1.5,\n", + " label=\"NARX ​​static representation\",\n", + " linestyle=\"-\",\n", + " marker=\"^\",\n", + ")\n", + "plt.xlabel(\"$\\\\bar{u}$\")\n", + "plt.xlabel(\"$\\\\bar{y}$\")\n", + "plt.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Getting the best weight combination based on the norm of the cost function" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " Regressors Parameters ERR\n", + "0 1 1.5405E+00 9.999E-01\n", + "1 y(k-1) 2.9687E-01 2.042E-05\n", + "2 y(k-2) 6.4693E-01 1.108E-06\n", + "3 x1(k-1) -4.1302E-01 4.688E-06\n", + "4 y(k-1)^2 2.7671E-01 3.922E-07\n", + "5 y(k-2)y(k-1) -5.3474E-01 8.389E-07\n", + "6 x1(k-1)y(k-1) 4.0624E-03 5.690E-07\n", + "7 y(k-2)^2 2.5832E-01 3.827E-06\n" + ] + }, + { + "data": { + "image/png": "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NTUVmZmZ2LRpk/W+KSkpWL9+PXr27IlWrVph3LhxOHfuHB577DG0atUKw4cPx5UrVwAA77//Pl5++WW88cYbaNWqFTIzM7FlyxbRdq1YsQLdunVDeno6hgwZgry8POttu3fvxoABA9CyZUvcf//9+OSTTwKwZwgh4YqCM0JI2Hr88cexfPlydOnSBdnZ2Vi/fj1u3bqFxo0bIyYmBjNnzsSJEyfw+eefY926dWjXrh0mTZoEg8FgfY733nsPM2fOxMcff4yNGzdiyJAhGD58OL766isUFBTg888/t95327ZtMJvNWLNmDQYOHIiXX34ZR44ccWrXtm3bsGDBAkycOBFr167FfffdhxEjRuDKlSswm814+eWX0aVLF/zwww946623sHDhQuzYsSMo+4wQIn+qUDeAEEK89eKLL6Jhw4b46quvsGbNGqxcuRJarRYvv/wynnnmGbRp0waPP/44UlJSAABPPfUUVq5cicuXL6Nu3boAuACvdevWALiRtLvvvhuZmZkAgG7duuHkyZPW16tcuTKmT58OjUaDu+66Cz///DNWrVqFN998065dn376KZ599ll0794dAPD8889j586dWLlyJYYNG4YbN27gjjvuQJ06dVCnTh188cUX1vYQQggFZ4SQsNarVy/06tULt27dws6dO7FixQrMnj0bDRo0QFZWFrZs2YKVK1fi5MmTOHjwIADAYrFYH28bFGm1WtSuXdv6d0xMjN0oW/PmzaHRaKx/p6am4tixY05tOnHiBObOnYsFCxZYtxkMBtSqVQuJiYl49tlnMXXqVHz00Ufo0qUL+vXrh6SkJP/sEEJI2KPgjBASlg4fPoxVq1YhOzsbADeq9eCDDyIzMxMDBw7Ezp07sXHjRvz111946KGHMGTIECQlJeHRRx+1ex6Vyv5jUKEQn+3heF+z2QyGYZzuZzab8frrr+Nf//qX3fa4uDgAwLhx49C/f39s3boV27dvx2OPPYacnBw8/PDD7u8AQkjEojlnhJCwZDabsWTJEuzbt89uO8MwqFSpEqpVq4Z169Zhzpw5GD16NB544AHcvHkTALxOs3H06FG7UbcDBw5YL5naatiwIS5duoT69etb/33++ef4448/UFhYiClTpiA5ORn/+c9/8NVXX2HAgAHYsGGDV20ihEQeCs4IIWGpRYsW6NKlC1566SWsXbsW586dQ35+PubNm4dDhw7h4YcfRmxsLDZv3ozz58/j119/xbRp0wDA7lKlJwoKCjBr1iycPHkSH3/8MQ4cOIBBgwY53e/JJ5/EkiVLsHbtWpw9exYffPABVq9ejUaNGqFKlSrYsmULZsyYgTNnziAvLw979uxBixYtfNofhJDIQZc1CSFha/78+Vi0aBE++eQTTJ48GRqNBu3atcOyZctw5513Yvbs2XjnnXewbNky1KlTByNHjsT777+Pv//+G02aNPH49VJTU3H79m30798f9evXx6JFi9CgQQOn+/Xq1Qv//PMPPvjgA1y5cgWNGjXCwoUL0axZMwDARx99hLfffhtZWVnQarXo1asXXnzxRV93ByEkQjAspdEmhBCX3n//fezcuRPLly8PdVMIIRGOLmsSQgghhMgIBWeEEEIIITJClzUJIYQQQmSERs4IIYQQQmSEgjNCCCGEEBmh4IwQQgghREYoOCOEEEIIkREKzgghhBBCZISCM0IIIYQQGfl/3CRBl6+eaYgAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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KpUrVyY5OZkZM2Z4vsd0+vRphg4d6hUEAGlpaYwfP56UlBSuv/56TNNkyJAh9OzZk/DwcL7//nteeeUV5s2bR9euXfn000+JjIykWrVq/OUvf/Fs5+eff+af//wnCxcuJC0tjVOnTnldamf58uVkZWWxePFiEhMT+emnnwDYuXMnY8eOZe7cuQwePJi0tLRiv4tzx+n30pGBiI94oE3di76K7zhlBfuzcovV61QqT8qf2//m/bZr187zBLZ7926io6M9l4M548xfx/3hhx9o2bIldrud8uXLM2HCBDIzM8nIyCAoKIjTp08X2/7u3bu54447AAgLCyMsLIyJEyfSoUMHoOhaZKGhoezbV3RUdMMNNwBQs2ZNjh49SsWKFWnevDnr16/n/fffZ+zYsWRkZHDgwAEGDRoEwIkTJ9i7t+joqGHDhsV62LFjB+vXr+fbb78Fiq58fPz48Quu/9JLLzFnzhymTZtGq1atOPevA9eoUYMXX3yR6667jkOHDtG6devzju2+ffto0qQJAQEBAMTFxRUbm1atWgFQpUoVGjVqBED16tWZMWMGAQEB5OTkeF2484xzx+n30pGByFVizF1NKe9v96qV97cz5q6mJbaPkJAQz78dDgdHjhwBio4IABo1asR3332H2+2moKCAwYMH43Q6ufHGG5k9ezYffvgh27dv99pmaGgomzdvBoqeHGNiYggNDWXdunVA0VWKd+zYQd26Fw7CqKgokpKSyMvLIzQ0lEaNGtG4cWPmzZvH/Pnz6dOnj+caZoZheO535km8UaNG3HvvvcyfP59//vOf3H333VSsWBEouuLBud59910mTpzIggUL2LZtGxs2bMBms+F2Fx2FTZgwgcTERKZMmUL16tU9+zEMw7MOQL169di9ezdOpxOA4cOHc+jQIc/yJk2asHHjRqAo0H788UcAXnzxRYYPH87UqVMJCwsrFkZXgo4MRK4SvW8uOif8ymcZHMjKpXal8oy5q6mn/ludOU1ks9nIyckhNjaWgIAABg4cyAsvvECtWrWoXr06AM2bN+f222+nb9++uN1u+vbti8PhACAgIICEhATGjh1Lamqqpx4dHU1cXBz9+/fH5XIRFxdH06ZNiY+Pp2/fvuTn5zNs2DCqVq16wR5vvfVW4uPjefLJJwFo1qwZ7du3p2/fvjidTlq2bEmNGjWK3S80NJTR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v//dws5ERK4NlofB5MmTmT59Om6321N7/vnnmT59Ou+88w6bNm1i69atFnYoIlL2WR4GrVu3JiEhwXM7Ozsbp9NJvXr1MAyDTp068dVXX1nXoIjINcCvtHaUmppKUlKSVy0xMZGIiAjS09M9tezsbIKCgjy3AwMD2bdvX2m1KSJyTSq1MIiMjCQyMvKS6wUFBZGTk+O5nZOTQ4UKFa5kayIi1zzLTxOdKygoCH9/f/bu3Ytpmnz55Ze0bdvW6rZERMq0Ujsy+DUmTpzI6NGjcblcdOrUiZtuusnqlkREyjTDNE3T6iZ+rczMTMLDw1m+fDl169a1uh0Rkauez50mEhGR0qcwEBERhYGIiCgMREQEhYGIiKAwEBERFAYiIoLCQEREUBiIiAgKAxERQWEgIiIoDEREBIWBiIigMBARERQGIiKCwkBERFAYiIgICgMREUFhICIi+EgYLFu2jJiYGM/tr776ioceeoh+/foxfPhwcnNzLexORKTsszwMJk+ezPTp03G73Z5aQkICb7zxBsnJydSvX5/U1FQLOxQRKfssD4PWrVuTkJDgVZs/fz4hISEAFBYWUq5cOQs6ExG5dviV1o5SU1NJSkryqiUmJhIREUF6erpXvXr16kDR6aP09HRGjhxZWm2KiFyTSi0MIiMjiYyMvOz1586dy6effsqbb76pIwMRkSus1MLg15g5cyZbt25l7ty5BAQEWN2OiEiZZ/l7Buc6evQob7zxBocPH+bxxx9nwIABLFy40Oq2RETKNJ84Mrjtttu47bbbAAgJCWHLli0WdyQicm3xuSMDEREpfQoDERFRGIiIiMJARERQGIiICAoDERFBYSAiIigMREQEhYGIiKAwEBERFAYiIoLCQEREUBiIiAgKAxERQWEgIiIoDEREBIWBiIigMBARERQGIiKCj4TBsmXLiImJKVafOXMmo0aNsqAjEZFri+VhMHnyZKZPn47b7faqr1q1itWrV1vUlYjItcXyMGjdujUJCQletT179pCSksLTTz9tTVMiItcYv9LaUWpqKklJSV61xMREIiIiSE9P99RycnJ44YUXmDp1Krt27Sqt9kRErmmlFgaRkZFERkZecr01a9Zw5MgRRo0axcmTJzl8+DCzZ89myJAhpdCliMi1qdTC4HL16NGDHj16AJCens6iRYsUBCIiV5jl7xmIiIj1DNM0Taub+LUyMzMJDw9n+fLl1K1b1+p2RESuejoyEBERhYGIiCgMREQEhYGIiKAwEBERFAYiIoLCQEREUBiIiAgKAxERQWEgIiIoDEREBIWBiIigMBARERQGIiKCwkBERFAYiIgICgMREUFhICIiKAxERAQfCYNly5YRExPjub1nzx4GDRpEv379GDx4MMePH7ewOxGRss/P6gYmT57Ml19+SfPmzT21+Ph4nnnmGVq1asVnn33Gjz/+SOXKlS3sUkSkbLM8DFq3bk23bt1ISUkBIC8vj2PHjrFy5UqmT59OixYtGD16tNd9XC4XAAcPHiz1fkVErnY1a9bEz8/76b/UwiA1NZWkpCSvWmJiIhEREaSnp3tqJ06c4Pvvv2fChAmMHDmS8ePH8/777/Pggw961jly5AgA/fr1K53mRUTKkOXLl1O3bl2vWqmFQWRkJJGRkZdcr2LFigQGBtKuXTsAunTpwpo1a7zCoEWLFiQnJ1OtWjXsdvsV61lEpCyqWbNmsZrlp4nOFRAQQIMGDVi3bh1t27bl66+/pkmTJsXWadu2rUUdioiUPT4XBlB0+mjixIm4XC7q1q1b7D0DEREpWYZpmqbVTVwJbrebhIQEMjIycDgcTJ48mfr163uWr1ixgjfeeAM/Pz8eeOABoqKifKa3t99+m8WLF1OlShUAJk6cSKNGjUqlt02bNjFt2jTmz5/vVbdyvC7Wl5VjVVBQQFxcHPv378fpdPLkk08SHh7uWW7VmF2qL6vGzOVyMWHCBH744QfsdjsvvfQS9erV8yy3arwu1ZeVjzGAn3/+mT59+jBnzhxCQ0M99RIfL7OM+uyzz8yxY8eapmmaGzZsMJ944gnPMqfTaXbr1s3Mysoy8/PzzT59+piHDx/2id5M0zRjYmLMzZs3l1o/Z8yePdvs2bOnGRkZ6VW3erwu1JdpWjdWpmmaixcvNidPnmyapmkeO3bM7Ny5s2eZlWN2sb5M07oxW7ZsmRkbG2uapmmuXbvWZ+bkxfoyTWsfY06n0xw6dKjZo0cPc+fOnV71kh4vn/jS2ZWwfv16br/9dgBatWrFli1bPMt27dpFvXr1qFixIg6HgzZt2rBu3Tqf6A1g69atzJ49m759+zJr1qxS66tevXr87W9/K1a3erwu1BdYN1YAd999NyNGjPDcPvvDDFaO2cX6AuvGrFu3bkyaNAmAAwcOEBIS4llm5XhdrC+w9jE2depUoqOjqV69ulf9SoxXmQ2D7OxsgoKCPLftdjuFhYWeZcHBwZ5lgYGBZGdn+0RvAPfeey8JCQkkJSWxfv16Vq5cWSp93XXXXcU+e3ymXyvH60J9gXVjBUXjEBQURHZ2NsOHD2fkyJGeZVaO2cX6AmvHzM/Pj7FjxzJp0iTuuusuT93qx9iF+gLrxistLY0qVap4Xjie7UqMV5kNg6CgIHJycjy33W635wnl3GU5OTleA2tlb6Zp8qc//YkqVargcDjo3Lkz3333Xan1dj5Wj9eF+MJY/fTTTwwcOJBevXpx3333eepWj9mF+vKFMZs6dSqfffYZ8fHxnD59GrB+vC7Ul5Xj9d577/Hf//6XAQMGsG3bNsaOHev5jtWVGK8yGwatW7dm9erVAGzcuJGwsDDPstDQUPbs2UNWVhZOp5N169Zx8803+0Rv2dnZ9OzZk5ycHEzTJD09nRYtWpRab+dj9XhdiNVjdfToUR555BHGjBnj9T0YsHbMLtaXlWO2ZMkSz2mW8uXLYxiG5xSWleN1sb6sHK/k5GQWLFjA/Pnzad68OVOnTqVatWrAlRkvn/xoaUno3r07a9asITo6GtM0SUxM5KOPPuL06dM89NBDxMbG8uijj2KaJg888AA1atTwmd5GjRrFwIEDcTgctG/fns6dO5dab2fzlfG6WF9WjtU//vEPTp48yYwZM5gxYwZQ9OXK3NxcS8fsUn1ZNWY9evRg3Lhx9OvXj8LCQuLi4vj8888tf4xdqi9fmY9wZedkmf1oqYiIXL4ye5pIREQun8JAREQUBiIiojAQEREUBiIiQhn+aKmIFR5++GFycnKw2+2kpaVZ3Y7IZdNHS0VERKeJREREYSBSYqKiosjMzATg0KFD9OnTx+KORC6fwkCkBJimyYEDB6hTpw4A27dvp2nTphZ3JXL5FAYiJWDPnj3UrVsXwzAAyMjI8LoAoYivUxiIlIAdO3Z4Pflv2bJFRwZyVVEYiJSAEydOEBAQABT9FapVq1bpyECuKgoDkRLQqVMnvvrqK0aMGMEnn3xCpUqViv35RBFfpu8ZiIiIjgxERERhICIiKAxERASFgYiIoDAQEREUBiIigsJARERQGIiICAoDEREB/g906gqIbkX2kQAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# the variable `position` returned in `estimate` method give the position of the best weight combination\n", + "model.theta = theta[position, :].reshape(\n", + " -1, 1\n", + ") # setting the theta estimated for the best combination of the weights\n", + "# the model structure is exactly the same, but the order of the regressors is changed in estimate method. Thats why you have to change the model.final_model\n", + "model.final_model = mo_estimator.final_model\n", + "yhat = model.predict(X=x_valid, y=y_valid)\n", + "rrse = root_relative_squared_error(y_valid, yhat)\n", + "r = pd.DataFrame(\n", + " results(\n", + " model.final_model,\n", + " model.theta,\n", + " model.err,\n", + " model.n_terms,\n", + " err_precision=3,\n", + " dtype=\"sci\",\n", + " ),\n", + " columns=[\"Regressors\", \"Parameters\", \"ERR\"],\n", + ")\n", + "print(r)\n", + "\n", + "# The dynamic results for that chosen theta is\n", + "plot_results(y=y_valid, yhat=yhat, n=1000)\n", + "# The static gain result is\n", + "plt.figure(4)\n", + "plt.title(\"Gain\")\n", + "plt.plot(\n", + " Uo,\n", + " gain,\n", + " linewidth=1.5,\n", + " linestyle=\"-\",\n", + " marker=\"o\",\n", + " label=\"Buck converter static gain\",\n", + ")\n", + "plt.plot(\n", + " Uo,\n", + " HR.dot(model.theta),\n", + " linestyle=\"-\",\n", + " marker=\"^\",\n", + " linewidth=1.5,\n", + " label=\"NARX model gain\",\n", + ")\n", + "plt.xlabel(\"$\\\\bar{u}$\")\n", + "plt.ylabel(\"$\\\\bar{g}$\")\n", + "plt.ylim(-16, 0)\n", + "plt.legend()\n", + "plt.show()\n", + "# The static function result is\n", + "plt.figure(5)\n", + "plt.title(\"Static Curve\")\n", + "plt.plot(Uo, Yo, linewidth=1.5, label=\"Static curve\", linestyle=\"-\", marker=\"o\")\n", + "plt.plot(\n", + " Uo,\n", + " QR.dot(model.theta),\n", + " linewidth=1.5,\n", + " label=\"NARX ​​static representation\",\n", + " linestyle=\"-\",\n", + " marker=\"^\",\n", + ")\n", + "plt.xlabel(\"$\\\\bar{u}$\")\n", + "plt.xlabel(\"$\\\\bar{y}$\")\n", + "plt.legend()\n", + "plt.show()" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "You can also plot the pareto-set solutions" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "ExecuteTime": { + "end_time": "2023-07-11T17:36:25.014411600Z", + "start_time": "2023-07-11T17:36:24.914906300Z" + } + }, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure(6)\n", + "ax = plt.axes(projection=\"3d\")\n", + "ax.plot3D(J[0, :], J[1, :], J[2, :], \"o\", linewidth=0.1)\n", + "ax.set_title(\"Pareto-set solutions\", fontsize=15)\n", + "ax.set_xlabel(\"$J_{ls}$\", fontsize=10)\n", + "ax.set_ylabel(\"$J_{sg}$\", fontsize=10)\n", + "ax.set_zlabel(\"$J_{sf}$\", fontsize=10)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Details about the method" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The polynomial NARX model built using the mono-objective approach has the following structure:\n", + "\n", + "$$\n", + "y(k) = \\theta_1 y(k-1) + \\theta_2 y(k-2) + \\theta_3 u(k-1) y(k-1) + \\theta_4 + \\theta_5 y(k-1)^2 + \\theta_6 u(k-1) + \\theta_7 y(k-2)y(k-1) + \\theta_8 y(k-2)^2\n", + "$$\n", + "\n", + "The, the goal when using the static function and static gain information in the multiobjective scenario is to estimate the vector $\\hat{\\theta}$ based on:\n", + "\n", + "$$\n", + "\\theta = [w_1\\Psi^T\\Psi + w_2(HR)^T(HR) + w_3(QR)(QR)^T]^{-1} [w_1\\Psi^T y + w_2(HR)^T\\overline{g}+w_3(QR)^T\\overline{y}]\n", + "$$\n", + "\n", + "The $\\Psi$ matrix is built using the usual mono-objective dynamic modeling approach in SysIdentPy. However, it is still necessary to find the Q, H and R matrices. AILS have the methods to compute all of those matrices. Basically, to do that, $q_i^T$ is first estimated:\n", + "\n", + "$$\n", + "q_i^T = \n", + "\\begin{bmatrix}\n", + "1 & \\overline{y_i} & \\overline{u_1} & \\overline{y_i}^2 & \\cdots & \\overline{y_i}^l & F_{yu} & \\overline{u_i}^2 & \\cdots & \\overline{u_i}^l\n", + "\\end{bmatrix}\n", + "$$\n", + "\n", + "where $F_{yu}$ stands for all non-linear monomials in the model that are related to $y(k)$ and $u(k)$, $l$ is the largest non-linearity in the model for input and output terms. For a model with a degree of nonlinearity equal to 2, we can obtain:\n", + "\n", + "$$\n", + "q_i^T = \n", + "\\begin{bmatrix}\n", + "1 & \\overline{y_i} & \\overline{u_i} & \\overline{y_i}^2 & \\overline{u_i}\\:\\overline{y_i} & \\overline{u_i}^2 \n", + "\\end{bmatrix}\n", + "$$\n", + "\n", + "It is possible to encode the $q_i^T$ matrix so that it follows the model encoding defined in SysIdentPy. To do this, 0 is considered as a constant, $y_i$ equal to 1 and $u_i$ equal to 2. The number of columns indicates the degree of nonlinearity of the system and the number of rows reflects the number of terms:\n", + "\n", + "$$\n", + "q_i = \n", + "\\begin{bmatrix}\n", + "0 & 0\\\\\n", + "1 & 0\\\\\n", + "2 & 0\\\\\n", + "1 & 1\\\\\n", + "2 & 1\\\\\n", + "2 & 2\\\\\n", + "\\end{bmatrix}\n", + "= \n", + "\\begin{bmatrix}\n", + "1 \\\\\n", + "\\overline{y_i}\\\\\n", + "\\overline{u_i}\\\\\n", + "\\overline{y_i}^2\\\\\n", + "\\overline{u_i}\\:\\overline{y_i}\\\\\n", + "\\overline{u_i}^2\\\\\n", + "\\end{bmatrix}\n", + "$$\n", + "\n", + "Finally, the result can be easily obtained using the ‘regressor_space’ method of SysIdentPy" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": { + "ExecuteTime": { + "end_time": "2023-07-11T17:36:25.017591800Z", + "start_time": "2023-07-11T17:36:25.013411900Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "R = [[0 0]\n", + " [1 0]\n", + " [2 0]\n", + " [1 1]\n", + " [2 1]\n", + " [2 2]]\n" + ] + } + ], + "source": [ + "from sysidentpy.narmax_base import RegressorDictionary\n", + "\n", + "object_qit = RegressorDictionary(xlag=1, ylag=1)\n", + "R_example = object_qit.regressor_space(n_inputs=1) // 1000\n", + "print(f\"R = {R_example}\")" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "such that:\n", + "\n", + "$$\n", + "\\overline{y_i} = q_i^T R\\theta\n", + "$$\n", + "\n", + "and:\n", + "\n", + "$$\n", + "\\overline{g_i} = H R\\theta\n", + "$$\n", + "\n", + "where $R$ is the linear mapping of the static regressors represented by $q_i^T$. In addition, the $H$ matrix holds affine information regarding $\\overline{g_i}$, which is equal to $\\overline{g_i} = \\frac{d\\overline{y}}{d\\overline{u}}{\\big |}_{(\\overline{u_i}\\:\\overline{y_i})}$.\n", + "\n", + "From now on, we will begin to apply the parameter estimation in a multiobjective manner. This will be done with the NARX polynomial model of the BUCK converter in mind. In this context, $q_i^T$ will be generic and will assume a specific format for the problem at hand. For this task, the $R_qit$ method will be used, whose objective is to return the $q_i^T$ related to the model and the matrix of the linear mapping $R$:" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": { + "ExecuteTime": { + "end_time": "2023-07-11T17:36:25.021969800Z", + "start_time": "2023-07-11T17:36:25.017591800Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "R matrix:\n", + "[[1 0 0 0 0 0 0 0]\n", + " [0 1 1 0 0 0 0 0]\n", + " [0 0 0 1 0 0 0 0]\n", + " [0 0 0 0 1 1 0 1]\n", + " [0 0 0 0 0 0 1 0]]\n", + "qit matrix:\n", + "[[0 0]\n", + " [1 0]\n", + " [0 1]\n", + " [2 0]\n", + " [1 1]]\n" + ] + } + ], + "source": [ + "R, qit = mo_estimator.build_linear_mapping()\n", + "print(\"R matrix:\")\n", + "print(R)\n", + "print(\"qit matrix:\")\n", + "print(qit)" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "So" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "q_i = \n", + "\\begin{bmatrix}\n", + "0 & 0\\\\\n", + "1 & 0\\\\\n", + "2 & 0\\\\\n", + "1 & 1\\\\\n", + "2 & 1\\\\ \n", + "\\end{bmatrix}\n", + "=\n", + "\\begin{bmatrix}\n", + "1\\\\\n", + "\\overline{y}\\\\\n", + "\\overline{u}\\\\\n", + "\\overline{y^2}\\\\\n", + "\\overline{u}\\:\\overline{y}\\\\ \n", + "\\end{bmatrix}\n", + "$$\n", + "\n", + "You can notice that the method produces outputs consistent with what is expected:\n", + "\n", + "$$\n", + "y(k) = \\theta_1 y(k-1) + \\theta_2 y(k-2) + \\theta_3 u(k-1) y(k-1) + \\theta_4 + \\theta_5 y(k-1)^2 + \\theta_6 u(k-1) + \\theta_7 y(k-2)y(k-1) + \\theta_8 y(k-2)^2\n", + "$$" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "and:\n", + "\n", + "$$ \n", + "R = \n", + "\\begin{bmatrix}\n", + "term/\\theta & \\theta_1 & \\theta_2 & \\theta_3 & \\theta_4 & \\theta_5 & \\theta_6 & \\theta_7 & \\theta_8\\\\\n", + "1 & 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0\\\\\n", + "\\overline{y} & 1 & 1 & 0 & 0 & 0 & 0 & 0 & 0\\\\\n", + "\\overline{u} & 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0\\\\\n", + "\\overline{y^2} & 0 & 0 & 0 & 0 & 1 & 0 & 1 & 1\\\\\n", + "\\overline{y}\\:\\overline{u} & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0\\\\\n", + "\\end{bmatrix}\n", + "$$" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Validation\n", + "\n", + "The following model structure will be used to validate the approach:\n", + "\n", + "$$\n", + "y(k) = \\theta_1 y(k-1) + \\theta_2 y(k-2) + \\theta_3 + \\theta_4 u(k-1) + \\theta_5 u(k-1)^2 + \\theta_6 u(k-2)u(k-1)+\\theta_7 u(k-2) + \\theta_8 u(k-2)^2\n", + "$$\n", + "\n", + "$\\therefore$\n", + "\n", + "$$\n", + "model\\_final = \n", + "\\begin{bmatrix}\n", + "1001 & 0\\\\\n", + "1002 & 0\\\\\n", + "0 & 0\\\\\n", + "2001 & 0\\\\\n", + "2001 & 2001\\\\\n", + "2002 & 2001\\\\\n", + "2002 & 0\\\\\n", + "2002 & 2002\n", + "\\end{bmatrix}\n", + "$$\n", + "\n", + "defining in code:" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": { + "ExecuteTime": { + "end_time": "2023-07-11T17:36:25.026952500Z", + "start_time": "2023-07-11T17:36:25.023968Z" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[1001, 0],\n", + " [1002, 0],\n", + " [ 0, 0],\n", + " [2001, 0],\n", + " [2001, 2001],\n", + " [2002, 2001],\n", + " [2002, 0],\n", + " [2002, 2002]])" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "model_final = np.array(\n", + " [\n", + " [1001, 0],\n", + " [1002, 0],\n", + " [0, 0],\n", + " [2001, 0],\n", + " [2001, 2001],\n", + " [2002, 2001],\n", + " [2002, 0],\n", + " [2002, 2002],\n", + " ]\n", + ")\n", + "model_final" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": { + "ExecuteTime": { + "end_time": "2023-07-11T17:36:25.031862500Z", + "start_time": "2023-07-11T17:36:25.027952500Z" + } + }, + "outputs": [], + "source": [ + "mult2 = AILS(final_model=model_final)" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": { + "ExecuteTime": { + "end_time": "2023-07-11T17:36:25.101857500Z", + "start_time": "2023-07-11T17:36:25.034862400Z" + } + }, + "outputs": [], + "source": [ + "def psi(X, Y):\n", + " PSI = np.zeros((len(X), 8))\n", + " for k in range(2, len(Y)):\n", + " PSI[k, 0] = Y[k - 1]\n", + " PSI[k, 1] = Y[k - 2]\n", + " PSI[k, 2] = 1\n", + " PSI[k, 3] = X[k - 1]\n", + " PSI[k, 4] = X[k - 1] ** 2\n", + " PSI[k, 5] = X[k - 2] * X[k - 1]\n", + " PSI[k, 6] = X[k - 2]\n", + " PSI[k, 7] = X[k - 2] ** 2\n", + " return np.delete(PSI, [0, 1], axis=0)" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The value of theta with the lowest mean squared error obtained with the same code implemented in Scilab was:\n", + "\n", + "$$\n", + "W_{LS} = 0,3612343\n", + "$$\n", + "\n", + "and:\n", + "\n", + "$$\n", + "W_{SG} = 0,3548699\n", + "$$\n", + "\n", + "and:\n", + "\n", + "$$\n", + "W_{SF} = 0,3548699\n", + "$$" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": { + "ExecuteTime": { + "end_time": "2023-07-11T17:36:25.101857500Z", + "start_time": "2023-07-11T17:36:25.038871100Z" + } + }, + "outputs": [], + "source": [ + "PSI = psi(x_train, y_train)\n", + "w = np.array([[0.3612343], [0.2838959], [0.3548699]])" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": { + "ExecuteTime": { + "end_time": "2023-07-11T17:36:25.122382900Z", + "start_time": "2023-07-11T17:36:25.053252Z" + } + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
w1w2w3J_lsJ_sgJ_sf||J||:
00.3612340.354870.2838961.01.01.01.0
\n", + "
" + ], + "text/plain": [ + " w1 w2 w3 J_ls J_sg J_sf ||J||:\n", + "0 0.361234 0.35487 0.283896 1.0 1.0 1.0 1.0" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "J, E, theta, HR, QR, position = mult2.estimate(\n", + " y=y_train, X=x_train, gain=gain, y_static=Yo, X_static=Uo, weighing_matrix=w\n", + ")\n", + "result = {\n", + " \"w1\": w[0, :],\n", + " \"w2\": w[2, :],\n", + " \"w3\": w[1, :],\n", + " \"J_ls\": J[0, :],\n", + " \"J_sg\": J[1, :],\n", + " \"J_sf\": J[2, :],\n", + " \"||J||:\": E,\n", + "}\n", + "# the order of the weights is different because the way we implemented in Python, but the results are very close as expected\n", + "pd.DataFrame(result)" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Dynamic results" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": { + "ExecuteTime": { + "end_time": "2023-07-11T17:36:25.123384200Z", + "start_time": "2023-07-11T17:36:25.066834500Z" + } + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
RegressorsParametersERR
011.4287E+009.999E-01
1y(k-1)5.5147E-012.042E-05
2y(k-2)4.0449E-011.108E-06
3x1(k-1)-1.2605E+014.688E-06
4x1(k-2)1.2257E+013.922E-07
5x1(k-1)^28.3274E+008.389E-07
6x1(k-2)x1(k-1)-1.1416E+015.690E-07
7x1(k-2)^23.0846E+003.827E-06
\n", + "
" + ], + "text/plain": [ + " Regressors Parameters ERR\n", + "0 1 1.4287E+00 9.999E-01\n", + "1 y(k-1) 5.5147E-01 2.042E-05\n", + "2 y(k-2) 4.0449E-01 1.108E-06\n", + "3 x1(k-1) -1.2605E+01 4.688E-06\n", + "4 x1(k-2) 1.2257E+01 3.922E-07\n", + "5 x1(k-1)^2 8.3274E+00 8.389E-07\n", + "6 x1(k-2)x1(k-1) -1.1416E+01 5.690E-07\n", + "7 x1(k-2)^2 3.0846E+00 3.827E-06" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "model.theta = theta[position, :].reshape(-1, 1)\n", + "model.final_model = mult2.final_model\n", + "yhat = model.predict(X=x_valid, y=y_valid)\n", + "rrse = root_relative_squared_error(y_valid, yhat)\n", + "r = pd.DataFrame(\n", + " results(\n", + " model.final_model,\n", + " model.theta,\n", + " model.err,\n", + " model.n_terms,\n", + " err_precision=3,\n", + " dtype=\"sci\",\n", + " ),\n", + " columns=[\"Regressors\", \"Parameters\", \"ERR\"],\n", + ")\n", + "r" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": { + "ExecuteTime": { + "end_time": "2023-07-11T17:36:25.276007600Z", + "start_time": "2023-07-11T17:36:25.115874700Z" + } + }, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot_results(y=y_valid, yhat=yhat, n=1000)" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Static gain" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": { + "ExecuteTime": { + "end_time": "2023-07-11T17:36:25.383278600Z", + "start_time": "2023-07-11T17:36:25.238956900Z" + } + }, + "outputs": [ + { + "data": { + "image/png": "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epGRkcGLL76YbwhcUb9+fZ5//nnKlClDpUqVeOihh/Dz82P69Ok88MADdO3albCwMO69917Kly/PiRMnAGjevDkDBgzgr3/9K5D7bL9///706tULk8lE+/btXfp8/PHHWb16Nd27d6d8+fL4+vpSrFgxnnnmGQYPHky5cuWoXLmy8yzmTjIZhRE5BSw1NZXg4GCSkpJu+GxCRMST7du3j127dvHUU09x5swZunTpwsqVK51BWph0ZiAi4iZVqlRhypQpxMXFYbfbGTlypFuCABQGIiJuc8899xToZyF+D72ALCIiCgMREVEYiIgICgMREUFhIPLHcyENPn8SLqTffNubSE5Opnnz5s5lEACmTJnisvzBli1baNSokfPTu5C7XMPjjz9O79696d27N127dmX8+PEArFmzhmeeeYbMzEwA0tPTefrpp10+bFVQwsPDSU5Ovu54hw4dyMrKuu39z5w50+XnLso8LgwuXLjAwIED6dWrFy+88AKbNm1yd0sinmXVu3B4HayaXCC7K1asGGPGjLnup1wTExPp168f8+fPd6l36dKFuXPnMnfuXBYtWsTOnTvZunUrrVu3pk2bNkyaNIns7GzCw8OJjIzM90Nhnm7AgAE0btzY3W0UCo97a+nnn39Oq1at6Nu3L/v37yciIoJFixa5uy2RO2/zF7DpJuvv59jg2HowHLDhc0jbCl43eF96017QpMcNd9mqVSscDgfx8fH06tXLZcxqtbJu3Tq++eYbnn76aU6fPk3ZsmXz7MNqtXLhwgX8/f2B3GfsL774IoMHD+bRRx+ldevWee7TqVMnmjZtyqFDh2jVqhUXLlzgl19+oXbt2rz33nukpqYyduxYcnJyMJlMjBs3jgYNGhAfH09iYiIVKlTg119/BSA7OzvfVUnzs3LlSv7+97/j5+dHqVKlqF+/PoMHD+aNN94gLS2NM2fO8NhjjzFixAgiIyMJCQnh1KlTrFq1iszMTA4fPkz//v3p1q3bDef1j8bjwqBv377OD13Y7XaKFy/u5o5EPMi5w3DlGbxhwNnDUK7u795tTEwMoaGhzuWor/j222/p1KkTxYsX58knn2ThwoXOVUmXLl3K5s2bOXnyJCVLlmTgwIHUqlULyD3bCAsLIyYmxnn56FpHjx4lLi6OChUq8PDDD5OYmEh0dDTBwcGcP3+ed999l969e9Ox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MBARERQGIiKCwkBERFAYiIgICgMREUFhICIiKAxERASFgYiIoDAQEREUBiIigsJARERQGIiICAoDERFBYSAiIigMREQEhYGIiOAhYbBs2TIiIiKct9euXcsLL7xAz549GTZsGJcuXXJjdyIiRZ/bw2DChAlMnToVh8PhrMXExPDRRx8RHx9PzZo1SUxMdGOHIiJFn9vDICgoiJiYGJfa3LlzKV++PAA5OTkUL17cDZ2JiNw9vAvrQImJicTFxbnUYmNjCQkJITk52aVesWJFIPfyUXJyMiNGjCisNkVE7kqFFgahoaGEhobe8vazZ8/m+++/59NPP9WZgYjIHVZoYfBbTJ8+ne3btzN79mx8fX3d3Y6ISJHn9tcMrnXq1Ck++ugjTpw4Qf/+/enduzfz5893d1siIkWaR5wZtGzZkpYtWwJQvnx5tm3b5uaORETuLh53ZiAiIoVPYSAiIgoDERFRGIiICAoDERFBYSAiIigMREQEhYGIiKAwEBERFAYiIoLCQEREUBiIiAgKAxERQWEgIiIoDEREBIWBiIigMBARERQGIiKCwkBERPCQMFi2bBkRERF56tOnTyc8PNwNHYmI3F3cHgYTJkxg6tSpOBwOl/qqVatYvXq1m7oSEbm7uD0MgoKCiImJcakdOnSIhIQEhg4d6p6mRETuMt6FdaDExETi4uJcarGxsYSEhJCcnOysWa1W3nrrLSZPnsy+ffsKqz0RkbtaoYVBaGgooaGhN91uzZo1nDx5kvDwcM6fP8+JEyeYOXMmAwYMKIQuRUTuToUWBreqc+fOdO7cGYDk5GQWLFigIBARucPc/pqBiIi4n8kwDMPdTfxWqampBAcHk5SURPXq1d3djojIH57ODERERGEgIiIKAxERQWEgIiIoDEREBIWBiIigMBARERQGIiKCwkBERFAYiIgICgMREUFhICIiKAxERASFgYiIoDAQEREUBiIigsJARERQGIiICAoDERHBQ8Jg2bJlREREOG8fOnSIvn370rNnT/r168eZM2fc2J2ISNHn7e4GJkyYwE8//UTDhg2dtejoaF577TWaNGnCDz/8wMGDBylTpowbuxQRKdrcHgZBQUF07NiRhIQEADIzMzl9+jQrV65k6tSpNGrUiJEjR7rcx263A5CWllbo/YqI/NFVrlwZb2/Xh/9CC4PExETi4uJcarGxsYSE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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure(7)\n", + "plt.title(\"Gain\")\n", + "plt.plot(\n", + " Uo,\n", + " gain,\n", + " linewidth=1.5,\n", + " linestyle=\"-\",\n", + " marker=\"o\",\n", + " label=\"Buck converter static gain\",\n", + ")\n", + "plt.plot(\n", + " Uo,\n", + " HR.dot(model.theta),\n", + " linestyle=\"-\",\n", + " marker=\"^\",\n", + " linewidth=1.5,\n", + " label=\"NARX model gain\",\n", + ")\n", + "plt.xlabel(\"$\\\\bar{u}$\")\n", + "plt.ylabel(\"$\\\\bar{g}$\")\n", + "plt.ylim(-16, 0)\n", + "plt.legend()\n", + "plt.show()" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Static function" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": { + "ExecuteTime": { + "end_time": "2023-07-11T17:36:25.471991600Z", + "start_time": "2023-07-11T17:36:25.383278600Z" + } + }, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure(8)\n", + "plt.title(\"Static Curve\")\n", + "plt.plot(Uo, Yo, linewidth=1.5, label=\"Static curve\", linestyle=\"-\", marker=\"o\")\n", + "plt.plot(\n", + " Uo,\n", + " QR.dot(model.theta),\n", + " linewidth=1.5,\n", + " label=\"NARX ​​static representation\",\n", + " linestyle=\"-\",\n", + " marker=\"^\",\n", + ")\n", + "plt.xlabel(\"$\\\\bar{u}$\")\n", + "plt.xlabel(\"$\\\\bar{y}$\")\n", + "plt.legend()\n", + "plt.show()" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Pareto-set solutions" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": { + "ExecuteTime": { + "end_time": "2023-07-11T17:36:25.557244700Z", + "start_time": "2023-07-11T17:36:25.473992800Z" + } + }, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure(9)\n", + "ax = plt.axes(projection=\"3d\")\n", + "ax.plot3D(J[0, :], J[1, :], J[2, :], \"o\", linewidth=0.1)\n", + "ax.set_title(\"Optimum pareto-curve\", fontsize=15)\n", + "ax.set_xlabel(\"$J_{ls}$\", fontsize=10)\n", + "ax.set_ylabel(\"$J_{sg}$\", fontsize=10)\n", + "ax.set_zlabel(\"$J_{sf}$\", fontsize=10)\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 27, + "metadata": { + "ExecuteTime": { + "end_time": "2023-07-11T17:36:25.561257100Z", + "start_time": "2023-07-11T17:36:25.558245400Z" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "array([ 1.42867821, 0.5514725 , 0.40449005, -12.60548863,\n", + " 12.25729955, 8.32740057, -11.41574116, 3.08461195])" + ] + }, + "execution_count": 27, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "theta[position, :]" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The following table show the results reported in ‘IniciacaoCientifica2007’ and the ones obtained with SysIdentPy implementation" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "| Theta | SysIdentPy | IniciacaoCientifica2007 |\n", + "|-------------|--------------|-------------------------------|\n", + "| $\\theta_1$ | 0.5514725 | 0.549144 |\n", + "| $\\theta_2$ | 0.40449005 | 0.408028 |\n", + "| $\\theta_3$ | 1.42867821 | 1.45097 |\n", + "| $\\theta_4$ | -12.60548863 | -12.55788 |\n", + "| $\\theta_5$ | 8.32740057 | 8.1516315 |\n", + "| $\\theta_6$ | -11.41574116 | -11.09728 |\n", + "| $\\theta_7$ | 12.25729955 | 12.215782 |\n", + "| $\\theta_8$ | 3.08461195 | 2.9319577 |\n", + "\n", + "where:\n", + "$$\n", + "E_{Scilab} = 17,426613\n", + "$$\n", + "\n", + "and:\n", + "\n", + "$$\n", + "E_{Python} = 17,474865\n", + "$$\n", + "\n", + "#### Note: as mentioned before, the order of the regressors in the model change, but it is the same structure. The tables shows the respective regressor parameter concerning `SysIdentPy` and `IniciacaoCientifica2007`, but the order `θ₁`, `θ₂` and so on are not the same of the ones in model.final_model" + ] + }, + { + "cell_type": "code", + "execution_count": 28, + "metadata": { + "ExecuteTime": { + "end_time": "2023-07-11T17:36:25.565769100Z", + "start_time": "2023-07-11T17:36:25.561257100Z" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "R matrix:\n", + "[[1 0 0 0 0 0 0 0]\n", + " [0 1 1 0 0 0 0 0]\n", + " [0 0 0 1 1 0 0 0]\n", + " [0 0 0 0 0 1 1 1]]\n", + "qit matrix:\n", + "[[0 0]\n", + " [1 0]\n", + " [0 1]\n", + " [0 2]]\n" + ] + } + ], + "source": [ + "R, qit = mult2.build_linear_mapping()\n", + "print(\"R matrix:\")\n", + "print(R)\n", + "print(\"qit matrix:\")\n", + "print(qit)" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "model's structure that will be utilized (‘IniciacaoCientifica2007’):\n", + "\n", + "$$\n", + "y(k) = \\theta_1 y(k-1) + \\theta_2 y(k-2) + \\theta_3 + \\theta_4 u(k-1) + \\theta_5 u(k-1)^2 + \\theta_6 u(k-2)u(k-1)+\\theta_7 u(k-2) + \\theta_8 u(k-2)^2\n", + "$$\n", + "\n", + "$$\n", + "q_i = \n", + "\\begin{bmatrix}\n", + "0 & 0\\\\\n", + "1 & 0\\\\\n", + "2 & 0\\\\\n", + "2 & 2\\\\ \n", + "\\end{bmatrix}\n", + "=\n", + "\\begin{bmatrix}\n", + "1\\\\\n", + "\\overline{y}\\\\\n", + "\\overline{u}\\\\\n", + "\\overline{u^2}\n", + "\\end{bmatrix}\n", + "$$" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "and:\n", + "\n", + "$$ \n", + "R = \n", + "\\begin{bmatrix}\n", + "term/\\theta & \\theta_1 & \\theta_2 & \\theta_3 & \\theta_4 & \\theta_5 & \\theta_6 & \\theta_7 & \\theta_8\\\\\n", + "1 & 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0\\\\\n", + "\\overline{y} & 1 & 1 & 0 & 0 & 0 & 0 & 0 & 0\\\\\n", + "\\overline{u} & 0 & 0 & 0 & 1 & 0 & 0 & 1 & 0\\\\\n", + "\\overline{u^2} & 0 & 0 & 0 & 0 & 1 & 1 & 0 & 1\n", + "\\end{bmatrix}\n", + "$$\n", + "\n", + "consistent with matrix R:\n", + "\n", + "R = [0 0 1 0 0 0 0 0;1 1 0 0 0 0 0 0;0 0 0 1 0 0 1 0;0 0 0 0 1 1 0 1]; // R \n", + "\n", + "or:\n", + "\n", + "$$ \n", + "R = \n", + "\\begin{bmatrix}\n", + "0 & 0 & 1 & 0 & 0 & 0 & 0 & 0\\\\\n", + "1 & 1 & 0 & 0 & 0 & 0 & 0 & 0\\\\\n", + "0 & 0 & 0 & 1 & 0 & 0 & 1 & 0\\\\\n", + "0 & 0 & 0 & 0 & 1 & 1 & 0 & 1\n", + "\\end{bmatrix}\n", + "$$" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Biobjective optimization: An use case applied to Buck converter CC-CC using as objectives the static curve information and the prediction error (dynamic) " + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": { + "ExecuteTime": { + "end_time": "2023-07-11T17:36:25.568942Z", + "start_time": "2023-07-11T17:36:25.566771800Z" + } + }, + "outputs": [], + "source": [ + "bi_objective = AILS(\n", + " static_function=True, static_gain=False, final_model=model_final, normalize=True\n", + ")" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "the value of theta with the lowest mean squared error obtained through the routine in Scilab was:\n", + "\n", + "$$\n", + "W_{LS} = 0,9931126\n", + "$$\n", + "\n", + "and:\n", + "\n", + "$$\n", + "W_{SF} = 0,0068874\n", + "$$" + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": { + "ExecuteTime": { + "end_time": "2023-07-11T17:36:25.660520200Z", + "start_time": "2023-07-11T17:36:25.571454900Z" + } + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
w1w2J_lsJ_sg||J||:
00.9900800.0099200.9908631.0000000.990939
10.9871270.0128730.9908650.9870320.990939
20.9841820.0158180.9908670.9743070.990939
30.9812470.0187530.9908700.9618030.990940
40.9783200.0216800.9908730.9495090.990941
..................
19950.0025550.9974450.9999930.0000720.999993
19960.0025470.9974530.9999940.0000720.999994
19970.0025400.9974600.9999960.0000710.999996
19980.0025320.9974680.9999980.0000710.999998
19990.0025250.9974751.0000000.0000701.000000
\n", + "

2000 rows × 5 columns

\n", + "
" + ], + "text/plain": [ + " w1 w2 J_ls J_sg ||J||:\n", + "0 0.990080 0.009920 0.990863 1.000000 0.990939\n", + "1 0.987127 0.012873 0.990865 0.987032 0.990939\n", + "2 0.984182 0.015818 0.990867 0.974307 0.990939\n", + "3 0.981247 0.018753 0.990870 0.961803 0.990940\n", + "4 0.978320 0.021680 0.990873 0.949509 0.990941\n", + "... ... ... ... ... ...\n", + "1995 0.002555 0.997445 0.999993 0.000072 0.999993\n", + "1996 0.002547 0.997453 0.999994 0.000072 0.999994\n", + "1997 0.002540 0.997460 0.999996 0.000071 0.999996\n", + "1998 0.002532 0.997468 0.999998 0.000071 0.999998\n", + "1999 0.002525 0.997475 1.000000 0.000070 1.000000\n", + "\n", + "[2000 rows x 5 columns]" + ] + }, + "execution_count": 30, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "w = np.zeros((2, 2000))\n", + "w[0, :] = np.logspace(-0.01, -6, num=2000, base=2.71)\n", + "w[1, :] = np.ones(2000) - w[0, :]\n", + "J, E, theta, HR, QR, position = bi_objective.estimate(\n", + " y=y_train, X=x_train, y_static=Yo, X_static=Uo, weighing_matrix=w\n", + ")\n", + "result = {\"w1\": w[0, :], \"w2\": w[1, :], \"J_ls\": J[0, :], \"J_sg\": J[1, :], \"||J||:\": E}\n", + "pd.DataFrame(result)" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": { + "ExecuteTime": { + "end_time": "2023-07-11T17:36:25.775500300Z", + "start_time": "2023-07-11T17:36:25.662525800Z" + } + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
RegressorsParametersERR
011.3873E+009.999E-01
1y(k-1)5.4941E-012.042E-05
2y(k-2)4.0804E-011.108E-06
3x1(k-1)-1.2515E+014.688E-06
4x1(k-2)1.2227E+013.922E-07
5x1(k-1)^28.1171E+008.389E-07
6x1(k-2)x1(k-1)-1.1047E+015.690E-07
7x1(k-2)^22.9043E+003.827E-06
\n", + "
" + ], + "text/plain": [ + " Regressors Parameters ERR\n", + "0 1 1.3873E+00 9.999E-01\n", + "1 y(k-1) 5.4941E-01 2.042E-05\n", + "2 y(k-2) 4.0804E-01 1.108E-06\n", + "3 x1(k-1) -1.2515E+01 4.688E-06\n", + "4 x1(k-2) 1.2227E+01 3.922E-07\n", + "5 x1(k-1)^2 8.1171E+00 8.389E-07\n", + "6 x1(k-2)x1(k-1) -1.1047E+01 5.690E-07\n", + "7 x1(k-2)^2 2.9043E+00 3.827E-06" + ] + }, + "execution_count": 31, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "model.theta = theta[position, :].reshape(-1, 1)\n", + "model.final_model = bi_objective.final_model\n", + "yhat = model.predict(X=x_valid, y=y_valid)\n", + "rrse = root_relative_squared_error(y_valid, yhat)\n", + "r = pd.DataFrame(\n", + " results(\n", + " model.final_model,\n", + " model.theta,\n", + " model.err,\n", + " model.n_terms,\n", + " err_precision=3,\n", + " dtype=\"sci\",\n", + " ),\n", + " columns=[\"Regressors\", \"Parameters\", \"ERR\"],\n", + ")\n", + "r" + ] + }, + { + "cell_type": "code", + "execution_count": 32, + "metadata": { + "ExecuteTime": { + "end_time": "2023-07-11T17:36:25.870151400Z", + "start_time": "2023-07-11T17:36:25.708903700Z" + } + }, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAmcAAAGMCAYAAACf2QXNAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8rg+JYAAAACXBIWXMAAAsTAAALEwEAmpwYAACU7ElEQVR4nO3dd3wT9f8H8NcladIJBQErZRakrEKrCApWZcvSgqBM5+/rRpChoEVWERRZbvmq+JUlMowKCsoQUUQFCy2jTFlllVHozLzfH9dLM+4yL8kleT8fD75fc0mTT+4+l7zzuc/n/WZYlmVBCCGEEEJkQRHsBhBCCCGEkGoUnBFCCCGEyAgFZ4QQQgghMkLBGSGEEEKIjFBwRgghhBAiIxScEUIIIYTICAVnhESY9957D6mpqU7/HTp0KNjNlL1JkyYhNTU1oK85atQodOvWzau/LS0txdWrVy23+X5w9uxZqZpHCJGIKtgNIIQEx7PPPouUlBTB++rXrx/g1oSeRx55BHfddVewm+GW/fv347nnnsM777yDTp06AQB69uyJRo0aoXbt2kFuHSHEHgVnhESozp07W76oiecyMjKQkZER7Ga45ciRI7h06ZLNtpYtW6Jly5ZBahEhxBm6rEkIIYQQIiMUnBFCRHXr1g3Z2dl47bXXkJaWhnvuuccybyk3NxdPPPGEZQTpySefRF5ensNzuPs4d1+7W7duGDVqlODjrbd369YNb7zxBr799lv069cPaWlp6NWrF5YvX+7yta9fv45JkybhvvvuQ9u2bdGjRw/MmzcPOp3O8hj7OWeTJk1C//79sWfPHjzyyCNo164dunfvjm+++QYGgwHz5s1Dly5d0LFjR4wdOxbXrl2z/K3YXDJ35pht3LgRI0eOxO233462bduiW7duePvtt6HX6wFwc8smT54MAHj00Uctzyc05+zatWuYNm0aMjMz0bZtW/Tu3RuLFy+GyWSyPOa9995DWloaTp48iWeeeQYZGRm444478Oqrr9q8J0KI9+iyJiERqqSkxGaCOC8hIQFRUVGW2xs2bEDTpk3x+uuv4/Lly6hduzZ+//13PPPMM2jZsiXGjBkDvV6PdevWYcSIEViyZAk6dOgAAG4/TozQa3tix44dluClTp06WLVqFWbMmIEGDRrg3nvvFf27sWPH4uDBg3j00UdRr1495ObmYvHixSguLsbMmTNF/66oqAjPPvsshgwZggceeABffvklXnvtNXz//fcoKSnB888/j+PHj2P58uWIiYnB7NmzPXo/9lavXo3s7Gx069YNEyZMgMFgwM8//4zPPvsMsbGxePHFF9GzZ08UFRVh1apVePbZZ5GWlib4XNevX8fQoUNRWFiIoUOHomnTpvj9998xb948HDx4EAsXLrQ81mw249FHH0WHDh3w6quvIj8/H2vWrEFlZSUWLVrk03sihFBwRkjEeuGFFwS3f/nllzZz0SorK7Fw4UI0atQIAPfFPHXqVKSlpWHZsmVQKpUAgJEjRyIrKws5OTnQarVuP84Z+9f21Pnz56HVai1zq3r27InMzEx89913osHZlStXsHPnTrzyyit46qmnAABDhgwBy7I4c+aM09crLi7GlClTMHLkSABAgwYN8PTTT+PkyZPYuHEj1Go1AODQoUP47bffvHpP1j7//HNkZGTgww8/BMMwAIDhw4eje/fu2LRpE1588UW0bNkS6enpWLVqldN5hv/9739x8uRJfPDBB+jRowcAYMSIEZg+fTpWrFiBgQMHWvaZ0WhE3759MWnSJADA0KFDcfHiRWzevBkVFRWIiYnx+b0REskoOCMkQr366quCE8LttzVq1MgmODp48CDOnDmDYcOG4fr16zaP7dq1K7744gtcuHABly9fdutxSUlJom20f21PNW3a1Ob91K1bF3Xq1MHly5dF/yYhIQGxsbFYsWIFGjRogMzMTMTGxro9ytWzZ0/Lfzdp0gQAkJmZaQnMAC5oy83N9fDdOPruu+9QUVFhCcwALrisUaMGysvLPXqurVu3olmzZpbAjPf8889jxYoV2LJli01A26dPH5vHtWrVCjt27EBxcTEFZ4T4iIIzQiJUmzZt3FqtedNNN9ncPn36NADg7bffxttvvy34N+fPn8f58+fdepyz4Mz+tT0ldBlUrVbDbDaL/o1arcaMGTMwZcoUvPTSS1Cr1ejYsSN69eqFrKwsaDQap69p3WZ+tND+fSiVSrAs68lbERQVFYW///4b69evx4kTJ3D69GlcuXIFAJCcnOzRc509exaZmZkO2+vWrYsaNWqgsLDQZrv9vuWDT+v5aYQQ71BwRghxig8weHxgM2bMGKSnpwv+TUpKiuXL3NXjPHltZ4SCAoXCuzVPAwYMQGZmJjZv3ozt27dj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cWPLv88//xx//fUXioqKMG3aNCQnJ+M///kPVqxYgUGDBuHHH3/0qk2EkPBDwRkhJCS1adMGXbt2xYsvvohvvvkGZ86cQX5+PhYsWIBDhw7hoYceQkxMDH766SecPXsWv/32G2bMmAEANpcqPVFYWIg5c+bgxIkT+Pjjj7F//34MGTLE4XFPPPEEli5dim+++QanT5/G+++/j7Vr1yIlJQU1a9bE5s2bMWvWLJw6dQp5eXnYvXs32rRp49P+IISED7qsSQgJWQsXLsTixYvxySefYOrUqVCr1bjjjjuwfPly3HLLLZg7dy7eeustLF++HA0aNMCzzz6L9957DwcPHkSLFi08fr22bduipKQEAwcOROPGjbF48WI0adLE4XF9+/bFlStX8P777+PSpUtISUnBBx98gFatWgEAPvroI7z55pvIysqCRqNB37598cILL/i6OwghYYJhKY02IYS49N5772Hnzp1YuXJlsJtCCAlzdFmTEEIIIURGKDgjhBBCCJERuqxJCCGEECIjNHJGCCGEECIjFJwRQgghhMgIBWeEEEIIITJCwRkhhBBCiIxQcEYIIYQQIiMUnBFCCCGEyMj/A4Av6ra05bGPAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot_results(y=y_valid, yhat=yhat, n=1000)" + ] + }, + { + "cell_type": "code", + "execution_count": 33, + "metadata": { + "ExecuteTime": { + "end_time": "2023-07-11T17:36:25.956170500Z", + "start_time": "2023-07-11T17:36:25.855611300Z" + } + }, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure(10)\n", + "plt.title(\"Static Curve\")\n", + "plt.plot(Uo, Yo, linewidth=1.5, label=\"Static curve\", linestyle=\"-\", marker=\"o\")\n", + "plt.plot(\n", + " Uo,\n", + " QR.dot(model.theta),\n", + " linewidth=1.5,\n", + " label=\"NARX ​​static representation\",\n", + " linestyle=\"-\",\n", + " marker=\"^\",\n", + ")\n", + "plt.xlabel(\"$\\\\bar{u}$\")\n", + "plt.xlabel(\"$\\\\bar{y}$\")\n", + "plt.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": { + "ExecuteTime": { + "end_time": "2023-07-11T17:36:26.030539300Z", + "start_time": "2023-07-11T17:36:25.943142500Z" + } + }, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure(11)\n", + "plt.title(\"Costs Functions\")\n", + "plt.plot(J[1, :], J[0, :], \"o\")\n", + "plt.xlabel(\"Static Curve Information\")\n", + "plt.ylabel(\"Prediction Error\")\n", + "plt.show()" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "where the best estimated $\\theta$ is" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "| Theta | SysIdentPy | IniciacaoCientifica2007 |\n", + "|-------------|--------------|--------------------------|\n", + "| $\\theta_1$ | 0.54940883 | 0.5494135 |\n", + "| $\\theta_2$ | 0.40803995 | 0.4080312 |\n", + "| $\\theta_3$ | 1.38725684 | 3.3857601 |\n", + "| $\\theta_4$ | -12.51466378 | -12.513688 |\n", + "| $\\theta_5$ | 8.11712897 | 8.116575 |\n", + "| $\\theta_6$ | -11.04664789 | -11.04592 |\n", + "| $\\theta_7$ | 12.22693907 | 12.227184 |\n", + "| $\\theta_8$ | 2.90425844 | 2.9038468 |\n", + "\n", + "where:\n", + "\n", + "$$\n", + "E_{Scilab} = 17,408934\n", + "$$\n", + "\n", + "and:\n", + "\n", + "$$\n", + "E_{Python} = 17,408947\n", + "$$" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Multiobjective parameter estimation considering 2 different objectives: the prediction error and the static gain " + ] + }, + { + "cell_type": "code", + "execution_count": 35, + "metadata": { + "ExecuteTime": { + "end_time": "2023-07-11T17:36:26.038110800Z", + "start_time": "2023-07-11T17:36:26.035606500Z" + } + }, + "outputs": [], + "source": [ + "bi_objective_gain = AILS(\n", + " static_function=False, static_gain=True, final_model=model_final, normalize=False\n", + ")" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "the value of theta with the lowest mean squared error obtained through the routine in Scilab was:\n", + "\n", + "$$\n", + "W_{LS} = 0,9931126\n", + "$$\n", + "\n", + "and:\n", + "\n", + "$$\n", + "W_{SF} = 0,0068874\n", + "$$\n" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": { + "ExecuteTime": { + "end_time": "2023-07-11T17:36:26.121025300Z", + "start_time": "2023-07-11T17:36:26.038110800Z" + } + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
w1w2J_lsJ_sg||J||:
01.0000000.00000017.4072563.579467e+0139.802904
10.9970120.00298817.4075282.109260e-0117.408806
20.9940330.00596717.4075402.082067e-0117.408785
30.9910630.00893717.4075592.056636e-0117.408774
40.9881020.01189817.4075852.031788e-0117.408771
..................
19950.0025550.99744517.5115963.340081e-0717.511596
19960.0025470.99745317.5115963.320125e-0717.511596
19970.0025400.99746017.5115973.300289e-0717.511597
19980.0025320.99746817.5115983.280571e-0717.511598
19990.0025250.99747517.5115993.260972e-0717.511599
\n", + "

2000 rows × 5 columns

\n", + "
" + ], + "text/plain": [ + " w1 w2 J_ls J_sg ||J||:\n", + "0 1.000000 0.000000 17.407256 3.579467e+01 39.802904\n", + "1 0.997012 0.002988 17.407528 2.109260e-01 17.408806\n", + "2 0.994033 0.005967 17.407540 2.082067e-01 17.408785\n", + "3 0.991063 0.008937 17.407559 2.056636e-01 17.408774\n", + "4 0.988102 0.011898 17.407585 2.031788e-01 17.408771\n", + "... ... ... ... ... ...\n", + "1995 0.002555 0.997445 17.511596 3.340081e-07 17.511596\n", + "1996 0.002547 0.997453 17.511596 3.320125e-07 17.511596\n", + "1997 0.002540 0.997460 17.511597 3.300289e-07 17.511597\n", + "1998 0.002532 0.997468 17.511598 3.280571e-07 17.511598\n", + "1999 0.002525 0.997475 17.511599 3.260972e-07 17.511599\n", + "\n", + "[2000 rows x 5 columns]" + ] + }, + "execution_count": 36, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "w = np.zeros((2, 2000))\n", + "w[0, :] = np.logspace(0, -6, num=2000, base=2.71)\n", + "w[1, :] = np.ones(2000) - w[0, :]\n", + "# W = np.array([[0.9931126],\n", + "# [0.0068874]])\n", + "J, E, theta, HR, QR, position = bi_objective_gain.estimate(\n", + " X=x_train, y=y_train, gain=gain, y_static=Yo, X_static=Uo, weighing_matrix=w\n", + ")\n", + "result = {\"w1\": w[0, :], \"w2\": w[1, :], \"J_ls\": J[0, :], \"J_sg\": J[1, :], \"||J||:\": E}\n", + "pd.DataFrame(result)" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": { + "ExecuteTime": { + "end_time": "2023-07-11T17:36:26.234880200Z", + "start_time": "2023-07-11T17:36:26.123024200Z" + } + }, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
RegressorsParametersERR
011.4853E+009.999E-01
1y(k-1)5.4940E-012.042E-05
2y(k-2)4.0806E-011.108E-06
3x1(k-1)-1.2581E+014.688E-06
4x1(k-2)1.2210E+013.922E-07
5x1(k-1)^28.1686E+008.389E-07
6x1(k-2)x1(k-1)-1.1122E+015.690E-07
7x1(k-2)^22.9455E+003.827E-06
\n", + "
" + ], + "text/plain": [ + " Regressors Parameters ERR\n", + "0 1 1.4853E+00 9.999E-01\n", + "1 y(k-1) 5.4940E-01 2.042E-05\n", + "2 y(k-2) 4.0806E-01 1.108E-06\n", + "3 x1(k-1) -1.2581E+01 4.688E-06\n", + "4 x1(k-2) 1.2210E+01 3.922E-07\n", + "5 x1(k-1)^2 8.1686E+00 8.389E-07\n", + "6 x1(k-2)x1(k-1) -1.1122E+01 5.690E-07\n", + "7 x1(k-2)^2 2.9455E+00 3.827E-06" + ] + }, + "execution_count": 37, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Writing the results\n", + "model.theta = theta[position, :].reshape(-1, 1)\n", + "model.final_model = bi_objective_gain.final_model\n", + "yhat = model.predict(X=x_valid, y=y_valid)\n", + "rrse = root_relative_squared_error(y_valid, yhat)\n", + "r = pd.DataFrame(\n", + " results(\n", + " model.final_model,\n", + " model.theta,\n", + " model.err,\n", + " model.n_terms,\n", + " err_precision=3,\n", + " dtype=\"sci\",\n", + " ),\n", + " columns=[\"Regressors\", \"Parameters\", \"ERR\"],\n", + ")\n", + "r" + ] + }, + { + "cell_type": "code", + "execution_count": 38, + "metadata": { + "ExecuteTime": { + "end_time": "2023-07-11T17:36:26.355391Z", + "start_time": "2023-07-11T17:36:26.163688700Z" + } + }, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot_results(y=y_valid, yhat=yhat, n=1000)" + ] + }, + { + "cell_type": "code", + "execution_count": 39, + "metadata": { + "ExecuteTime": { + "end_time": "2023-07-11T17:36:26.452301700Z", + "start_time": "2023-07-11T17:36:26.302207200Z" + } + }, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure(12)\n", + "plt.title(\"Gain\")\n", + "plt.plot(\n", + " Uo,\n", + " gain,\n", + " linewidth=1.5,\n", + " linestyle=\"-\",\n", + " marker=\"o\",\n", + " label=\"Buck converter static gain\",\n", + ")\n", + "plt.plot(\n", + " Uo,\n", + " HR.dot(model.theta),\n", + " linestyle=\"-\",\n", + " marker=\"^\",\n", + " linewidth=1.5,\n", + " label=\"NARX model gain\",\n", + ")\n", + "plt.xlabel(\"$\\\\bar{u}$\")\n", + "plt.ylabel(\"$\\\\bar{g}$\")\n", + "plt.legend()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 40, + "metadata": { + "ExecuteTime": { + "end_time": "2023-07-11T17:36:26.508762500Z", + "start_time": "2023-07-11T17:36:26.422233300Z" + } + }, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure(11)\n", + "plt.title(\"Costs Functions\")\n", + "plt.plot(J[1, :], J[0, :], \"o\")\n", + "plt.xlabel(\"Gain Information\")\n", + "plt.ylabel(\"Prediction Error\")\n", + "plt.show()" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "being the selected $\\theta$:" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "| Theta | SysIdentPy | IniciacaoCientifica2007 |\n", + "|-------------|---------------|---------------------------|\n", + "| $\\theta_1$ | 0.54939785 | 0.54937289 |\n", + "| $\\theta_2$ | 0.40805603 | 0.40810168 |\n", + "| $\\theta_3$ | 1.48525190 | 1.48663719 |\n", + "| $\\theta_4$ | -12.58066084 | -12.58127183 |\n", + "| $\\theta_5$ | 8.16862622 | 8.16780294 |\n", + "| $\\theta_6$ | -11.12171897 | -11.11998621 |\n", + "| $\\theta_7$ | 12.20954849 | 12.20927355 |\n", + "| $\\theta_8$ | 2.94548501 | 2.9446532 |\n", + "\n", + "where:\n", + "\n", + "$$\n", + "E_{Scilab} = 17,408997\n", + "$$\n", + "\n", + "and:\n", + "\n", + "$$\n", + "E_{Python} = 17,408781\n", + "$$\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Additional Information\n", + "\n", + "You can also access the matrix Q and H using the following methods" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Matrix Q:" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "metadata": { + "ExecuteTime": { + "end_time": "2023-07-11T17:36:26.518219Z", + "start_time": "2023-07-11T17:36:26.508762500Z" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[ 50. , 800. , 800. , 100. ,\n", + " 100. , 269.3877551 , 269.3877551 , 269.3877551 ],\n", + " [ 800. , 17240.81632653, 17240.81632653, 1044.89795918,\n", + " 1044.89795918, 2089.79591837, 2089.79591837, 2089.79591837],\n", + " [ 800. , 17240.81632653, 17240.81632653, 1044.89795918,\n", + " 1044.89795918, 2089.79591837, 2089.79591837, 2089.79591837],\n", + " [ 100. , 1044.89795918, 1044.89795918, 269.3877551 ,\n", + " 269.3877551 , 816.32653061, 816.32653061, 816.32653061],\n", + " [ 100. , 1044.89795918, 1044.89795918, 269.3877551 ,\n", + " 269.3877551 , 816.32653061, 816.32653061, 816.32653061],\n", + " [ 269.3877551 , 2089.79591837, 2089.79591837, 816.32653061,\n", + " 816.32653061, 2638.54142407, 2638.54142407, 2638.54142407],\n", + " [ 269.3877551 , 2089.79591837, 2089.79591837, 816.32653061,\n", + " 816.32653061, 2638.54142407, 2638.54142407, 2638.54142407],\n", + " [ 269.3877551 , 2089.79591837, 2089.79591837, 816.32653061,\n", + " 816.32653061, 2638.54142407, 2638.54142407, 2638.54142407]])" + ] + }, + "execution_count": 41, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "bi_objective_gain.build_static_function_information(Uo, Yo)[1]" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Matrix H+R:" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "metadata": { + "ExecuteTime": { + "end_time": "2023-07-11T17:36:26.520765Z", + "start_time": "2023-07-11T17:36:26.513648100Z" + } + }, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[ 0. , 0. , 0. , 0. ,\n", + " 0. , 0. , 0. , 0. ],\n", + " [ 0. , 3200. , 3200. , -400. ,\n", + " -400. , -1600. , -1600. , -1600. ],\n", + " [ 0. , 3200. , 3200. , -400. ,\n", + " -400. , -1600. , -1600. , -1600. ],\n", + " [ 0. , -400. , -400. , 50. ,\n", + " 50. , 200. , 200. , 200. ],\n", + " [ 0. , -400. , -400. , 50. ,\n", + " 50. , 200. , 200. , 200. ],\n", + " [ 0. , -1600. , -1600. , 200. ,\n", + " 200. , 1077.55102041, 1077.55102041, 1077.55102041],\n", + " [ 0. , -1600. , -1600. , 200. ,\n", + " 200. , 1077.55102041, 1077.55102041, 1077.55102041],\n", + " [ 0. , -1600. , -1600. , 200. ,\n", + " 200. , 1077.55102041, 1077.55102041, 1077.55102041]])" + ] + }, + "execution_count": 42, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "bi_objective_gain.build_static_gain_information(Uo, Yo, gain)[1]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "'gabriel'", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.11" + }, + "orig_nbformat": 4, + "vscode": { + "interpreter": { + "hash": "e03fe37868962894ce69ba1512be75d7d9445f7474f41c85c2a9ae3e524aa256" + } + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/sysidentpy/multiobjective_parameter_estimation/__init__.py b/sysidentpy/multiobjective_parameter_estimation/__init__.py new file mode 100644 index 00000000..6c5de613 --- /dev/null +++ b/sysidentpy/multiobjective_parameter_estimation/__init__.py @@ -0,0 +1,7 @@ +# Authors: +# Gabriel Bueno Leandro +# Samir Angelo Milani Martins +# Wilson Rocha Lacerda Junior +# License: BSD 3 clause + +from .estimators import AILS diff --git a/sysidentpy/multiobjective_parameter_estimation/estimators.py b/sysidentpy/multiobjective_parameter_estimation/estimators.py new file mode 100644 index 00000000..5b579e1b --- /dev/null +++ b/sysidentpy/multiobjective_parameter_estimation/estimators.py @@ -0,0 +1,497 @@ +""" Affine Information Least Squares for NARMAX models""" + +from typing import Tuple, List + +import numpy as np + +from sysidentpy.basis_function import Polynomial +from sysidentpy.narmax_base import InformationMatrix, RegressorDictionary + + +class AILS: + """Affine Information Least Squares (AILS) for NARMAX Parameter Estimation. + + AILS is a non-iterative multiobjective Least Squares technique used for finding + Pareto-set solutions in NARMAX (Nonlinear AutoRegressive Moving Average with + eXogenous inputs) model parameter estimation. This method is suitable for + linear-in-the-parameter model structures. + + Two types of auxiliary information can be incorporated: static function and + steady-state gain. + + Parameters + ---------- + static_gain : bool, default=True + Flag indicating the presence of data related to steady-state gain. + static_function : bool, default=True + Flag indicating the presence of data concerning static function. + final_model : ndarray, default=[[0], [0]] + Model code representation. + + References + ---------- + 1. Nepomuceno, E. G., Takahashi, R. H. C., & Aguirre, L. A. (2007). + "Multiobjective parameter estimation for nonlinear systems: Affine information and + least-squares formulation." + International Journal of Control, 80, 863-871. + """ + + def __init__( + self, + static_gain: bool = True, + static_function: bool = True, + final_model: np.ndarray = np.zeros((1, 1)), + normalize: bool = True, + ): + self.n_inputs = np.max(final_model // 1000) - 1 + self.degree = np.shape(final_model)[1] + self.max_lag = 1 + self.final_model = final_model + self.static_gain = static_gain + self.static_function = static_function + self.normalize = normalize + + def get_term_clustering(self, qit: np.ndarray) -> np.ndarray: + """ + Get the term clustering of the model. + + This function takes a matrix `qit` and compute the term clustering based + on their values. It calculates the number of occurrences of each value + for each row in the matrix. + + Parameters + ---------- + qit : ndarray + Input matrix containing terms clustering to be sorted. + + Returns + ------- + N_aux : ndarray + A new matrix with rows representing the number of occurrences of each value + for each row in the input matrix `qit`. The columns correspond to different + values. + + Examples + -------- + >>> qit = np.array([[1, 2, 2], + ... [1, 3, 1], + ... [2, 2, 3]]) + >>> result = get_term_clustering(qit) + >>> print(result) + [[1. 2. 0. 0.] + [2. 0. 1. 0.] + [0. 2. 1. 0.]] + + Notes + ----- + The function calculates the number of occurrences of each value (from 1 to + the maximum value in the input matrix `qit`) for each row and returns a matrix + where rows represent rows of the input matrix `qit`, and columns represent + different values. + + """ + max_value = int(np.max(qit)) + counts_matrix = np.zeros((qit.shape[0], max_value)) + + for k in range(1, max_value + 1): + counts_matrix[:, k - 1] = np.sum(qit == k, axis=1) + + return counts_matrix.astype(int) + + def build_linear_mapping(self): + """ + Assemble the linear mapping matrix R using the regressor-space method. + + This function constructs the linear mapping matrix R, which plays a key role in + mapping the parameter vector to the cluster coefficients. It also generates a + row matrix qit that assists in locating terms within the linear mapping matrix. + This qit matrix is later used in creating the static regressor matrix (Q). + + Returns + ------- + R : ndarray of int + A constant matrix of ones and zeros that maps the parameter vector to + cluster coefficients. + qit : ndarray of int + A row matrix that helps locate terms within the linear mapping matrix R and + is used in the creation of the static regressor matrix (Q). + + Notes + ----- + The linear mapping matrix R is constructed using the regressor-space method. + It plays a crucial role in the parameter estimation process, facilitating the + mapping of parameter values to cluster coefficients. The qit matrix aids in + term localization within the linear mapping matrix R and is subsequently used + to build the static regressor matrix (Q). + + """ + xlag = [1] * self.n_inputs + + object_qit = RegressorDictionary(xlag=xlag, ylag=[1]) + # Given xlag and ylag equal to 1, there is no repetition of terms, which is + # ideal for building qit. + qit = object_qit.regressor_space(n_inputs=self.n_inputs) // 1000 + model = self.final_model // 1000 + R = np.all(qit[:, None, :] == model, axis=2).astype(int) + # Find rows with all zeros in R (sum of row elements is 0) + null_rows = list(np.where(np.sum(R, axis=1) == 0)[0]) + + R = np.delete(R, null_rows, axis=0) + qit = np.delete(qit, null_rows, axis=0) + return R, self.get_term_clustering(qit) + + def build_static_function_information( + self, X_static: np.ndarray, y_static: np.ndarray + ) -> Tuple[np.ndarray, np.ndarray, np.ndarray]: + """ + Construct a matrix of static regressors for a NARMAX model. + + Parameters + ---------- + y_static : array-like, shape (n_samples_static_function,) + Output of the static function. + X_static : array-like, shape (n_samples_static_function,) + Static function input. + + Returns + ------- + Q_dot_R : ndarray of floats, shape (n_samples_static_function, n_parameters) + The result of multiplying the matrix of static regressors (Q) with the + linear mapping matrix (R), where n_parameters is the number of model + parameters. + static_covariance: ndarray of floats, shape (n_parameters, n_parameters) + The covariance QR'QR + static_response: ndarray of floats, shape (n_parameters,) + The response QR'y + + Notes + ----- + This function constructs a matrix of static regressors (Q) based on the provided + static function outputs (y_static) and inputs (X_static). The linear mapping + matrix (R) should be precomputed before calling this function. The result + Q_dot_R represents the static regressors for the NARMAX model. + + """ + R, qit = self.build_linear_mapping() + Q = y_static ** qit[:, 0] + for k in range(self.n_inputs): + Q *= X_static ** qit[:, 1 + k] + + Q = Q.reshape(len(y_static), len(qit)) + + QR = Q.dot(R) + static_covariance = (QR.T).dot(QR) + static_response = (QR.T).dot(y_static) + return QR, static_covariance, static_response + + def build_static_gain_information( + self, X_static: np.ndarray, y_static: np.ndarray, gain: np.ndarray + ) -> Tuple[np.ndarray, np.ndarray, np.ndarray]: + """ + Construct a matrix of static regressors referring to the derivative (gain). + + Parameters + ---------- + y_static : array-like, shape (n_samples_static_function,) + Output of the static function. + X_static : array-like, shape (n_samples_static_function,) + Static function input. + gain : array-like, shape (n_samples_static_gain,) + Static gain input. + + Returns + ------- + HR : ndarray of floats, shape (n_samples_static_function, n_parameters) + The matrix of static regressors for the derivative (gain) multiplied by the + linear mapping matrix R. + gain_covariance : ndarray of floats, shape (n_parameters, n_parameters) + The covariance matrix (HR'HR) for the gain-related regressors. + gain_response : ndarray of floats, shape (n_parameters,) + The response vector (HR'y) for the gain-related regressors. + + Notes + ----- + This function constructs a matrix of static regressors (G+H) for the derivative + (gain) based on the provided static function outputs (y_static), inputs + (X_static), and gain values. The linear mapping matrix (R) should be + precomputed before calling this function. + + """ + R, qit = self.build_linear_mapping() + H = np.zeros((len(y_static), len(qit))) + G = np.zeros((len(y_static), len(qit))) + for i in range(0, len(y_static)): + for j in range(1, len(qit)): + if y_static[i, 0] == 0: + if (qit[j, 0]) == 1: + H[i, j] = gain[i] + else: + H[i, j] = 0 + else: + H[i, j] = gain[i] * qit[j, 0] * y_static[i, 0] ** (qit[j, 0] - 1) + for k in range(0, self.n_inputs): + if X_static[i, k] == 0: + if (qit[j, 1 + k]) == 1: + G[i, j] = 1 + else: + G[i, j] = 0 + else: + G[i, j] = qit[j, 1 + k] * X_static[i, k] ** (qit[j, 1 + k] - 1) + + HR = (G + H).dot(R) + gain_covariance = (HR.T).dot(HR) + gain_response = (HR.T).dot(gain) + return HR, gain_covariance, gain_response + + def get_cost_function( + self, y: np.ndarray, psi: np.ndarray, theta: np.ndarray + ) -> np.ndarray: + """ + Calculate the cost function based on residuals. + + Parameters + ---------- + y : ndarray of floats + The target data used in the identification process. + psi : ndarray of floats, shape (n_samples, n_parameters) + The matrix of regressors. + theta : ndarray of floats + The parameter vector. + + Returns + ------- + cost_function : float + The calculated cost function value. + + Notes + ----- + This method computes the cost function value based on the residuals between + the target data (y) and the predicted values using the regressors (dynamic + and static) and parameter vector (theta). It quantifies the error in the + model's predictions. + + """ + residuals = y - psi.dot(theta) + return residuals.T.dot(residuals) + + def build_system_data( + self, + y: np.ndarray, + static_gain: np.ndarray, + static_function: np.ndarray, + ) -> List[np.ndarray]: + """ + Construct a list of output data components for the NARMAX system. + + Parameters + ---------- + y : ndarray of floats + The target data used in the identification process. + static_gain : ndarray of floats + Static gain output data. + static_function : ndarray of floats + Static function output data. + + Returns + ------- + system_data : list of ndarrays + A list containing data components, including the target data (y), + static gain data (if present), and static function data (if present). + + Notes + ----- + This method constructs a list of data components that are used in the NARMAX + system identification process. The components may include the target data (y), + static gain data (if enabled), and static function data (if enabled). + + """ + if not self.static_gain: + return [y] + [static_function] + + if not self.static_function: + return [y] + [static_gain] + + return [y] + [static_gain] + [static_function] + + def build_affine_data( + self, psi: np.ndarray, HR: np.ndarray, QR: np.ndarray + ) -> List[np.ndarray]: + """ + Construct a list of affine data components for NARMAX modeling. + + Parameters + ---------- + psi : ndarray of floats, shape (n_samples, n_parameters) + The matrix of dynamic regressors. + HR : ndarray of floats, shape (n_samples_static_gain, n_parameters) + The matrix of static gain regressors. + QR : ndarray of floats, shape (n_samples_static_function, n_parameters) + The matrix of static function regressors. + + Returns + ------- + affine_data : list of ndarrays + A list containing affine data components, including the matrix of static + regressors (psi), static gain regressors (if present), and static function + regressors (if present). + + Notes + ----- + This method constructs a list of affine data components used in the NARMAX + modeling process. The components may include the matrix of static regressors + (psi), static gain regressors (if enabled), and static function regressors + (if enabled). + + """ + if not self.static_gain: + return [psi] + [QR] + + if not self.static_function: + return [psi] + [HR] + + return [psi] + [HR] + [QR] + + def build_psi(self, X: np.ndarray, y: np.ndarray) -> np.ndarray: + """ + Build the matrix of dynamic regressor for NARMAX modeling. + + Parameters + ---------- + X : ndarray of floats + The input data to be used in the training process. + y : ndarray of floats + The output data to be used in the training process. + + Returns + ------- + psi : ndarray of floats, shape (n_samples, n_parameters) + The matrix of dynamic regressors. + + """ + psi_builder = RegressorDictionary() + xlag_code = psi_builder._list_input_regressor_code(self.final_model) + ylag_code = psi_builder._list_output_regressor_code(self.final_model) + xlag = psi_builder._get_lag_from_regressor_code(xlag_code) + ylag = psi_builder._get_lag_from_regressor_code(ylag_code) + self.max_lag = psi_builder._get_max_lag_from_model_code(self.final_model) + if self.n_inputs != 1: + xlag = self.n_inputs * [list(range(1, self.max_lag + 1))] + + psi_builder.xlag = xlag + psi_builder.ylag = ylag + regressor_code = psi_builder.regressor_space(self.n_inputs) + pivv = psi_builder._get_index_from_regressor_code( + regressor_code, self.final_model + ) + self.final_model = regressor_code[pivv] + + lagged_data = InformationMatrix(xlag=xlag, ylag=ylag).build_input_output_matrix( + X=X, y=y + ) + + psi = Polynomial(degree=self.degree).fit( + lagged_data, max_lag=self.max_lag, predefined_regressors=pivv + ) + return psi + + def estimate( + self, + y_static: np.ndarray = np.zeros(1), + X_static: np.ndarray = np.zeros(1), + gain: np.ndarray = np.zeros(1), + y: np.ndarray = np.zeros(1), + X: np.ndarray = np.zeros((1, 1)), + weighing_matrix: np.ndarray = np.zeros((1, 1)), + ) -> Tuple[np.ndarray, np.ndarray, np.ndarray, np.ndarray, np.ndarray, np.int64]: + """Calculation of parameters via multi-objective techniques. + + Parameters + ---------- + y_static : array-like of shape = n_samples_static_function, default = ([0]) + Output of static function. + X_static : array-like of shape = n_samples_static_function, default = ([0]) + Static function input. + gain : array-like of shape = n_samples_static_gain, default = ([0]) + Static gain input. + y : array-like of shape = n_samples, default = ([0]) + The target data used in the identification process. + psi : ndarray of floats, default = ([[0],[0]]) + Matrix of static regressors. + + Returns + ------- + J : ndarray + Matrix referring to the objectives. + euclidean_norm : ndarray + Matrix of the Euclidean norm. + theta : ndarray + Matrix with parameters for each weight. + HR : ndarray + H matrix multiplied by R. + QR : ndarray + Q matrix multiplied by R. + position : ndarray, default = ([[0],[0]]) + Position of the best theta set. + """ + psi = self.build_psi(X, y) + y = y[self.max_lag :] + HR, QR = np.zeros((1, 1)), np.zeros((1, 1)) + n_parameters = weighing_matrix.shape[1] + num_objectives = self.static_function + self.static_gain + 1 + euclidean_norm = np.zeros(n_parameters) + theta = np.zeros((n_parameters, self.final_model.shape[0])) + dynamic_covariance = psi.T.dot(psi) + dynamic_response = psi.T.dot(y) + + if self.static_function: + QR, static_covariance, static_response = ( + self.build_static_function_information(X_static, y_static) + ) + if self.static_gain: + HR, gain_covariance, gain_response = self.build_static_gain_information( + X_static, y_static, gain + ) + J = np.zeros((num_objectives, n_parameters)) + system_data = self.build_system_data(y, gain, y_static) + affine_information_data = self.build_affine_data(psi, HR, QR) + for i in range(n_parameters): + theta1 = weighing_matrix[0, i] * dynamic_covariance + theta2 = weighing_matrix[0, i] * dynamic_response + + w = 1 + if self.static_function: + theta1 += weighing_matrix[w, i] * static_covariance + theta2 += weighing_matrix[w, i] * static_response.reshape(-1, 1) + w += 1 + + if self.static_gain: + theta1 += weighing_matrix[w, i] * gain_covariance + theta2 += weighing_matrix[w, i] * gain_response.reshape(-1, 1) + w += 1 + + tmp_theta = np.linalg.lstsq(theta1, theta2, rcond=None)[0] + theta[i, :] = tmp_theta.T + + for j in range(num_objectives): + residuals = self.get_cost_function( + system_data[j], affine_information_data[j], tmp_theta + ) + J[j, i] = residuals + + euclidean_norm[i] = np.linalg.norm(J[:, i]) + + if self.normalize is True: + J /= np.max(J, axis=1)[:, np.newaxis] + euclidean_norm /= np.max(euclidean_norm) + + euclidean_norm = euclidean_norm / np.max(euclidean_norm) + + position = np.argmin(euclidean_norm) + return ( + J, + euclidean_norm, + theta, + HR, + QR, + position, + ) diff --git a/sysidentpy/multiobjective_parameter_estimation/tests/__init__.py b/sysidentpy/multiobjective_parameter_estimation/tests/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/sysidentpy/multiobjective_parameter_estimation/tests/test_mo_estimators.py b/sysidentpy/multiobjective_parameter_estimation/tests/test_mo_estimators.py new file mode 100644 index 00000000..851ca550 --- /dev/null +++ b/sysidentpy/multiobjective_parameter_estimation/tests/test_mo_estimators.py @@ -0,0 +1,333 @@ +""" Tests for AILS methods""" + +import numpy as np +from sysidentpy.multiobjective_parameter_estimation.estimators import AILS +from sysidentpy.utils.narmax_tools import set_weights +from numpy.testing import assert_array_equal, assert_almost_equal, assert_allclose + + +df_train = np.genfromtxt( + "examples/datasets/buck_id.csv", delimiter=",", skip_header=True +) +df_valid = np.genfromtxt( + "examples/datasets/buck_valid.csv", delimiter=",", skip_header=True +) + +Vd = 24 +Uo = np.linspace(0, 4, 50) +Yo = (4 - Uo) * Vd / 3 +Uo = Uo.reshape(-1, 1) +Yo = Yo.reshape(-1, 1) + +gain = -8 * np.ones(len(Uo)).reshape(-1, 1) +x_train = df_train[:, 1].reshape(-1, 1) +y_train = df_train[:, 2].reshape(-1, 1) +x_valid = df_valid[:, 1].reshape(-1, 1) +y_valid = df_valid[:, 2].reshape(-1, 1) + +w = set_weights(static_function=True, static_gain=True) +final_model = np.array( + [ + [0, 0], + [1001, 0], + [1002, 0], + [2001, 0], + [1001, 1001], + [1002, 1001], + [2001, 1001], + [1002, 1002], + ] +) + +final_model = np.array( + [ + [1001, 0], + [1002, 0], + [2001, 1001], + [0, 0], + [1001, 1001], + [2001, 0], + [1002, 1001], + [1002, 1002], + ] +) + + +def test_default_values(): + default = { + "static_gain": True, + "static_function": True, + "final_model": np.zeros((1, 1)), + "normalize": True, + } + model = AILS() + model_values = [ + model.static_gain, + model.static_function, + model.final_model, + model.normalize, + ] + assert list(default.values()) == model_values + + +def test_get_term_clustering(): + qit = np.array([[0, 0], [1, 0], [2, 0], [1, 1], [2, 1]]) + + expected_result = np.array(np.array([[0, 0], [1, 0], [0, 1], [2, 0], [1, 1]])) + estimator = AILS() + result = estimator.get_term_clustering(qit) + assert_array_equal(result, expected_result) + + +def test_build_linear_mapping(): + estimator = AILS(final_model=final_model) + R, qit = estimator.build_linear_mapping() + expected_result = np.array([[0, 0], [1, 0], [0, 1], [2, 0], [1, 1]]) + assert_array_equal(expected_result, qit) + assert isinstance(R, np.ndarray) + assert isinstance(qit, np.ndarray) + assert R.shape == (5, 8) + assert qit.shape == (5, 2) + assert R.dtype == int + assert qit.dtype == int + + +def test_build_static_function_information(): + mo_estimator = AILS(final_model=final_model) + QR, static_covariance, static_response = ( + mo_estimator.build_static_function_information(Uo, Yo) + ) + # those values were taken from matlab implementation to compare + # with this scenario + static_covariance_mat = np.array( + [ + [ + 1.72408163e04, + 1.72408163e04, + 1.67183673e04, + 8.00000000e02, + 4.17959184e05, + 1.04489796e03, + 4.17959184e05, + 4.17959184e05, + ], + [ + 1.72408163e04, + 1.72408163e04, + 1.67183673e04, + 8.00000000e02, + 4.17959184e05, + 1.04489796e03, + 4.17959184e05, + 4.17959184e05, + ], + [ + 1.67183673e04, + 1.67183673e04, + 2.67605287e04, + 1.04489796e03, + 3.20903526e05, + 2.08979592e03, + 3.20903526e05, + 3.20903526e05, + ], + [ + 8.00000000e02, + 8.00000000e02, + 1.04489796e03, + 5.00000000e01, + 1.72408163e04, + 1.00000000e02, + 1.72408163e04, + 1.72408163e04, + ], + [ + 4.17959184e05, + 4.17959184e05, + 3.20903526e05, + 1.72408163e04, + 1.08074657e07, + 1.67183673e04, + 1.08074657e07, + 1.08074657e07, + ], + [ + 1.04489796e03, + 1.04489796e03, + 2.08979592e03, + 1.00000000e02, + 1.67183673e04, + 2.69387755e02, + 1.67183673e04, + 1.67183673e04, + ], + [ + 4.17959184e05, + 4.17959184e05, + 3.20903526e05, + 1.72408163e04, + 1.08074657e07, + 1.67183673e04, + 1.08074657e07, + 1.08074657e07, + ], + [ + 4.17959184e05, + 4.17959184e05, + 3.20903526e05, + 1.72408163e04, + 1.08074657e07, + 1.67183673e04, + 1.08074657e07, + 1.08074657e07, + ], + ] + ) + static_response_mat = np.array( + [ + [17240.81632653], + [17240.81632653], + [16718.36734694], + [800.0], + [417959.18367347], + [1044.89795918], + [417959.18367347], + [417959.18367347], + ] + ) + assert_allclose(static_covariance_mat, static_covariance) + assert_allclose(static_response_mat, static_response) + assert_almost_equal(QR.mean(), 136.2933673469388) + assert QR.shape == (50, 8) + + +def test_build_static_gain_information(): + mo_estimator = AILS(final_model=final_model) + HR, gain_covariance, gain_response = mo_estimator.build_static_gain_information( + Uo, Yo, gain + ) + # those values were taken from matlab implementation to compare + # with this scenario + gain_covariance_mat = np.array( + [ + [ + 3.20000000e03, + 3.20000000e03, + 2.80000000e03, + 0.00000000e00, + 1.02400000e05, + -4.00000000e02, + 1.02400000e05, + 1.02400000e05, + ], + [ + 3.20000000e03, + 3.20000000e03, + 2.80000000e03, + 0.00000000e00, + 1.02400000e05, + -4.00000000e02, + 1.02400000e05, + 1.02400000e05, + ], + [ + 2.80000000e03, + 2.80000000e03, + 2.45000000e03, + 0.00000000e00, + 8.96000000e04, + -3.50000000e02, + 8.96000000e04, + 8.96000000e04, + ], + [ + 0.00000000e00, + 0.00000000e00, + 0.00000000e00, + 0.00000000e00, + 0.00000000e00, + 0.00000000e00, + 0.00000000e00, + 0.00000000e00, + ], + [ + 1.02400000e05, + 1.02400000e05, + 8.96000000e04, + 0.00000000e00, + 4.41364898e06, + -1.28000000e04, + 4.41364898e06, + 4.41364898e06, + ], + [ + -4.00000000e02, + -4.00000000e02, + -3.50000000e02, + 0.00000000e00, + -1.28000000e04, + 5.00000000e01, + -1.28000000e04, + -1.28000000e04, + ], + [ + 1.02400000e05, + 1.02400000e05, + 8.96000000e04, + 0.00000000e00, + 4.41364898e06, + -1.28000000e04, + 4.41364898e06, + 4.41364898e06, + ], + [ + 1.02400000e05, + 1.02400000e05, + 8.96000000e04, + 0.00000000e00, + 4.41364898e06, + -1.28000000e04, + 4.41364898e06, + 4.41364898e06, + ], + ] + ) + gain_response_mat = np.array( + [ + [3200.0], + [3200.0], + [2800.0], + [0.0], + [102400.0], + [-400.0], + [102400.0], + [102400.0], + ] + ) + assert_allclose(gain_covariance_mat, gain_covariance) + assert_allclose(gain_response_mat, gain_response) + assert_almost_equal(HR.mean(), -98.75) + assert HR.shape == (50, 8) + + +def test_estimate(): + mo_estimator = AILS(final_model=final_model) + J, E, theta, _, _, position = mo_estimator.estimate( + y=y_train, gain=gain, y_static=Yo, X_static=Uo, X=x_train, weighing_matrix=w + ) + expected_theta = np.array( + [ + [1.54048245], + [0.29686668], + [0.64693309], + [-0.41302211], + [0.27670633], + [-0.53473868], + [0.00406244], + [0.25831577], + ] + ) + assert_allclose(expected_theta, theta[position, :].reshape(-1, 1), rtol=1e-05) + assert J.shape == (3, 2295) + assert E.shape == (2295,) + assert position == 1065 diff --git a/sysidentpy/utils/narmax_tools.py b/sysidentpy/utils/narmax_tools.py index e1772ae5..2f3f5665 100644 --- a/sysidentpy/utils/narmax_tools.py +++ b/sysidentpy/utils/narmax_tools.py @@ -1,8 +1,10 @@ -from ..narmax_base import RegressorDictionary -from ._check_arrays import _num_features +""" Utils methods for NARMAX modeling""" import numpy as np +from ..narmax_base import RegressorDictionary +from ._check_arrays import _num_features + def regressor_code( *, @@ -18,7 +20,7 @@ def regressor_code( else: n_inputs = 1 # only used to create the regressor space base - regressor_code = RegressorDictionary( + encoding = RegressorDictionary( xlag=xlag, ylag=ylag, model_type=model_type, basis_function=basis_function ).regressor_space(n_inputs) @@ -26,20 +28,62 @@ def regressor_code( if basis_name != "Polynomial" and basis_function.ensemble: repetition = basis_function.n * 2 basis_code = np.sort( - np.tile(regressor_code[1:, :], (repetition, 1)), + np.tile(encoding[1:, :], (repetition, 1)), axis=0, ) - regressor_code = np.concatenate([regressor_code[1:], basis_code]) + encoding = np.concatenate([encoding[1:], basis_code]) elif basis_name != "Polynomial" and basis_function.ensemble is False: repetition = basis_function.n * 2 - regressor_code = np.sort( - np.tile(regressor_code[1:, :], (repetition, 1)), + encoding = np.sort( + np.tile(encoding[1:, :], (repetition, 1)), axis=0, ) if basis_name == "Polynomial" and model_representation == "neural_network": - return regressor_code[1:] + return encoding[1:] elif basis_name == "Polynomial" and model_representation is None: - return regressor_code + return encoding else: - return regressor_code + return encoding + + +def set_weights( + *, + static_function: bool = True, + static_gain: bool = True, + start: float = -0.01, + stop: float = -5, + num: int = 50, + base: float = 2.71, +) -> np.ndarray: + """ + Set log-spaced weights assigned to each objective in the multi-objective + optimization. + + Returns + ------- + weights : ndarray of floats + An array containing the weights for each objective. + + Notes + ----- + This method calculates the weights to be assigned to different objectives in + multi-objective optimization. The choice of weights depends on the presence + of static function and static gain data. If both are present, a set of weights + for dynamic, gain, and static objectives is computed. If either static function + or static gain is absent, a simplified set of weights is generated. + + """ + w1 = np.logspace(start=start, stop=stop, num=num, base=base) + if static_function is False or static_gain is False: + w2 = 1 - w1 + return np.vstack([w1, w2]) + + w2 = w1[::-1] + w1_grid, w2_grid = np.meshgrid(w1, w2) + w3_grid = 1 - (w1_grid + w2_grid) + mask = w1_grid + w2_grid <= 1 + dynamic_weight = np.flip(w1_grid[mask]) + gain_weight = np.flip(w2_grid[mask]) + static_weight = np.flip(w3_grid[mask]) + return np.vstack([dynamic_weight, gain_weight, static_weight])