clear; clc; close all;
% Задание 1
w1 = tf(7, [21 1]);
w2 = tf(2, [1 0]);
w3 = tf(4*[1 1], [10 1]);
w4 = tf(1, [16 4 1]);
w_raz = minreal((w1*w2 + w4) * w3);
w_zam = minreal(feedback(w_raz, 1));
w_raz.variable = 'p';
w_zam.variable = 'p';
disp(w_raz);
disp(w_zam);
[num_zam, den_zam] = tfdata(w_zam, 'v');
% Задание 2
d2 = [2 16 24 34 20];
r2 = roots(d2);
disp(r2);
if all(real(r2) < 0)
disp('система устойчива');
else
disp('система неустойчива');
end
% Задание 3
[~, den_raz] = tfdata(w_raz, 'v');
if den_raz(end) == 0
disp('разомкнутая система на границе устойчивости');
end
H = [den_zam(2) den_zam(4) den_zam(6) 0 0;
den_zam(1) den_zam(3) den_zam(5) 0 0;
0 den_zam(2) den_zam(4) den_zam(6) 0;
0 den_zam(1) den_zam(3) den_zam(5) 0;
0 0 den_zam(2) den_zam(4) den_zam(6)];
minors = zeros(1, 5);
for k = 1:5
minors(k) = det(H(1:k, 1:k));
end
disp(minors);
if all(minors > 0)
disp('замкнутая система устойчива');
else
disp('замкнутая система неустойчива');
end
% Задание 4
w = 0:0.005:2;
p_pts = 1j * w;
GM = polyval(den_zam, p_pts);
figure;
plot(real(GM), imag(GM));
grid on;
% Задание 5
w_raz5 = tf([2 1], [0.3 5 1]);
[~, den5] = tfdata(w_raz5, 'v');
r5 = roots(den5);
disp(r5);
if all(real(r5) < 0)
disp('разомкнутая система устойчива');
else
disp('разомкнутая система неустойчива');
end
figure;
nyquist(w_raz5);
grid on;
% Задание 6
[Gm, ~, ~, ~] = margin(w_raz5);
if isinf(Gm)
disp('критический коэффициент передачи бесконечен');
else
disp(Gm);
end