pnlss 1 0 a polynomial nonlinear state space matlab
play

PNLSS 1.0 A polynomial nonlinear state-space Matlab toolbox Koen - PowerPoint PPT Presentation

PNLSS 1.0 A polynomial nonlinear state-space Matlab toolbox Koen Tiels Vrije Universiteit Brussel Applications 2/28 Wiener-Hammerstein benchmark 3/28 Goal: Capture nonlinear dynamic system behavior Error signal Input Output + System +


  1. PNLSS 1.0 A polynomial nonlinear state-space Matlab toolbox Koen Tiels Vrije Universiteit Brussel

  2. Applications 2/28

  3. Wiener-Hammerstein benchmark 3/28

  4. Goal: Capture nonlinear dynamic system behavior Error signal Input Output + System + – Modeled output Model 4/28

  5. Goal: Capture nonlinear dynamic system behavior Error signal Input Output + System + – Modeled output Model 5/28

  6. Goal: Capture nonlinear dynamic system behavior Error signal Input Output + System + – Modeled output Model 6/28

  7. Goal: Capture nonlinear dynamic system behavior Load Terminal Error profile voltage signal u ( t ) y meas ( t ) ǫ ( t ) + System + – Modeled terminal voltage y ( t ) Model 7/28

  8. Goal: Capture nonlinear dynamic system behavior Load Terminal Error profile voltage signal u ( t ) y meas ( t ) ǫ ( t ) + System + – Modeled terminal voltage y ( t ) PNLSS model 8/28

  9. Polynomial nonlinear state-space model (PNLSS) = x ( t + 1) x ( t ) + u ( t ) + ζ ( x ( t ) , u ( t )) A B E = y ( t ) x ( t ) + u ( t ) + η ( x ( t ) , u ( t )) C D F                                  linear state-space model polynomials in x and u 9/28

  10. Polynomial nonlinear state-space model (PNLSS) = x ( t + 1) x ( t ) + u ( t ) + ζ ( x ( t ) , u ( t )) A B E = y ( t ) x ( t ) + u ( t ) + η ( x ( t ) , u ( t )) C D F                                                               linear state-space model polynomials in x and u x 2   1 x 1 x 2     x 1 u    .  .   with e.g. ζ ( x , u ) = .     x 2 2 u     u 3    .  . . 10/28

  11. Identification of a PNLSS model = x ( t + 1) x ( t ) + u ( t ) + ζ ( x ( t ) , u ( t )) A B E = y ( t ) x ( t ) + u ( t ) + η ( x ( t ) , u ( t )) C D F                                                               linear state-space model polynomials in x and u  vec( A )  ǫ ( k , θ ) = Y ( k , θ ) − Y meas ( k ) vec( B )   N F   vec( C ) � ǫ H ( k , θ ) W ( k ) ǫ ( k , θ )   V WLS ( θ ) = θ =   vec( D )   k =1   vec( E )   ˆ θ = arg min V WLS vec( F ) θ 11/28

  12. Problem is nonlinear in the parameters Nonlinear optimization Starting values? V WLS ( θ ) θ 12/28

  13. Starting value: best linear approximation (BLA) = x ( t + 1) A BLA x ( t ) + B BLA u ( t ) + ζ ( x ( t ) , u ( t )) E = 0 y ( t ) = C BLA x ( t ) + D BLA u ( t ) + η ( x ( t ) , u ( t )) F = 0 Nonlinear optimization x ( t + 1) = x ( t ) + u ( t ) + ζ ( x ( t ) , u ( t )) A B E y ( t ) = x ( t ) u ( t ) η ( x ( t ) , u ( t )) + + C D F 13/28

  14. Collect data load(’WH EstimationExample.mat’) % Multisine data 4 40 : |U(k)| 2 0 u(t) (dB) (rad) 0 0 -40 -2 - : -80 -4 0 2 4 6 8 0 2 4 6 8 0 0.05 0.1 Freq. (Hz) # 10 4 Freq. (Hz) # 10 4 Time (s) 14/28

  15. Best linear approximation and distortion levels N = 4096; % Number of samples P = 2; % Number of periods R = 9; % Number of realizations m = 1; % Number of inputs p = 1; % Number of outputs lines = 2:787; % Excited frequency lines . . . % Reshape data U = fft(u); % N x m x R x P Y = fft(y); % N x p x R x P U = U(lines,:,:,:); % Input spectrum at excited frequencies Y = Y(lines,:,:,:); % Output spectrum at excited frequencies % BLA, total distortion, and noise distortion [G, covGtotal, covGnoise] = fCovarFrf(U,Y); 15/28

  16. Best linear approximation and distortion levels 0 BLA Total distortion -20 Noise distortion Amplitude (dB) -40 -60 -80 -100 -120 0 5000 10000 15000 Frequency (Hz) 16/28

  17. Linear state-space model nAll = 2:8; % Model orders maxr = 10; % Subspace dimensioning parameter maxIter = 100; % Max. nbr. of Levenberg-Marquardt iterations fs = 78125; % Sampling frequency freq = (lines-1)*fs/N; % Frequency vector forcestability = true; % Force stable model showfigs = true; % Show overview and best model for each order % Frequency domain subspace + nonlinear optimization % McKelvey et al., 1996; Pintelon, 2002 models = fLoopSubSpace(freq,G,covGtotal,nAll,maxr,. . . maxIter,forcestability,showfigs,fs); . . . % Select best model on last period of validation data [A,B,C,D] = models { 6 }{ : } ; % Select 6th-order model [A,B,C] = dbalreal(A,B,C); % Balanced realization 17/28

  18. 6th-order linear state-space model G 11 0 BLA (parametric) BLA (nonpar) -20 residual standard deviation Amplitude [dB] -40 -60 -80 -100 -120 0 5 10 15 Frequency [kHz] 18/28

  19. Starting value: best linear approximation (BLA) = x ( t + 1) A BLA x ( t ) + B BLA u ( t ) + ζ ( x ( t ) , u ( t )) E = 0 y ( t ) = C BLA x ( t ) + D BLA u ( t ) + η ( x ( t ) , u ( t )) F = 0 Nonlinear optimization x ( t + 1) = x ( t ) + u ( t ) + ζ ( x ( t ) , u ( t )) A B E y ( t ) = x ( t ) u ( t ) η ( x ( t ) , u ( t )) + + C D F 19/28

  20. Transient settings % Concatenate all data u = u(:); % N*P*R x m y = y(:); % N*P*R x p % Transient settings NTrans = N; % Add a period before each realization startReal = [1 4097 . . . 32769]; % Starting indices realizations T1 = [NTrans startReal]; % Transient setting periodic data T2 = 0; % No nonperiodic transient handling 20/28

  21. Linear model in PNLSS form = x ( t + 1) A BLA x ( t ) + B BLA u ( t ) + ζ ( x ( t ) , u ( t )) E = 0 y ( t ) = C BLA x ( t ) + D BLA u ( t ) + η ( x ( t ) , u ( t )) F = 0 % Settings nonlinear terms nx = [2 3]; % Nonlinear degrees in ζ ny = [2 3]; % Nonlinear degrees in η % Linear model in PNLSS form model init = fCreateNLSSmodel(A,B,C,D,nx,ny,T1,T2,0); % Set all monomials free for optimization model init.xactive = fSelectActive(’full’,n,m,n,nx); model init.yactive = fSelectActive(’full’,n,m,p,ny); 21/28

  22. Poor man’s stabilization method % Simulate validation data during estimation model init.u val = uval(:); % Set bound on modeled validation output model init.max out = 1000*max(abs(yval(:))); 22/28

  23. Nonlinear optimization % Settings Levenberg-Marquardt (LM) optimization nIter = 50; % Number of iterations W = []; % No (frequency) weighting lambda = 100; % Starting value LM damping factor % Nonlinear optimization [model,y mod,models] = fLMnlssWeighted(u,y,model init,. . . nIter,W,lambda); % Select the best model on the validation data . . . model = models(min i); 23/28

  24. Results on test data % Change transient setting model pnlss test = model; model pnlss test.T1 = [16384 1]; % Compute rms error on multisine test data e = rms(ytest - fFilterNLSS(model pnlss test,utest)); multisine swept sine linear 0.03817 0.02319 PNLSS 0.03817 0.02258 24/28

  25. Pros and cons of a PNLSS model = x ( t + 1) x ( t ) + u ( t ) + ζ ( x ( t ) , u ( t )) A B E = y ( t ) x ( t ) + u ( t ) + η ( x ( t ) , u ( t )) C D F                                                               linear state-space model polynomials in x and u � Flexibility X Number of parameters � Multiple input X Stability X multiple output Interpretability � X Initial estimates Extrapolation � X Software available Process noise 25/28

  26. What to expect in PNLSS 2.0? Object-oriented Modular components (initialization, cost, Jacobian, optimization) Beyond polynomials Structure specification/retrieval 26/28

  27. Success story: battery cell Lithium Ion Polymer Battery (EIG-ePLB-C020, Li(NiCoMn)) 3 . 65 V , 20 A h , AC impedance ( 1 kHz < 3 m Ω) Nonparametric distortion analysis 27/28 modified by courtesy of Rishi Relan

  28. Success story: battery cell 4 states up to third-degree nonlinearities Time domain Frequency domain 28/28 modified by courtesy of Rishi Relan

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend