clear all; close all;
A = [0 1;-6 -5];
b = [0;1];
c = [1 0];
d = 0;
fbp = [-3; -3];
disp('求めるフィードバックゲイン');
f = acker(A,b,fbp)
Af = A - b * f
disp('閉ループ極')
eig(A - b * f)
t = 0:0.01:10;
x0 = [-1;0;0];
g1 = 0;
E1 = [Af b*g1;-c 0];
bE = [-b;0];
cE = eye(3);
dE = [0;0;0];
sys_servo1 = ss(E1, bE, cE, dE);
u_step = ones([1,length(t)]);
y1 = lsim(sys_servo1,u_step,t,x0);
figure(1)
plot(t,y1(:,1),t,y1(:,2));
xlim([0 10]);
ylim([-1.2 1.2]);
grid;
xlabel('time t[s]');
ylabel('state');
legend('x_1(t)','x_2(t)');
g2 = 1;
E2 = [Af b*g2;-c 0];
sys_servo2 = ss(E2, bE, cE, dE);
y2 = lsim(sys_servo2,u_step,t,x0);
figure(2)
plot(t,y2(:,1),t,y2(:,2));
xlim([0 10]);
ylim([-1.2 1.2]);
grid;
xlabel('time t[s]');
ylabel('state');
legend('x_1(t)','x_2(t)');
g3 = 5;
E3 = [Af b*g3;-c 0];
sys_servo3 = ss(E3, bE, cE, dE);
y3 = lsim(sys_servo3,u_step,t,x0);
figure(3)
plot(t,y3(:,1),t,y3(:,2));
xlim([0 10]);
ylim([-1.2 1.2]);
grid;
xlabel('time t[s]');
ylabel('state');
legend('x_1(t)','x_2(t)');
g4 = 1.3;
E4 = [Af b*g4;-c 0];
sys_servo4 = ss(E4, bE, cE, dE);
y4 = lsim(sys_servo4,u_step,t,x0);
figure(4)
plot(t,y4(:,1),t,y4(:,2));
xlim([0 10]);
ylim([-1.2 1.2]);
grid;
xlabel('time t[s]');
ylabel('state');
legend('x_1(t)','x_2(t)');
求めるフィードバックゲイン
f =
3 1
Af =
0 1
-9 -6
閉ループ極
ans =
-3.0000 + 0.0000i
-3.0000 - 0.0000i