summaryrefslogtreecommitdiff
path: root/2048/CH13/EX13.7/lqg_simple.sci
diff options
context:
space:
mode:
Diffstat (limited to '2048/CH13/EX13.7/lqg_simple.sci')
-rwxr-xr-x2048/CH13/EX13.7/lqg_simple.sci16
1 files changed, 16 insertions, 0 deletions
diff --git a/2048/CH13/EX13.7/lqg_simple.sci b/2048/CH13/EX13.7/lqg_simple.sci
new file mode 100755
index 000000000..fe72ef752
--- /dev/null
+++ b/2048/CH13/EX13.7/lqg_simple.sci
@@ -0,0 +1,16 @@
+// Simplified LQG control design, obtained by the solution of Eq. 13.53 on page 476.
+// 13.7
+
+// LQG controller simple design by method of Ahlen and Sternad
+// function [R1,dR1,S,dS] = ...
+// lqg_simple(A,dA,B,dB,C,dC,k,rho,V,dV,W,dW,F,dF)
+
+function [R1,dR1,S,dS] = ...
+lqg_simple(A,dA,B,dB,C,dC,k,rho,V,dV,W,dW,F,dF)
+[r,b,db] = specfac(A,dA,B,dB,rho,V,dV,W,dW,F,dF);
+[D,dD] = polmul(A,dA,F,dF);
+[zk,dzk] = zpowk(k);
+[N,dN] = polmul(zk,dzk,B,dB);
+[RHS,dRHS] = polmul(C,dC,b,db);
+[S,dS,R1,dR1] = xdync(N,dN,D,dD,RHS,dRHS);
+endfunction;