Линейное однородное разностное уравнение второго порядка с постоянными коэффициентами имеет вид:
. (1)
Чтобы подчеркнуть дискретный характер изменения времени, это уравнение часто записывают в форме
.
Разностные уравнения третьего и более высоких порядков записываются аналогично.
Известны два основных метода решения линейных разностных уравнений – с помощью характеристического полинома и с использованием z-преобразования, аналогичного преобразованию Лапласа.
1.1. Решение разностных уравнений с помощью характеристического полинома
Будем искать решение однородного разностного уравнения в виде x(t)=zt, где z – некоторое число. Подставляя x(t) в разностное уравнение (1) при f(t)=0 и сокращая на zt, получаем характеристическое уравнение
Если его корни z1, z2 вещественные и различные, то общее решение имеет вид:
.
Если z1=z2,,то в решении появляется линейный множитель
В случае пары комплексно-сопряженных корней z1,2=a±ib решение может быть записано в вещественной форме
, .
Здесь r – модуль комплексного числа z1, а j – его аргумент.
Формулы для уравнений более высоких порядков выглядят так же, просто увеличивается число слагаемых в решении.
Характеристическое уравнение: z2 + 2z + 4 = 0. У него комплексные корни: . Их положение на комплексной плоскости z = α +ib показано на рис. 1.
Модуль и аргумент корней можно найти непосредственно на рис.1: .
Общее решение:
Произвольные постоянные ci находят, задавая начальные условия. Пусть, например, в примере 2 заданы начальные условия x(0)=2; x(1)= –4. Записываем общее решение для t=0 и t=1:
Отсюда находим с1=2, с2=0. Следовательно, решение имеет вид
Общее решение неоднородного разностного уравнения представляет собой сумму общего решения соответствующего однородного уравнения и любого частного решения неоднородного уравнения. Частное решение ищут в том же виде, что и правая часть, т.е. функция f(t) в уравнении (1):
– если f(t) – постоянная, то в виде константы;
– если f(t) – экспонента, то в виде экспоненты с тем же показателем;
– если f(t) =sin kt или cos kt, то в виде c1sinkt+c2coskt.
Коэффициенты с1 и с2 находят, подставляя частные решения в разностное уравнение и приравнивая одноименные функции справа и слева.
Пример 3. Дано неоднородное разностное уравнение второго порядка
Находим корни характеристического полинома
Частное решение ищем в виде xчаст=c. Подставляя его в исходное уравнение, находим, что xчаст=2.
Общее решение неоднородного уравнения получаем как сумму частного решения и общего решения соответствующего однородного уравнения
Коэффициенты с1, с2 находим из уравнений , откуда .
1.2. Решение разностных уравнений с помощью z-преобразования
При описании дискретных систем и решении разностных уравнений широко применяется аппарат z-преобразования – это дискретный аналог преобразования Лапласа. Например, умножение изображения F(p) на оператор Лапласа p соответствует дифференцированию непрерывной функции f(t). Умножение изображения F(z) на оператор z соответствует сдвигу функции f(t) (которая может быть непрерывной, дискретной или решетчатой) на один такт.
Таким образом, если операторы р и 1/р – это операторы дифференцирования и интегрирования, то операторы z и z-1 – это операторы сдвига влево и вправо. С инженерной точки зрения оператор z-1 представляет собой элемент задержки.
Существуют также определенные параллели между изображениями функций F(p) и F(z). Например, изображению по Лапласу F(p) = 1 соответствует дельта-функция f(t) = d(t), а изображению F(z) = 1, соответствует единичный импульс. В том и другом случае оригиналом является элементарное импульсное воздействие.
Краткая таблица z-преобразований других функций приведена в Приложении.
Пусть дано разностное уравнение n-го порядка
y(t+n)+an-1y(t+n–1)+ ... +a0y(t)=f(t) (2)
с начальными условиями y(0)=y0; y(1)=y1; ...; y(n–1)=yn-1.
Алгоритм его решения с помощьюz-преобразования содержит 4 шага.
Шаг 1. Применить z-преобразование к уравнению (2), заменяя f(t) на F(z), y(t) на Y(z); y(t+1) на z(Y(z)–y0) и т.д.
Шаг 2. Из полученного алгебраического уравнения выразить Y(z).
Шаг 3. Выполнить разложение Y(z) на простые дроби.
Результатом будет искомое решение разностного уравнения.
Пример 4. Требуется решить разностное уравнение второго порядка
yn+2 –5 yn+1+6yn = un
с нулевыми начальными значениями y0, y1и входным сигналом un=1.
Шаг 1. Применяем к нему z-преобразование
Шаг 2. Выражаем Y(z) и подставляем :
Шаг 3. Представляем правую часть в виде суммы простых дробей с переменной z в числителе:
.
В отчете разложение делается методом неопределенных коэффициентов. В пакете MATLAB это можно сделать с помощью команды residue.
Шаг 4. С помощью таблицы z-преобразований или команды iztrans тулбокса SYMBOLIC пакета MATLAB находим оригиналы каждого из слагаемых и складываем их:
yn=0,5–2n +0,5×3n.
1.3. Система линейных разностных уравнений
Матричная запись системы линейных однородных разностных уравнений имеет вид
X(t+1)=AX(t), X(0)=X0, (3)
где – вектор переменных, А – квадратная матрица постоянных коэффициентов, X0 – вектор начальных условий.
Решение этой системы может быть записано в компактной степенной форме
X(t)=AtX0. (4)
При работе в пакете MATLAB этот способ удобнее всего.
Пример 5. Найдем решение системы разностных уравнений второго порядка
x(t+1) = 2x(t),
y(t+1) = –2x(t) +2y(t),
если .
Матричное описание задачи имеет вид
X(t+1)=AX(t), , .
Для получения решения воспользуемся степенной формулой. Последовательно возводя матрицу А в степени 2, 3, ..., n (проделайте это!), находим
An = 2n , X(t)=AtX0=
Переходя к скалярной форме записи, получаем окончательный ответ x = 2 t, y = (20–t) 2t.
Другой путь решения этой задачи связан с переходом от системы двух разностных уравнений первого порядка к одному уравнению второго порядка относительно y:
y(t+2) – 4y(t+1) + 4y(t) = 0.
Оно получается, если выразить из второго уравнения x(t), x(t+1) и подставить в первое.
1.4. Моделирование дискретных систем в MATLAB и SIMULINK
В MATLAB при моделировании линейных системы с дискретным временем используются разностные уравнения, модели в пространстве состояний и дискретные передаточные функции. В ядре MATLAB имеется команда filter,позволяющая рассчитать выходной сигнал фильтра по известному входному сигналу, заданному массивом своих значений. Ее входными аргументами являются векторы а и b коэффициентов разностного уравнения, а также массив значений сигнала и: y=filter(b,a,u). С помощью четвертого входного аргумента можно задавать начальные условия фильтра.
Дискретная система в пространстве состояний, как и непрерывная система, задается четверкой матриц:
(5)
Здесь – вектор состояния; uk, yk – входной и выходной сигналы, A, B, C, D – постоянные матрицы.
Дискретной передаточной функцией линейной системы (5) называется отношение z-преобразования выходного сигнала к z-преобразованию входного сигнала при нулевых начальных условиях Q(z) = Y(z)/U(z). Для систем с одним входом и одним выходом она представляет собой отношение двух полиномов
Дискретная передаточная функция системы, заданной описанием в пространстве состояний (5), может быть найдена по формуле Q(z)=C(zE-A)–1B+D.
Дискретные модели в MATLAB задаются при помощи тех же конструкторов ss, tfи zpk, что и непрерывные с той разницей, что последним параметром задается частота дискретизации ts(sampling time).
Пример 6.Рассмотрим дискретную систему, описываемую уравнениями
при шаге дискретизации, равном 1.
Создадим соответствующую ss-модель с дискретным временем:
и сообщение: Sampling time: 1.0 Discrete-time model.
Аналогично создаются tf и zpk-модели с дискретным временем. Обращение к полям дискретной модели осуществляется так же, как и у непрерывной, например для вывода матрицы c надо набрать код s1.c . Время дискретизации хранится в поле ts.
Для моделирования дискретных систем используются те же команды (step, impulse, initial, lsim), что и в непрерывном случае. При получении весовой функции дискретных систем вместо реакции на дельта-функцию рассматривают реакцию на единичный импульс вида . Для этого используется та же команда impulse. Реакцию на единичный скачок (переходную функцию) получают при помощи команды step.
В тулбоксе SYMBOLIC имеются команды ztrans и iztrans для выполнения прямого и обратного z–преобразований.
Пример.Дискретная система задана уравнениями
Найдем двумя способами (символьным и численным) передаточную функцию от входа u до выхода у.
В данном случае имеем следующие матрицы описания в пространстве состояний
Символьный способ. Дискретную передаточную функцию получаем по формуле Q=C(zE-A)–1B:
>>syms z;
>>А=[0 1;-6 5];В=[0; 7];С=[0 1]; %ввод матриц
>>Q=С*inv(z*eye(2)-А))*В %передаточная функция
Q=7*z/(z^2-5*z+6), %результат
Численный способ. Используем команды тулбокса CONTROL:
>> A=[0 1;-6 5];B=[0; 7];C=[0 1];
>>sd=ss(A,B,C,0,1); % Discrete-time model Sampling time: 1, .
>> s=tf(sd)
Transfer function:
7 z
-------------
z^2 - 5 z + 6
В обоих случаях получаем одинаковый результат: .
Моделирование дискретных систем в SIMULINK производится так же, как и непрерывных. На рисунке приведены основные блоки из библиотеки Discrete.
Блок задержки Unit delay позволяет строить схемы моделирования методом Кельвина. Блоки Discrete Transfer Fcn (дискретная передаточная функция) и Discrete Filter (дискретный фильтр) определяют рациональную функцию отношения полиномов от оператора z и обратного оператора соответственно.