Алгебраический критерий устойчивости Гурвица

Разработка программы для определения устойчивости линейной стационарной системы при помощи алгебраического критерия устойчивости Гурвица. Анализ линейной стационарной динамической системы на устойчивость. Код программы, основные этапы ее работы.

Рубрика Математика
Вид курсовая работа
Язык русский
Дата добавления 10.05.2017
Размер файла 531,4 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.Allbest.ru/

Оглавление

1. Постановка задачи

2. Теория

3. Описание кода программы

4. Основные этапы работы программы

5. Примеры

1. Постановка задачи

Разработать программу для определения устойчивости линейной стационарной системы при помощи алгебраического критерия устойчивости Гурвица.

2. Теория

Критерий устойчивости Гурвица -- один из способов анализа линейной стационарной динамической системы на устойчивость, разработанный немецким математиком Адольфом Гурвицом. Наряду с критерием Рауса является представителем семейства алгебраических критериев устойчивости, в отличие от частотных критериев, таких, как критерий устойчивости Найквиста. Достоинством метода является принципиальная простота, недостатком - необходимость выполнения операции вычисления определителя, которая связана с определенными вычислительными тонкостями (например, для больших матриц может оказаться значительной вычислительная ошибка).

Метод работает с коэффициентами характеристического уравнения системы. Пусть -- передаточная функция системы, а -- характеристическое уравнение системы. Представим характеристический полином в виде

Из коэффициентов характеристического уравнения строится определитель Гурвица по алгоритму:

1) по главной диагонали слева направо выставляются все коэффициенты характеристического уравнения от до ;

2) от каждого элемента диагонали вверх и вниз достраиваются столбцы определителя так, чтобы индексы убывали сверху вниз;

3) на место коэффициентов с индексами меньше нуля или больше ставятся нули.

Тогда согласно критерию Гурвица:

Для того, чтобы динамическая система была устойчива, необходимо и достаточно, чтобы все

Размещено на http://www.Allbest.ru/

диагональных миноров определителя Гурвица были положительны. Эти миноры называются определителями Гурвица.

Анализируя условие критерия Гурвица, можно заметить его избыточность. Число неравенств можно уменьшить в два раза, используя теорему Льенара-Шипара. Впрочем, в вычислительном отношении сложность критерия уменьшается не существенно, так как при вычислении минора высокого порядка чаще всего необходимо вычисление миноров низших порядков.

3. Описание кода программы

На форме заготавливаем по порядку следующие объекты: edit1 и pushbutton1; text1, edit2 и pushbutton2; pushbutton3; text2; axes1 (где точка с запятой показывает, что объекты находятся на “новой строчке”).

Ниже пример расположения объектов на форме с индексацией объектов сверху вниз.

По желанию можно стереть или изменить начальные надписи в объектах посредством редактирования свойства String этих объектов.

Далее и сам код, необходимый для работы программы:

Стандартная часть кода, создающаяся автоматически при создании формы и % объектов на ней (внутренние комментарии были удалены для экономии бумаги).

function varargout = gur_form(varargin)

gui_Singleton = 1;

gui_State = struct('gui_Name', mfilename, ...

'gui_Singleton', gui_Singleton, ...

'gui_OpeningFcn', @gur_form_OpeningFcn, ...

'gui_OutputFcn', @gur_form_OutputFcn, ...

'gui_LayoutFcn', [] , ...

'gui_Callback', []);

if nargin & isstr(varargin{1})

gui_State.gui_Callback = str2func(varargin{1});

end

if nargout

[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});

else

gui_mainfcn(gui_State, varargin{:});

end

function gur_form_OpeningFcn(hObject, eventdata, handles, varargin)

handles.output = hObject;

guidata(hObject, handles);

function varargout = gur_form_OutputFcn(hObject, eventdata, handles)

varargout{1} = handles.output;

function edit1_CreateFcn(hObject, eventdata, handles)

if ispc

set(hObject,'BackgroundColor','white');

else

set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));

end

%Присваивание переменной n количества коэффициентов полинома .

function edit1_Callback(hObject, eventdata, handles)

%Объявление всех переменных, что используются в программе как

глобальные.

global Matr_x1 Matr_x2 Matr_x0 n i j k count globster w bool ctrl_x delt s;

n=str2double(get(hObject,'string'));

%Создание массивов для будущих вычислений на основании

введенной n, объявление некоторых переменных.

function pushbutton1_Callback(hObject, eventdata, handles)

global Matr_x1 Matr_x2 Matr_x0 n i j k count globster w bool ctrl_x delt s

count_2;

Matr_x1=zeros(1,n); %пустой исходный массив

Matr_x2=zeros(n-1); %пустая матрица Гурвица.

globster=1;

count_2=1;

set(handles.text1,'string',count_2); %Счетчик меняет на единицу.

линейный стационарный устойчивость гурвиц

function edit2_CreateFcn(hObject, eventdata, handles)

if ispc

set(hObject,'BackgroundColor','white');

else

set(hObject,'BackgroundColor',get(0,'defaultUicontrolBackgroundColor'));

end

function edit2_Callback(hObject, eventdata, handles)

global Matr_x1 Matr_x2 Matr_x0 n i j k count globster w bool ctrl_x delt s

pol;

pol=str2double(get(hObject,'string')); %ввод коэффициентов полинома.

function pushbutton2_Callback(hObject, eventdata, handles)

global Matr_x1 Matr_x2 Matr_x0 n i j k count globster w bool ctrl_x delt s

pol count_2;

%Этап обработки ввода коэффициентов полинома.

if (count_2<n)

Matr_x1(1,count_2)=pol; %Заполнение исходной матрицы.

count_2=count_2+1;

set(handles.text1,'string',count_2); %изменение счетчика

elseif (count_2==n)

Matr_x1(1,count_2)=pol; %Заполнение исходной матрицы.

count_2=count_2+1;

set(handles.text1,'string','vse!'); %изменение счетчика при завершении

ввода

end

%Функция запуска основных вычислений по методу Гурвица.

function pushbutton3_Callback(hObject, eventdata, handles)

global Matr_x1 Matr_x2 Matr_x0 n i j k count globster w bool ctrl_x delt s

pol count_2;

%Заполнение матрицы Гурвица =>

k=1;

for j=1:1:n-1

for i=1:1:n-1

count=i+k;

if (count<0)

;

elseif (count>0)&(count<=length(Matr_x1))

Matr_x2(j,i)=Matr_x1(1,count);

else

;

end

k=k+1;

if (i==n-1)

k=0;

k=k-(globster-1);

end

end

globster=globster+1;

end

% <=завершение процедуры заполнения матрицы Гурвица.

%Этап вычисления устойчивости полученной на предыдущем шаге

матрицы.

ctrl_x=1;

bool=false;

while 1%бесконечный цикл.

Matr_x0=Matr_x2;

for i=1:1:n+(-1-ctrl_x) %Вычисление строк и столбцов для

определителя.

Matr_x0(1+ctrl_x,:)=[]; %Вырезание строк.

Matr_x0(:,1+ctrl_x)=[]; %Вырезание столбцов.

end

delt=det(Matr_x0); %Вычисление определителя

if (delt>0) %условие устойчивости системы.

ctrl_x=ctrl_x+1; %увеличения счетчика размера матрицы для

определителя.

if (ctrl_x>n-1)

s='systema ystoychivaya'

break %выход из цикла при выполнении условия.

end

else

s='systema neystoychivaya';

break %выход из цикла при выполнении условия.

end

end

set(handles.text2,'string',s); %вывод ответа по устойчивости.

%Этап построения графика.

axes(handles.axes1)

w=tf([1],Matr_x1);

T=10;

[Y,T] = step(w);

plot(T,Y)

%Очистка объектов ввода для последующего использования.

set(handles.edit1,'string',' ');

set(handles.edit2,'string',' ');

set(handles.text1,'string','счетчик');

4. Основные этапы работы программы

Запуск программы (через MATLAB)

File > New > GUI > вкладка “Open Existing GUI” > Browse > “путь к файлу gur_form.fig” > Open > Tools > Run > на выскочившее сообщение об изменении рабочей папки отвечаем “Change Folder”.

Появляется форма ввода. Перво-наперво вводим число коэффициентов полинома в первое (самое верхнее окно) и жмем кнопку справа для подтверждения (число должно быть больше 0 и целым).

Счетчик на следующей строчке изменится на единицу, вводим первый коэффициент полинома в окошко справа от счетчика и жмем кнопку справа от поля ввода для подтверждения. Счетчик опять изменится и предложит ввести второй коэффициент. Повторяем процедуру до тех пор, пока не появится сообщение “vse!” в поле счетчика (дальнейшие операции ввода будут не учитываться в программе). Вводимые числа могут быть целыми, целыми отрицательными, десятичными (целая часть от десятичной отделяется знаком “точка”) и десятичными отрицательными, а также нулем.

После ввода всех коэффициентов полинома жмем большую кнопку “START PROGRAM” и получаем ответ об устойчивости введенной системы и её график.

Примеры

Пример 1: 6 1 -1 4 1

Пример 2: 2 4 7 1

Размещено на Allbest.ru


Подобные документы

  • Применение метода абсолютной устойчивости для исследования устойчивости нелинейных систем. Критерий абсолютной устойчивости Попова. Исследование абсолютной устойчивости при неустойчивой линейной части. Круговой критерий Воронова, робастная устойчивость.

    реферат [914,5 K], добавлен 20.08.2015

  • Понятие и поиск спектра как множества всех собственных характеристических показателей решений дифференциальной системы. Характеристические показатели Ляпунова заданной линейной стационарной системы. Теорема Ляпунова о нормальности фундаментальной системы.

    курсовая работа [97,2 K], добавлен 21.08.2009

  • Краткая биография английского математика Дж. Сильвестра. Устойчивость равновесия консервативной системы с конечным числом степеней свободы. Функции Ляпунова и критерий Сильвестра. Пример определения условия устойчивости равновесного положения системы.

    реферат [3,0 M], добавлен 09.11.2010

  • Особенности применения функций Ляпунова для исследования устойчивости различных дифференциальных уравнений и систем. Алгоритм и листинг программы определения устойчивости матрицы на основе использования метода Раусса-Гурвица в среде моделирования Matlab.

    реферат [403,7 K], добавлен 23.10.2014

  • Задача исследования устойчивости нелинейной динамической системы. Аппроксимации функций с использованием обобщений полиномов Бернштейна. Анализ скорости сходимости и эффективности итерационной формулы, сравнение с классическими численными методами.

    дипломная работа [1002,2 K], добавлен 23.06.2011

  • Исследования устойчивости разомкнутой и замкнутой систем. Понятие разомкнутой системы – системы, в которой отсутствует обратная связь между входом и выходом, то есть управляемая величина (выходная) не контролируется. Логарифмический частотный критерий.

    реферат [189,7 K], добавлен 30.01.2011

  • Построение квадратичной двумерной стационарной системы, нахождение состояний равновесия, исследование бесконечно-удаленной части плоскости. Необходимые и достаточные условия существования у системы двух частных интегралов. Построение траектории в круге.

    дипломная работа [118,3 K], добавлен 07.09.2009

  • Основные формулы, используемые в исследовании. Определение стохастической устойчивости и структура соответствующих уравнений. Применение второго метода Ляпунова. Скалярные уравнения n-го порядка. Анализ устойчивости по вероятности движений спутника.

    курсовая работа [235,6 K], добавлен 21.02.2016

  • Биография немецкого математика А. Гурвица. Основные положения теоремы Ферма. Обзор систем "чисел", которые можно построить, исходя из действительных чисел, путем добавления рядя "мнимых единиц". Приложение теоремы Гурвица: теоремы Фробениуса и Лагранжа.

    курсовая работа [220,5 K], добавлен 25.05.2010

  • Построение уравнения регрессии. Оценка параметров линейной парной регрессии. F-критерий Фишера и t-критерий Стьюдента. Точечный и интервальный прогноз по уравнению линейной регрессии. Расчет и оценка ошибки прогноза и его доверительного интервала.

    презентация [387,8 K], добавлен 25.05.2015

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.