Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебн. пособ. Сахарок.doc
Скачиваний:
50
Добавлен:
11.11.2018
Размер:
12.14 Mб
Скачать

В водной коммуникации

По данным вычислений построены графики, приведенные на рис.8.1. Гипотетические измерения гидрологического поста (выход системы) представлены системой точек (условно по одному измерению в сутки), а результаты моделирования нанесены сплошной линией. Как следует из данных расчетов, характеристики отметок уровней гипотетического эксперимента и модели практически совпадают, что свидетельствует о получении высокой степени адекватности.

8.4. Применение нейронной сети для определения химического состава песчано – гравийной смеси

В процессе добычи гравийно – песчаной смеси (нерудных материалов) и подачи ее на классификатор требуется непрерывно определять ее химический состав с помощью специальных датчиков информации. Предположим, что для измерения состава материала используется рентгеновский датчик, с помощью которого определяется содержание в материале компонентов SiO, AlO, FeO, CaO.

Наличие в составе одного из компонентов оказывает влияние на показания датчика, которые также связаны с другими компонентами.

В процессе химического анализа результатов измерений состава порошкообразного материала, производимых по 4 каналам датчика, в лабораторных условиях было установлено «истинное содержание» всех компонентов при соответствующих показаниях датчика. Измерения регистрировались как числа импульсов датчика рентгеновского излучения по каждому измерительному каналу с избирательными свойствами по соответствующему элементу.

Для получения зависимости, связывающей истинное содержание каждого компонента с показаниями одного из 4 каналов, можно использовать нейронную сеть и по табличным данным построить регрессионную модель.

Экспериментально для гравийно–песчаной смеси получены данные, приведенные в таблице 8.1. Их использование позволяет получить функциональные зависимости:

для состава SiO S = f1(Sx,Ax,Fx,Cx);

для состава AlO A = f2(Sx,Ax,Fx,Cx);

для состава FeO F = f3(Sx,Ax,Fx,Cx);

для состава CaO C = f4(Sx,Ax,Fx,Cx).

Таблица 8.1.

Sист (%)

Sx (имп/с)

Aист (%)

Ax (имп/с)

Fист (%)

Fx (имп/с)

Cист (%)

Cx (имп/с)

1

16,59

598,95

1,45

37,45

0,53

335,65

44,09

7185,30

2

32,13

1051,10

1,00

15,20

0,38

211,20

34,41

5739,80

3

1,88

115,50

0,19

8,68

0,18

105,50

50,54

8547,00

4

0,73

28,40

0,30

8,50

0,23

155,60

43,28

3598,50

5

28,39

910,60

6,19

183,70

1,05

738,45

32,97

5205,50

6

33,84

1102,50

6,53

205,58

1,31

999,90

30,31

4680,30

7

19,23

577,80

1,80

41,15

0,45

301,35

43,08

7317,80

8

17,36

611,50

5,11

149,85

0,95

644,85

35,97

5830,30

9

9,59

366,25

3,05

82,90

0,52

358,35

47,21

7721,50

10

15,70

605,40

3,65

96,75

0,63

472,35

41,26

6576,80

11

16,00

617,75

1,31

20,55

0,32

204,35

42,54

6965,30

12

14,17

519,20

2,28

100,02

0,68

457,45

41,42

6750,50

13

16,55

589,80

3,82

112,00

0,69

496,70

41,87

6626,00

Определение состава AlO:

X=[598.95 37.45 335.65 7185.63

1051.10 15.20 211.20 5739.8

115.50 8.68 105.50 8547.0

28.40 8.50 155.60 7598.5

910.60 183.70 738.45 5205.5

1102.50 205.58 999.90 4680.3

577.80 41.15 301.35 7317.8

611.50 149.85 644.85 5830.3

366.25 82.90 358.35 7729.5

605.40 96.75 472.35 6576.8

617.75 20.55 204.35 6965.3

519.20 100.02 457.45 6750.5

589.80 112.00 496.70 6626.0]';

X1=X

Y=[1.45 1.00 0.19 0.30 6.19 6.53 1.8 5.11 3.05 3.65 1.31 2.28 3.82];

s1=max(X1'); s2=min(X1');

PR=[s2;s1]'

net=newff(PR, [5 1], {'tansig' 'purelin'});

Z=sim(net,X1);

i=1:13;

net.trainParam.epochs=3000;

net=train(net,X1,Y);

Z=sim(net,X1);

plot(i,Y,'*',i,Z),grid

xlabel('No of measuring')

ylabel('Parametr AlO')

>> net

net =

Neural Network object:

architecture:

numInputs: 1

numLayers: 2

biasConnect: [1; 1]

inputConnect: [1; 0]

layerConnect: [0 0; 1 0]

outputConnect: [0 1]

targetConnect: [0 1]

numOutputs: 1 (read-only)

numTargets: 1 (read-only)

numInputDelays: 0 (read-only)

numLayerDelays: 0 (read-only)

subobject structures:

inputs: {1x1 cell} of inputs

layers: {2x1 cell} of layers

outputs: {1x2 cell} containing 1 output

targets: {1x2 cell} containing 1 target

biases: {2x1 cell} containing 2 biases

inputWeights: {2x1 cell} containing 1 input weight

layerWeights: {2x2 cell} containing 1 layer weight

functions:

adaptFcn: 'trains'

initFcn: 'initlay'

performFcn: 'mse'

trainFcn: 'trainlm'

parameters:

adaptParam: .passes

initParam: (none)

performParam: (none)

trainParam: .epochs, .goal, .max_fail, .mem_reduc,

.min_grad, .mu, .mu_dec, .mu_inc,

.mu_max, .show, .time

weight and bias values:

IW: {2x1 cell} containing 1 input weight matrix

LW: {2x2 cell} containing 1 layer weight matrix

b: {2x1 cell} containing 2 bias vectors

other:

userdata: (user stuff)

Рис.8. 2 . Результаты моделирования содержания AlO по 3000 циклам обучения

% Решение для 3000 циклов обучения:

>> [Y;Z]

ans =

Columns 1 through 10

1.4500 1.0000 0.1900 0.3000 6.1900 6.5300 1.8000 5.1100 3.0500 3.6500

1.4086 1.3273 0.3430 0.1470 6.0711 6.5687 1.5344 5.0558 2.9223 3.3569

Columns 11 through 13

1.3100 2.2800 3.8200

1.0806 2.9441 3.9203

На рис. 8.2 представлены результаты моделирования содержания AlO в смеси. Экспериментальные точки обозначены звездочками, а модельные значения – в виде точек, соединенных отрезками прямых. Из приведенных расчетных данных для 6000 циклов обучения следует, что модельные значения идентичны эксперименту (графики не приводятся).

Определение состава CaO:

X=[598.95 37.45 335.65 7185.63

1051.10 15.20 211.20 5739.8

115.50 8.68 105.50 8547.0

28.40 8.50 155.60 7598.5

910.60 183.70 738.45 5205.5

1102.50 205.58 999.90 4680.3

577.80 41.15 301.35 7317.8

611.50 149.85 644.85 5830.3

366.25 82.90 358.35 7729.5

605.40 96.75 472.35 6576.8

617.75 20.55 204.35 6965.3

519.20 100.02 457.45 6750.5

589.80 112.00 496.70 6626.0]';

X1=X

Y=[44.09 34.41 50.54 43.28 32.97 30.31 43.08 35.97 47.21 41.26 42.54 41.42 41.87];

s1=max(X1'); s2=min(X1');

PR=[s2;s1]'

net=newff(PR, [5 1], {'tansig' 'purelin'});

Z=sim(net,X1);

i=1:13;

net.trainParam.epochs=3000;

net=train(net,X1,Y);

Z=sim(net,X1);

plot(i,Y,'*',i,Z),grid

xlabel('No of measuring')

ylabel('Parameter CaO, %')

>> net

net =

Neural Network object:

architecture:

numInputs: 1

numLayers: 2

biasConnect: [1; 1]

inputConnect: [1; 0]

layerConnect: [0 0; 1 0]

outputConnect: [0 1]

targetConnect: [0 1]

numOutputs: 1 (read-only)

numTargets: 1 (read-only)

numInputDelays: 0 (read-only)

numLayerDelays: 0 (read-only)

subobject structures:

inputs: {1x1 cell} of inputs

layers: {2x1 cell} of layers

outputs: {1x2 cell} containing 1 output

targets: {1x2 cell} containing 1 target

biases: {2x1 cell} containing 2 biases

inputWeights: {2x1 cell} containing 1 input weight

layerWeights: {2x2 cell} containing 1 layer weight

functions:

adaptFcn: 'trains'

initFcn: 'initlay'

performFcn: 'mse'

trainFcn: 'trainlm'

parameters:

adaptParam: .passes

initParam: (none)

performParam: (none)

Рис.8.3 . Моделирование содержания CaO : 3000 циклов обучения

trainParam: .epochs, .goal, .max_fail, .mem_reduc,

.min_grad, .mu, .mu_dec, .mu_inc,

.mu_max, .show, .time

weight and bias values:

IW: {2x1 cell} containing 1 input weight matrix

LW: {2x2 cell} containing 1 layer weight matrix

b: {2x1 cell} containing 2 bias vectors

other:

userdata: (user stuff)

>> [Y;Z]

ans =

Columns 1 through 10

44.0900 34.4100 50.5400 43.2800 32.9700 30.3100 43.0800 35.9700 47.2100 41.2600

44.0900 34.4100 50.5400 43.2800 32.9700 30.3100 43.0800 35.9700 47.2100 41.2600

Columns 11 through 13

42.5400 41.4200 41.8700

42.5400 41.4200 41.8700

Видно, что модель адекватна объекту. На рис 8.3 эксперимент представлен звездочками.

Определение состава FeO:

X=[598.95 37.45 335.65 7185.63

1051.10 15.20 211.20 5739.8

115.50 8.68 105.50 8547.0

28.40 8.50 155.60 7598.5

910.60 183.70 738.45 5205.5

1102.50 205.58 999.90 4680.3

577.80 41.15 301.35 7317.8

611.50 149.85 644.85 5830.3

366.25 82.90 358.35 7729.5

605.40 96.75 472.35 6576.8

617.75 20.55 204.35 6965.3

519.20 100.02 457.45 6750.5

589.80 112.00 496.70 6626.0]';

X1=X+90

Y=[0.53 0.38 0.18 0.23 1.05 1.31 0.45 0.95 0.52 0.63 0.32 0.68 0.69];

s1=max(X1'); s2=min(X1');

PR=[s2;s1]'

net=newff(PR, [5 1], {'tansig' 'purelin'});

Z=sim(net,X1);

i=1:13;

net.trainParam.epochs=3000;

net=train(net,X1,Y);

Z=sim(net,X1);

plot(i,Y,'*',i,Z),grid

xlabel('No of measuring')

ylabel('Parameter FeO, %')

>> net

net =

Neural Network object:

architecture:

numInputs: 1

numLayers: 2

biasConnect: [1; 1]

inputConnect: [1; 0]

layerConnect: [0 0; 1 0]

outputConnect: [0 1]

targetConnect: [0 1]

numOutputs: 1 (read-only)

numTargets: 1 (read-only)

numInputDelays: 0 (read-only)

numLayerDelays: 0 (read-only)

subobject structures:

inputs: {1x1 cell} of inputs

layers: {2x1 cell} of layers

outputs: {1x2 cell} containing 1 output

targets: {1x2 cell} containing 1 target

biases: {2x1 cell} containing 2 biases

inputWeights: {2x1 cell} containing 1 input weight

layerWeights: {2x2 cell} containing 1 layer weight

functions:

adaptFcn: 'trains'

initFcn: 'initlay'

performFcn: 'mse'

trainFcn: 'trainlm'

parameters:

adaptParam: .passes

initParam: (none)

performParam: (none)

trainParam: .epochs, .goal, .max_fail, .mem_reduc,

.min_grad, .mu, .mu_dec, .mu_inc,

.mu_max, .show, .time

Рис.8.4. Результаты моделирования FeO с помощью сети: 3000 циклов обучения

weight and bias values:

IW: {2x1 cell} containing 1 input weight matrix

LW: {2x2 cell} containing 1 layer weight matrix

b: {2x1 cell} containing 2 bias vectors

other:

userdata: (user stuff)

>> [Y;Z]

ans =

Columns 1 through 10

0.5300 0.3800 0.1800 0.2300 1.0500 1.3100 0.4500 0.9500 0.5200 0.6300

0.5300 0.3800 0.1800 0.2300 1.0496 1.3099 0.4500 0.9508 0.5200 0.6350

Columns 11 through 13

0.3200 0.6800 0.6900

0.3200 0.6688 0.6959

Определение SiO:

X=[598.95 37.45 335.65 7185.63

1051.10 15.20 211.20 5739.8

115.50 8.68 105.50 8547.0

28.40 8.50 155.60 7598.5

910.60 183.70 738.45 5205.5

1102.50 205.58 999.90 4680.3

577.80 41.15 301.35 7317.8

611.50 149.85 644.85 5830.3

366.25 82.90 358.35 7729.5

605.40 96.75 472.35 6576.8

617.75 20.55 204.35 6965.3

519.20 100.02 457.45 6750.5

589.80 112.00 496.70 6626.0]';

X1=X+90

Y=[16.59 32.13 1.88 0.73 28.39 33.84 19.23 17.36 9.59 15.17 16.00 14.17 16.55];

s1=max(X1'); s2=min(X1');

PR=[s2;s1]'

net=newff(PR, [5 1], {'tansig' 'purelin'});

Z=sim(net,X1);

i=1:13;

net.trainParam.epochs=2500;

net=train(net,X1,Y);

Z=sim(net,X1);

plot(i,Y,'*',i,Z),grid

xlabel('No of measuring')

ylabel('Parameter SiO')

>> net

net =

Neural Network object:

architecture:

numInputs: 1

numLayers: 2

biasConnect: [1; 1]

inputConnect: [1; 0]

layerConnect: [0 0; 1 0]

outputConnect: [0 1]

targetConnect: [0 1]

numOutputs: 1 (read-only)

numTargets: 1 (read-only)

numInputDelays: 0 (read-only)

numLayerDelays: 0 (read-only)

subobject structures:

Рис.8.5. Результаты моделирования процесса измерения SiO с помощью нейронной сети

inputs: {1x1 cell} of inputs

layers: {2x1 cell} of layers

outputs: {1x2 cell} containing 1 output

targets: {1x2 cell} containing 1 target

biases: {2x1 cell} containing 2 biases

inputWeights: {2x1 cell} containing 1 input weight

layerWeights: {2x2 cell} containing 1 layer weight

functions:

adaptFcn: 'trains'

initFcn: 'initlay'

performFcn: 'mse'

trainFcn: 'trainlm'

parameters:

adaptParam: .passes

initParam: (none)

performParam: (none)

trainParam: .epochs, .goal, .max_fail, .mem_reduc,

.min_grad, .mu, .mu_dec, .mu_inc,

.mu_max, .show, .time

weight and bias values:

IW: {2x1 cell} containing 1 input weight matrix

LW: {2x2 cell} containing 1 layer weight matrix

b: {2x1 cell} containing 2 bias vectors

other:

userdata: (user stuff)

>> [Y;Z]

ans =

Columns 1 through 10

16.5900 32.1300 1.8800 0.7300 28.3900 33.8400 19.2300 17.3600 9.5900 15.1700

16.5900 31.9284 2.0881 0.6034 28.3469 33.8831 18.7723 17.3599 9.6124 15.8606

Columns 11 through 13

16.0000 14.1700 16.5500

16.6594 12.8063 17.1193

На рис.8.5 представлены результаты моделирования технологического процесса измерения SiO с помощью модели нейронной сети, параметры которой получены при задании 2500 циклов обучения.

Представляет также практический интерес построение сетей для моделирования технологических процессов с малым числом измерений, дополненных данными путем использования сплайн – аппроксимаций. Последние, обладая целым рядом «внутренних» оптимальных свойств (свойством минимальной кривизны и др.), позволяют с высокой степенью адекватности восстанавливать недостающие данные эксперимента в точках, расположенных в промежутках между измерениями.