summaryrefslogtreecommitdiff
path: root/3432/CH7/EX7.25/Ex7_25.sce
blob: 0128a2fa0af9baeb70c211a97c1a7dd8efb4f85d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
//Example 7.25
// An estimator design for a simple pendulum

xdel(winsid())//close all graphics Windows
clear;
clc;
//------------------------------------------------------------------
// State space representation
w0=1;
F=[0 1; -w0^2 0];
G=[0 1]';
H=[1 0];
J=0;
n=sqrt(length(F));//order of the system
// Desired estimator poles
Pe=[-10*w0 -10*w0];
// Observer gain matrix for system 
Lt=ppol(F',H',Pe);
L=Lt';
disp(L,"L=" );
//------------------------------------------------------------------
//simulation for closed loop system
x0=[1 0]' //initial condition

//State feedback control law u=-Kx; (from Ex7_15)
K=[3*w0^2 4*w0];
//------------------------------------------------------------------
//Augmented plant and observer
Faug=[F-G*K, zeros(n,n); L*H, F-L*H];
Gaug=[0 0 0 0]';
Haug=[H -H];
Jaug=0;

sys_aug=syslin('c',Faug,Gaug,Haug,Jaug);
t=0:0.1:4;
u=zeros(1,length(t));
x0=[1 0 0 0]';
[x z]=csim(u,t,sys_aug,x0); //closed loop response
plot(t,z(1,:));
plot(t,z(2,:),'m');
plot(t,z(3,:),'b:');
plot(t,z(4,:),'m:');

//Title, labels and grid to the figure
exec .\fig_settings.sci; // custom script for setting figure properties
title(['Initial condition response of oscillator showing',...
'$\mathbf{x}$','and','$\hat{\mathbf{x}}$'],'fontsize',3)
xlabel('Time t (sec.)','fontsize',2)
ylabel('Amplitude','fontsize',2)
legend('$x_1$','$x_2$','$\hat{x}_1$','$\hat{x}_2$')
xset('font size',2)
//------------------------------------------------------------------