Моделирование процесса параметрической идентификации динамического объекта
1. Постановка
задачи
В нашей работе нам нужно создать модель, которая будет
удовлетворять исходным данным и сможет найти оптимальные параметры для
идентификации исходной функции. Результатом работы должны быть графики поиска
минимума значения функции, гистограмма распределения точек генератора случайных
чисел, а также график Y теоретического, Y экспериментального от времени.
Моделирование используется, если эксперимент с реальным
объектом:
) опасный
) дорогой
) долговременный / краткосрочный
) невозможный / трудный
Условная схема моделирования:
Т.к. у нас отсутствует объект, то мы заменяем его на Y теоретическое + шум
Y экспериментальное = Y
теоретическое + шум
2.
Нахождение Y теоретического. Преобразование формулы и решение ее с
помощью Метода Эйлера
Здесь нам нужно найти значения функции Y теоретического, для
того, чтобы потом получить Y экспериментальное, с помощью шума.
Используя метод введения дополнительной переменной, получим:
Перейдём в вещественную форму:
Обозначим:
Получим систему уравнений в канонической форме:
Далее решаем систему методом Эйлера. Начальные условия:
А также, на каждом шаге подставив полученные значения,
рассчитываем
Выберем шаг h=0.5, выполним
необходимые вычисления и построим график функции.
Полученный график представлен на рис. 1. По графику видно, что
функция
y(t)-> к числу чуть больше 0. А выходит
она из точки ~ -1500.
Узнаем точные значения этих точек. Для этого вычислим пределы:
= 30
= -1500
Некоторые значения y представлена в
таблице 1 «Зависимость значения функции от времени».
Наилучший период наблюдения t=1…300, шаг h=0.5.
Взято 300 точек, т. к. уже на этом периоде наблюдения видно как
график функции сходится к положительному числу около 0. График функции
искажается при шаге больше 0.5 (при шаге больше 0,8 - расходится). А при
меньшем шаге сходимость получим за большее число шагов. Поэтому выбран шаг h=0.5.
Таблица 1. Зависимость значения функции от времени
t
|
y(t)
|
1
|
-1500,000
|
11
|
1130,336
|
21
|
-407,472
|
31
|
-131,811
|
41
|
546,368
|
51
|
-554,815
|
61
|
465,039
|
71
|
-156,678
|
81
|
-15,510
|
91
|
218,653
|
101
|
-192,945
|
111
|
201,441
|
121
|
-48,697
|
131
|
18,974
|
141
|
98,544
|
151
|
-54,763
|
161
|
97,352
|
171
|
-2,843
|
181
|
28,262
|
191
|
54,751
|
201
|
-2,138
|
211
|
56,381
|
221
|
16,410
|
231
|
30,295
|
241
|
38,875
|
251
|
17,849
|
261
|
40,304
|
271
|
24,418
|
281
|
30,484
|
291
|
33,157
|
3.
Моделирование метода оптимизации
3.1 Описание
метода поиска
Метод предназначен для нахождения экстремума (минимума) функции , но в нашем случае: .
. Задается начальная точка , отличная от точки минимума. Задаются точность (E) и шаг (h).
. Далее выбираем координату (направление), по которой будем
двигаться по функции:
а все остальные координаты фиксируем. И ищем минимальное значение
функции как функцию одной переменной (Х1)
В случае если новое значение функции больше предыдущего, то меняем
шаг на противоположный (h = - h).
3. Когда находим значение координаты, при котором
значение функции минимально, то выбираем другую координату, по которой будем
двигаться по функции:
а все остальные координаты снова фиксируем.
Выбор остановки задан 4 условиями:
1.
.
.
. Число обращений (итераций)
k(f) > kmax
3.2 Результаты
работы программы
Квадратичная функция (Эллипс)
Функция имеет вид
Начальная точка А0 (2, 2).
Таблица 2. Изменение x1 и x2, исходя из поиска min значения квадратичной
функции
№ шага
|
X1
|
X2
|
1
|
2
|
2
|
2
|
1,8
|
2
|
3
|
1,6
|
2
|
4
|
1,4
|
2
|
5
|
1,2
|
2
|
6
|
1
|
2
|
7
|
0,8
|
2
|
8
|
0,6
|
2
|
9
|
0,4
|
2
|
10
|
0,2
|
2
|
11
|
2,78E-16
|
2
|
12
|
2,78E-16
|
1,8
|
13
|
2,78E-16
|
1,6
|
14
|
2,78E-16
|
1,4
|
15
|
2,78E-16
|
1,2
|
16
|
2,78E-16
|
1
|
17
|
2,78E-16
|
0,8
|
18
|
2,78E-16
|
0,6
|
19
|
2,78E-16
|
0,4
|
20
|
2,78E-16
|
0,2
|
21
|
2,78E-16
|
2,78E-16
|
= 21
Функция Розенброка
Функция имеет вид:
Начальная точка А0 (2, 2).
EPSILON = 0.001; %Точность= 0.1; %Шаг
Таблица 3. Изменение x1 и x2, исходя из поиска min значения функции Розенброка
№ шага
|
X1
|
X2
|
1
|
2
|
2
|
2
|
1,9000
|
2
|
3
|
1,8000
|
2
|
4
|
1,7000
|
2
|
5
|
1,6000
|
2
|
6
|
1,5000
|
2
|
7
|
1,4000
|
2
|
N = 7
Начальная точка А0 (1, -4).
EPSILON = 0.001; %Точность= 0.1; %Шаг
Таблица 4. Изменение x1 и x2, исходя из поиска min значения функции
Розенброка
№ шага
|
X1
|
X2
|
1
|
1
|
-4
|
2
|
0,8
|
-4
|
3
|
0,6
|
-4
|
4
|
0,4
|
-4
|
5
|
0,2
|
-4
|
6
|
5,55E-17
|
-4
|
7
|
5,55E-17
|
-3,8
|
8
|
5,55E-17
|
-3,6
|
9
|
5,55E-17
|
-3,4
|
10
|
5,55E-17
|
-3,2
|
11
|
5,55E-17
|
-3
|
12
|
5,55E-17
|
-2,8
|
13
|
5,55E-17
|
-2,6
|
14
|
5,55E-17
|
-2,4
|
15
|
5,55E-17
|
-2,2
|
16
|
5,55E-17
|
-2
|
17
|
5,55E-17
|
-1,8
|
18
|
5,55E-17
|
-1,6
|
19
|
5,55E-17
|
-1,4
|
20
|
5,55E-17
|
-1,2
|
21
|
5,55E-17
|
-1
|
22
|
5,55E-17
|
-0,8
|
23
|
5,55E-17
|
-0,6
|
24
|
5,55E-17
|
-0,4
|
25
|
5,55E-17
|
-0,2
|
26
|
5,55E-17
|
1,28E-15
|
27
|
0,2
|
1,28E-15
|
= 27
4.
Реализация ГСЧ
Создание ГСЧ и поиск модели зашумленного сигнала. В нашем
случае используем метод усечения для создания ГСЧ. Чтобы испытать ГСЧ строим
гистограмму на 10000 точек. Сгенерированные точки должны соответствовать
закону:
. y_max -
максимальное значение Y по модулю из
всех точек графика Y теор.
возьмем , т. к. y_max по модулю больше 500 (1500).
Проверка генератора «Треугольного шума» при N = 10000 и delta_y = 7.5:
График Y теоретического и Y экспериментального (зашумленный график Y теоретического).
Таблица 5. Значения Yэкс в
зависимости от шума
№ точки
|
Yэкс(1), =0,005Yэкс(2), =0,01Yэкс(3), =0,02
|
|
|
1
|
-1506,561
|
-1496,972
|
-1496,153
|
7
|
85,083
|
84,577
|
88,712
|
13
|
1245,416
|
1256,870
|
1264,160
|
19
|
112,760
|
98,695
|
92,571
|
25
|
-939,953
|
-938,000
|
-946,931
|
31
|
-131,166
|
-145,555
|
37
|
775,672
|
777,251
|
796,285
|
43
|
232,010
|
231,750
|
229,776
|
49
|
-547,185
|
-551,959
|
-555,088
|
55
|
-191,216
|
-194,543
|
-181,249
|
61
|
465,503
|
455,118
|
452,909
|
67
|
252,133
|
241,894
|
263,565
|
73
|
-293,631
|
-286,842
|
-295,902
|
79
|
-173,814
|
-186,403
|
-181,508
|
85
|
264,253
|
267,846
|
265,955
|
91
|
218,090
|
216,414
|
215,207
|
97
|
-136,696
|
-134,625
|
-138,823
|
103
|
-141,899
|
-136,791
|
-149,690
|
109
|
151,825
|
139,051
|
159,285
|
115
|
175,463
|
182,452
|
196,729
|
121
|
-50,295
|
-57,314
|
-57,741
|
127
|
-87,542
|
-81,579
|
-99,699
|
133
|
73,835
|
80,696
|
73,237
|
139
|
132,399
|
125,263
|
120,820
|
145
|
3,160
|
-6,364
|
-15,126
|
151
|
-56,997
|
-53,019
|
-57,606
|
157
|
42,379
|
37,533
|
47,935
|
163
|
97,419
|
95,323
|
81,791
|
169
|
22,288
|
23,213
|
28,786
|
175
|
-23,178
|
-25,147
|
-38,311
|
181
|
30,386
|
32,702
|
31,370
|
187
|
67,780
|
72,577
|
95,659
|
193
|
35,731
|
44,098
|
24,397
|
199
|
-7,754
|
0,426
|
-22,380
|
205
|
24,917
|
21,248
|
18,903
|
211
|
60,712
|
55,789
|
54,944
|
217
|
35,090
|
33,137
|
46,121
|
223
|
12,417
|
12,223
|
2,387
|
229
|
19,943
|
27,383
|
9,027
|
235
|
49,462
|
36,241
|
51,913
|
241
|
42,892
|
48,288
|
37,082
|
247
|
23,786
|
18,381
|
17,030
|
253
|
24,232
|
16,265
|
28,930
|
259
|
41,899
|
42,570
|
24,516
|
265
|
33,159
|
38,792
|
45,036
|
271
|
20,799
|
25,678
|
39,845
|
277
|
20,084
|
34,589
|
13,267
|
283
|
33,599
|
47,143
|
29,720
|
289
|
36,889
|
31,634
|
33,448
|
295
|
28,651
|
35,716
|
36,139
|
5.
Нахождение минимума заданной целевой функции
Создадим математическую модель процесса с коэффициентами a1=8 и T=1 и подберем их таким
образом, чтобы при данных значениях целевая функция была минимальна.
Выберем шаг h = 0.2. Точность EPSILON = 0.0001. Количество итераций
ITERATION_AMOUNT = 1000.
Результаты пошагового приближения показаны в таблице 6
«Зависимость CF от значений a1 и T», график CF представлен на рис. 7min = 8,901453min = 44,05068min = 132,7882
Таблица 6. Зависимость CF от значений параметров a1 и T
№ шага
|
A1
|
T
|
CF1 (m=0,005)
|
CF2 (m=0,01)
|
CF 3 (m=0,02)
|
1
|
8
|
1
|
1,884E+12
|
1,884E+12
|
1,884E+12
|
2
|
8
|
1
|
1,884E+12
|
1,884E+12
|
1,884E+12
|
3
|
7,8
|
1
|
1,784E+12
|
1,784E+12
|
1,784E+12
|
4
|
7,6
|
1
|
1,686E+12
|
1,686E+12
|
1,686E+12
|
5
|
7,4
|
1
|
1,591E+12
|
1,591E+12
|
1,591E+12
|
6
|
7,2
|
1
|
1,499E+12
|
1,499E+12
|
1,499E+12
|
7
|
7
|
1
|
1,409E+12
|
1,409E+12
|
1,409E+12
|
8
|
6,8
|
1
|
1,323E+12
|
1,323E+12
|
1,323E+12
|
9
|
6,6
|
1
|
1,239E+12
|
1,239E+12
|
1,239E+12
|
10
|
6,4
|
1
|
1,158E+12
|
1,158E+12
|
1,158E+12
|
11
|
6,2
|
1
|
1,079E+12
|
1,079E+12
|
1,079E+12
|
12
|
6
|
1
|
1,004E+12
|
1,004E+12
|
1,004E+12
|
13
|
5,8
|
1
|
9,309E+11
|
9,309E+11
|
9,309E+11
|
…
|
…
|
…
|
…
|
…
|
…
|
30
|
2,4
|
1
|
1,166E+11
|
1,166E+11
|
1,166E+11
|
31
|
2,2
|
1
|
9,359E+10
|
9,359E+10
|
9,359E+10
|
32
|
2
|
1
|
7,337E+10
|
7,337E+10
|
7,337E+10
|
33
|
1,8
|
1
|
5,592E+10
|
5,592E+10
|
5,592E+10
|
34
|
1,6
|
1
|
4,124E+10
|
4,124E+10
|
4,124E+10
|
35
|
1,4
|
1
|
2,933E+10
|
2,933E+10
|
2,933E+10
|
36
|
1,2
|
1
|
2,019E+10
|
2,019E+10
|
2,019E+10
|
37
|
1
|
1
|
1,381E+10
|
1,381E+10
|
1,381E+10
|
38
|
0,8
|
1
|
1,021E+10
|
1,021E+10
|
1,021E+10
|
39
|
0,6
|
1
|
9,37E+09
|
9,37E+09
|
9,371E+09
|
40
|
0,6
|
1,2
|
586850,911
|
585505,007
|
588790,108
|
41
|
0,6
|
1,4
|
124642,353
|
124498,296
|
125774,153
|
42
|
0,6
|
1,6
|
105470,917
|
105284,132
|
43
|
0,6
|
1,8
|
98001,114
|
98219,831
|
98781,217
|
44
|
0,8
|
1,8
|
94310,316
|
94510,650
|
95055,002
|
45
|
1
|
1,8
|
90793,658
|
90975,608
|
91502,927
|
…
|
…
|
…
|
…
|
…
|
…
|
64
|
4,8
|
1,8
|
57063,664
|
56896,317
|
57100,004
|
65
|
5
|
1,8
|
57029,796
|
56844,065
|
57030,719
|
66
|
5
|
2
|
32987,463
|
33084,055
|
33539,979
|
67
|
5,2
|
2
|
30410,132
|
30504,267
|
30945,503
|
68
|
5,4
|
2
|
27937,650
|
28029,328
|
28455,877
|
69
|
5,6
|
2
|
25570,018
|
25659,237
|
26071,099
|
70
|
5,8
|
2
|
23307,234
|
23393,996
|
23791,170
|
71
|
6
|
2
|
21149,300
|
21233,604
|
21616,090
|
72
|
6,2
|
2
|
19096,214
|
19178,060
|
19545,860
|
73
|
6,4
|
2
|
17147,978
|
17227,366
|
17580,478
|
74
|
6,6
|
2
|
15304,590
|
15381,521
|
15719,945
|
75
|
6,8
|
2
|
13566,052
|
13640,525
|
13964,261
|
76
|
7
|
2
|
11932,362
|
12004,378
|
12313,427
|
77
|
7,2
|
2
|
10403,522
|
10473,079
|
10767,441
|
78
|
7,4
|
2
|
8979,530
|
9046,630
|
9326,304
|
79
|
7,6
|
2
|
7660,388
|
7725,030
|
7990,017
|
80
|
7,8
|
2
|
6446,094
|
6508,279
|
6758,578
|
81
|
8
|
2
|
5336,650
|
5396,377
|
5631,989
|
82
|
8,2
|
2
|
4332,055
|
4389,323
|
4610,248
|
83
|
8,4
|
2
|
3432,308
|
3487,119
|
3693,356
|
84
|
8,6
|
2
|
2637,411
|
2689,764
|
2881,314
|
85
|
8,8
|
2
|
1947,362
|
1997,258
|
2174,120
|
86
|
9
|
2
|
1362,163
|
1409,601
|
1571,776
|
87
|
9,2
|
2
|
881,813
|
926,793
|
1074,280
|
88
|
9,4
|
2
|
506,311
|
548,834
|
681,634
|
89
|
9,6
|
2
|
235,659
|
275,724
|
393,836
|
90
|
9,8
|
2
|
69,856
|
107,463
|
210,888
|
91
|
10
|
2
|
8,901
|
44,051
|
132,788
|
розенброк эйлер моделирование идентификация
Выводы
Ввиду того, что метод покоординатного спуска нулевого
порядка, он довольно неточен. Из-за того, что функция Розенброка имеет овражный
рельеф, дойти до точки минимума не удалось. Точка остановки в этом случае была
довольно далеко от точки минимума. В случае с функцией Эллипса точка минимума
была достигнута за 21 итерацию, при шаге h = 0.2. Несмотря на это
точка минимума заданной целевой функции была достигнута абсолютно точно за 91
итерацию, при шаге h = 0.2, и точностью 0,0001.
Список
источников
1. http://ru.wikipedia.org/wiki/Функция_Розенброка
2. http://nsft.narod.ru/Programming/colmetopt.html
. http://www.mathworks.com
. http://www.exponenta.ru/soft/matlab/potemkin/book/matlab/chapter0/0_0.asp
. http://matlab.exponenta.ru
. Н.Ю.
Золотых. Использование пакета Matlab в научной и учебной работе - Нижний
Новгород, 2006 - 165 с.