% Oeving 3
% Avansert reguleringsteknikk
% Oppgave 1a. Design av optimal P regulator for scalar prosess.

clear all
A=-0.1; B=1; x0=5;
Q=1; P=1;      % Vektmatriser/parametre

[K,R]=lqr(A,B,Q,P);  % Løser LQ optimalregulator problemet
G=-K;                % Regulatormatrise/konstant.

% Simulering av tilbakekoplet/lukket system.
dt=0.01;                % Skrittlengde.
t1=8;                   % slutt-tid, 0 <= t <= t1                   
N=ceil(tf/dt)+1;              % Antall sampler
             
X=zeros(N,1);           % Array for å holde/lagre tilstanden.
T=zeros(N,1);           % Array for å holde kontinuerlig tidsvariabel.

x=x0;                   % Initialverdi for tilstanden
t=0;                    % Starttidspunkt
for k=1:N
   X(k,:)=x';           % Lagrer tilstanden
   T(k,:)=t;            % Lagrer tidsvariabel
   
   u=G*x;               % Regulator
   x=x+dt*(A*x+B*u);    % Oppdaterer prosessen. Integrerer med (eksplisitt) Euler.
   t=t+dt;              % Oppdaterer tidsvariabel   
end

plot(T,X), grid
title('Oeving 3a')
ylabel('x'), xlabel('Kontinuerlig tid')