Решение задач линейного программирования в программной среде MathCad

Лабораторная работа по предмету «Программирование»
Информация о работе
  • Тема: Решение задач линейного программирования в программной среде MathCad
  • Количество скачиваний: 11
  • Тип: Лабораторная работа
  • Предмет: Программирование
  • Количество страниц: 6
  • Язык работы: Русский язык
  • Дата загрузки: 2015-11-27 06:04:19
  • Размер файла: 40.11 кб
Помогла работа? Поделись ссылкой
Информация о документе

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

Если Вы являетесь автором текста представленного на данной странице и не хотите чтобы он был размешён на нашем сайте напишите об этом перейдя по ссылке: «Правообладателям»

Можно ли скачать документ с работой

Да, скачать документ можно бесплатно, без регистрации перейдя по ссылке:

Лабораторная работа №4

 

Цели работы: Решение задач линейного программирования в программной среде MathCad. Решение задач оперативного планирования химического производства Решение задачи компаундирования

 

Задание 1. Оперативное планирование аммиачно-азотного производства

Рассмотрим задачу оперативного планирования аммиачно-азотного производства. Необходимо рассчитать суточный выпуск продукции цехами аммиачно-азотного производства азотно-тукового комбината при условии достижения минимальных затрат на производство, соблюдении балансовой связи между цехами и ограничений, наложенных на объем производства некоторых цехов.

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

 

 

Аммиак

I, II, III цехи
слабой
азотной кислоты

Аммиачная вода

Карбамид

Нашатырный спирт

Наливной
аммиак
в баллонах

Сульфамат
аммония

Аммиачная селитра

Нитрит натрия

Натриевая селитра

Нитрофоска

Рис. 1

 

 

Материальные и энергетические потоки рассматриваемого производства характеризуются нормами расхода на 1 т полупродуктов и готовой продукции (для упрощения расчетов некоторые виды сырья не учитываются). Нормы представлены на рис. 2. Необходимо выполнять основные требования по выпуску продукции (см. рис. 3), и при этом не превышать запасы сырья и мощности производства (рис. 4 и 5).

 

 

 

Цех

 

аммиака

аммиачной воды

налива аммиака

нашатырного спирта

карбамида

сульфамата аммония

азотная кислота, цех I

азотная кислота, цех II

азотная кислота, цех III

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

нитрофоски

 

  1.  
  1.  
  1.  
  1.  
  1.  
  1.  
  1.  
  1.  
  1.  
  1.  
  1.  

аммиак

 

1,03

1,05

0,245

0,603

0,8

0,2946

0,292

0,29

0,212

0,086

природный газ

1000

 

 

 

 

 

 

 

 

 

 

электроэнергии

1800

5

10

25

230

450

67

127

236

15,7

160

пар

10

 

 

 

2,1

0,22

 

 

 

0,44

0,1

вода

100

 

 

 

 

 

10

10

10

 

 

апатит

 

 

 

 

 

 

 

 

 

 

0,234

азотная кислота

 

 

 

 

 

 

 

 

 

0,78

 

себестоимость 1 т

48

49,54

50,6

12,26

38,91

47,77

15,6

16,6

18,7

24,46

14,51

Рис. 2. Расходные коэффициенты сырья, полуфабрикатов и энергии
на 1 т производимой продукции

 

 

Продукция

Требование на суточный выпуск продукции

суммарный выпуск азотной кислоты по цехам

3795

нашатырный спирт

12

карбамид

1050

сульфамат аммония

400

аммиачная селитра

4395

Рис. 3. Требования на суточный выпуск продукции

 

 

Цехи азотной кислоты

Прочие цехи

эл. энергия

аммиак

апатит

пар

эл. энергия

вода

550275

1109,2

257,4

62000

9460000

600000

Рис. 4. Расход на производство

 

 

 

 

 

 

 

Цех

Мощность

  1.  

аммиака

4600

  1.  

аммиачной воды

1320

  1.  

налива аммиака

36

  1.  

нашатырного спирта

15

  1.  

карбамида

1200

  1.  

сульфамата аммония

440

  1.  

азотная кислота, цех I

945

  1.  

азотная кислота, цех II

2200

  1.  

азотная кислота, цех III

1250

  1.  

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

4865

  1.  

нитрофоски

1000

Рис. 5. Мощности цехов

 

Для решения задачи:

1.Создать новый документ .

2.Введем массив Р, переменных, обозначающих предельные мощности цехов. Для этого ввести новую переменную Р как одномерный массив (состоящий из 11 строк по числу цехов и 1 столбца) со значениями из таблицы рис. 5. Для создания массива использовать шаблон матрицы панели Vector and Matrix

3.Введем матрицу расходных коэффициентов. Для этого ввести переменную  , которой присвоить в качестве значения матрицу из 8 строк и 11 столбцов. Значения элементов матрицы взять согласно рис. 2

 

4.Введем массив Р поисковых переменных, обозначающих расчетные мощности цехов. Для этого ввести новую переменную Р как одномерный массив (состоящий из 11 строк по числу цехов и 1 столбца) с нулевыми значениями

< >Сформируем целевую функцию. Целевой функцией являются затраты на производство. ,                                                                                                         (1)

 

где i – номер цеха, pi – производительность i-го цеха (поисковые переменные), ci – себестоимость продукции i-го цеха (последняя строка матрицы Norm).

Для формирования целевой функции создадим функцию пользователя с именем Zatr. Аргументами функции будут поисковые переменные Р

< >Теперь можно перейти к формированию задачи оптимизации. Поскольку в задаче есть ограничения, то необходимо сформировать блок ограничений.Ниже слова given начнем формировать ограничения задачи.Сначала сформируем требования по цехам азотной кислоты:

 

< >Далее сформируем

 

ограничение на расход аммиака по цехам азотной кислоты(рис. 4)

При вводе левой части ограничения используйте шаблон суммы панели Calculus.

ограничение на расход электроэнергии по прочим цехам (рис. 4)

ограничение на расход пара по прочим цехам (рис. 4)

ограничение на расход апатита по прочим цехам (рис. 4)

< >Затем сформируем ограничения на производительность цехов  

 

нитрофоски (рис. 5)

< >Также потребуем, чтобы производительность остальных цехов не превышала заданных пределов

 

 

 

 

 

 

 

< >Далее, введем ограничения, соответствующие требованиям на суточный выпуск:

 

 

Теперь все ограничения сформированы. Все введенные ограничения линейны относительно поисковых переменных Р. Функция цели Zatr также линейна относительно Р.

Мы видим, что поставленная задача является задачей линейной оптимизации.

< >Завершим блок ограничений требованием на минимизацию затрат на производство, использую функцию MathCad minimize. В качестве аргументов функции используем матрицу поисковых переменных Р.

 

После ввода последнего блока MathCad приступит к решению задачи оптимизации.

В зависимости от сложности задачи решение занимает некоторый интервал времени. На этот период решаемый блок обведен зеленой рамкой.

По окончании решения зеленая рамка исчезает. ЖЖ

< >Используя контекстное меню функции minimize для выяснения, методы линейной или нелинейной оптимизации использовал MathCad. В случае неверной установки выберите вариант линейной оптимизации.Теперь можно вывести результаты. Для этого переведите курсор ниже и введите блок вычисления значения целевой функции при найденных значениях поисковых переменных, которые мы сохранили в переменной Р1

 

Используя команду форматирования результата, выведите результат в виде, приведенном выше.

< >Выведем также и найденные значения поисковых переменных, сохраненные в переменной Р1:

 

Используя команду форматирования результата, приведите вид матрицы Р1 к показанному выше виду.

< >Сохраните документ под именем Азотно-туковый завод.Открыть новый документ MathCad.Обозначив количества компонентов через  запишем вид целевой функции, соответствующей затратам на закупку компонентов смеси.

 

< >При формировании смеси будем предполагать, что будем получать смесь с октановым числом, большим, чем требуемое на некую величину . Задать значение величине, равное 0.2

 

< >В нашей задаче присутствуют ограничения, поэтому ниже следует ввести слово given.Сформируем ниже ограничения задачи. Первое ограничение соответствует получению 5 тонн бензина

 

< >Второе ограничение соответствует требованию на значение октанового числа получаемой смеси. Опираясь на предположение о линейной зависимости, запишем ограничение

 

< >Введем ограничения на возможные значения количеств компонентов –они должны быть положительны. Для этого ввести ограничение

 

 

< >В строке ниже завершить блок вызовом функции minimize, сохранив результаты в переменных

 

< >Проверим, каковы затраты на получение смеси. Ввести ниже блок

 

< >Сохранить документ под именем КомпаундированиеПровести вычисления для .