% ЧсЮуймет ЕнфплЭт MATLAB гйб УхуфЮмбфб ЕлЭгчпх
clear; clc; close all;

% 1. БнбрбсЬуфбуз УхнЬсфзузт МефбцпсЬт
numerator = [5]; % БсйимзфЮт
denominator = [1, 5, 10, 5]; % РбспнпмбуфЮт
G = tf(numerator, denominator);

% % 2. МефбфспрЮ уе мпсцЮ Мзденйкюн-Рьлщн-КЭсдпхт
zpk(G);
% 
% % 3. БнбрбсЬуфбуз КбфбуфЬуещн (State-Space)
A = [0 1; -5 -4];
B = [0; 1];
C = [1 0];
D = 0;
sys_ss = ss(A, B, C, D);

% % 4. Хрплпгйумьт рьлщн кбй мзденйкюн
p = pole(G);
z = zero(G);
% 
% % 5. ёлегчпт елЭгоймпфзфбт кбй рбсбфзсзуймьфзфбт
Ctrb_matrix = ctrb(A, B);
rank_Ctrb = rank(Ctrb_matrix);
Obsv_matrix = obsv(A, C);
rank_Obsv = rank(Obsv_matrix);
% % 6. ДйбгсЬммбфб бнЬлхузт
% figure;
% bode(G); title('Bode');
% figure;
% nyquist(G); title('Nyquist');
% figure;
% rlocus(G); title('Root Locus');

% 7. ДзмйпхсгЯб кбй Ухнфпнйумьт PID
% Kp = 10; Ki = 5; Kd = 2;
% PID_controller = pid(Kp, Ki, Kd)
% [PID_auto, ~] = pidtune(G, 'PID')
% 
% % 8. Бнбфспцпдьфзуз КбфбуфЬуещн ме ФпрпиЭфзуз Рьлщн
desired_poles = [-4 -8];
K = place(A, B, desired_poles)
