k_5_о_с', 0);
set (hl, 'FontName', 'Courier');
grid on;
% -------------------------------------------------- ----------------------%
% Знаходження коефіцієнтів регулятора
disp ('Коефіцієнти регулятора: ')
K =-inv (R) * B '* P1
% -------------------------------------------------- ----------------------%
% -------------------------------------------------- ----------------------%
A_ = A + B * K;
% -------------------------------------------------- ----------------------%
% Знаходження фазових координат
X (:, 1) = X_0;
h = 0.01;
time_X (1) = 0;
for k = 1: N_str
X (:, k +1) = X (:, k) + h * A_ * X (:, k);
time_X (k +1) = time_X (k) + h;
end
X (:, k +1) = [];
time_X (k +1) = [];
% -------------------------------------------------- ----------------------%
% Знаходження управління
for k = 1: N_str
u (k) = K * X (:, k);
end
% -------------------------------------------------- ----------------------%
% Знаходження коефіцієнтів спостерігача
M_n = [C 'A' * C '(A ^ 2)' * C '(A ^ 3)' * C '(A ^ 4)' * C ']
rank_M_n = rank (M_n)
A_r = A_
disp ('Спектр матриці регулятора: ')
spektr_A_r = eig (A_r)
koeff = 1;
min_lyamda_A_r = min (real (spektr_A_r))
% lyamda = min_lyamda_A_r * koeff;
lyamda = -5; p> disp ('Спектр матриці спостерігача еталонний: ')
lyamda_A_n = [lyamda - koeff * 4; lyamda - koeff * 3; lyamda - koeff * 2; ...
lyamda - koeff; lyamda] '
В
syms k_n1 k_n2 k_n3 k_n4 k_n5 lyam
K_n = [k_n1; k_n2; k_n3; k_n4; k_n5];
В
Koeff_poly_n_etalon = poly (lyamda_A_n)
disp ('Характеристичний поліном спостерігача еталонний: ')
poly_n_etalon = poly2sym (Koeff_poly_n_etalon, lyam)
disp ('Характеристичний поліном спостерігача реальний: ')
poly_n_real = collect (expand (simplify (det (lyam * eye (poryadok) - (A - K_n * C)))), lyam)
raznost_poly = collect (poly_n_etalon-poly_n_real, lyam)
for i = 1: poryadok
Koeff_raznost_poly (i) = subs (diff (raznost_poly, poryadok-i, lyam)/factorial (poryadok-i), lyam, 0);
end
Koeff_raznost_poly
[Kn1 Kn2 Kn3 Kn4 Kn5] = solve (Koeff_raznost_poly (5), Koeff_raznost_poly (4), ...
Koeff_raznost_poly (3), Koeff_raznost_poly (2), Koeff_raznost_poly (1), ...
k_n1, k_n2, k_n3, k_n4, k_n5)
Kn = [Kn1; Kn2; Kn3; Kn4; Kn5];
Kn = vpa (Kn, 50)
% Перевірка
Proverka = solve (det (lyam * eye (poryadok) - (A-Kn * C)))
% -------------------------------------------------- ----------------------%
% ---------------------------------------------...