Данная утилита на MATLAB предназначена для выполнения различных видов анализа динамических систем, включая анализ устойчивости, частотных характеристик, переходной и импульсной функций, корневого годографа, отклика на произвольный входной сигнал и маргиналов устойчивости.
Скрипт выполняет следующие виды анализа системы:
- Анализ устойчивости
- Анализ частотных характеристик (Bode диаграмма)
- Анализ переходной функции
- Анализ импульсной функции
- Анализ корневого годографа
- Анализ отклика на произвольный входной сигнал
- Анализ маргиналов устойчивости
Скачайте или клонируйте репозиторий с утилитой. Убедитесь, что все необходимые файлы находятся в папке src. Добавьте пути к папке с классами и к текущей папке:
addpath('../src');
addpath('.');
Откройте MATLAB и перейдите в директорию с утилитой. Выполните скрипт, чтобы произвести анализ системы.
Пример использования:
% Очистка среды
clc; clear variables; close all;
% Параметры системы
params = struct( ...
'b0', 1, 'b1', -1, 'b2', 0, ...
'a0', 1, 'a1', 3, 'a2', 3, 'a3', 4);
numeratorCoeffs = [params.b2 params.b1 params.b0];
denominatorCoeffs = [params.a3 params.a2 params.a1 params.a0];
systemTransferFunction = tf(numeratorCoeffs, denominatorCoeffs);
% Анализ устойчивости
coefficients = [params.a3 params.a2 params.a1 params.a0];
analyzer = StabilityAnalyzer(coefficients);
analyzer.analyzeStability();
% Анализ частотных характеристик
bode_analysis;
% Анализ переходной функции
step_response;
% Анализ импульсной функции
impulse_response;
% Анализ корневого годографа
pzmap_analysis;
% Анализ отклика на произвольный входной сигнал
custom_input_response;
% Анализ маргиналов устойчивости
margin_analysis;
-
StabilityAnalyzer
Класс для анализа устойчивости системы. Принимает коэффициенты характеристического уравнения системы и выполняет анализ устойчивости. -
bode_analysis
(TODO) Функция для построения Bode диаграммы, используемой для анализа частотных характеристик системы. -
step_response
(TODO) Функция для анализа и визуализации переходной функции системы. -
impulse_response
(TODO) Функция для анализа отклика системы на импульсное воздействие. -
pzmap_analysis
(TODO) Функция для построения корневого годографа, отображающего нули и полюса системы. -
custom_input_response
(TODO) Функция для анализа отклика системы на произвольный входной сигнал. -
margin_analysis
(TODO) Функция для вычисления и отображения маргиналов устойчивости системы.
Если вы хотите внести свой вклад в развитие утилиты, создайте fork репозитория, внесите необходимые изменения и создайте pull request. Также вы можете создавать issue для багов и предложений по улучшению.
Данный проект лицензирован под MIT License.
Если у вас есть вопросы или предложения, вы можете связаться со мной по электронной почте: [email protected]
- StabilityAnalyzer не корректно обрабатывает маргинальную устойчивость (testMarginallyStableSystem)