4
我正在嘗試非線性灰盒模型識別,並且使用下面的代碼。我對輸入矢量,輸出矢量和時間戳中的輸入進行了測量。非線性灰盒利用Matlab進行系統識別
input = output_data(2:3,:)';
output = output_data(4:5,:)';
time = output_data(1,:)';
data = iddata(output, input, [], 'SamplingInstants', time);
data.TimeUnit = 's';
%create model
Order = [2 2 4]; % Model orders [ny nu nx].cha
Parameters = [1; 1; 1; 1; 1; 0.1]; % Initial parameter vector.
InitialStates = [0; 0; 0; 0]; % Initial initial states.
nlgr_m = idnlgrey('vehicle_m', Order, Parameters, InitialStates);
setpar(nlgr_m, 'Fixed', {true true false false false false});
%Estimate the coefficients
sys = pem(data,nlgr_m, 'Display','Full', 'MaxIter', 20);
%get the parameters and the standard variation
[pvec,pvec_sd] = getpvec(sys)
我試圖使用模擬輸入/輸出與已知的系統參數和。但是,我從中得到的參數與它必須的參數非常不同。即使當我設置初始參數估計時,它也不會估計關閉參數。
我的時間戳是非均勻的,這意味着每兩次採樣之間的時間間隔不相同。
如果有人可以幫忙,我將不勝感激。