Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги / Типовые задачи оперативного управления непрерывным производством

..pdf
Скачиваний:
6
Добавлен:
12.11.2023
Размер:
19.07 Mб
Скачать

ционный поиск и реорганизацию данных. Программное обеспечение для работы с терминалами или другими ЭВМ может выполняться совместно с программным обеспечением банков данных. Описание банков данных выходит за пределы тематики данной главы и здесь не приводится.

Отметим, что наряду со сложным программным обеспечением банков данных или даже совместно с ним используются простые системы обслуживания данных, применяемые в различных пакетах программ. Примера­ ми могут служить процедуры обслуживания данных

впакетах программ линейного программирования, в па­ кетах программ для различных инженерных расчетов и

вдругих случаях, когда приходится оперировать с чис­ ловыми данными относительно небольшого объема.

Вразличных функциональных задачах АСУ часто применяются одни и те же элементы программного обеспечения’ (ПО), например программы математиче­ ского программирования, программы статистики, печати таблиц и, кроме того, имеются специальные программы, выполняющие некоторые функции только в этой задаче или организующие обмен данными между задачами.

Возможная взаимосвязь функциональных подсистем АСУ и программного обеспечения показана в табл. 8-1.

Эта таблица служит только для иллюстрации при­ меняемости различного ПО в функциональных задачах АСУ и не претендует на полноту. Например, здесь нет таких задач, как планирование ремонтов, материальнотехнического снабжения и других, которые могут быть

определяющими для некоторых систем. Отметим, что в табл. 8-1 приведено как ПО общего назначения, при­ меняемое для различных целей, в том числе в системах управления, так ПО, специально разработанное для АСУ, например пакет программ контроля и управле­ ния, специальные программы для решения отдельных функциональных задач.

В этой главе рассмотрим вопросы построения ПО для тех задач табл. 8-1, которые связаны со спецификой моделей непрерывных производственных процессов и рассмотрены в гл. 1—6.

Что касается специальных программ для технико-эко­ номического, календарного планирования и оперативно­ го управления, то ограничимся лишь кратким определе­ нием функций этих программ. При составлении табл. 8-1

предполагалось, что эти задачи являются оптимизаци­ онными и решаются методами математического програм­ мирования.

Специальные программы для этих задач осущест­ вляют подготовку информации в виде, необходимом для программ математического программирования, ввод исходных данных и их контроль, представление резуль­ татов в форме, удобной для персонала или необходимой для других задач, управление последовательностью вы­ полнения программ данной функциональной задачи и пр.

Таблица 8-1

 

 

Функциональная подсистема АСУ

Программное обеспечение

технико­

календарно-

оператив­

управления

экономи­

ного управ­

технологи­

 

 

ческого

пГпланйро-

ления и

ческими

 

 

планиро­

вания

учета

процессами

 

 

вания

 

 

 

Программное обеспечение

X

X

X

X

информационной системы или

 

 

 

 

банк данных

 

 

 

X

X

Программное обеспечение

 

 

для работы с терминалами

X

X

X

 

Пакет программ

матема­

 

тического программирования

 

 

 

X

Пакет программ

контроля

 

 

 

и управления

 

 

 

X

 

Пакет программ моделиро­

 

 

 

вания химико-технологичес­

 

 

 

 

ких систем

 

 

X

 

 

Программы имитационного

 

 

 

моделирования

 

 

 

X

 

Программы обработки ста­

 

 

 

тистических данных

X

X

X

 

Программы обмена инфор­

 

мацией и подготовки данных

 

 

 

 

для решения функциональных задач

Например, для многих задач при отсутствии допу­ стимого решения необходимо изменить ограничения и найти новое решение. Алгоритм изменения ограничений основан на специальных свойствах задачи. Для задачи календарного планирования, кроме того, необходимы алгоритмы решения задач большой размерности спе­ циальной структуры, рассмотренные в гл. 6. Такие алго­ ритмы могут не использоваться в обычных пакета* программ математического программирования,

Щ

Различные функциональные задачи АСУ (текущего и календарного планирования, оперативного управле­ ния) могут быть написаны для достаточно широкого круга предприятий или для конкретных условий одного предприятия. Первое представляется предпочтительным, в частности, потому, что условия работы предприятия могут изменяться. Для того чтобы удовлетворить тре­ бованиям ряда предприятий с непрерывными техноло­ гическими процессами, должна быть предусмотрена возможность использования различных моделей агрега­ тов и реализация различных вариантов постановок за­ дач.

В связи с этим безусловно перспективна разработ­ ка программ функциональных задач АСУ на основе ти­ повых моделей. Необходимо также обеспечить возмож­ ность расширения таких программ за счет введения но­ вых типов моделей.

При разработке программ всех функциональных за­ дач АСУ важно определить надлежащие условия и фор­ му обмена данными между различными задачами. Эти условия связаны со стандартизацией массивов информа­ ции, проводимой для достаточно гибкой системы. Стан­ дартизация должна обеспечить возможность разработки задач различными исполнителями. Требования к функ­ циональным задачам АСУ сложные и зачастую противо­ речивые. Они определяются:

а) требованиями к диалогу человек — ЭВМ (упро­ щение данных, вводимых человеком, диагностика и кор­ рекция ошибок, удобство формы представления резуль­ татов, получение результатов в требуемое время и т. п.); б) возможностью решения различного набора функ­

циональных задач на каждом предприятии.

Типовая система программ должна удовлетворять этим требованиям, в частности допускать возможность приспособления к потребностям конкретного предприя­ тия путем изменения состава функциональных задач и их параметров.

Часто на предприятиях предъявляются различные требования к формам представления результатов. Ко­ нечно, нужно многое сделать для стандартизации этих форм, что значительно облегчит внедрение АСУ. Однако определенные отличия форм представления информации отражают различное содержание функций управления на предприятиях. Поэтому в АСУ необходимо преду­

сматривать достаточно легкое изменение выходных форм, получаемых на ЭВМ. Обычно для этого попользуются различные генераторы отчетов, которые входят в паке­ ты программ или представляют собой отдельные эле­ менты ПО.

8-2. Пакеты программ математического программирования

Для решения задач линейного и нелинейного про­ граммирования разработаны пакеты программ и отдель­ ные стандартные программы. Например, известны сле­ дующие пакеты: LPS/360, MPS для ЭВМ серии IBM/360; LP-400 для ЭВМ ICL4-70; FMPS для ЭВМ Sigma-5 фирмы Rank Xerox и др. Пакет программ LPS/360 работает на ЕС ЭВМ с дисковой операционной системой [122].

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

В этом параграфе на примерах рассмотрим только функции и принципы построения пакетов программ ма­ тематического программирования. Современные вычи­ слительные методы решения задач линейного програм­ мирования большой размерности описаны в [33].

Различные пакеты программ линейного программи­ рования с точки зрения методов решения отличаются в основном алгоритмами повторного вычисления обрат­ ной матрицы. Матрица задачи представлена мультипли­ кативно. Повторное вычисление обратной матрицы осу­ ществляется через некоторое число итераций мульти­ пликативного алгоритма симплекс-метода (примерно 50 при 103 переменных и длине слова в 8 байт). При повторном вычислении сокращается количество нену­ левых элементов матрицы, возросшее при предыдущих итерациях и, кроме того, устраняются накопленные по­ грешности округления. Алгоритмы повторения позволя­ ют существенно уменьшить число ненулевых элементов

матрицы [123, 124]. За счет этого значительно сокращается время решения. Для экономии оперативной па­ мяти в ней размещается не вся матрица, а только груп­ па столбцов и преобразования осуществляются для дан­ ной группы. Затем вводится с диска и обрабатывается следующая группа столбцов.

Разработай ряд стандартных программ решения за­ дач линейного программирования. В [125] приведена программа мультипликативного алгоритма с повторе­ нием в Альфа-языке (вариант АЛГОЛА) для БЭСМ-4. В [118] описан пакет программ, в котором реализован мультипликативный алгоритм с повторением для ма­ шины БЭСМ-6.

Набор программ на ФОРТРАНе для решения задач линейного программирования, описанный в [120], вклю­ чает следующие программы для различных задач:

1) модифицированный алгоритм симплекс-метода для сильно заполненной матрицы;

2)модифицированный алгоритм симплекс-метода для слабо заполненной матрицы;

3)симплексный метод с мультипликативным пред­ ставлением обратной матрицы.

Достаточно эффективной является программа [126], основанная на минимизации модифицированной функции Лагранжа [127].

Рассмотрим один из наиболее употребимых пакетов программ линейного программирования LPS-360 (Line­ ar Programming System IBM/360), работающих с ди­ сковой операционной системой (ДОС). Система линей­ ного программирования позволяет решать задачи с 200 строками при объеме оперативной памяти 32 Кбайт и с 1500 строками в варианте 64 Кбайт.

Система включает процедуры, необходимые для ре­ шения и анализа устойчивости полученного решения. Процедуры вызываются операторами управления, кото­ рые определяют последовательность выполнения про­ цедур. Программы написаны на языке ФОРТРАН IV и на Ассемблере.

Задача формулируется в удобной форме. Всем пере­ менным задачи даются наименования. Левая часть каж­ дого ограничения получает наименование и рассматри­ вается как переменная, имеющая верхний и нижний пре­ делы. Исходные данные вводятся с перфокарт и запи­ сываются на диск. На диске могут одновременно хра-

ннться Данные различных задач, каждая из которых может решаться многократно. Имеются обширные воз­ можности обслуживания данных: контроль вводимых данных, добавление, изменение или исключение коэф­ фициентов матрицы, правых частей и целевой функции. Возможно также исключение некоторых ограничений и задание нескольких целевых функций, из которых для каждого варианта решения выбирается определенная целевая функция. Существует процедура объединения различных задач в одну, где каждая задача является

блоком.

Можно существенно сократить время решения зада­ чи, сохранив решение предыдущего варианта данной за­ дачи и использовав его как начальное приближение. Это время указано в четвертом столбце табл. 8-2 и зависит от памяти (64 или 32 Кбайт). Время указано для моде­ ли 30 системы IBM/360 (где К=Ю24).

Пользователи для варианта LPS на 64К должны иметь 50 Кбайт памяти для программы и данных; поль­ зователей варианта 32 Кбайт должны иметь память

26Кбайт.

Каждая процедура LPS выполняет определенную

функцию, которая указана в табл. 8-3.

Данные вводятся после соответствующих процедур и заканчиваются перфокартой END АТА.

Коэффициенты матрицы ограничений вводятся или изменяются в формате, показанном в табл. 8-4.

В аналогичной форме вводятся другие коэффициен­ ты задачи. В конкретной задаче обычно используется только часть процедур, например для ввода данных, ре­ шения и печати результатов нужны процедуры: INPUT, MOVE, OPTIMIZE, LPSOLUTION, END.

Последовательность операторов и данных для этих процедур следующая:

I N P U T

NAME Имя файла в позиция* 15 —22

Данные (коэффициенты целевой функции, элементы

. матрицы ограничений)

END АТА

MOVE

MINIMIZE

Имя переменной в позициях 15— 22

BOUNDS

Имя набора ограничений в позициях 15—22

END АТА

 

OPTIMIZE LPSOLUTION END

Процедуры IF, IFiNOT используются для изменения порядка выполнения программы в зависимости от ре­ зультатов решения. Это .используется, например, для изменения ограничений при отсутствии допустимого ре­ шения и решения нового варианта задачи. Перед нача­ лом работы нужно .выполнить инициализацию — вызвать управляющую программу системы.

Система LPS/360 удобна для решения задач опти­ мального смешения, так как позволяет строить общую матрицу различных задач, объединяемых как блоки с помощью процедуры MERGE. За счет этого можно менять количество приготовляемых продуктов. Другие процедуры обслуживания данных также удобны для корректировки запасов, показателей качества, состава ограничений. Эта система [122] использовалась для ре­ шения задач оптимального смешения бензинов, шихты, пряжи, кормов и составления сплавав.

Система LPS близка к более совершенной системе MPS/360, работающей на ЭВМ с операционной систе­ мой OS/360. Ряд процедур LPS имеется в MPS. С уче­ том некоторых ограничений перфокарты с данными для LPS могут использоваться в MPS.

MPS/360 объединяет три программы:

1)MPS/360, содержащую процедуры для решения задач линейного и сепарабельного программирования;

2)генератор отчетов;

3)программу MARVEL, позволяющую формировать матрицу и печатать отчеты.

ВMPS использован достаточно эффективный алго­ ритм повторения [124], что существенно сокращает время решения задач большой размерности и повышает точность. При соответствующем объеме оперативной па­ мяти предусмотрена возможность решения задач, со­ держащих до 4095 строк. С помощью специальной про­ цедуры осуществляется связь с программами, написан­

ными на языке ФОРТРАН, которые будут выполняться под управлением MPS. Процедуры MPS написаны на Ассемблере,

 

 

 

 

 

 

 

 

 

Таблица

8-2

Число

Число

Приблизительное время, ч

 

 

 

 

 

 

 

 

решения на основе

 

Система LPS

строк

столбцов

первого решения

 

для памяти

 

 

 

начального приб­

 

 

 

 

 

 

 

 

 

 

 

лижения

 

 

 

 

 

 

50

75

0,15—1

 

 

 

0,1—0,4

 

\

64 Кбайт

200

250

1—4

 

 

0,25— 1

 

J

1500

2000

40—75

 

 

 

8— 15

 

 

 

 

 

 

50

75

0,3—1,5

 

 

0,15—0,4

 

J

32 Кбайт

200

250

3—9

 

 

 

1—3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таблица

8-8

Процедура

 

 

 

 

Описание

 

 

 

 

 

INPUT

 

Считывает

 

исходные

данные,

формируе

 

 

файл задачи и вызывает процедуру

 

 

STATISTICS

STATISTICS

 

 

кратко

описывающую

Выдает

таблицу,

 

 

файл задачи

(число

строк,

столбцов,

нену­

SUMMARY

 

левых элементов, верхних и нижних границ)

 

Указывает число элементов в каждой

REVISE

 

строке и столбце

 

 

 

 

 

 

уда­

 

Считывает данные для исправления,

 

 

 

ления или добавления

коэффициентов,

 

вы­

MODIFY

 

зывает STATISTICS

 

 

текущей зада­

 

Модифицирует данные для

 

 

чи, вводя их

с перфокарт,

но

не изменяет

MERGE

 

исходные данные в файле

 

 

 

 

 

 

Объединяет задачи, ранее введенные на

 

 

диск в новую блочную

задачу,

которую за­

BCDOUT

 

писывает в новый файл на диске

 

 

 

 

Печатает или перфорирует данные из фай­

DELETE

 

ла задачи

 

 

 

 

 

 

 

 

 

 

 

Удаляет с диска один или несколько файлов

EDIT

 

Располагает

последовательно

на

диске

 

 

файлы

текущих задач,

освобождая место,

 

 

занятое уничтоженными задачами,

вызывает

DICTIONARY

DICTIONARY

наименования файлов задач,

Перечисляет

TITLE

 

хранящихся на диске

 

 

 

 

 

 

 

 

Дает заголовок из 80 символов выходным

MOVE

 

отчетам

 

 

 

 

изменяет

параметры

 

Устанавливает или

 

 

задачи

и

системы,

восстанавливает изме­

 

 

ненный файл, указывает переменные,

 

кото­

 

 

рые нужно

 

минимизировать

(максимизиро­

 

 

вать),

называет набор ограничений, изменяет

 

 

устройства ввода-вывода, определяет пара­

 

 

метры управления процедурой

 

 

 

 

 

 

LPPARAMETRJÇ

 

 

 

 

 

 

 

т

Процедура

OPTIMIZE

LPSOLUTION

RESUME

L P A N A L Y SIS

LPPARAMETRIC

S A V E S O L U T IO N

RESTORE

PUNCH

INSERT

IFNOT

IF

END

Описание

Находит решение задачи линейного про­ граммирования

Вызывает OPTIMIZE, если оптимизация еще не проводилась, и печатает полученное решение

Обеспечивает возможность возобновления OPTIMIZE после прерывания

Вызывает OPTIMIZE, если оптимизация еще не проводилась, и печатает две таб­ лицы. Первая содержит список переменных, достигших предельного значения (верхнего или нижнего), и изменение целевой функции, при изменении переменных. Вторая таблица содержит список переменных, не достигших предельных значений

Выполняет оптимизацию с выдачей таблиц LPSOLUTION для различных вариантов ис­ ходных данных

Сохраняет решение текущей задачи Использует значения переменных, записан­

ные процедурами SAVESOLUTION или INSERT в качестве начального значения

Перфорирует текущее решение Вводит начальные значения переменных с

перфокарт и формирует файл Пропускает часть или всю последователь­

ность оставшихся процедур, если условие не выполнено

Пропускает часть или всю последователь­ ность оставшихся процедур, если условие выполнено

Прекращает работу LPS и возвращает уп­ равление супервизору DOS

Таблица 8-4

Позиции на перфокарте Содержание

5— 12

Имя

переменной,

соответствующей

 

столбцу

 

15— 22

Имя строки

 

25— 36

Значение коэффициента

 

Другие

Пустые

 

 

Программа MÀRVËL позволяет производить опера­ ции с массивами, в том числе с элементами матрицы ограничений, описывать массивы и выполнять операции ввода-вывода. Ряд предложений MARVEL аналогичен принятым в ФОРТРАНе. С помощью этой программы удобно выполнять операции ввода-вывода и преобразо­ вания с массивами коэффициентов.

Наряду с применением для задач планирования и оперативного управления универсальных пакетов про­ грамм математического программирования разрабатыва­ лись специальные пакеты, например система [119].

Эта система программ разработана для оптимиза­ ции планов производства в нефтеперерабатывающей промышленности. Информация вводится в форме, удоб­ ной для технологов и экономистов. Специальные пакеты программ разрабатывались и для других вычислитель­ ных систем. На машинах IBM/370 для планирования работы нефтеперерабатывающего завода с учетом раз­ личных вариантов использования резервуаров существу­ ет пакет программы CPPS (Continuous Process Plant Scheduling). В этом пакете с помощью программ ли­ нейного программирования решаются только задачи оптимального смешения нефтепродуктов.

Разработка специализированных пакетов, по-видимо­ му, весьма перспективна, если она будет основана на

типовых моделях технологических

установок.

В связи

с этим важна типизация моделей

агрегатов

(см. гл.

2, 4).

 

 

8-3. Программное обеспечение для контроля и управления в реальном времени и организация связи с задачами оптимизации

Существует ряд функциональных задач контроля и управления, которые решаются в реальном масштабе времени: сбор данных от аналоговых и дискретных датчиков, первичная обработка (мас­ штабирование, линеаризация), контроль предельных значений, реги­ страция, непосредственное цифровое управление и др. На отдельных технологических процессах для решения перечисленных задач обычно используются средние или мини-ЭВМ, которые могут быть связаны с более мощной машиной или между собой.

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

В результате сбора и обработки данных измерений определя­ ются величины, которые должны быть доступны для ряда про­

Соседние файлы в папке книги