Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






в скалярной и векторно-матричной формах






Файл dX5.m:

function dZ=dX5 (T, Z);

%Система из 3 уравнений, вектор производных столбец.

Tau=[0 0.1 1];

K=0.2; Td=5;

dx1=K*(1-Z(3));

dx2=(Td*dx1+Z(1)-Z(2))/Tau(2);

dx3=(Z(2)-Z(3))/Tau(3);

dZ=[dx1; dx2; dx3];

Файл AXB.m:

function dZ=AXB(T, Z)

%Система из 3 уравнений, вектор производных столбец.

%Пример составления матриц А, В и С

K=0.5; Tau2=0.5; Tau3=0.5; X0=1;

A=[0 0 -K; 1/Tau2 -1/Tau2 0; 0 1/Tau3 -1/Tau3];

B=[K 0 0]';

C=[0 0 1];

dZ=[A*Z+B*X0];

Y=C*Z;

 

 

4.9. Краткий обзор методов интегрирования систем ОДУ с помощью MATLAB.

Для решения систем ОДУ в MATLAB имеется 7 солверов: ode45, ode23, ode113,

оde15s, ode23s, ode23t, ode23tb.

ode45 использует метод Рунге-Кутта 4-го порядка;

ode23 использует метод Рунге-Кутта 2-го порядка;

ode113 использует метод Адамса переменного порядка;

Добавление s означает, что метод можно использовать для жестких систем.

ode15s использует многошаговый метод Гира с изменением порядка;

ode23s использует одношаговый метод Розенброка 2-го порядка;

ode23t использует неявный метод 2-го порядка с интерполяцией. Его можно использовать для умеренно жестких задач.

оde23tb использует неявный метод 2-го порядка с дифференцированием назад. Он может быть эффективнее, чем оde15s.

Обращение к любой стандартной функции одинаково, например:

[t, x]=ode45(fun, interval_t, x0), где

t – вектор-столбец (время),

x – вектор-столбец интегрируемых переменных,

fun – вектор- столбец производных (правые части дифференциальных уравнений),

interval­_t – интервал времени, например, от 0 до 10 сек [0, 10],

x0 – начальные значения переменных (вектор-столбец), например, нулевые [0; 0; 0].

Для решения большинства задач ТАУ солвер ode45 дает хорошие результаты. Солвер

ode23 следует применять для задач с умеренно жесткими системами, когда требуется относительно невысокая точность. Для нежестких систем, когда требуются расчеты с высокой степенью точности, следует применять ode113. Он особенно эффективен для систем со сложными выражениями правых частей дифференциальных уравнений.

Для жестких систем наиболее подходит солвер ode15s. Если требования к точности слабее следует применять ode23s.

По умолчанию для всех солверов относительная точность , а абсолютная .

Все солверы допускают использование параметров для контроля и управления вычислениями. Приведем некоторые из них.

Таблица 4.1.

Назначение параметра Имя параметра
Контроль точности вычислений RelTol, AbsTol, NormControl
Шаг интегрирования InitialStep, MaxStep
Выходные данные OutputFcp, OutputSel, Refine, Stats
Якобиан Jacobian, JPattern, Vectorized
События Events

Значение параметров задается в управляющей структуре, создаваемой функцией odeset: оptions = odeset (…, “Имя параметра“, Значение, …). Например:

options = odeset(‘RelTol’, 1.0e-04);

[t, x] = ode45(‘AXB’, [0 10], [ 0 0 0], options)

Если заданы выходные параметры, то они выдаются на экран. Если они не заданы, то на экран выдаются графики результатов расчета.

Для детального знакомства с возможностями управления результатами решения систем дифференциальных уравнений следует обращаться к более подробным описаниям MATLAB.

Приведем программу интегрирования системы дифференциальных уравнений методом Рунге-Кутта 4-го порядка:

Файл rks4.m:

function Z=rks4(F, a, b, Za, M);

h=(b-a)/M;

T=zeros(1, M+1);

Z=zeros(M+1, length(Za));

T=a: h: b;

Z(1,:)=Za;

for j=1: M

k1=h*feval(F, T(j), Z(j,:));

k2=h*feval(F, T(j)+h/2, Z(j,:)+k1/2);

k3=h*feval(F, T(j)+h/2, Z(j,:)+k2/2);

k4=h*feval(F, T(j)+h, Z(j,:)+k3);

Z(j+1,:)=Z(j,:)+(k1+2*k2+2*k3+k4)/6;

end

plot(T, Z(:, 2), 'b')

grid on

% Обращение Z=rks4('prch2', 0, 15, [0 0], 150);

 

Ф айл prch2.m

function dZ=prch2(t, Z)

%Правые части системы 2-го порядка.

%Для методов Эйлера и Рунге-Кутта.

%На входе системы u=1[t].

k=1; tau=1; u=1;

e=u-Z(2);

dx1=k*e;

dx2=(Z(1)-Z(2))/tau;

dZ=[dx1, dx2];

 

Задание для самостоятельной работы:

  1. Прочитать задание и методические указания для курсовой работы.
  2. Научиться приводить к форме Коши все варианты задач (10 вариантов).
  3. Научиться приводить к векторно-матричной форме системы скалярных

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

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

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.