Решение дифференциального уравнения различными методами, доступными SIMULINK
Страницы работы
Содержание работы
Файл Модели\САМРаботы02\САМ06а.doc 5 стр. 200 Кбайт
1. Решение дифференциального уравнения различными методами, доступными SIMULINK.
Пусть, к примеру, требуется решить линейное дифференциальное уравнение второго порядка с правой частью
. (П7.01)
При использовании SIMULINK это уравнение можно решить несколькими способами.
Первый способ решения.
а) Разрабатывается блок-схема решения с использованием в качестве задатчиков коэффициентов уравнения модулей Gain раздела Linear. Начнем с того, что разрешим его относительно второй производной
(П7.02)
Полученное решение в модулях SIMULINK можно изобразить в виде
Рис. П7.1 Блок-схема решения с использованием в качестве задатчиков коэффициентов уравнения модулей Gain[1].
Для решения уравнения нами использованы 2 интегратора, 1 сумматор и 2 усилителя из раздела Linear библиотеки SIMULINK.
Вторая производная, согласно П7.02, должна получится путем вычитания из y0 равного 6/12, производных, умноженных на соответствующие коэффициенты.
Вид и значение параметров решения можно наблюдать на экране блока Scope раздела Sinks [siŋks — получатели] «y(t)».
b) Блок-схема решения с использованием в качестве задатчиков коэффициентов уравнения блоков Constant раздела Sources библиотеки SIMULINK и организации решения правой части уравнения в виде подсистемы.
Решение левой части уравнения по-прежнему представим в виде цепочки двух интеграторов, соединенных последовательно.
Для решения правой части уравнения соберем из модулей SIMULINK блок-схему и преобразуем ее в подсистему.
Рис. П7.2. Блок-схема решения правой части уравнения.
Составим блок-схему решения уравнения с использованием подсистемы.
Рис. П7.3. Блок-схема решения с использованием в качестве задатчиков коэффициентов уравнения модулей Constant[2].
Второй способ решения.
Используя SIMULINK, можно представить другой способ решения этого уравнения. Решение можно получить, используя модуль Transfer Fcn [‘trænsfə: Fkn] (Передаточное звено). В качестве входного сигнала будем использовать блок Constant раздела Sources [so:s — источники]
Рис. П7.4. Решение уравнения с использованием типовых структурных схем[3].
Вид и значение параметров решения можно наблюдать на экране блока Scope раздела Sinks [siŋks — получатели] «Интеграл».
Третий способ решения.
SIMULINK может предложить еще один способ решения данного дифференциального уравнения. Воспользовавшись методами структурных преобразований, данное уравнение можно представить в виде структурной схемы, состоящей из типовых модулей.
Рис. П7.5. Решение уравнения с использованием структурных преобразований[4].
Проведем исследование дифференциального уравнения 2 порядка
(П8.01)
методами фазовой плоскости, используя возможности SIMULINK.
Начнем с того, что разрешим уравнение относительно старшей производной.
(П8.02)
Решение левой части уравнения представим в виде цепочки из двух интеграторов соответственно настроенных.
Для решения правой части уравнения создадим 2 подсистемы. Одну для формирования значений коэффициентов уравнения, разрешенного относительно старшей производной и вторую для решения собственно правой части уравнения.
Рис. П8.1 Блок-схема формирования коэффициентов уравнения.
Рис. П8.2. Решатель правой части уравнения.
Решение дифференциального уравнения с учетом созданных подсистем будет иметь вид
Рис. П8.3. Блок-схема решения дифференциального уравнения[5].
Исследование фазового портрета.
Для наблюдения за фазовыми траекториями включим в качестве смотрового окна в блок-схему решения уравнения рис. П7.3 дополнительно модуль XY Graph из раздела Sinks библиотеки SIMULINK.
Сущность метода фазовой плоскости заключается в построении фазовых траекторий по дифференциальным уравнениям в системе координат: ось x — значение исследуемой величины u, ось y – скорость ее изменения du/dt. Процесс изменения траектории представляет собой движение изображающей точки на фазовой плоскости. Начальные условия определяют первоначальное положение изображающей точки на фазовой плоскости. Совокупность фазовых траекторий в плоскости (x, y) носит название фазовый портрет. Подробнее с методами фазовой плоскости можно ознакомиться по «Иващенко Н.Н. Автоматическое регулирование. Теория и элементы систем. Учебник для вузов. Изд. 4-е, перераб. и доп. М., «Машиностроение», 1978. Стр. 485-495».
Задачей нашего исследования является построение некоторых наиболее характерных фазовых портретов.
Рассмотрим следующие случаи характерные для уравнения 2 порядка:
[1] Программа расположена на файле «Мои документы\ПрогSIM\ПосГлава1\gla1_06 p7ris1»
[2] Программа расположена на файле «Мои документы\ПрогSIM\ПосГлава1\gla1_06 p7ris3»
[3] Программа расположена на файле «Мои документы\ПрогSIM\ПосГлава1\gla1_06 p7ris4»
[4] Программа расположена на файле «Мои документы\ПрогSIM\ПосГлава1\gla1_06 p7ris5»
[5] Программа расположена на файле «Мои документы\ПрогSIM\ПосГлава1\gla1_06 p8ris3»
MATLAB — алгебра
До сих пор мы видели, что все примеры работают как в MATLAB, так и в его GNU, альтернативно называемом Octave. Но для решения основных алгебраических уравнений и MATLAB, и Octave немного отличаются, поэтому мы постараемся охватить MATLAB и Octave в отдельных разделах.
Мы также обсудим факторизацию и упрощение алгебраических выражений.
Решение основных алгебраических уравнений в MATLAB
Функция решения используется для решения алгебраических уравнений. В простейшем виде функция решения принимает в качестве аргумента уравнение, заключенное в кавычки.
Например, давайте решим для х в уравнении х-5 = 0
MATLAB выполнит приведенный выше оператор и вернет следующий результат —
Вы также можете вызвать функцию решения как —
MATLAB выполнит приведенный выше оператор и вернет следующий результат —
Вы можете даже не включать правую часть уравнения —
MATLAB выполнит приведенный выше оператор и вернет следующий результат —
Если в уравнение входит несколько символов, то по умолчанию MATLAB предполагает, что вы решаете для x, однако функция решения имеет другую форму —
где вы также можете упомянуть переменную.
Например, давайте решим уравнение v — u — 3t 2 = 0, для v. В этом случае мы должны написать —
MATLAB выполнит приведенный выше оператор и вернет следующий результат —
Решение основных алгебраических уравнений в октаве
Функция корней используется для решения алгебраических уравнений в Octave, и вы можете написать приведенные выше примеры следующим образом:
Например, давайте решим для х в уравнении х-5 = 0
Octave выполнит приведенный выше оператор и вернет следующий результат —
Вы также можете вызвать функцию решения как —
Octave выполнит приведенный выше оператор и вернет следующий результат —
Решение квадратичных уравнений в MATLAB
Функция решения также может решать уравнения более высокого порядка. Он часто используется для решения квадратных уравнений. Функция возвращает корни уравнения в массиве.
В следующем примере решается квадратное уравнение x 2 -7x +12 = 0. Создайте файл сценария и введите следующий код —
Когда вы запускаете файл, он показывает следующий результат —
Решение квадратичных уравнений в октаве
В следующем примере решается квадратное уравнение x 2 -7x +12 = 0 в октаве. Создайте файл сценария и введите следующий код —
Когда вы запускаете файл, он показывает следующий результат —
Решение уравнений высшего порядка в MATLAB
Функция решения также может решать уравнения более высокого порядка. Например, давайте решим кубическое уравнение как (x-3) 2 (x-7) = 0
MATLAB выполнит приведенный выше оператор и вернет следующий результат —
В случае уравнений более высокого порядка корни длинные, содержащие много членов. Вы можете получить числовое значение таких корней, преобразовав их в двойные. В следующем примере решается уравнение четвертого порядка x 4 — 7x 3 + 3x 2 — 5x + 9 = 0.
Создайте файл сценария и введите следующий код —
Когда вы запускаете файл, он возвращает следующий результат —
Обратите внимание, что последние два корня являются комплексными числами.
Решение уравнений высшего порядка в октаве
В следующем примере решается уравнение четвертого порядка x 4 — 7x 3 + 3x 2 — 5x + 9 = 0.
Создайте файл сценария и введите следующий код —
Когда вы запускаете файл, он возвращает следующий результат —
Решение системы уравнений в MATLAB
Функция решения также может быть использована для генерации решений систем уравнений, включающих более одной переменной. Давайте рассмотрим простой пример, чтобы продемонстрировать это использование.
Давайте решим уравнения —
Создайте файл сценария и введите следующий код —
Когда вы запускаете файл, он показывает следующий результат —
Таким же образом вы можете решать большие линейные системы. Рассмотрим следующую систему уравнений —
Решающая система уравнений в октаве
У нас есть немного другой подход к решению системы ‘n’ линейных уравнений с ‘n’ неизвестными. Давайте рассмотрим простой пример, чтобы продемонстрировать это использование.
Давайте решим уравнения —
Такая система линейных уравнений может быть записана в виде единого матричного уравнения Ax = b, где A — матрица коэффициентов, b — вектор столбцов, содержащий правую часть линейных уравнений, а x — вектор столбцов, представляющий решение как показано в программе ниже —
Создайте файл сценария и введите следующий код —
Когда вы запускаете файл, он показывает следующий результат —
Таким же образом, вы можете решить большие линейные системы, как указано ниже —
Разложение и сбор уравнений в MATLAB
Функция расширения и сбора расширяет и собирает уравнение соответственно. Следующий пример демонстрирует понятия —
Когда вы работаете со многими символическими функциями, вы должны объявить, что ваши переменные являются символическими.
Создайте файл сценария и введите следующий код —
Когда вы запускаете файл, он показывает следующий результат —
Расширяя и собирая уравнения в октаве
Вам нужно иметь символьный пакет, который обеспечивает расширение и функцию сбора для расширения и сбора уравнения, соответственно. Следующий пример демонстрирует понятия —
Когда вы работаете со многими символическими функциями, вы должны объявить, что ваши переменные являются символическими, но у Octave другой подход к определению символических переменных. Обратите внимание на использование Sin и Cos , которые также определены в символической упаковке.
Создайте файл сценария и введите следующий код —
Когда вы запускаете файл, он показывает следующий результат —
Факторизация и упрощение алгебраических выражений
Факторная функция разлагает выражение, а функция упрощения упрощает выражение. Следующий пример демонстрирует концепцию —
пример
Создайте файл сценария и введите следующий код —
Когда вы запускаете файл, он показывает следующий результат —
Решение и моделирование линейного алгебраическое система уравнение в Matlab
РЕШЕНИЕ И МОДЕЛИРОВАНИЕ ЛИНЕЙНОГО АЛГЕБРАИЧЕСКОЕ СИСТЕМА УРАВНЕНИЕ В MATLAB
Ш. М. Туймуродов (преподаватель, Каршинский филиал ТУИТ)
(магистрантка, Каршинский филиал ТУИТ)
В моделировании разновидные объекты и процессы повстречаются в алгебраической, трансцендентной, линейной и других систем уравнений. Оценить правильность уравнений и решить их в моделировании играет большую роль. Построение уравнений определяются из их особенностей. У всех из таких способов есть свои особенности, чтобы решить их понадобится специальные знания. Увеличение неизвестных построенных моделей и с увеличением виды факторы усложняются их решение. По этому, в решении трудностей использование информационно-коммуникационных технологий облегчает работу и играет нужную роль в получении точного ответа.
Для решении разнотипных математических задач, создана система Matlab, при ней существуют его специальные функции. С помощью этих функций решаются задачи в частном виде.
Мы покажем решение системы линейно-алгебраических уравнений с помощью функций программы Matlab и моделировании в среде Simulink.
Дана система линейно-алгебраического уравнения:
Здесь а11, а22,…….,аnn – неизменяемые коэффициенты, х1, х2,……. хn — неизвестные, b1, b2,……. bn – свободные члены.
Нам требуется решить следующую систему линейно-алгебраического уравнения:
Через окно Command Window системы Matlab, вводим следующие коды, при этом найдется решение системы уравнения.
Для решения системы линейно-алгебраических уравнений (1) из система уравнений определяем следующие матрицы:
A*B=C, отсюда вычисляем неизвестные матрицы B, оно будет выглядеть следующим образом:
,
Здесь A-1 обратная матрица для матрицы A
Чтобы решить систему линейно-алгебраических уравнений в среде матриц, определяем элементы матрицы из системы уравнений и вводим их в окно команд программы Matlab:
>> C=[14;3] % матрица состоит из свободных членов
>> A1=inv(A) %A1 обратная матрица для матрицы
>> B=A1*C % B означает корень уравнения матрицы x1 и x2
Способ моделирования Matlab/Simulink
1-способ: При решении системы уравнений состоящие из неизменяемых чисел вводим каждый эквивалент дифференциальной величины . В среде Matlab/Simulink для произведения модели пишется следующий вид системы уравнений:
Загрузив программную систему Matlab и библиотечную панель Simulink Library Browser, выбераем пользовательский блок: Gain (умножение неизменяемого коэффициента в сигнал ), Constant (источник неизменяемого сигнала ), Integrator (интегральный сигнал), Display (произведение цифрового сигнала в виде числа) Scope (виртуальный оцилограф). В виртуальным осцилографе видно то, что графическая функция означает, что с истечением времени, продолжается часть неизменяемой системы уравнения. А в дисплеи системы уравнение цифрового решения отображается на экране в виде числа. Блок Simulink в составе Matlab для математических задач основан на разработке проектирования, сбора сложных устройств электроники и разработки их математических моделей.
Пользовательские блоки: Display, Constant, Gain, Sum, Integrator, Mux.
Рис 1. Построение моделей системы линейно-алгебраических уравнений и изображения графика в оциллографе
2-способ: Из панели библиотеки отделения Ports&Subsystems выбирается команда Subsystem и настраивается его составная структура, в зависимости от числа неизвестных чисел блоков Gain и увеличивается число блоков multiplexor в зависимости от числа уравнений. Входящие сигналы Multipleksora In1,In2,In3 в выходящие Out1 с раздела Math operations, вращающие на значения ноль вводится Algebraic Constraint. Вводим соответствующие коэффиценты в состав параметров в каждый блок Gain. После процесса моделирования нажимаем кнопку Run и в результате на экране можно увидеть ответ системы уравнений.
Рис 2. Настройка составного строения Мултиплексора
Пользовательские блоки: Subsystem, Display, Constant, Gain, Algebraic Constraint, Sum, Mux.
Рис 3. Схематический состав решения системы линейно — алгебраического уравнения с помощью модели мултиплексора
Таким образом, мы познакомились с системой Matlab и решения систем линейно-алгебраических уравнений помощью стандартных функций матрицы и способами моделирование Simulink. С помощью этих способов создаётся оптимизирование системы произведения, моделирование объектов и процесс оценивания правильности построения моделей и способы их решения. Нужно отметить, что курс «Высшая математика» из точных наук работает с матрицами, выполняет разные операции над ними и разрабатывает разные способы решения линейных уравнений. Особенно с помощью способа Matlab/Simulink моделирование линейных уравнений занимает важное место современной цифровой технике, в изучение телекоммуникационных технологий.
, , . Математическое и компьютерное моделирование процессов и систем в среде MATLAB/SIMULINK. Киев-2008, ст-18-22. Hally More. MATLAB for engineers. Prentice Hall 2012 y. Page.441 MATLAB. Учебное пособие. ГУИА. 2005. – 143 с. , . Методы решения математических задач в Maple. Белгород 2001 г. Ст-22. . Simulink 5/6/7. Самоучитель. ДМК издательство. Москва-2008 г.
http://coderlessons.com/tutorials/kompiuternoe-programmirovanie/uznaite-matlab/matlab-algebra
http://pandia.ru/text/80/612/27239.php