- •Моделирование в агроинженерии
- •Содержание
- •Глава 1. Модели и моделирование 9
- •Глава 2. Получение и обработка данных для моделирования 22
- •Глава 3. Принципы построения математических моделей 49
- •Глава 4. Математическое программирование 69
- •Глава 5. Основы имитационного моделирования 77
- •Глава 7. Моделирование электротехнических устройств и систем в SimPowerSystems 105
- •Глава 8. Нейронные сети 126
- •Глава 9. Дискретно - событийное моделирование в системе AnyLogic 149
- •Глава 10. Использование моделей для исследования явлений и объектов в агроинженерии 169
- •Введение
- •Глава 1. Модели и моделирование
- •Определение и понятие системы и ее элементов
- •Понятие модели и моделирования. Классификация моделей
- •Глава 2. Получение и обработка данных для моделирования
- •2.1. Получение данных
- •2.2. Детерминированные и стохастические исходные данные
- •2.3. Обработка результатов измерений одной случайной величины
- •2.4. Аппроксимация исходных данных
- •2.5. Аппроксимация данных функциональными зависимостями
- •2.6. Функции роста
- •Алгоритмические (логические) функции
- •2.8. Системы уравнений для описания моделей черного ящика
- •2.9. Аппроксимация данных регрессионными зависимостями
- •Глава 3. Принципы построения математических моделей
- •3.1. Принципы выбора структуры модели
- •3.2. Процедура построения математической модели и ее исследования
- •3.3. Обследование объекта, построение сценария его функционирования и концептуальной модели
- •3.4. Численное представление модели
- •3.5. Проверка и оценивание моделей
- •3.6. Анализ чувствительности, ранжировка параметров и упрощение модели
- •3.7. Принципы оценки адекватности и точности модели
- •3.8. Планирование модельного эксперимента
- •3.9. Обработка результатов спланированного эксперимента
- •Глава 4. Математическое программирование
- •4.1. Основные понятия линейного программирования
- •4.2. Динамическое программирование
- •4.3. Сетевое представление процессов. Задача о кратчайшем пути
- •Глава 5. Основы имитационного моделирования
- •5.1. Имитационное моделирование и его этапы
- •5.2. Понятие моделирующего алгоритма процесса
- •5.3. Элементы теории массового обслуживан
- •5.4. Входящий поток требований
- •5.5. Генерация случайных чисел
- •5.6. Элементы имитационной модели
- •Средства описания поведения объектов
- •5.8. Имитационное моделирование стохастических объектов
- •Глава 6. Средства реализации математических моделей в среде моделирования matlab
- •6.1. Общие сведения о среде моделирования Matlab
- •6.2. Среда программирования Simulink - приложение к пакету Matlab
- •6.3. Этапы построения модели в подсистеме Simulink
- •Глава 7. Моделирование электротехнических устройств и систем в SimPowerSystems
- •7.1. Библиотека блоков SimPowerSystems
- •7.2. Содержание библиотеки SimPowerSystems
- •Дополнительные возможности SimPowerSystems
- •7.4. Алгоритм расчета SimPowerSystem-модели
- •Глава 8. Нейронные сети
- •8.1. Основы теории нейронных сетей
- •8.2. Нейроны и архитектура сети в пакете Neural Network Toolbox пакета Matlab
- •8.3. Создание, инициализация и моделирование сети
- •8.4. Обучение нейронных сетей
- •Xlabe1(''), у label ( 'Выходы a(I)'), grid
- •Xlabel(''), ylabel('Beca входов w(I)'), grid
- •Xlabel(' Циклы'), ylabel('Ошибка'),grid
- •8.5. Типы сетей, реализуемых в ппп Neural Network Toolbox
- •Глава 9. Дискретно - событийное моделирование в системе AnyLogic
- •9.1. Основные определения языка моделирования AnyLogic
- •9.2. Создание модели
- •9.3. Запуск и просмотр модели
- •9.4. Анимация
- •9.5. Эксперименты
- •9.6. Отладка модели
- •9.7. Стохастическое моделирование
- •Глава 10. Использование моделей для исследования явлений и объектов в агроинженерии
- •10.1. Аналитическое моделирование полета зерна с транспортера
- •10.2. Модель борьбы “хищник - жертва” Лотки и Вольтерра
- •10.3. Модель развития популяции на основе матрицы Лесли
- •10.4. Решение задач линейного программирования
- •10.4.1. Оптимизации количества удобрений, вносимых в поле
- •10.4.2. Задача о наилучшем использовании ресурсов
- •10.4.4. Транспортная задача
- •10.5. Дискретно-событийная модель процесса уборки плодов в системе Anylogic
- •10.6. Моделирование работы дизель генераторной установки на общую сеть в системе SimPowerSystems
- •6.1. Sources - источники сигналов.
- •6.2. Sinks - приемники сигналов.
- •9.1. Общие принципы работы с библиотекой
- •9.2. Заявки
- •9.3. Правила пересылки заявок
- •9.4. Работа с содержимым заявки
- •9.5. Обработка заявок
- •9.6. Работа с ресурсами
- •9.7. Транспортные сети
- •9.8. Движение
- •9.9. Транспортировка
- •9.10. Анимация объектов дискретно-событийных моделей
- •Литература
Xlabe1(''), у label ( 'Выходы a(I)'), grid
subplot(3,1,2)
plot(0:30,[[0 0]; Wb'k')
Xlabel(''), ylabel('Beca входов w(I)'), grid
subplot(3,1,3)
for i=l:30, E(i) = mse(e{i}); end
semilogy(1:30, E, '+k')
Xlabel(' Циклы'), ylabel('Ошибка'),grid
Условие окончания адаптации определяется погрешностью приближения к целевому вектору; в данном случае мерой такой погрешности является среднеквад-ратичная ошибка rnse(e{i}), которая должна быть меньше заданной. В оптимальном случае она должна приближаться к нулю.
Групповой способ адаптации. Рассмотрим случай группового представления обучающей последовательности. В этом случае входы и целевой вектор формиру-ются в виде массива формата double.
Р = [-1 -1/3 1/2 1/6; 1 1/4 0 2/3];
Т = [-1 -5/12 11];
Используется та же модель статической сети с теми же требованиями к погре-шности адаптации. Основной цикл адаптации сети с заданной погрешностью выглядит следующим образом:
% Групповой способ адаптации сети с входами Р и целями Т
net3 = newlin([-l 1;-1 1],1, 0, 0.2);
net3.IW{l} = [0 0]; % Присваивание начальных весов
net3.b{l} = 0; % Присваивание начального смещения
net3.inputWeights{l,1}.learnParam.lr = 0.2;
Р = [-1 -1/3 1/2 1/6; 1 1/4 0 2/3];
Т = [-1 -5/12 1 1];
ЕЕ = 10; i=l;
while ЕЕ > 0.0017176
[net3,a{i},e{i},pf] = adapt(net3,Р,Т);
W(i,:) = net3.IW{l,l};
ЕЕ = mse(e{i});
ее(i)= ЕЕ;
i « i+1;
end
Адаптация динамических сетей. Эти сети характеризуются наличием линий задержки, и для них последовательное представление входов является наиболее естественным.
Последовательный способ. Обратимся к линейной модели нейронной сети с одним входом и одним элементом запаздывания. Установим начальные условия на линии задержки, а также для весов и смещения равными 0, а параметр скорости настройки равным 0.5:
net s newlin ([-l 1], 1, [0 13], 0.5);
Pi = {0}; % Начальное условие для элемента запаздывания
net.IW{l} = [0 0]; % Значения весов
net.biasConnect = 0; % Значение смещения
Чтобы применить последовательный способ адаптации, представим входы и цели как массивы ячеек:
Р = {-1/2 1/3 1/5 1/4}; % Вектор входа
Т * { -1 1/6 11/15 7/10}; % Вектор цели
Пусть необходимо приспособить сеть для формирования нужного выхода на основе следующего соотношения:
y(t) = 2p(t) + p(t-l).
Используем для этой цели М-функцию adapt и основной цикл адаптации сети с заданной погрешностью, как это уже было описано выше:
ЕЕ = 10; i = 1;
while ЕЕ > 0.0001
[net,a{i},e{i},pf] = adapt(net,P,T);
W(i, : )=net.IW{l,l};
ЕЕ = mse(e{i});
ее (i) = ЕЕ ;
i = i+1;
end
Групповой способ представления обучающего множества для адаптации динамических систем не применяется.
Обучение нейронных сетей.
Статические сети. Воспользуемся рассмотренной выше моделью однослой-ной линейной сети с двухэлементным вектором входа, значения которого находят-ся в интервале [-1 1], и нулевым параметром скорости настройки, как это было для случая адаптации:
% Формирование однослойной статической линейной сети с двумя входами
% и нулевым параметром скорости настройки
net = newlin([-l 1;-1 13,1, 0, 0);
net.IW{l} = [0 0]; % Значения весов
net.b{l} = 0; % Значения смещений
Требуется обучить параметры сети так, чтобы она формировала линейную зависимость вида
t = 2p1+p2.
Последовательный способ. Для этого представим обучающую последователь-ность в виде массивов ячеек:
Р = {[-1; 13 С-1/3; 1/4] [1/2; 0] [1/6; 2/3]}; % Массив векторов входа
Т = {-1 -5/12 11};% Массив векторов цели
Теперь все готово к обучению сети. Будем обучать ее с помощью функции train в течение 30 циклов.
В этом случае для обучения и настройки параметров сети используются функции trainwb и learnwh соответственно.
% Параметр скорости настройки весов
net.inputWeights{l,1}.learnParam.lr = 0.2;
net-biases{1}.learnParam.lr = 0; % Параметр скорости настройки смещений
net.trainParam.epochs =30; % Число циклов обучения
netl = train(net,P,T);
Параметры сети после обучения равны следующим значениям:
w = netl.iw{l}
у = sim(netl, P)
ЕЕ = mse([y{:}]-[T{:}])
Это тот же самый результат, который был получен для группового способа адаптации с использованием функции adapt.
Групповой способ. Для этого представим обучающую последовательность в виде массивов формата double array:
Р = [-1 -1/3 1/2 1/6; 1 1/4 0 2/3];
Т = [-1 -5/12 1 1];
netl = train(net,P,T);
Параметры сети после обучения равны следующим значениям:
w = netl.iwd}
у = sim(netl/ P)
ЕЕ = mse(y-T)
Динамические сети. Обучение динамических сетей выполняется аналогичным образом с использованием метода train.
