
- •Методичні вказівки
- •"Непараметрична ідентифікація об'єкта управління"
- •"Моделювання неперервних систем" для магістрантів з спеціальності 8.05020101 – “«Комп’ютеризовані системи управління та автоматика»
- •1. Теоретический материал
- •X(t) Объект y(t) n(t) z(t)
- •2. Описание численного эксперимента и его программная реализация
- •3. Требования к оформлению результатов моделирования
- •График выполнения курсовой работы
- •5. Контрольные вопросы
2. Описание численного эксперимента и его программная реализация
В
КР
необходимо произвести численный
эксперимент – вычислить значения
импульсной переходной характеристики
объекта управления
по данным эксперимента "вход–выход"
x(t)
и y(t)
при наличии погрешностей измерений
n(t)
(рис.1). Для решения поставленной задачи
необходимо составить программу на языке
C++,
реализующую последовательно следующие
этапы.
2.1. Прямая задача: моделирование объекта идентификации и погрешностей измерений, получение наблюдаемого отклика. По заданным аналитическим выражениям для входного сигнала x(t) и импульсной переходной характеристики w(t) объекта (выбираются из таблицы 1 в соответствии с номером варианта – последней цифрой номера зачетной книжки) рассчитываются дискретные значения xi=x(ti) и wi=w(ti) на сетке ti=(i–0.5)t, i=1,2,…,N (принять N=64). Затем путём численного интегрирования (1) вычисляется y(ti) [9]. Метод численного интегрирования выбирается в соответствии с номером варианта из таблицы 2.
Для генерирования на ПЭВМ помехи n(ti) используется формула
(10)
где
– случайное число из интервала (0,1),
–
некоторый масштабирующий коэффициент.
Преобразование (10) позволяет центрировать
случайную последовательность чисел и
согласовать уровень помехи с уровнем
полезного сигнала – отклика объекта
идентификации. Причем генерируются
помехи при трех значениях коэффициента
:
.
Для получения случайной последовательности
чисел используем функцию int
random(int
n),
которая
генерирует случайное число от 0
до n.
Наблюдаемый отклик получаем как аддитивную смесь полезного сигнала и помехи
zj(ti) = y(ti) + nj(ti) , j=1,2,3; i=1,2,…,N. (11)
При написании программы моделирования объекта и процедуры его идентификации необходимо использовать для вещественных переменных и массивов тип данных double (вещественный с двойной точностью).
В результате выполнения первого этапа КР будут сформированы исходные данные для решения задачи идентификации.
2.2. Обработка сигналов с помощью алгоритма быстрого преобразования Фурье (БПФ). Для выполнения преобразования Фурье функций x(t), y(t) и обратного преобразования от изображения по Фурье весовой функции W(j) используется функция ftf1c (текст функции на языке C++ приведен в приложении), которая реализует эффективную процедуру на основе алгоритма быстрого преобразования Фурье [7]. Для вызова функции ftf1c в разделе объявлений главной функции должны быть объявлены сама функция ftf1c и вызываемая из неё вспомогательная функция swap, выполняющая обмен двух элементов массива:
void ftf1c(double *,double *,int ,int ,double );
void swap(double *,double *);
Кроме того необходимо включить в программу директиву препроцессора #define, реализующую простую макроподстановку
#define SIZ 64
(определяет используемую функцией ftf1c символическую константу SIZ).
Обращение к функции ftf1c
ftf1c(Xre,Xim,1,1,p);
Здесь в массивах Xre и Xim (размерностью N=64) находятся соответственно действительная и мнимая части преобразуемой функции. Производится прямое БПФ, если p=1, и обратное БПФ, если p=–1. Результат выполнения БПФ помещается в памяти на месте массивов Xre и Xim. При прямом преобразовании Фурье в массив Xre записываются значения преобразуемой функции времени (x(ti), y(ti) или z(ti)), а массив Xim заполняется нулями.
В результате выполнения второго этапа КР будут получены массивы значений для действительных и мнимых частей Фурье–образов наблюдаемых сигналов x(t), y(t) и z(t), используемые для решения задачи идентификации в частотной области.
2.3. Обратная задача: оценка весовой функции без и с учетом погрешностей измерений. Для программной реализации формулу (4) запишем в развёрнутом виде:
,
(12)
где ReX, ReY– вещественные, ImX, ImY – мнимые части соответственно Фурье–образов X(j) и Y(j); ReW, ImW–вещественная и мнимая части Фурье–образа весовой функции, причем:
(13)
(14)
По формулам (13) и (14) рассчитывают вещественную и мнимую части Фурье–образа весовой функции W(j) и затем применением обратного преобразования Фурье вычисляют . При обратном преобразовании Фурье результат находится в массиве для действительной части преобразуемой функции.
Для согласования масштабов при выполнении обратного БПФ полученную функцию следует разделить на N.
Аналогичным образом находят оценки весовых функций для пар наблюдаемых сигналов x(t) и zj(t) (j=1,2,3).
В результате выполнения третьего этапа КР будут получены массивы значений оценок весовой функции без и с учетом помех различной интенсивности (для трёх уровней шума).
2.4. Применение регуляризации для обеспечения помехоустойчивости оценок весовых функций. При вычислении оценки с использованием метода регуляризации А.Н. Тихонова (8) функция M(i) рассчитывается по формуле
(15)
При реализации
данного алгоритма параметр регуляризации
выбирают достаточно малым из анализа
имеющейся информации о погрешности
исходных данных и погрешности вычислений.
Практически подходящее значение
параметра регуляризации
определяют чаще всего путем подбора,
т.е. многократным вычислениями
,
для различных значений
.
На практике удобным является способ
определения квазиоптимального значения
параметра
,
т.е. в качестве
выбирается число
,
для которого
(16)
где
.
Необходимо отметить, что различные
способы определения параметра
регуляризации могут дать, вообще говоря,
различные результаты и, как следствие,
отличающиеся друг от друга регуляризованные
решения [8].
Необходимо
показать (выполнив серию численных
экспериментов и построив график), что
характер зависимости погрешности
решения обратной задачи (получения
оценки весовой функции) от значения
параметра регуляризации
имеет
вид "потенциальной ямы": при
уменьшении
,
когда
,
погрешность возрастает в силу того, что
эффект регуляризации ослабляется, а
при
=0
– вообще отсутствует; при увеличении
,
когда
,
рост погрешности (методической) обусловлен
значительным влиянием регуляризирующей
добавки в (8).
Погрешность
вычисления весовой функции
,
характеризующая качество решения задачи
идентификации, определяется по формуле:
(17)
В результате выполнения четвертого этапа будут получены массивы значений оценок весовой функции с использованием метода регуляризации, позволяющего значительно повысить помехоустойчивость алгоритма идентификации.
Таблица 1. Варианты задания исходных данных
№ варианта |
x(t) |
w(t) |
t |
a |
b |
c |
1 |
e–6bt–e–10ct |
e–20a(t–1.6)² |
0.05 |
1.0 |
1 |
1.5 |
2 |
0.10 |
0.5 |
2 |
1.0 |
||
3 |
0.10 |
0.5 |
4 |
0.5 |
||
4 |
e–4c(t–1.6)² |
e–10at–e–10bt |
0.05 |
1.0 |
2 |
2.0 |
5 |
0.10 |
0.5 |
1 |
2.0 |
||
6 |
0.10 |
1.0 |
1.5 |
4.0 |
||
7 |
e–12bt–e–20at |
e–5bt–e–20ct |
0.03 |
2.0 |
3 |
0.5 |
8 |
0.05 |
0.5 |
2 |
2.0 |
||
9 |
e–15c(t–2.5)² |
e–8at–e–10bt |
0.08 |
2.0 |
3 |
0.5 |
10 |
0.08 |
0.5 |
0.33 |
0.25 |
||
11 |
e–10bt–e–20ct |
e–10a(t–1.2)² |
0.05 |
1.0 |
1 |
1.5 |
12 |
0.10 |
0.5 |
2 |
1.0 |
||
13 |
0.10 |
0.5 |
4 |
0.5 |
14 |
e–c(t–1.2)² |
e–5at–e–5bt |
0.05 |
1.0 |
2 |
2.0 |
15 |
0.10 |
0.5 |
1 |
2.0 |
||
16 |
0.10 |
1.0 |
1.5 |
4.0 |
||
17 |
e–6bt–e–10at |
e–5bt–e–10ct |
0.03 |
2.0 |
3 |
0.5 |
18 |
0.05 |
0.5 |
2 |
2.0 |
||
19 |
e–10c(t–2.0)² |
e–8at–e–10bt |
0.08 |
2.0 |
3 |
0.5 |
20 |
0.08 |
0.5 |
0.33 |
0.25 |
||
21 |
e–6bt–e–10ct |
e–20a(t–1.6)² |
0.15 |
1.0 |
2 |
1.5 |
22 |
0.05 |
1.5 |
2 |
2.0 |
||
23 |
0.07 |
2.5 |
1 |
0.5 |
||
24 |
e–6bt–e–10ct |
e–20a(t–1.6)² |
0.05 |
2.0 |
2 |
1.0 |
25 |
0.15 |
1.5 |
2 |
2.0 |
Таблица 2. Методы интегрирования
№ метода |
Метод интегрирования |
1 |
Левых прямоугольников |
2 |
Правых прямоугольников |
3 |
Средних прямоугольников |
4 |
Трапеций |
5 |
Симпсона |