function [name,T,y,u,ys,us,ysu,usu] = ppp_ex20 (ReturnName)
## usage: ppp_ex20 ()
##
## PPP example - 2nd-order 2i2o system
## $Id$
## Example name
name = "2nd-order 2i2o system with 1st-order basis"
if nargin>0
return
endif
## System
A = [-2 -1
1 0];
B = [[1;0], [1;2]];
C = [ [0,1]; [2,1]];
D = zeros(2,2);
# sys = ss2sys(A,B,C,D);
[n_x,n_u,n_y] = abcddim(A,B,C,D);
# ## Display it
# for j = 1:n_u
# for i = 1:n_y
# sysout(sysprune(sys,i,j),"tf")
# step(sysprune(sys,i,j),1,5);
# endfor
# endfor
## Setpoint
A_w = 0;
## Controller
##Optimisation horizon
t =[4:0.01:5];
## A_u
pole = [3];
poles = 1;
A_u = ppp_aug(butterworth_matrix(poles,pole),0);
Q = ones(n_y,1);;
## Setpoints
W = [1:n_y]';
## Design and plot
[ol_poles,cl_poles,ol_zeros,cl_zeros,k_x,k_w,K_x,K_w,cond_uu] = ppp_lin_plot (A,B,C,D,A_u,A_w,t,Q,W);
format bank
cl_poles
A_c = A-B*k_x; # Closed-loop A
A_cw = [A_c B*k_w*W
zeros(1,n_x+1)]
log_cond_uu = log10(cond_uu)
# K_xwe = ppp_open2closed(A_u,A_cwe,[k_xe -k_we*W]); # Exact Kx
# K_xwc = ppp_open2closed(A_u,A_cw,[k_x -k_w*W]); # Computed Kx
# Exact_K_xw = K_xwe
PPP_K_xw = [K_x -K_w*W]
# Comp_K_xw = K_xwc
# Error = Approx_K_xw - Comp_K_xw
endfunction