Научная статья на тему 'Моделирование дифференциальных уравнений в среде matlab & Simulink'

Моделирование дифференциальных уравнений в среде matlab & Simulink Текст научной статьи по специальности «Математика»

CC BY
4297
611
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
СРЕДА / СИГНАЛ / БЛОК ИНТЕГРИРОВАНИЯ / ЛИНЕЙНОЕ УРАВНЕНИЕ / ОДНОРОДНОЕ УРАВНЕНИЕ / MEDIUM / SIGNAL / INTEGRATION UNIT / LINEAR EQUATION / HOMOGENEOUS EQUATION

Аннотация научной статьи по математике, автор научной работы — Бадасян Тигран Смбатович

Пакет программ MatLab предназначен для аналитического и численного решения различных математических задач, а также для моделирования сложных электротехнических и электромеханических систем. Одним из инструментальных средств является среда MatLab, которая оснащена мощными возможностями структурного, объектно-ориентированного и визуального программирования (Simulink). Система инженерных и научных расчётов MatLab (Matrix Laboratory матричная лаборатория) способна решать задачи линейной алгебры, интегральные и дифференциальные уравнения, выполнять преобразования Лапласа и Фурье, Z-преобразования. Предусмотрено решение статистических и оптимизационных задач. Благодаря программе Simulink имеется возможность анализа и синтеза современных систем управления во временной и частотной областях. Графические возможности пакета позволяют строить двухи трёхмерные графики в различных координатах. При решении дифференциальных уравнений, в частности, для дифференциальных уравнений в частных производных применять Simulink и инструментарий Partial diferencial Equations Toolbox [3, 4]. Вложенный в него метод конечных элементов (finite elements method FEM) позволяет моделировать решение задачи на плоскости или в пространстве.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по математике , автор научной работы — Бадасян Тигран Смбатович

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

MODELING OF DIFFERENTIAL EQUATIONS ENVIRONMENT MATLAB & SIMULINK

The MatLab software package is designed for analytical and numerical solutions of various mathematical problems, as well as for modeling complex electrical and electromechanical systems. One of the tools is the MatLab environment, which is equipped with powerful structural, object-oriented and visual programming (Simulink) capabilities. MatLab (Matrix Laboratory) is capable of solving linear algebra problems, integral and differential equations, performing Laplace and Fourier transforms, and Z-transformations. The solution of statistical and optimization problems is provided. Thanks to the Simulink program, it is possible to analyze and synthesize modern control systems in the time and frequency domains. The graphical capabilities of the package allow you to build two and three-dimensional graphs in different coordinates. When solving differential equations, in particular, for partial differential equations, use Simulink and the Partial diferencial Equations Toolbox [3,4]. The finite element method (FEM) embedded in it allows you to simulate a solution to a problem on a plane or in space.

Текст научной работы на тему «Моделирование дифференциальных уравнений в среде matlab & Simulink»

МОДЕЛИРОВАНИЕ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ В СРЕДЕ

MATLAB & SIMULINK Бадасян Т.С. Email: Badasyan1166@scientifictext.ru

Бадасян Тигран Смбатович - магистрант, факультет прикладной математики и физики, Национальный политехнический университет Армении, г. Ереван, Республика Армения

Аннотация: пакет программ MatLab предназначен для аналитического и численного решения различных математических задач, а также для моделирования сложных электротехнических и электромеханических систем. Одним из инструментальных средств является среда MatLab, которая оснащена мощными возможностями структурного, объектно-ориентированного и визуального программирования (Simulink).

Система инженерных и научных расчётов MatLab (Matrix Laboratory - матричная лаборатория) способна решать задачи линейной алгебры, интегральные и дифференциальные уравнения, выполнять преобразования Лапласа и Фурье, Z-преобразования. Предусмотрено решение статистических и оптимизационных задач. Благодаря программе Simulink имеется возможность анализа и синтеза современных систем управления во временной и частотной областях. Графические возможности пакета позволяют строить двух- и трёхмерные графики в различных координатах. При решении дифференциальных уравнений, в частности, для дифференциальных уравнений в частных производных применять Simulink и инструментарий Partial diferencial Equations Toolbox [3, 4]. Вложенный в него метод конечных элементов (finite elements method FEM) позволяет моделировать решение задачи на плоскости или в пространстве.

Ключевые слова: среда, сигнал, блок интегрирования, линейное уравнение, однородное уравнение.

MODELING OF DIFFERENTIAL EQUATIONS ENVIRONMENT

MATLAB & SIMULINK Badasyan T.S.

Badasyan Tigran Smbatovich - Undergraduate Student, FACULTY OF APPLIED MATHEMATICS AND PHYSICS, NATIONAL POLYTECHNIC UNIVERSITY OF ARMENIA, YEREVAN, REPUBLIC OF ARMENIA

Abstract: the MatLab software package is designed for analytical and numerical solutions of various mathematical problems, as well as for modeling complex electrical and electromechanical systems. One of the tools is the MatLab environment, which is equipped with powerful structural, object-oriented and visual programming (Simulink) capabilities.

MatLab (Matrix Laboratory) is capable of solving linear algebra problems, integral and differential equations, performing Laplace and Fourier transforms, and Z-transformations. The solution of statistical and optimization problems is provided. Thanks to the Simulink program, it is possible to analyze and synthesize modern control systems in the time and frequency domains. The graphical capabilities of the package allow you to build two and three-dimensional graphs in different coordinates. When solving differential equations, in particular, for partial differential equations, use Simulink and the Partial diferencial Equations Toolbox [3,4]. The finite element method (FEM) embedded in it allows you to simulate a solution to a problem on a plane or in space. Keywords: medium, signal, integration unit, linear equation, homogeneous equation.

УДК 004.43:517.91

Введение. Задачи различных отраслей часто сводятся к дифференциальным уравнениям или системам дифференциальных уравнений [1, 2]. Часто возможно бывает решить дифференциальные уравнения аналитически, однако немало случаев, когда уравнение не

28

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

Целью статьи является демонстрация возможностей пакета Simulink при компьютерном моделировании дифференциальных уравнений, имитационного моделирования динамических систем. Simulink - один из самых мощных компонентов числового пакета МАТЬАВ, предназначенный для компьютерного моделирования и анализа систем, поведение которых зависит от времени [3, 4].

Моделирование обыкновенных дифференциальных уравнений первого порядка.

Исследование, как правило, начнем с простейшего типа - уравнение вида 4у = f (х) с

дискретными переменными, интегральным уравнением которого будет у = J f (х)4х + у(0) . Удовлетворяя начальному условию у(x0 ) = У0 частное

решение будет представлено в виде у = J f (х)4х + у(0) . В частном случае, если

уравнение имеет вид

4у 4х

= а

то частное решение, удовлетворяющее начальному

условию у(х0 ) = Уо , будет иметь вид у = а(х — х0 ) + у0 , которое является уравнением прямой, проходящей через точку (Хо, Уо) на плоскости Я2. Модель s

уравнения 4У = f (х) будет иметь следующий вид (рис.1):

Дх

Рис. 1. Решение дифференциального уравнения: структурная схема в Simulink

Два внутренних блока играют решающую роль в схеме. На входе блока интегрирования выдается сигнал {(х), который характеризует неоднородность уравнения. На выходе интегратора мы получим решение уравнения в виде у( х).

Далее рассмотрим линейное дифференциальное уравнение первого порядка вида

Дх

= р(х) у + / (х). Модель s задачи будет иметь следующий вид (рис. 2):

о

Рис. 2. Решение дифференциального уравнения первого порядка: структурная схема в Simulink

Основным конструктивным элементом модели линейного уравнения является блок интегрирования, который посредством обратной связи получает на входе решение уравнения. В блоке Product сигнал y(x) умножается на p(x), результат передается блоку Sum для суммирования с f(x).

Обсудим более подробно этапы создания схемы, используемые блоки содержатся в библиотеках. Ramp (библиотека Sources) дает непрерывный линейный сигнал. Sum (библиотека Math Operations) - в параметрах выбираем нужные действия: сложение или вычитание. Product (библиотека Math Operations) - умножает входящие сигналы. Integrator (библиотека Continuous) - выполняет интегрирование входного сигнала. Scope, Graph (библиотека Sinks) - строит графики сигнала и производного сигнала в зависимости от времени: Graph (библиотека Sinks) - Возвращает фазовый сигнал производной, то есть зависимость значения функции от производной функции в техже точках. В меню Simulation редактора выберем Configuration Parameters. В открывшемся окне выберем Solver и введем следующие параметры. Start Time: 0, Stop Time: 10.0, Type: Variable-step, Solver: ode45 (Dormand-Prince). Для проверки результата возьмем программный код той же задачи в среде Matlab, с применением функции dsolve. Очевидно, что в обоих случаях графики совпадут. syms x y

Exp = '2*x/(1+xA2)*y+1+xA2'; % определение правой части уравнения Expression = ['Dy = ',char(Exp)];

y = dsolve(Expression,'y(0)=0','x'); % решение дифференциальногоуравнения Message = ['y = ',char(y)]; pretty(y); % выводит решение уравнения grid on; hold on; % строит сетку

xlabel('X axis'); ylabel('Y axis'); % разместить наименование осей x и y x_new = 0:0.1:10; % получает вектор x_new

Cx = symvar(y,1) % функция возвращает количество

% переменных

y_new = subs(y,{Cx(1)},{x_new}); % создается новый вектор y_new plot(x_new,y_new); Title = ['Itegral Curves of Equation: ',char(Expression)]; title(Title); % название графика

legend(Message); % таблица ссылок графика

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

Чтобы скрыть существующую подсистему, нужно сначала выполнить следующие шаги:

■ определить, какие параметры подсистемы использовать в окне будущих пераметров. Определить те параметры, которые надо использовать в подсистеме (Greate subsysten from selection),

■ установить параметр в диалоговом окне,

■ разработать визуализацию блоков,

■ создать комментарии по использованию подсистемы.

Скрытие подсистемы осуществляется посредством редактора Mask Editor. Чтобы запустить редактор скрытия, выберите подсистему скрытия из контекстного меню Diagram, выбрать команду Mask или правой кнопкой мыши открыть окно Explore и выполнить директиву Mask Subsystem for selection. В случае выполнения команды откроется окно редактирования.

Первая из вкладок окна предназначена для отображения подсистем, вторая - для создания окна диалога входных параметров, третья - для инициализации входных параметров, четвертая - для создания окна справки.

Для блоков Fcn и Fcnl модели (см. Рис.2) создадим две подсистемы. С помощью первой подсистемы введем значения a и d, а второй - значения b и с. Отметим часть схемы, которую мы сделаем подсистемой и из меню, открытого правой кнопкой мыши, выполним Edit->Create Subsystem Selection или из главного меню директиву Diagram->Subsystem и Model Reference.

Ниже приведена схема модели и двух подсистем а также структура подсистем (рис. 3).

Рис. 3. Решение дифференциального уравнения: схема модели с двумя подсистемами

Рис. 3-а. Структурная схема подсистемы для ввод параметров а, d

Рис. 3-б. Структурная схема подсистемы для ввод параметров b, c

Теперь организуем ввод параметров a, d, b, и с. Директивой Diagram->Mask->Create Mask... мы можем запустить окно редактирования модели. Выполним двойной щелчок мышью по блоку подсистемы, откроется окно подсистемы и директивой Diagram->Mask->Create Mask. мы можем запустить окно редактирования модели.

Для формирования окна для ввода параметров в окне Dialog box разместим Groop box и два элемента edit. Директивой Apply рассмотрим вид входных окон (Рис. 4-a и Рис. 4-б).

Mask Editor : Subsystem

Icon & Ports] Parameters & Dialog Initialization Documentation

Controls Dialog box

* Parameter [Type Prompt Name

m Edit 0} Checkbox f(x)=a+duA2 DescGroupVar

3-CJ Parameters Conta inerâ

1=3 Popup (flj Radio button "0" Slider hi #1 ЧИ #2 Input Parameter a Input Parameter d a d

Рис. 4-а. Формирование входного окна: для ввода параметров а и d

Mask Editor : Subsystem!

Icon & Ports I Parameters & Dialog [^Initialization Documentation]

Controls

Parameter

S3 Edit Щ Checkbox Popup Radio button "0" Slider

Dialog box

Type Prompt Name

•CJ p(x) = bu(c+uA2) DescGroupVar

ÉO Parametrs Contain er3

[■mm. Input Parameter b b

H3II #2 Input Parameter с с

Рис. 4-б. Формирование входного окна: для ввода параметров b и c

Двойным щелчком мыши по блоку подсистемы открыть окно, созданное директивой Mask, и ввести значения констант (Рис. 5).

Рис. 5. Вид блоков входных параметров: а и d, b и c

Запустив модель, мы получим фазовую траекторию функции, и графики функций ) У () в зависимости от t (Рис. 6).

Рис. 6. Фазовая траектория функции, и графики функций у() и У ()

в зависимости от

t

Рассмотрим следующее логистическое дифференциальное уравнение первого порядка у'(0 =-3у(/ -1)(1-у(/)). Ниже приведены модель (Рис.7-а) и результат решения (Рис. 7-б).

Constant

Рис. 7-а. Структурная схема решения дифференциального уравнения

-2

О 5 10 15 20

Рис. 7-б. Результат решения логистического дифференциального уравнения

и

Здесь использован блок Transport Delay, который задерживает входной сигнал на фиксированное время. В окне настройки параметров блока указывается время задержки сигнала (Time Delay - 1), начальное значение выходного сигнала (Initial input), объем памяти, где будет записан задержанный сигнал (Buffer size - дано в байтах -1024).

Моделирование линейных дифференциальных уравнений второго порядка. Самый

простой вид свободных колебаний задается посредством уравнения

d 2 y

dx 2

= f (x) . Модель

уравнения состоит из двух блоков интегратора, которые интегрируют входной сигнал два раза.

В системе вынужденные колебания задаются в виде уравнения

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

d2 y

d 2 x

блоках с обратной связью t (Рис. 8).

= p(x)y + f (x) . S-модель этого уравнения основана на двух интегральных

Рис. 8. Структурная схема дифференциального уравнения вынужденных колебаний Если уравнение вынужденных колебаний, заданно в виде ^ У = р(х) + у(х) имеет

d x

dx

следующую S- модель (Рис. 9):

Рис. 9. Структурная схема дифференциального уравнения вынужденных колебаний для второго

случая

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

вынужденных колебаний имеет вид

В общем случае уравнение

4/ = Р(х) 4у + %)у + f (%) .

ах ах

Рассмотрим моделирование задачи свободных и вынужденных колебаний математического маятника.

Если на колебательную систему действуют момент внешней силы и силы трения вязкости, то дифференциальное уравнение, описывающее колебания маятника, может быть записано в следующем виде:

4 V г>4ф

+ 2(--+ с0 sin V = с^в0 sinсt,

(1)

а2t ' л

где <р - угол отклонения маятника от положения равновесия, t -время, ( -коэффициет затухания, со 0- собственная частота незатухающих колебаний маятника, СО и д0-

соответственно частота и угловая амплитуда момента силы, действующей на маятник.

Из-за нелинейности дифференциального уравнения (1) анализ уравнения аналитическими методами связан с математическими трудностями. Поэтому целесообразно решить уравнение (1) численным методом Runge-Kutta. Приведем схему модели (Рис. 10).

Рис. 10. Решение дифференциального уравнения для математического маятника Переходя к подсистемам, получим (Рис. 11).

Рис. 11. Решение дифференциального уравнения для математического маятника с использованием

подсистем

Ниже приведены структура подсистем и результат решения (Рис. 12-а и Рис. 12-б).

Рис. 12-а. Структура подсистем

Рис. 12-б. Результат решения

Фазовые траектории затухаю

щих (© — 0) и принудительных (© — 1) колебаний и графики зависимостей ) при

© — 3.13, в — 120, ¡ — 0.4, © — 1, ф) — 400 и ^'(0) — 0.В

р, ©0, ® в0, К0) — 400 и ^'(0) — 0 можно

значениях

зависимости от выбора параметров исследовать колебания маятника.

Для сравнения приведем решение задачи в среде Matlab. Обозначим -(1) _ ),

x(2) _ Ф(t) получим вектор-функцию правой части системы уравнений

[х^Х 2Дх(2) ¿9° sin(x(1)) + sin(at)]. Создадим файл-функцию fun.m (function), в которой запишем вектор правой части системы.

function F=kol_fun(t,x) global omegaO thetaO beta omega

F=[x(2); -2*beta*x(2)-omega0*sin(x(1))+omega0*theta0*sin(omega*t)]; end

Создадим файл Ode_45.m (script) и запишем программный код. clc; clear

global omega0 theta0 beta omega

omeg=3.16; omega0=omegA2; theta0=12*pi/180; beta=0.2; omega=1; y0 = [4*pi/180 0]; % вектор начального условия

[t, y]=ode45(@kol_fun,[0 80],y0); % решение системы subplot(2,1,1); plot(t, y(:,1), t, y(:,2), Ъ-.', 'LineWidth', 1) grid on; legend('x(t)','y(t)'); subplot(2,1,2)

plot(y(:,1),y(:,2),'b','LineWidth', 1) % график фазовой траектории

Теперь рассмотрим нелинейный дифференциальное уравнение второго порядка

У'' = У / x + (У )2 / y + 4y cos x , y(1) = 1 и У (1) = 1 с граничными условиями. Схема модели будет выглядеть следующим образом (Рис. 13).

Рис. 13. Решение нелинейного дифференциального уравнения

Структура и работа модели. В блоке Math Function (библиотека Math Operations) получим y} (t) квадрат значения сигнала и полученный сигнал в блоке Divide разделим на

значение сигнала y(t) и результат отправим в блок Sum. В блоке Dividel производный сигнал функции разделим на значение t и результат отправим в блок Sum. От непрерывного линейного сигнала Ramp в блоке Fcnl получим сигнал 4cos(t), его в блоке Productl

умножим на сигнал y(t) и результат отправим в блок Sum. В результате этих действий на

входе первого блока интегратора получим данное дифференциальное уравнение. Запустим модель и приведем решение (Рис.14). На первом рисунке показана фазовая траектория

функции, на втором графики функций y(t) и y'(t) в зависимости от t.

Рис. 14. Результат решения

Заключение. Таким образом, среда МайаЬ & Simulink позволяет моделировать многопараметрные линейные, нелинейные динамические, управляемые событиями гибридные модельные системы с непрерывным или дискретным временем.

Список литературы /References

1. Филиппов А.Ф. Сборник задач по дифференциальным уравнениям. Ижевск: НИЦ «Регулярная и хаотическая динамика», 2000. 176 стр.

2. Понтрягин А.С. Обыкновенные дифференциальные упражнения. Изд. НАУКА. Москва, 1979.

3. Герман-Галкин С.Г. MATLAB & SIMULINK. Проектирование мехатронных систем на ПК. СПб.: КОРОНА-Век, 2008. 368 с.

4. Трухин М.П. Визуальные средства моделирования систем: метод. разработка для слушателей ФПКП и ПП / сост. М.П. Трухин. Екатеринбург: ГОУ ВПО УГТУ-УПИ, 2006. 51 с.

i Надоели баннеры? Вы всегда можете отключить рекламу.