%% Лабораторная работа: Упрощение линейных систем
% Вариант №12
clear; clc; close all;
%% 1. Определение исходной системы
s = tf('s');
num = [5000 25000];
den = [1 10 38 60 36];
W = tf(num, den);
%% 2. Упрощение модели до 3-го порядка
% Используем метод сбалансированного сокращения (balred),
% так как это стандартный инструмент MATLAB для задач из методички.
W_red = balred(W, 3);
fprintf('--- Исходная система (Вариант 12) ---\n');
display(W);
fprintf('--- Упрощенная система (3-й порядок) ---\n');
display(W_red);
%% 3. Сравнение разомкнутых систем
figure('Name', 'Разомкнутая система: Вариант 12');
step(W, 'b', W_red, 'r--');
grid on;
legend('Исходная (4 пор.)', 'Упрощенная (3 пор.)');
title('Переходная характеристика разомкнутой системы');
%% 4. Сравнение замкнутых систем (единичная ОС)
W_cl = feedback(W, 1);
W_red_cl = feedback(W_red, 1);
figure('Name', 'Замкнутая система: Вариант 12');
step(W_cl, 'b', W_red_cl, 'r--');
grid on;
legend('Исходная', 'Упрощенная');
title('Переходный процесс замкнутой системы');
%% 5. Расчет и вывод показателей качества
info = stepinfo(W_cl);
info_red = stepinfo(W_red_cl);
fprintf('\nАнализ точности аппроксимации:\n');
fprintf('%-20s | %-10s | %-10s | %-10s\n', 'Показатель', 'Оригинал', 'Упрощ.', 'Ошибка %');
fprintf('------------------------------------------------------------\n');
% Проверка основных метрик
metrics = {'SettlingTime', 'Overshoot', 'PeakTime'};
labels = {'Время рег. (с)', 'Перерегулирование %', 'Время пика (с)'};
for i = 1:length(metrics)
m = metrics{i};
val_orig = info.(m);
val_red = info_red.(m);
% Защита от деления на 0 для перерегулирования
if val_orig == 0 && val_red == 0
err = 0;
else
err = abs(val_orig - val_red) / (val_orig + eps) * 100;
end
fprintf('%-20s | %-10.3f | %-10.3f | %-10.2f%%\n', labels{i}, val_orig, val_red, err);
end
% Проверка условия 10%
if abs(info.SettlingTime - info_red.SettlingTime)/info.SettlingTime < 0.1
disp('Результат: Условие по длительности процесса (<10%) ВЫПОЛНЕНО.');
else
disp('Результат: Ошибка превышает 10%. Требуется уточнение модели.');
end