From d7c9cf2da67101fdd9d7d99803f8a565744625c5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=A9r=C3=A9my=20MACEIRAS?= <jeremy.maceiras@idiap.ch>
Date: Fri, 13 May 2022 12:21:01 +0200
Subject: [PATCH] [matlab] Fixed a typo

---
 matlab/LQR_infHor.m | 27 ++++++++++-----------------
 1 file changed, 10 insertions(+), 17 deletions(-)

diff --git a/matlab/LQR_infHor.m b/matlab/LQR_infHor.m
index 4468647..baf67c5 100644
--- a/matlab/LQR_infHor.m
+++ b/matlab/LQR_infHor.m
@@ -25,20 +25,20 @@ function LQR_infHor
 param.nbData = 200; %Number of datapoints
 param.nbRepros = 4; %Number of reproductions
 
-param.param.nbVarPos = 2; %Dimension of position data (here: x1,x2)
+param.nbVarPos = 2; %Dimension of position data (here: x1,x2)
 param.nbDeriv = 2; %Number of static & dynamic features (D=2 for [x,dx])
-param.nbVar = param.param.nbVarPos * param.nbDeriv; %Dimension of state vector in the tangent space
+param.nbVar = param.nbVarPos * param.nbDeriv; %Dimension of state vector in the tangent space
 param.dt = 1E-2; %Time step duration
 param.rfactor = 4E-2;	%Control cost in LQR 
 
 %Control cost matrix
-R = eye(param.param.nbVarPos) * param.rfactor;
+R = eye(param.nbVarPos) * param.rfactor;
 
 %Target and desired covariance
-param.Mu = [randn(param.param.nbVarPos,1); zeros(param.param.nbVarPos*(param.nbDeriv-1),1)];
+param.Mu = [randn(param.nbVarPos,1); zeros(param.nbVarPos*(param.nbDeriv-1),1)];
 
-[Ar,~] = qr(randn(param.param.nbVarPos));
-xCov = Ar * diag(rand(param.param.nbVarPos,1)) * Ar' * 1E-1
+[Ar,~] = qr(randn(param.nbVarPos));
+xCov = Ar * diag(rand(param.nbVarPos,1)) * Ar' * 1E-1
 
 %% Discrete dynamical System settings 
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -50,25 +50,18 @@ B1d = zeros(param.nbDeriv,1);
 for i=1:param.nbDeriv
     B1d(param.nbDeriv-i+1) = param.dt^i * 1/factorial(i); %Discrete 1D
 end
-A = kron(A1d, eye(param.param.nbVarPos)); %Discrete nD
-B = kron(B1d, eye(param.param.nbVarPos)); %Discrete nD
+A = kron(A1d, eye(param.nbVarPos)); %Discrete nD
+B = kron(B1d, eye(param.nbVarPos)); %Discrete nD
 
 
 %% discrete LQR with infinite horizon
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-Q = blkdiag(inv(xCov), zeros(param.param.nbVarPos*(param.nbDeriv-1))); %Precision matrix
+Q = blkdiag(inv(xCov), zeros(param.nbVarPos*(param.nbDeriv-1))); %Precision matrix
 P = solveAlgebraicRiccati_eig_discrete(A, B*(R\B'), (Q+Q')/2);
 L = (B' * P * B + R) \ B' * P * A; %Feedback gain (discrete version)
 
-%Test ratio between kp and kv
-if param.nbDeriv>1
-    kp = eigs(L(:,1:param.param.nbVarPos));
-    kv = eigs(L(:,param.param.nbVarPos+1:end));
-    ratio = kv ./ (2 * kp.^.5)
-end
-
 for n=1:param.nbRepros
-    x = [ones(param.param.nbVarPos,1)+randn(param.param.nbVarPos,1)*5E-1; zeros(param.param.nbVarPos*(param.nbDeriv-1),1)];
+    x = [ones(param.nbVarPos,1)+randn(param.nbVarPos,1)*5E-1; zeros(param.nbVarPos*(param.nbDeriv-1),1)];
     for t=1:param.nbData		
         r(n).Data(:,t) = x; 
         u = L * (param.Mu - x); %Compute acceleration (with only feedback terms)
-- 
GitLab