hilomotDemo6 Demo 6: Dynamic process of second order with 1 input and 1 output.
HiLoMoT - Nonlinear System Identification Toolbox
Tobias Ebert, 11-May-2012
Institute of Mechanics & Automatic Control, University of Siegen, Germany
Copyright (c) 2012 by Prof. Dr.-Ing. Oliver Nelles
LMN = hilomot;
load hammersteinT.mat
LMN.input = data(:,1);
LMN.output = data(:,2);
clear data
LMN.xInputDelay = cell(1,1);
LMN.xOutputDelay = cell(1,1);
LMN.zInputDelay = cell(1,1);
LMN.zOutputDelay = cell(1,1);
LMN.xInputDelay{1} = [1 2];
LMN.xOutputDelay{1} = [1 2];
LMN.zInputDelay{1} = [1 2];
LMN.zOutputDelay{1} = [1 2];
LMN.smoothness = 1;
LMN.maxNumberOfLM = 10;
LMN.minError = 0;
LMN.kStepPrediction = inf;
LMN.history.displayMode = true;
LMN.oblique = 1;
LMN = LMN.train;
load hammersteinG.mat
uG = data(:,1);
yG = data(:,2);
clear data
yGModel = calculateModelOutput(LMN, uG, yG);
JG = calcGlobalLossFunction(LMN ,yG, yGModel);
figure
LMN.plotModel
Initial net has 1 local model(s): J = 0.216676
1. Iteration. Number of local models = 1. Checking for split of model 1 ...
Testing split in dimension 1: J = 0.109344
Testing split in dimension 2: J = 0.110596
Testing split in dimension 3: J = 0.177672
Testing split in dimension 4: J = 0.182042
Axes-oblique splitting: J = 0.109177
-> SPLITTING RESULT: J = 0.109177
2. Iteration. Number of local models = 2. Checking for split of model 2 ...
Testing split in dimension 1: J = 0.087291
Testing split in dimension 2: J = 0.084441
Testing split in dimension 3: J = 0.094178
Testing split in dimension 4: J = 0.096472
Testing parent split: J = 0.087407
Axes-oblique splitting: J = 0.084440
-> SPLITTING RESULT: J = 0.084440
3. Iteration. Number of local models = 3. Checking for split of model 3 ...
Testing split in dimension 1: J = 0.036457
Testing split in dimension 2: J = 0.036830
Testing split in dimension 3: J = 0.057996
Testing split in dimension 4: J = 0.063525
Testing parent split: J = 0.036619
Axes-oblique splitting: J = 0.035462
-> SPLITTING RESULT: J = 0.035462
4. Iteration. Number of local models = 4. Checking for split of model 5 ...
Testing split in dimension 1: J = 0.023066
Testing split in dimension 2: J = 0.030361
Testing split in dimension 3: J = 0.029462
Testing split in dimension 4: J = 0.030009
Testing parent split: J = 0.030367
Axes-oblique splitting: J = 0.022969
-> SPLITTING RESULT: J = 0.022969
5. Iteration. Number of local models = 5. Checking for split of model 6 ...
Testing split in dimension 1: J = 0.015725
Testing split in dimension 2: J = 0.016090
Testing split in dimension 3: J = 0.018878
Testing split in dimension 4: J = 0.019527
Testing parent split: J = 0.015690
Axes-oblique splitting: J = 0.015664
-> SPLITTING RESULT: J = 0.015664
6. Iteration. Number of local models = 6. Checking for split of model 7 ...
Testing split in dimension 1: J = 0.013475
Testing split in dimension 2: J = 0.013052
Testing split in dimension 3: J = 0.015161
Testing split in dimension 4: J = 0.015213
Testing parent split: J = 0.013449
Axes-oblique splitting: J = 0.013046
-> SPLITTING RESULT: J = 0.013046
7. Iteration. Number of local models = 7. Checking for split of model 4 ...
Testing split in dimension 1: J = 0.012305
Testing split in dimension 2: J = 0.012481
Testing split in dimension 3: J = 0.012865
Testing split in dimension 4: J = 0.012940
Testing parent split: J = 0.012481
Axes-oblique splitting: J = 0.012305
-> SPLITTING RESULT: J = 0.012305
8. Iteration. Number of local models = 8. Checking for split of model 8 ...
Testing split in dimension 1: J = 0.011611
Testing split in dimension 2: J = 0.011149
Testing split in dimension 3: J = 0.010668
Testing split in dimension 4: J = 0.010843
Testing parent split: J = 0.011583
Axes-oblique splitting: J = 0.010636
-> SPLITTING RESULT: J = 0.010636
9. Iteration. Number of local models = 9. Checking for split of model 11 ...
Testing split in dimension 1: J = 0.009758
Testing split in dimension 2: J = 0.009010
Testing split in dimension 3: J = 0.009129
Testing split in dimension 4: J = 0.009091
Testing parent split: J = 0.009809
Axes-oblique splitting: J = 0.009010
-> SPLITTING RESULT: J = 0.009010
Maximum number of local models reached.
Final net has 10 local models and 86 parameters: J = 0.009010
Net 10 with 10 LMs and 86 parameters is suggested as the model with the best complexity trade-off.