Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб_работа_МС_2_07.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
3.69 Mб
Скачать

3.3. Использование среды Excel для автоматизации составления планов дфэ и командного файла

Для ознакомления с реализацией этой задачи следует открыть файл Excel с именем ДФЭ_20_11. На листе 1 в правой его части имеется кнопка “Пуск”, запускающая программу генерации командного файла, и 11 строк, состоящих каждая из 9 элементов управления типа CheckBox. Перед каждой строкой имеется надпись, предлагающая выбрать с помощью этих элементов произвольные наборы из 9 основных факторов для получения 11 ГС для ввода в план ДФЭ 220-11 факторов с х10 по х20. Здесь к числу 9 основных факторов отнесены: х1 – число заявок 1-го типа, х2….х6 соответственно число заявок со 2-го по 6-й тип, х7 = obs11 (среднее время обслуживания в узле 1 заявки 1-го типа), х8 = obs14 (среднее время обслуживания в узле 1 заявки 4-го типа), х9 = obs22 (среднее время обслуживания в узле 2 заявки 2-го типа). Столбцы значений 9 основных факторов всегда комбинируются по плану ПФЭ 29. Эта неизменяемая часть плана заполняется один раз вручную по методу, описанному выше в разделе 3.1. Комбинации значений остальных 11 факторов зависят от выбора ГС, поэтому правая часть плана будет автоматически изменяться, а вместе с ней и получаемые данные при реализации каждого варианта плана ДФЭ. Перечислим эти остальные варьируемые факторы: х10 =obs25 (среднее время обслуживания в узле 2 заявки 5-го типа), х11 = obs32 (среднее время обслуживания в узле 3 заявки 2-го типа), х12 = obs35 (среднее время обслуживания в узле 3 заявки 5-го типа), х13 = res1i2 (среднее время безотказной работы – ресурс – оборудования в узлах 1 и 2), х14 = res3 (то же в 3-ем узле), х15 = trep1i2 (время ремонта оборудования в узах 1 и 2), х16 = trep3 (то же в узле 3), х17 = tipo (время погрузки тележки), х18 = chisloKanalov_uzle1 (число каналов в узле 1), х19 = chisloKanalov_uzle2 (число каналов в узле 2), х20 = chisloKanalov_uzle3 (число каналов в узле 3). На самом деле в программе ИМ используется 34 входных фактора, но с целью сокращения количества комбинаций не все они изменялись в ходе экспериментов. Будем полагать, что не изменявшиеся факторы малозначимы на фоне основных 20 и не интересуют нас в данный момент.

При нажатии на кнопку “Пуск” запускается программа-макрос, текст которой можно посмотреть в редакторе Visual Basic. В самом ее начале в цикле по строкам поочередно заполняются столбцы правой части плана с 10 по 20 на листе 1. Кодированное значение в каждой ячейке получают путем перемножения кодированных значений, возвращаемых некоторым подмножеством функций, выбранных с помощью соответствующих элементов СheckBox. Имена функций показывают, значение какой кодированной переменной из ядра плана нужно взять в данной i-ой строке и в какой столбец поместить результат перемножения. Например, функция SetZ1_ValueForObs25(i) должна взять значение из i-ой строки столбца для числа заявок первого типа Z1. Использоваться оно будет при вычислении i-го значения в столбце для переменной х10 = Obs25. Событие выбора функции, входящей в данное ГС, описывается в макросе кодом:

Private Sub Z1_Obs25_Click()

End Sub

Здесь z1_Obs25 это свойство Name этого CheckBox, по которому функция SetZ1_ValueForObs25 проверяет, что она выбрана, а надпись х1 около окошечка на листе1 – это свойство Caption. Приведем текст функции:

Function SetZ1_ValueForObs25(i) As Integer

If z1_Obs25 = True Then

SetZ1_ValueForObs25 = Worksheets("Лист1").Cells(i, 1)

Else

SetZ1_ValueForObs25 = 1

End If

End Function

Если данный CheckBox выбран (True), то функция возвращает значение, взятое на листе1 из ячейки в строке i 1-го столбца (соответствующего в данном случае переменной z1 ядра плана), т.е. +1 или -1. В противном случае функция всегда возвращает 1, что не влияет на результат перемножения значений других функций (не участвует в ГС). Аналогично возвращают свои значения и другие функции, входящие в данное ГС. Их алгебраическое произведение вносится в i-ую строку столбца переменной, в данном случае obs25 = х10. Таким путем заполняется кодированными значениями правая часть плана ДФЭ 220-11 на листе1.

Следующей задачей макроса является перевод кодированных значений в полученном плане в соответствующие натуральные значения плана на листе 2, с которыми должен проводиться сам эксперимент. Для этого надо предварительно выбрать для каждого фактора натуральные значения верхнего и нижнего уровня. Эти значения берутся вначале приближенно, а затем могут уточняться прямо в тексте программы для получения приемлемых результатов моделирования. В нашем случае будем считать эти значения заданными в макросе. Задача выполняется в цикле для всех 512 строк и 20 столбцов (см. результат на Листе2).

Последней задачей автоматизации является составление командного файла на языке CLIPS с использованием той же программы макроса. Эта задача реализуется в цикле по i с шагом 24. Именно столько строк требуется в командном файле для описания одного эксперимента, которое включает в себя: строку ;j, где j- № эксперимента; строки с командами (reset) и (seed(round(time))), 20 строк, начинающихся с функции bind для присвоения значения соответствующим переменным, которые берутся из k-ой строки плана на Листе2 из соответствующих столбцов (где k – счетчик строк плана эксперимента), и строки с командой (run). В результате получаем заготовку командного файла в табличной форме на листе3. Далее надо выделить столбец 1, где содержится вся полученная информация, и скопировать его в среду Блокнот или WordPad (Блокнот может не обеспечить нужного объема памяти). Но перед этим нужно преобразовать формат всех чисел, заменив разделитель в виде запятой, принятой в Excel, на точку, принятую в среде CLIPS. (В Excel эта операция выполняется намного быстрее, чем в Блокноте). Далее нужно вставить в начало файла стандартные строки с указанием имен выходного файла и файла модели. В конец нужно добавить выходные строки и команду (close). Далее нужно сохранить файл, указав расширение .bat, которое переведет файл в разряд пакетных файлов с изменением соответствующей пиктограммы. Командный файл должен быть помещен в ту же папку, где находится файл CLIPSWin.exe, файл модели типа model.clp и выходной файл data.xml (создается программой модели при первом ее запуске).