Построение математической модели реактора полого типа для синтеза хлористого этила

Определение значения температуры и объёма реактора, при которых выходная концентрация хлористого этила будет максимальной. Решение математической модели, включающей "идеальное смешение". Оптимизация объекта методом возможных направлений Зойтендейка.

Рубрика Экономико-математическое моделирование
Вид курсовая работа
Язык русский
Дата добавления 16.05.2013
Размер файла 1,2 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Министерство общего и профессионального образования РФ

Тамбовский государственный технический университет

Кафедра: САПР

Курсовая работа

по дисциплине

«Модели и методы анализа проектных решений»

Вариант №43

Выполнил: студент гр. ССП-42 Яковлев В.А.

Тамбов 2012

ВВЕДЕНИЕ

Найти методом возможных направлений Зойтендейка температуру в реакторе полого типа синтеза хлористого этила и объем реактора, при которых концентрация хлористого этила на выходе будет максимальной:

C2H4 + HCl C2H5Cl,

1=2, 2=1, v=0.02 м3/c, А1=1.2, Е1=8480 Дж/моль, A2=90, E2=29000 Дж/моль, Сэтил вх=45%, СHCl вх=40%, с=1.45 кг/м3, 100?T?250оС, 1?V?10 м3.

При имитационном моделировании выходная координата СC2H5Cl вых, входная координата Cэтилен вх, М0 = 23 моль/м3, К=20ехр(-0.093dt).

Приняты следующие обозначения: б - порядок реакции; А, Е - предэкспоненциальный множитель и энергия активации уравнения Аррениуса для вычисления константы скорости реакции; с - средняя плотность реакционной среды; m -массовый расход реакционной среды через аппарат; Сi - концентрация i-го компонента реакционной среды; V - объем; Т - температура реакционной среды; M0 - математическое ожидание входной координаты; K - корреляционная функция входной координаты; dt - аргумент корреляционной функции, которая показывает вероятностную связь значений случайного процесса, отстоящих на интервал dt.

1. ОБЪЕКТ ПРОЕКТИРОВАНИЯ И ЕГО ОСОБЕННОСТИ

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

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

Схематическое изображение некоторых типов реакторов полого типа представлено на рисунке 1.1.

Рисунок 1.1 - Схема реактора полого типа: а - с насадкой-теплоносителем; б - с псевдоожиженным слоем теплоносителя; в - с предварительным подогревом смеси

На вход объекта проектирования поступают этилен (С2H4) и хлористый водород (HCl). Компоненты полученной газовой смеси посредством перемешивания и температуры вступают между собой в обратимую реакцию. За счёт более высокой скорости протекания прямой реакции в сторону образования хлористого этила на выходе мы получаем конечный продукт синтеза и остатки исходных реагентов. Хлористый этилен является превосходным растворителем жиров, масел, поливинилхлорида, льняного масла, пиретрума и др.

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

Реакцией хлористого этилена с тетрасульфидом натрия получают тиокол, продукт конденсации которого содержит 82% серы и может вулканизироваться нагреванием с окисью цинка примерно при 140°.

Сформулируем задачу оптимального проектирования:

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

;

В качестве критерия оптимизации выступает концентрация хлористого этила (находится максимум), а в качестве варьируемых переменных - температура и объём реактора, меняющиеся в указанных пределах.

Для связи варьируемых переменных и критерия оптимизации необходимо найти систему уравнений математической модели.

2. МАТЕМАТИЧЕСКАЯ МОДЕЛЬ ОБЪЕКТА

2.1 Структурная схема объекта и принятие допущений

Структурная схема объекта представлена на рисунке 1.2.

Рисунок 1.2 - Структурная схема объекта.

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

1. В реакторе установлен режим «идеальное вытеснение»

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

2.2 Составление уравнений математической модели

Введем следующие обозначения:

Составим кинематические уравнения для каждого вещества:

(1.1)

Составим уравнения гидродинамики для каждого вещества:

(1.2)

Объединив системы (1.1) и (1.2) получим:

Здесь k - константа скорости реакции. Она находится из уравнения Аррениуса: , - заданные константы скоростей реакций.

Начальные условия:

где входные данные переводятся из процентов в моль/м3 по следующим формулам:

где - входные концентрации реагентов в процентах;

;

;

Среднее время пребывания в ячейке рассчитывается по формуле:

2.3 Параметры уравнений

Константы, применяемые в математической модели:

R = 8.31 Дж/моль • K;

; .

Параметры, характеризующие физико-химические свойства веществ:

А1=1,2;

А2=90;

Е1 = 8480 Дж/моль;

Е2 = 29000 Дж/моль;

= 1,45 кг/м3;

v = 0,02 м3/с;

.

Конструкционные параметры:

2.4 Решение уравнений математической модели

Решение системы дифференциальных уравнений будем проводить методом Эйлера.

Итерационная схема алгоритма Эйлера:

Рассчитаем выходные концентрации всех веществ методом Эйлера при малом шаге интегрирования:

Dt = 0.5 сек.

Таблица 1.

, сек

, моль/м3

, моль/м3

, моль/м3

0,5

23,295236352

16,102776035

0,0083350760

1

23,286991918

16,094531601

0,0165795095

1,5

23,278837139

16,086376821

0,0247342892

2

23,270771035

16,078310718

0,0328003929

2,5

23,262792640

16,070332323

0,0407787878

3

23,254900997

16,062440680

0,0486704306

3,5

23,247095161

16,054634843

0,0564762672

4

23,239374195

16,046913877

0,0641972334

4,5

23,231737173

16,039276856

0,0718342545

5

23,224183182

16,031722865

0,0793882460

5,5

23,216711315

16,024250998

0,0868601130

6

23,209320677

16,016860360

0,0942507508

6,5

23,202010383

16,009550066

0,1015610450

7

23,194779557

16,002319239

0,1087918713

7,5

23,187627332

15,995167015

0,1159440961

8

23,180552852

15,988092535

0,1230185758

8,5

23,173555270

15,981094953

0,1300161580

9

23,166633747

15,974173430

0,1369376806

9,5

23,159787455

15,967327138

0,1437839726

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

3. ИССЛЕДОВАНИЕ МЕТОДА ОПТИМИЗАЦИИ

Метод возможных направлений Зойтендейка - это метод поиска минимума для задач условной оптимизации.

Этот метод можно назвать особым расширением метода наискорейшего спуска на задачи условной оптимизации, так как он призван «взаимодействовать» с ограничениями при поиске минимума.

Кратко охарактеризуем работу алгоритма:

Пока точка лежит внутри допустимой области метод спускается к минимуму методом наискорейшего спуска, т. е. используя градиент . Если точка наталкивается на одно из ограничений (рисунок 1.), то определяется направлений вдоль ограничения или от ограничения поиском минимума функции . Метод останавливается в двух случаях: когда или когда (такая точка называется точкой Куна-Таккера).

Рисунок 3.1. - Метод возможных направлений Зойтендейка

Примечание. В случае простейших ограничений вида процесс поиска точки Куна-Таккера сводится к одномерной оптимизации функции вдоль границы любым методом.

Рис. 3.2 Структурная схема алгоритма оптимизации объекта

Рис. 3.3. Подпрограмма Одномерная оптимизация

Рис. 3. Подпрограмма математической модели

4. ПРОВЕРКА МЕТОДА ОПТИМИЗАЦИИ

Перед началом работы с проектируемым объектом была произведена проверка метода оптимизации на заранее известной тестовой функции - параболоиде при наложенных ограничениях . При этом был заранее известен минимум - это точка с координатами .

Результаты работы метода оптимизации представлены на рисунке 4.1.

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

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

5. ОПТИМИЗАЦИЯ ОБЪЕКТА

В ходе работы была произведена оптимизация объекта методом возможных направлений Зойтендейка. В результате было найдена максимальная концентрация CС2H5Cl=15,844 моль/м3 (69,93 %) при температуре T=373 K и объёме реактора V=10 м3. Процесс оптимизации отражён на рисунке 5.1.

Рисунок 5.1 - Результаты оптимизации проектируемого объекта.

6. Проверка работоспособности спроектированного объекта методом имитационного моделирования

Проверка работоспособности спроектированного объекта проводится методом имитационного моделирования.

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

Рисунок 6.1 - Схема системы имитационного моделирования.

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

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

x0 = {л1} ? 0.5; xi = {л2xi?1 } ? 0.5.

Здесь скобки {} означают, что из числа, стоящего в скобках, берется только дробная часть; л1, л2 - иррациональные числа (в данном случае были взяты значения для л1 и л2 равные е и соответственно).

Полученный случайный процесс z() подается на вход математической модели динамики. Таким образом, имитируется работа объекта в режиме реального времени.

При имитационном моделировании входная координата СС2H4 - входная концентрация этилена, а выходная координата С3 - концентрация хлористого этила, M0 = 23 К, .

Рисунок 6.2 - Случайный процесс и его характеристики.

Рисунок 6.3 - Результаты имитационного моделирования.

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

Выводы

В результате проведения работы было подобранно значение температуры реакционной среды T и объём реактора V, при которых концентрация хлористого этила будет максимальной.

Найденные параметры:

- концентрация CС2H5Cl = 15,844 моль/м3 (69,93 %);

- температура в реакторе T=373 K;

- объём реактора V=10 м3.

Для оптимизации был использован метод возможных направлений Зойтендейка.

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

реактор математический оптимизация зойтендейк

Литература

1. Построение математических моделей химико-технологических объектов / Е.Г. Дудников, В.С. Балакирев, В.Н. Кривсунов, А.М. Цирлин. - Л.: Химия, 1970. - 312 с.

2. Шеннон, Р. Имитационное моделирование систем - искусство и наука / Р. Шеннон. - М.: Мир, 1975. -502 с.

3. Закгейм, А.Ю. Введение в моделирование химико-технологических процессов / А.Ю. Закгейм. - М.: Химия, 1982. - 288 с.

4. Общая химическая технология: в 2 ч. / под ред И.П. Мухленова. - М.: Высшая школа, 1984. - Ч. 2. - 264 с.

5. Бояринов, А.И. Методы оптимизации в химической технологии / А.И. Бояринов, В.В. Кафаров. - М.: Химия, 1975. - 500 с.

6. Базара, М. Нелинейное программирование. Теория и алгоритмы / М. Базара, К. Шэтти. - М.: Химия, 1988. - 583 с.

7. Бусленко, В.Н. Автоматизация имитационного моделирования сложных систем/В.Н. Бусленко. - М.: Наука. 1977. - 239 с.

Приложение

Распечатки программ оптимизации объекта по математической модели и имитационного моделирования

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, ComCtrls, StdCtrls, ExtCtrls, Menus, TeeProcs, TeEngine, Chart,

jpeg, Buttons, Math, Grids, Unit2, Unit3, Series;

type

TForm1 = class(TForm)

PageControl1: TPageControl;

TabSheet1: TTabSheet;

TabSheet2: TTabSheet;

MainMenu1: TMainMenu;

N1: TMenuItem;

TabSheet3: TTabSheet;

TabSheet4: TTabSheet;

GroupBox1: TGroupBox;

Label1: TLabel;

Image5: TImage;

Image6: TImage;

Edit1: TEdit;

Edit2: TEdit;

GroupBox2: TGroupBox;

GroupBox3: TGroupBox;

GroupBox4: TGroupBox;

Chart1: TChart;

Image1: TImage;

Image2: TImage;

Shape1: TShape;

Image3: TImage;

Shape2: TShape;

Shape3: TShape;

Shape4: TShape;

Shape5: TShape;

Image4: TImage;

Image7: TImage;

Edit3: TEdit;

Image8: TImage;

BitBtn1: TBitBtn;

Label3: TLabel;

Button2: TButton;

StringGrid1: TStringGrid;

Button3: TButton;

Series1: TLineSeries;

Series2: TLineSeries;

Series3: TLineSeries;

Series4: TLineSeries;

Series5: TLineSeries;

Series6: TLineSeries;

Series7: TLineSeries;

Series8: TLineSeries;

Series9: TLineSeries;

Series10: TLineSeries;

Label2: TLabel;

Label4: TLabel;

GroupBox5: TGroupBox;

GroupBox6: TGroupBox;

StringGrid2: TStringGrid;

Image9: TImage;

Image10: TImage;

Edit4: TEdit;

Edit5: TEdit;

Edit6: TEdit;

Image11: TImage;

BitBtn2: TBitBtn;

Button1: TButton;

GroupBox7: TGroupBox;

Label5: TLabel;

Label6: TLabel;

Image12: TImage;

PaintBox1: TPaintBox;

Button4: TButton;

Chart2: TChart;

LineSeries1: TLineSeries;

Chart3: TChart;

LineSeries11: TLineSeries;

GroupBox8: TGroupBox;

Label7: TLabel;

Button5: TButton;

Button6: TButton;

Label8: TLabel;

Image13: TImage;

Image14: TImage;

procedure Button1Click(Sender: TObject);

procedure Image2Click(Sender: TObject);

procedure Image3Click(Sender: TObject);

procedure Image4Click(Sender: TObject);

procedure Image7Click(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Button3Click(Sender: TObject);

procedure FormShow(Sender: TObject);

procedure BitBtn2Click(Sender: TObject);

procedure Button4Click(Sender: TObject);

procedure Button5Click(Sender: TObject);

procedure Button6Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

type

Optimum = class(TThread)

private

{ Private declarations }

protected

procedure Execute; override;

end;

type

Demonstrate = class(TThread)

private

{ Private declarations }

protected

procedure Execute; override;

end;

var

Form1: TForm1;

Rest: array[1..4] of double;

Exec:Optimum;

MemoryXY:array[1..2,1..1000] of double;

Eff_X1, Eff_X2:double;

BoolOpt:boolean=false;

const

//======================Задание констант=====================

A1=1.2;

A2=90;

E1=8480;

E2=29000;

R=8.31;

C1_in=45*1.45/(100*0.028);

C2_in=40*1.45/(100*0.036);

function fun(X1,X2:double;ind:word):double;

function func(X,A:array of double;mode:integer):double;

procedure OneDimensOptimum(Xo:array of double; d1,d2,stage:double; index:word; var X1,X2:double);

procedure Grad(X1,X2:double;index:word;var f1,f2:double);

procedure MethodOfZoitenbek(Xo1,Xo2,stage:double;ind:word; var X1, X2:double);

procedure Outp(X:array of double;d1,d2:double;integ:integer);

procedure ClearMemory();

procedure CreateGraph();

procedure ExpMathModel(Z:array of double);

implementation

procedure ClearMemory();

var i:integer;

begin

for i:=1 to 1000 do

begin

MemoryXY[1,i]:=0;

MemoryXY[2,i]:=0;

Form1.StringGrid1.Cells[0,i-1]:='';

Form1.StringGrid1.Cells[1,i-1]:='';

Form1.StringGrid1.Cells[2,i-1]:='';

Form1.StringGrid1.Cells[3,i-1]:='';

Form1.StringGrid2.Cells[0,i-1]:='';

Form1.StringGrid2.Cells[1,i-1]:='';

Form1.StringGrid2.Cells[2,i-1]:='';

Form1.StringGrid2.Cells[3,i-1]:='';

end;

end;

//================Процедура демонстрации работы метода оптимизации==============

procedure Demonstrate.Execute;

var i:integer;

buffX, buffY:integer;

begin

i:=1;

while(not((MemoryXY[1,i]=0) and (MemoryXY[2,i]=0)))do

begin

Form1.PaintBox1.Visible:=false;

Form1.PaintBox1.Visible:=true;

Form1.PaintBox1.Canvas.Brush.Color:=clBlue;

buffX:=floor(187*(MemoryXY[1,i]-1));

buffY:=floor(69*(2-MemoryXY[2,i]));

Form1.PaintBox1.Canvas.Ellipse(buffX,buffY,buffX+10,buffY-10);

sleep(500);

inc(i);

end;

end;

procedure Optimum.Execute;

var Xo1,Xo2, X1,X2,stage:double;

buff:double;

begin

if(Form1.PageControl1.TabIndex=1) then

begin

Rest[1]:=1;

Rest[2]:=10;

Rest[3]:=373;

Rest[4]:=523;

Form1.StringGrid1.Cells[0,0]:=' V';

Form1.StringGrid1.Cells[1,0]:=' T';

Form1.StringGrid1.Cells[2,0]:=' d1';

Form1.StringGrid1.Cells[3,0]:=' d2';

Xo1:=StrtoFloat(Form1.Edit1.Text);

Xo2:=StrtoFloat(Form1.Edit2.Text);

stage:=StrtoFloat(Form1.Edit3.Text);

MethodOfZoitenbek(Xo1,Xo2,stage,1,X1, X2);

buff:=100*fun(X1,X2,1)*0.064/1.45;

Form1.Label3.Caption:='Iaeneiaeuiay eiioaio?aoey C2H5Cl='+FloattoStr(RoundTo(-fun(X1,X2,1),-3))+' iieu/i3';

Form1.Label3.Caption:=Form1.Label3.Caption+' ('+FloattoStr(RoundTo(-buff,-2))+'%)';

Form1.Label2.Caption:='V='+InttoStr(Round(X1))+' i3 T='+InttoStr(Round(X2))+' E';

BoolOpt:=true;

Eff_X1:=X1;

Eff_X2:=X2;

end else

begin

Rest[1]:=1;

Rest[2]:=2;

Rest[3]:=1;

Rest[4]:=2;

Form1.StringGrid2.Cells[0,0]:=' V';

Form1.StringGrid2.Cells[1,0]:=' T';

Form1.StringGrid2.Cells[2,0]:=' d1';

Form1.StringGrid2.Cells[3,0]:=' d2';

Xo1:=StrtoFloat(Form1.Edit4.Text);

Xo2:=StrtoFloat(Form1.Edit5.Text);

stage:=StrtoFloat(Form1.Edit6.Text);

MethodOfZoitenbek(Xo1,Xo2,stage,0,X1, X2);

Form1.Label5.Caption:='Ecaanoiue ieieioi X=(1;1)';

Form1.Label6.Caption:='Iaeaaiiue ieieioi X*=('+FloattoStr(RoundTo(X1,-3))+';'+FloattoStr(RoundTo(X1,-3))+')';

end;

end;

//==============Нахождение 20 значений корреляционной функции===================

function Min(az:double; Kz: array of double):double;

var mn:double;

i:integer;

begin

mn:=0;

for i:=0 to length(Kz)-1 do

begin

mn:=mn+abs(Kz[i]-Kz[0]*exp(-i*az));

end;

Min:=mn;

end;

function SearchRoot(Dz:double;Kz:array of double):double;

var az,e,mn1,mn2,step:double;

m,n:integer;

begin

az:=0;

step:=0.001;

mn1:=Min(az,Kz);

az:=az+step;

mn2:=Min(az,Kz);

while(mn2<mn1)do

begin

mn1:=mn2;

az:=az+step;

mn2:=Min(az,Kz);

end;

SearchRoot:=az;

end;

//==============Нахождение параметров случайного процесса===================

procedure SearchChance(X,A:array of double;var Aout:array of double);

var dA1,dA2:double;

t:double;

begin

dA1:=0.01;

dA2:=0.01;

while(abs(func(X,A,1)-0.093)>0.001) do

begin

A[1]:=A[1]+dA2;

t:=func(X,A,1);

end;

while(abs(func(X,A,2)-20)>0.1) do

begin

A[0]:=A[0]+dA1;

end;

Aout[0]:=A[0];

Aout[1]:=A[1];

end;

//==============Функция построения случайного процесса===================

function func(X,A:array of double;mode:integer):double;

var ao,D0,Mo,L1,L2,Sum,M,Dx,Mz,Dz,az:double;

Ns,i,s,k:integer;

Z:array[1..200] of double;

Kz:array[1..21] of double;

C,buff:double;

X_rep:integer;

begin

//Eieoeaeecaoey

X_rep:=231;

for i:=1 to 21 do

begin

Kz[i]:=0;

end;

for i:=1 to 200 do

begin

Z[i]:=0;

end;

ao:=0.093;

D0:=20;

Mo:=23;

Dx:=0;

for i:=0 to X_rep-1 do

begin

Dx:=Dx+X[i]*X[i];

end;

Dx:=Dx/X_rep;

Ns:=30;

C:=A[0]*sqrt(D0/(Dx*ao*A[1]))/Ns;

for k:=1 to 200 do

begin

buff:=0;

for i:=k to k+Ns do

begin

buff:=buff+X[i-1]*exp(-A[1]*ao*(i-k));

Z[k]:=C*buff+Mo;

end;

end;

Mz:=0;

for i:=1 to 200 do

begin

Mz:=Mz+Z[i];

end;

Mz:=Mz/200;

Dz:=0;

for i:=1 to 200 do

begin

Dz:=Dz+(Z[i]-Mz)*(Z[i]-Mz);

end;

Dz:=Dz/200;

for s:=1 to 20 do

begin

for i:=1 to 200-s do

begin

Kz[s+1]:=Kz[s+1]+(Z[i]-Mz)*(Z[i+s]-Mz);

end;

Kz[s+1]:=Kz[s+1]/(200-s);

end;

Kz[1]:=Dz;

az:=SearchRoot(Dz,Kz);

if(mode=1) then

begin

func:=az;

end

else if(mode=2) then

begin

func:=Dz;

end

else if(mode=3) then

begin

func:=Mo-Mz;

end;

end;

function Dop_fun(X1,X2:double;ind:boolean):double;

var tau,k1,k2,h:double;

C1_out,C2_out,C3_out,C1,C2,C3:double;

i:integer;

begin

tau:=50*X1;

k1:=A1*exp(-E1/(R*X2));

k2:=A2*exp(-E2/(R*X2));

h:=0.01;

C1_out:=C1_in;

C2_out:=C2_in;

C3_out:=0;

repeat

begin

C1:=C1_out;

C2:=C2_out;

C3:=C3_out;

C1_out:=C1+h*((C1_in-C1)/tau-k1*C1*C2+k2*C3);

C2_out:=C2+h*((C2_in-C2)/tau-k1*C1*C2+k2*C3);

C3_out:=C3+h*(-C3/tau+k1*C1*C2-k2*C3);

end;

until((abs(C1_out-C1)<power(10,-12))and(abs(C2_out-C2)<power(10,-12))and(abs(C3_out-C3)<power(10,-12)));

if ind then Dop_fun:=C1_out

else Dop_fun:=C2_out;

end;

//==============Проверка работоспособности объекта===================

procedure ExpMathModel(Z:array of double);

var tau,k1,k2,h:double;

C1_out,C2_out,C3_out,C1,C2,C3:double;

i:integer;

begin

tau:=50*Eff_X1;

k1:=A1*exp(-E1/(R*Eff_X2));

k2:=A2*exp(-E2/(R*Eff_X2));

h:=0.2;

C1_out:=Z[0];

C2_out:=C2_in;

C3_out:=0;

for i:=0 to 199 do

begin

C1:=C1_out;

C2:=C2_out;

C3:=C3_out;

C1_out:=C1+h*((Z[i]-C1)/tau-k1*C1*C2+k2*C3);

C2_out:=C2+h*((C2_in-C2)/tau-k1*C1*C2+k2*C3);

C3_out:=C3+h*(-C3/tau+k1*C1*C2-k2*C3);

Form1.Chart2.Series[0].AddXY(i-1,C3_out);

end;

end;

//==============Математическая модель объекта и функция параболоида===================

function fun(X1,X2:double;ind:word):double;

var tau,k1,k2,h:double;

C1_out,C2_out,C3_out,C1,C2,C3:double;

i:integer;

f:file of char;

str:string;

begin

if(ind=0) then fun:=X1*X1+X2*X2

else begin

tau:=50*X1;

k1:=A1*exp(-E1/(R*X2));

k2:=A2*exp(-E2/(R*X2));

h:=0.01;

C1_out:=C1_in;

C2_out:=C2_in;

C3_out:=0;

repeat

begin

C1:=C1_out;

C2:=C2_out;

C3:=C3_out;

C1_out:=C1+h*((C1_in-C1)/tau-k1*C1*C2+k2*C3);

C2_out:=C2+h*((C2_in-C2)/tau-k1*C1*C2+k2*C3);

C3_out:=C3+h*(-C3/tau+k1*C1*C2-k2*C3);

end;

until((abs(C1_out-C1)<power(10,-8))and(abs(C2_out-C2)<power(10,-8))and(abs(C3_out-C3)<power(10,-8)));

fun:=-C3;

end;

end;

//==============Построение графиков===================

procedure CreateGraph();

var t,v:integer;

buff:double;

begin

for v:=1 to 10 do

begin

for t:=373 to 523 do

begin

buff:=-fun(v,t,1);

Form1.Chart1.Series[v-1].AddXY(t,buff);

Unit2.Form2.Chart2.Series[v-1].AddXY(t,buff);

Unit2.Form2.Chart3.Series[v-1].AddXY(t,Dop_fun(v,t,false));

Unit2.Form2.Chart4.Series[v-1].AddXY(t,Dop_fun(v,t,true));

end;

end;

end;

//==============Одномерная оптимизация в методе Зойтендейка===================

procedure OneDimensOptimum(Xo:array of double; d1,d2,stage:double; index:word; var X1,X2:double);

var i1,i2,i11,i22:integer;

ind:word;

mn_pl, mn_mn:double;

begin

i1:=0;

mn_pl:=fun(Xo[0],Xo[1],index);

if((d1<>0)and(d2<>0))then

begin

while(true)do

begin

inc(i1);

if((Xo[0]+i1*stage*d1<=Rest[1])and(Xo[0]+i1*stage*d1>=Rest[2]))then

begin

if((Xo[1]+i1*stage*d2<=Rest[3])and(Xo[1]+i1*stage*d2>=Rest[4]))then

begin

if(fun(Xo[0]+i1*stage*d1,Xo[1]+i1*stage*d2,index)<mn_pl)then

begin

mn_pl:=fun(Xo[0]+i1*stage*d1,Xo[1]+i1*stage*d2,index);

i11:=i1;

end;

end else break;

end else break;

end;

i2:=0;

mn_mn:=fun(Xo[0],Xo[1],index);

while(true)do

begin

inc(i2);

if((Xo[0]-i2*stage*d1<=Rest[1])and(Xo[0]-i2*stage*d1>=Rest[2]))then

begin

if((Xo[1]-i2*stage*d2<=Rest[3])and(Xo[1]-i2*stage*d2>=Rest[4]))then

begin

if(fun(Xo[0]-i2*stage*d1,Xo[1]-i2*stage*d2,index)<mn_mn)then

begin

mn_mn:=fun(Xo[0]-i2*stage*d1,Xo[1]-i2*stage*d2,index);

i22:=i2;

end;

end else break;

end else break;

end;

if(mn_mn>mn_pl)then

begin

X1:=Xo[0]+(i11-1)*stage*d1;

X2:=Xo[1]+(i11-1)*stage*d2;

end else

begin

X1:=Xo[0]-(i22-1)*stage*d1;

X2:=Xo[1]-(i22-1)*stage*d2;

end;

end else

begin

if(d1=0)then ind:=0

else ind:=1;

i1:=0;

mn_pl:=fun(Xo[0],Xo[1],index);

while(Xo[1-ind]+i1*stage*(ind*abs(d1)+(1-ind)*abs(d2))<=Rest[4-2*ind])do

begin

inc(i1);

if(ind=0)then

begin

if(fun(Xo[0],Xo[1]+i1*stage*abs(d2),index)<mn_pl)then

begin

mn_pl:=fun(Xo[0],Xo[1]+i1*stage*abs(d2),index);

i11:=i1;

end;

end else

begin

if(fun(Xo[0]+i1*stage*abs(d1),Xo[1],index)<mn_pl)then

begin

mn_pl:=fun(Xo[0]+i1*stage*abs(d1),Xo[1],index);

i11:=i1;

end;

end;

end;

i2:=0;

mn_mn:=fun(Xo[0],Xo[1],index);

while(Xo[1-ind]-i2*stage*(ind*abs(d1)+(1-ind)*abs(d2))>=Rest[3-2*ind])do

begin

inc(i2);

if(ind=0)then

begin

if(fun(Xo[0],Xo[1]-i2*stage*abs(d2),index)<mn_mn)then

begin

mn_mn:=fun(Xo[0],Xo[1]-i2*stage*abs(d2),index);

i22:=i2;

end;

end else

begin

if(fun(Xo[0]-i2*stage*abs(d1),Xo[1],index)<mn_mn)then

begin

mn_mn:=fun(Xo[0]-i2*stage*abs(d1),Xo[1],index);

i22:=i2;

end;

end;

end;

if(mn_mn>mn_pl)then

begin

X1:=Xo[0]+(i11-1)*stage*abs(d1);

X2:=Xo[1]+(i11-1)*stage*abs(d2);

end else

begin

X1:=Xo[0]-(i22-1)*stage*abs(d1);

X2:=Xo[1]-(i22-1)*stage*abs(d2);

end;

end;

end;

//==============Вычисление антиградиента функции===================

procedure Grad(X1,X2:double;index:word;var f1,f2:double);

var dx:double;

begin

dx:=0.0001;

if(index=0) then

begin

f1:=-(fun(X1+dx,X2,index)-fun(X1,X2,index))/dx;

f2:=-(fun(X1,X2+dx,index)-fun(X1,X2,index))/dx;

end else

begin

f1:=-power(10,3)*(fun(X1+dx,X2,index)-fun(X1,X2,index))/dx;

f2:=-power(10,3)*(fun(X1,X2+dx,index)-fun(X1,X2,index))/dx;

end;

end;

procedure Outp(X:array of double;d1,d2:double;integ:integer);

begin

if(Form1.PageControl1.TabIndex=1) then

begin

Form1.StringGrid1.Cells[0,integ]:=FloattoStr(RoundTo(X[0],-3));

Form1.StringGrid1.Cells[1,integ]:=FloattoStr(RoundTo(X[1],-3));

Form1.StringGrid1.Cells[2,integ]:=FloattoStr(RoundTo(d1,-3));

Form1.StringGrid1.Cells[3,integ]:=FloattoStr(RoundTo(d2,-3));

end else

begin

Form1.StringGrid2.Cells[0,integ]:=FloattoStr(RoundTo(X[0],-3));

Form1.StringGrid2.Cells[1,integ]:=FloattoStr(RoundTo(X[1],-3));

Form1.StringGrid2.Cells[2,integ]:=FloattoStr(RoundTo(d1,-3));

Form1.StringGrid2.Cells[3,integ]:=FloattoStr(RoundTo(d2,-3));

MemoryXY[1,integ]:=X[0];

MemoryXY[2,integ]:=X[1];

end;

end;

//==============Метод Зойтендейка===================

procedure MethodOfZoitenbek(Xo1,Xo2,stage:double;ind:word; var X1, X2:double);

var eps,mn,d1,d2,d11,d22,F1, F2, h:double;

iter,iter_d,i,j,all_iter:integer;

Xk:array[1..2] of double;

X1b,X2b:double;

ind1, ind2:word;

bool:boolean;

begin

eps:=0.01;

bool:=false;

Xk[1]:=Xo1;

Xk[2]:=Xo2;

iter:=0;

iter_d:=0;

all_iter:=0;

Grad(Xk[1],Xk[2],ind,F1,F2);

if(Form1.PageControl1.TabIndex=1) then

Unit2.Form2.Memo1.Lines.Add('===============Ia?aei iioeiecaoee===============');

while(abs(F1)+abs(F2)>=eps)do

begin

ind1:=0;

ind2:=0;

inc(iter);

if(Form1.PageControl1.TabIndex=1) then

Unit2.Form2.Memo1.Lines.Add('?A?EI A?AAEAIOIIAI NIONEA');

while(fun(Xk[1]+stage*F1,Xk[2]+stage*F2,ind)<=fun(Xk[1],Xk[2],ind))do

begin

if(Xk[1]+stage*F1<=Rest[1])then

begin

ind1:=1;

Xk[1]:=Rest[1];

end else

if(Xk[1]+stage*F1>=Rest[2]) then

begin

ind1:=2;

Xk[1]:=Rest[2];

end;

if(Xk[2]+stage*F2<=Rest[3])then

begin

ind2:=1;

Xk[2]:=Rest[3];

end else

if(Xk[2]+stage*F2>=Rest[4]) then

begin

ind2:=2;

Xk[2]:=Rest[4];

end;

if((ind1<>0)or(ind2<>0))then break;

inc(all_iter);

Xk[1]:=Xk[1]+stage*F1;

Xk[2]:=Xk[2]+stage*F2;

if(Form1.PageControl1.TabIndex=1) then

Unit2.Form2.Memo1.Lines.Add('X1='+FloattoStr(RoundTo(Xk[1],-2))+'; '+'X2='+FloattoStr(RoundTo(Xk[2],-2)));

Outp(Xk,d11,d22,all_iter);

end;

mn:=0;

d11:=0;

d22:=0;

if((ind1<>0)or(ind2<>0))then

begin

if(Form1.PageControl1.TabIndex=1) then

begin

inc(iter_d);

Unit2.Form2.Memo1.Lines.Add('AINOEAIOOI IA?AIE?AIEA');

Unit2.Form2.Memo1.Lines.Add('X1='+FloattoStr(RoundTo(Xk[1],-2))+'; '+'X2='+FloattoStr(RoundTo(Xk[2],-2)));

end;

for i:=0 to 100 do

begin

d1:=-abs(ind1-1)+i*(abs(ind1-1)+1-floor(ind1/2))*0.01;

for j:=0 to 100 do

begin

d2:=-abs(ind2-1)+j*(abs(ind2-1)+1-floor(ind2/2))*0.01;

if(-F1*d1-F2*d2<mn) then

begin

mn:=-F1*d1-F2*d2;

d11:=d1;

d22:=d2;

end;

end;

end;

if(Form1.PageControl1.TabIndex=1) then

begin

Unit2.Form2.Memo1.Lines.Add('IIAIA IAI?AAEAIEA AAE?AIE?');

Unit2.Form2.Memo1.Lines.Add('d1='+FloattoStr(RoundTo(d11,-2))+'; '+'d2='+FloattoStr(RoundTo(d22,-2)));

end;

inc(all_iter);

Outp(Xk,d11,d22,all_iter);

if(abs(mn)<=eps) then

begin

if(Form1.PageControl1.TabIndex=1) then

Unit2.Form2.Memo1.Lines.Add('OI?EA EOIA-OAEEA?A AINOEAIOOA!');

bool:=true;

break;

end

else begin

OneDimensOptimum(Xk,d11,d22,stage,ind,X1b,X2b);

if(Form1.PageControl1.TabIndex=1) then

begin

Unit2.Form2.Memo1.Lines.Add('?ACOEUOAO IAIIIA?IIE IIOEIECAOEE');

Unit2.Form2.Memo1.Lines.Add('X1='+FloattoStr(RoundTo(X1b,-2))+'; '+'X2='+FloattoStr(RoundTo(X2b,-2)));

Unit2.Form2.Memo1.Lines.Add('OI?EA EOIA-OAEEA?A IA AINOEAIOOA!');

end;

end;

inc(all_iter);

Xk[1]:=X1b;

Xk[2]:=X2b;

Outp(Xk,d11,d22,all_iter);

end else

begin

if(Form1.PageControl1.TabIndex=1) then

begin

Unit2.Form2.Memo1.Lines.Add('X1='+FloattoStr(RoundTo(Xk[1],-3))+'; '+'X2='+FloattoStr(RoundTo(Xk[2],-3))+' aioea?aaeaio=('+FloattoStr(RoundTo(F1,-3))+';'+FloattoStr(RoundTo(F2,-3))+')');

Unit2.Form2.Memo1.Lines.Add('NIAIA IAI?AAEAIE? AIOEA?AAEAIOA');

end;

end;

Grad(Xk[1],Xk[2],ind,F1,F2);

inc(iter);

end;

if(Form1.PageControl1.TabIndex=1) then

begin

Unit2.Form2.Memo1.Lines.Add('===============Eiiao iioeiecaoee===============');

Unit2.Form2.Label1.Caption:='Eiee?anoai niai iai?aaeaiey nionea='+InttoStr(iter);

Unit2.Form2.Label2.Caption:='Eiee?anoai ia?ana?aiee ia?aie?aiee='+InttoStr(iter_d);

if bool then Unit2.Form2.Label3.Caption:='Ainoe?aiea oi?ee Eoia-Oaeea?a=aa'

else Unit2.Form2.Label3.Caption:='Ainoe?aiea oi?ee Eoia-Oaeea?a=iao';

end;

X1:=Xk[1];

X2:=Xk[2];

end;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

begin

Edit4.Text:='2';

Edit5.Text:='2';

Edit6.Text:='0,1';

PaintBox1.Visible:=false;

PaintBox1.Visible:=true;

end;

procedure TForm1.Image2Click(Sender: TObject);

begin

Image2.Picture.LoadFromFile('1-.bmp');

Image3.Picture.LoadFromFile('2.bmp');

Image4.Picture.LoadFromFile('4.bmp');

Image7.Picture.LoadFromFile('3.bmp');

PageControl1.TabIndex:=3;

end;

procedure TForm1.Image3Click(Sender: TObject);

begin

Image2.Picture.LoadFromFile('1.bmp');

Image3.Picture.LoadFromFile('2-.bmp');

Image4.Picture.LoadFromFile('4.bmp');

Image7.Picture.LoadFromFile('3.bmp');

PageControl1.TabIndex:=1;

end;

procedure TForm1.Image4Click(Sender: TObject);

begin

Image2.Picture.LoadFromFile('1.bmp');

Image3.Picture.LoadFromFile('2.bmp');

Image4.Picture.LoadFromFile('4-.bmp');

Image7.Picture.LoadFromFile('3.bmp');

PageControl1.TabIndex:=0;

end;

procedure TForm1.Image7Click(Sender: TObject);

begin

Image2.Picture.LoadFromFile('1.bmp');

Image3.Picture.LoadFromFile('2.bmp');

Image4.Picture.LoadFromFile('4.bmp');

Image7.Picture.LoadFromFile('3-.bmp');

PageControl1.TabIndex:=2;

end;

procedure TForm1.BitBtn1Click(Sender: TObject);

begin

ClearMemory();

Exec:=Optimum.Create(true);

Exec.FreeOnTerminate:=true;

Exec.Resume;

Form1.Chart1.Visible:=true;

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

Edit1.Text:='5';

Edit2.Text:='400';

Edit3.Text:='0,1';

end;

procedure TForm1.Button3Click(Sender: TObject);

begin

Unit2.Form2.Show;

end;

procedure TForm1.FormShow(Sender: TObject);

begin

Unit2.Form2.Show;

Unit2.Form2.Hide;

CreateGraph();

PageControl1.TabIndex:=3;

end;

procedure TForm1.BitBtn2Click(Sender: TObject);

begin

ClearMemory();

Exec:=Optimum.Create(true);

Exec.FreeOnTerminate:=true;

Exec.Resume;

end;

procedure TForm1.Button4Click(Sender: TObject);

var Demo:Demonstrate;

begin

Demo:=Demonstrate.Create(true);

Demo.FreeOnTerminate:=true;

Demo.Resume;

end;

procedure TForm1.Button5Click(Sender: TObject);

var ao,D0,Mo,L1,L2,Sum,M,Dx,az,C,buff:double;

Ns,i,s,k:integer;

X:array[1..331] of double;

Z:array[1..200] of double;

A:array[1..2] of double;

Ar:array[0..1] of double;

Mz,Dz,A3:double;

Kz:array [1..21] of double;

X_rep:integer;

str:string;

begin

//==============Вывод результатов проверки работоспособности объекта===================

if BoolOpt then

begin

X_rep:=231;

for i:=1 to 200 do

begin

Z[i]:=0;

end;

for i:=1 to X_rep do

begin

X[i]:=0;

end;

for i:=1 to 21 do

begin

Kz[i]:=0;

end;

ao:=0.093;

D0:=20;

Mo:=23;

L1:=sqrt(10);

L2:=sqrt(8);

Ns:=30;

X[1]:=(L1-floor(L1))-0.5;

for i:=2 to X_rep do

begin

X[i]:=(L2*X[i-1]-floor(L2*X[i-1]))-0.5;

end;

Sum:=0;

for i:=1 to X_rep do

begin

Sum:=Sum+X[i];

end;

if(Sum/X_rep<>0) then

begin

M:=Sum/X_rep;

for i:=1 to X_rep do

begin

X[i]:=X[i]-M;

end;

end;

Dx:=0;

for i:=1 to X_rep do

begin

Dx:=Dx+X[i]*X[i];

end;

Dx:=Dx/X_rep;

A[1]:=0.01;

A[2]:=0.01;

SearchChance(X,A,Ar);

A[1]:=Ar[0];

A[2]:=Ar[1];

A3:=func(X,A,3);

C:=A[1]*sqrt(D0/(Dx*ao*A[2]))/Ns;

for k:=1 to 200 do

begin

buff:=0;

for i:=k to k+Ns do

begin

buff:=buff+X[i]*exp(-A[2]*ao*(i-k));

Z[k]:=C*buff+Mo+A3;

end;

end;

Mz:=0;

for i:=1 to 200 do

begin

Mz:=Mz+Z[i];

end;

Mz:=Mz/200;

Dz:=0;

for i:=1 to 200 do

begin

Dz:=Dz+(Z[i]-Mz)*(Z[i]-Mz);

end;

Dz:=Dz/200;

for s:=1 to 20 do

begin

for i:=1 to 200-s do

begin

Kz[s+1]:=Kz[s+1]+(Z[i]-Mz)*(Z[i+s]-Mz);

end;

Kz[s+1]:=Kz[s+1]/(200-s);

end;

Kz[1]:=Dz;

az:=SearchRoot(Dz,Kz);

Unit3.Form3.Show;

Unit3.Form3.Hide;

ExpMathModel(Z);

for i:=1 to 200 do

begin

Chart3.Series[0].AddXY(i-1,Z[i]);

str:='X['+InttoStr(i-1)+']='+FloattoStr(RoundTo(X[i],-3))+'; ';

str:=str+'Z['+InttoStr(i-1)+']='+FloattoStr(RoundTo(Z[i],-3))+'; ';

Unit3.Form3.Memo1.Lines.Add(str);

Unit3.Form3.Chart1.Series[0].AddXY(i-1,Z[i]);

Unit3.Form3.Chart2.Series[0].AddXY(i-1,X[i]);

end;

for i:=1 to 20 do

begin

Unit3.Form3.Chart3.Series[0].AddXY(i-1,Kz[i]);

Unit3.Form3.Chart3.Series[1].AddXY(i-1,Kz[1]*exp(-az*(i-1)));

end;

Unit3.Form3.Label2.Caption:='Iao. i?eaaiea='+FloattoStr(RoundTo(Mz,-2));

Unit3.Form3.Label1.Caption:='Aenia?ney='+FloattoStr(RoundTo(Dz,-2));

Unit3.Form3.Label3.Caption:='Eiyooeoeaio a='+FloattoStr(RoundTo(az,-4));

Unit3.Form3.Label4.Caption:='A1='+FloattoStr(RoundTo(A[1],-3));

Unit3.Form3.Label5.Caption:='A2='+FloattoStr(RoundTo(A[2],-3));

end else MessageDlg('Ia?aa i?iaa?eie ia ?aaioiniiniaiinou iauaeoa aai ia?aiia?aeuii iaiaoiaeii iioeiece?iaaou!', mtWarning, [mbOk], 0);

end;

procedure TForm1.Button6Click(Sender: TObject);

begin

Unit3.Form3.Show;

end;

end.

Назначение и общее описание программы.

Приведенная программа предназначена для оптимизации проектируемого объекта (требуется найти температуру и объём реактора) и проверки его работоспособности методом имитационного моделирования. Поиск оптимальных параметров осуществляется методом возможных направлений Зойтендейка. Уравнения математической модели решаются методом Эйлера. Для имитационного моделирования использован генератор случайных процессов, построенный на генераторе случайных чисел, работающий по методу иррациональных чисел.

Данная программа состоит из трех частей: проверка метода оптимизации, оптимизация объекта и проверка работоспособности спроектированного объекта методом имитационного моделирования.

Описание технических средств.

Программа была разработана на IBM совместимой машине (ноутбук Toshiba SATELLITE L130-134) с процессором Intel Celeron 1470 MHz на языке Delphi 7 под управлением ОС Microsoft Windows XP ZverCD v 7.11.5. Системные требования минимальные. Предполагается работа программы на любом IBM совместимом компьютере под управлением Windows 95 / 98 / Me / Xp / Windows 7.

Вызов и загрузка программы.

Форматы команд для запуска различных этапов проектирования:

Запуск программы:

{диск}:\{путь}\ Project1.exe

Описание входных и выходных данных.

На вход программы подаются значения параметров уравнений математической модели и интервал, на котором ищется температура и объём реактора. На выходе выдается оптимальное, с точки зрения значения (максимальное значение) концентрации продукта реакции и оптимальные параметры. Кроме того, строятся графики изменения концентраций веществ в реакторе от температуры при различных объёмах реактора.

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

Размещено на Allbest.ru


Подобные документы

  • Роль экономико-математических методов в оптимизации экономических решений. Этапы построения математической модели и решение общей задачи симплекс-методом. Составление экономико-математической модели предприятия по производству хлебобулочных изделий.

    курсовая работа [1,3 M], добавлен 09.07.2015

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

    контрольная работа [73,9 K], добавлен 23.01.2009

  • Построение экономической модели по оптимизации прибыли производства. Разработка математической модели задачи по оптимизации производственного плана и её решение методами линейного программирования. Определение опорного и оптимального плана производства.

    дипломная работа [311,3 K], добавлен 17.01.2014

  • Особенности управления состоянием сложных систем. Способы нахождения математической модели объекта (системы) методом площадей в виде звена 2-го и 3-го порядков. Формы определения устойчивости ЗСАУ. Нахождение переходной характеристики ЗСАУ и основных ПКР.

    курсовая работа [112,5 K], добавлен 04.02.2011

  • Пример решения задачи симплексным методом, приведение ее к каноническому виду. Составление экономико-математической модели задачи. Расчеты оптимального объёма производства предприятия при достижении максимальной прибыли. Построение симплексной таблицы.

    практическая работа [58,0 K], добавлен 08.01.2011

  • Построение одноиндексной математической модели задачи линейного программирования, ее решение графическим методом. Разработка путей оптимизации сетевой модели по критерию "минимум исполнителей". Решение задачи управления запасами на производстве.

    контрольная работа [80,8 K], добавлен 13.12.2010

  • Построение математической и электронной модели в MS Excel. Распределение средств по различным источникам для получения максимальной прибыли от рекламы. Смысл данных отчета по устойчивости. Условия составления оптимального плана распределения средств.

    контрольная работа [47,7 K], добавлен 01.03.2011

  • Исследование задачи оптимизации ресурсов при планировании товарооборота торгового предприятия в общем виде. Формирование математической модели задачи. Решение симплекс-методом. Свободные члены системы ограничений и определение главных требований к ним.

    курсовая работа [68,6 K], добавлен 21.06.2011

  • Определение оптимальных объемов производства по видам изделий за плановый период и построение их математической модели, обеспечивающей максимальную прибыль предприятию. Решение задачи по минимизации затрат на перевозку товаров средствами модели MS Excel.

    курсовая работа [3,4 M], добавлен 26.05.2013

  • Описание объекта регулирования температуры жидкости на выходе теплообменника. Составление математической логической аналитической модели системы автоматического управления. Исследование типа и рационального значения параметров настройки регулятора.

    курсовая работа [232,3 K], добавлен 22.03.2015

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.