Студопедия  
Главная страница | Контакты | Случайная страница

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

Математического пакета MATLAB и пакета визуального программирования SIMULINK

Читайте также:
  1. I)Однофакторный дисперсионный анализ (выполняется с применением программы «Однофакторный дисперсионный анализ» надстройки «Анализ данных» пакета Microsoft Excel).
  2. I. Языки программирования
  3. Lt;variant>язык программирования высокого уровня
  4. Lt;variant>Языки программирования высокого уровня
  5. Алгоритмизация и основы программирования: А5
  6. Алгоритмизация математического описания
  7. Базовые конструкции структурного программирования
  8. Введение в психологию программирования
  9. Выбор языка и среды программирования
  10. Действия с векторами и матрицами в MATLAB

 

 

Исходные данные:

Исходное уравнение

 

 

 

Приведение исходного ДУ к системе ДУ первого порядка

Цель: Научиться решать системы обыкновенных дифференциальных уравнений с помощью

математического пакета MATLAB и пакета визуального программирования SIMULINK

 

Пусть нам известна входная динамическая последовательность X (входной сигнал) и модель (способ преобразования входного сигнала в выходной сигнал). Рассматривается задача определения выходного сигнала y(t) (см. рис.1).

 

Модель динамической системы может быть представлена дифференциальным уравнением. Основное уравнение динамики:

y' = f(x(t), y(t), t).

Известны начальные условия в нулевой момент времени t0: y(t0), x(t0). Чтобы определить выходной сигнал, заметим, что по определению производной:

Нам известно положение системы в точке «1», требуется определить положение системы в точке «2». Точки отделены друг от друга расстоянием Δt (рис. 2). То есть расчет поведения системы производится по шагам. Из точки «1» мы скачком (дискретно) переходим в точку «2», расстояние между точками по оси t называется шагом расчета Δt.

 

Рис. 2. Иллюстрация расчета будущего состояния системы

методом Эйлера на одном шаге

 

Тогда:

Или

Последняя формула называется формулой Эйлера.

Очевидно, чтобы узнать состояние системы в будущем y(t + Δt), надо к настоящему состоянию системы y(t) прибавить изменение Δy, прошедшее за время Δt.

Рассмотрим еще раз это важное соотношение, выведя его из геометрических соображений (рис.3).

Рис. 10.3. Геометрическая иллюстрация метода Эйлера

 

Пусть A — точка, в которой состояние системы известно. Это «настоящее» состояние системы.

В точке A к траектории движения системы проведем касательную. Касательная — это производная функции f(x(t), y(t), t) по переменной t. Производную в точке всегда легко вычислить, достаточно подставить известные переменные (в момент «Настоящее» они известны) в формулу y' = f(x(t), y(t), t).

Заметим, что, по определению, производная связана с углом наклона касательной: y' = tg(α), значит, угол α легко вычислить (α = arctg(y')) и провести касательную.

Проведем касательную до пересечения с линией t + Δt. Момент t + Δt соответствует «будущему» состоянию системы. Проведем линию параллельно оси t от точки A до пересечения с линией t + Δt. Линии образуют прямоугольный треугольник ABC, один катет которого равен Δt (известен). Известен также угол α. Тогда второй катет в прямоугольном треугольнике ABC равен: a = Δt · tg(α). Теперь легко вычислить ординату точки B. Она состоит из двух отрезков — y(t) и a. Ордината символизирует положение системы в точке y(t + Δt). То есть y(t + Δt) = y(t) + a или далее y(t + Δt) = y(t) + Δt · tg(α) или, подставляя дальше, имеем: y(t + Δt) = y(t) + Δt · y' и, наконец, y(t + Δt) = y(t) + Δt · f(x(t), y(t), t). Снова мы получили формулу Эйлера (из геометрических соображений).

Эта формула может дать точные результаты только при очень малых Δt (говорят при Δt –> 0). При Δt≠0 формула дает расхождение между истинным значением y и расчетным, равное ε, поэтому в ней должен стоять знак приближенного равенства, либо она должна быть записана так:

 

y(t + Δt) = y(t) + Δt · f(x(t), y(t), t) + ε.

 

И в самом деле. Взгляните еще раз на рис.3. Будем мысленно сдвигать линию t + Δt влево (фактически, будем приближать значение Δt к нулю). Как нетрудно видеть, расстояние BB* = ε, — то есть ошибка! — будет сокращаться. В пределе (при Δt –> 0) значение ошибки ε будет равно нулю.

Итак, заменяя реальную кривую прямой (касательной) на отрезке Δt, мы вносим в решение ошибку, попадая в результате не в точку «2» (см. рис.2), а рядом, в точку «3». Очевидно, что этот численный метод на каждом шаге имеет погрешность расчета ε.

Из рисунка видно, что чем меньше взять величину Δt, тем меньше будет ошибка расчета ε. То есть для расчета поведения системы на сколько-нибудь продолжительном отрезке времени (например, от t0 до tk), чтобы уменьшить ошибку на каждом шаге, шаги Δt делают по возможности малыми. Для достижения точки tk отрезок (tk – t0) делится на отрезки длиной Δt; таким образом, всего получится N = (tk – t0)/Δt шагов. В результате расчета придется формулу Эйлера применить для каждого шага, то есть N раз. Но следует иметь в виду, что ошибки εi на каждом i-ом шаге (в простейшем случае) складываются, а общая ошибка быстро накапливается (см. рис.4). И в этом состоит существенный недостаток данного метода. Хотя с помощью этого метода можно получить (в численном виде) решение любого дифференциального уравнения (в том числе и неразрешимого аналитически). Уменьшая шаг, мы получаем более точные решения, но при этом не следует забывать, что увеличение числа шагов ведет к вычислительным затратам и снижению быстродействия. Кроме того, при большом числе итераций в расчет вносится другая существенная погрешность из-за ограниченной точности вычислительных машин и ошибок округления.

Рис. 10.4. Нарастание суммарной ошибки в методе Эйлера на ряде шагов

 

Практическая часть:

План выполнения работы:

1. Запустить программу MATLAB

2. Открытие М-файлов (File – New – M-file).

3. Описание правых частей ДУ в файл-функции.

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

5. Редактирование графиков.

Создаем Файл-функцию куда записываем рассмотренное нами выше дифференциальное уравнение первого порядка, задаем переменные.

Скрипт-файл.

 
 

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

Численные значения переменных программы

Запускаем пакет Simulink

 




Дата добавления: 2014-12-19; просмотров: 43 | Поможем написать вашу работу | Нарушение авторских прав




lektsii.net - Лекции.Нет - 2014-2024 год. (0.008 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав