Проект для экстремальной системы, использующей для поиска экстремума по двум координатам градиентный метод. Поверхность поиска и возмущающее воздействие моделируются математически. Проект для SCADA‑системы GeniDAQ, страница 2

В проекте не используется Main script, так как управление задачами реализовано в самих задачах, а начальные условия задаются в pre-task скрипте задачи 1.

Конфигурацию блоков можно посмотреть в самом проекте.

3.2. Проектирование задач

В проекте использовалось две задачи. Одна задача (task1) для реализации алгоритма поиска экстремума функции, вторая (task2) для переключения между окнами отображения, а так же для управления выполнением первой задачи.

Task1.

В состав задачи входят 3 Basic-скрипта.

-SCR1. В этом скрипте реализуется основной алгоритм программы. На выходные каналы блока скрипта выдаются следующие величины: 0: текущее значение координаты X; 1: текущее значение координаты Y; 2: значение функции; 3: задействована ли помеха (0/1); 6: величина помехи по координате Х; 7: величина помехи по координате Y.

-SCR2. Скрипт для осуществления чередования действий при каждом последующем запуске задачи. На один трёх выходных каналов (0,1,2) подаётся единица, чтобы знать, какой шаг алгоритма должен выполнить скрипт SCR1.

-SCR4. Вспомогательный скрипт для вывода значений величин в каналы: 0: величина пробного шага по координате X; 1: величина пробного шага по координате Y; 2: величина рабочего шага;  3: величина коэффициента Kx в математической модели; 4: величина коэффициента Ку; 5: величина периода помехи по координате Х; 6: величина периода помехи по координате Y.

Имеется pre-task script. Он выполняется каждый раз перед запуском задачи. В нём идет связь переменных типа tag с элементами управления окна отображения и присвоение им начальных значений. Так же в этом скрипте выполняется проверка введенных данных на корректность и выполняется анализ помехи для расчета пробного и рабочего шага при оптимальном управлении – по сути задание начальных условий.

Post-task script в задаче не используется, так как не нужно сбрасывать значения переменных при остановке задачи.

Task2.

В состав задачи входят 2 блока tag  и 1 Basic-скрипт.

-Блоки tag связывают задачу task2 с кнопками переключения окон отображения disp1 и disp2.

-SCR3. Этот скрипт останавливает задачу task1 при переходе в окно задания начальных условий и параметров, а также запускает её при нажатии в этом окне кнопки «запуск».

3.3. Проектирование окон отображения

В проекте используется 2 окна отображения disp1 и disp2. Первое окно используется для ввода параметров моделируемой системы,  начальных условий и настройки, второе окно – для отображения процесса моделирования и мониторинга соответствующих величин. Переключение между окнами осуществляется при помощи кнопок, описанных выше.

Disp1.

Позволяет указать следующие параметры моделирования системы:

- Рабочий шаг

-Хпробное

-Yпробное

-Х0

-Y0

-Kx

-Ky

-Коэффициент оптимального управления (по умолчанию 1)

-Период выполнения задачи task1

-Амплитуда помехи (для каждой координаты)

-Период помехи (для каждой координаты)

-Включить помеху (кнопка)

-Включить оптимальное управление (кнопка)

При нажатии на кнопку «запуск» происходит переход в окно отображения disp2.

Disp2.

В этом окне отображается следующая информация:

-На графиках помех: Сама помеха, изменяющаяся во времени, а так же текущая точка экстремума функции в соответствии с градиентным методом.

-На остальных элементах отображения содержится информация, которая была введена в окне disp1. Кроме этого имеются несколько дополнительных индикаторов:

-Текущее числовое значение функции

-Текущее значение функции (график)

С помощью кнопки «переход к заданию условий» осуществляется останов задачи task1 и переход к окну disp1 для корректировки параметров системы.

3.4. Общая структура и обоснование используемых компонентов VBA‑программы проекта

Общий алгоритм программы приведен на рисунке.

Рис. Общий алгоритм программы

В программе использовались  стандартные операции и компоненты, которые были пройдены в лекционном курсе по SCADA-системам. Текст программы можно найти в файле проекта.

4. Программа и методика испытаний проекта

4.1. Тестирование ошибочного задания исходных данных

На большинство исходных параметров ограничения накладываются с помощью настроек блока Numeric Control Display. После этого уже невозможно присвоить, например, амплитуде помехи отрицательное значение. Программно проверяются только значения элементов Кх и Ky, а также величины периода помехи. Если значения были введены некорректно, то при нажатии на кнопку «запуск» появится сообщение об ошибке и значение неверного параметра автоматически исправится на ближайшее допустимое (рис. 3,4).

Рис.3. Кх и Ку были разных знаков

Рис.4. Значение Тх было меньше минимально допустимого

4.2. Тестирование работы проекта

Проверка правильности работы алгоритма.

Выберем режим без помехи, начальные условия (5, 5), величина рабочего шага  1.  Алгоритм должен придти к экстремуму за  шагов. При периоде выполнения задачи task1 равным 1 секунде, это будет секунда (каждый шаг выполняется за 3 цикла задачи). Рис. 5.

 

Рис.5. Нахождение экстремума за 21 секунду.

Проверка функционирования алгоритма в условии помех. Рис.6.

Рис.6. Функционирование алгоритма в условии помех.

Проверка оптимального режима. Рис.7.

Рис.7. Функционирование алгоритма в оптимальном режиме.

Как видно по рисункам 6 и 7, в оптимальном режиме координаты X и Y лучше отслеживают помеху.