Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
5
Добавлен:
15.04.2015
Размер:
225.79 Кб
Скачать

Метод шагов по времени

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

Рис. 10.1. Структурная модель динамической системы с одним входом и одним выходом

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

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

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

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

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

Тогда:

или

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

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

будущее = настоящее + изменение

будущее = настоящее + скорость · шаг

Рассмотрим еще раз это важное соотношение, выведя его из геометрических соображений (рис. 10.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) + ε.

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

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

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

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

Соседние файлы в папке параметризация процессов трансформации