Разработка математической модели и исследование теплотехнической системы

Курсовой проект - Менеджмент

Другие курсовые по предмету Менеджмент

±одные параметры-----------------G0,G1,G3,G4,G7;

double h0,h1,h5,h6;

//-------------------Вычисляемые (зависимые) параметры-----------------G2,G5,G6,G8,G9;

double h2,h3,h4,h7,h8;

//-------------------Границы интервала изменения Gk-----------------FreeGmin,FreeGmax;

//-------------------Количество узлов интерпоолирования-----------------N=1000;

//-------------------Выходной файл с результатами-----------------FileOut;

//Internal variablespchFileName[40];nChoice=0;

double *pfFreeG=NULL;

//Функция, которая получает данные, введённые пользователем

void UserInput(){1){<<"Ignoring invalid input. fi2=0.99 (default)."<<endl;=0.99;

}1){<<"Ignoring invalid input. fi3=0.98 (default)."<<endl;=0.98;

}1){<<"Ignoring invalid input. fi4=0.97 (default)."<<endl;=0.97;

}1){<<"Ignoring invalid input. fi7=0.96 (default)."<<endl;=0.96;

}1){<<"Ignoring invalid input. fi8=0.95 (default)."<<endl;=0.95;

}Gmin;(Gmin<=0){<<"Ignoring invalid input. Minimum G="<<(Gmin=1)<<" (default)."<<endl;

}Gmax;(Gmax<3*Gmin){<<"Ignoring invalid input. Maximum G="<<(Gmax=10*Gmin)<<" (default)."<<endl;

}(Gmin=G3+Gmin=0.5*G1;=Gmin;=Gmax;<<"What parameter you whant to be variable: G0 (enter 0), G1 (enter 1), "

"G3 (enter 3), G4 (enter 4),G7 (enter 7): ";nChoice;>>nChoice;(nChoice){0:=&G0;;1:=&G1;;3:=&G3;;4:=&G4;;7:=&G7;;:<<"Ignoring invalid input. Chosed G1 (default)."<<endl;=&G1;

}

>pchFileName;(strlen(pchFileName)==0){pchFileName;(strlen(pchFileName)==0){<<"Ignoring invalid input. File will be \"output.txt\" (default)"<<endl;

strcpy(pchFileName,"output.txt");

}

}

//Эта функция нужна для отладки - чтобы проверить выполнение балансовых соотношений

void ASSERT_BALANCE(){

/*1*/assert(IS_ZERO(G2+G1-G0));

/*2*/assert(IS_ZERO(G3*h2+G1*h3-fi2*(G3*h1+G1*h0)));

/*3*/assert(IS_ZERO(G4-G3-G5));assert(IS_ZERO(G4*h4-fi3*(G3*h2+G5*h5)));

/*4*/assert(IS_ZERO(G4*h5+G2*h6-fi4*(G2*h0+G4*h4)));

/*5*/assert(IS_ZERO(G6+G5-G4));

/*6*/assert(IS_ZERO(G7+G8-G1));

/*7*/assert(IS_ZERO(G9-G2-G7));assert(IS_ZERO(G9*h7-fi7*(G2*h6+G7*h3)));

/*8*/assert(IS_ZERO(G0-G8-G9));assert(IS_ZERO(G0*h8-fi8*(G8*h3+G9*h7)));

}

//Вычисляет зависимые переменные G и h по независимым G и h

void CalcDependent_G_h(){=G0-G1;=G4-G3;=G3;=G1-G7;=G0-G1+G7;=1/(fi4*fi3*G1)*(fi4*G0*h0+fi4*fi3*fi2*G3*h1-fi4*(1-fi3*fi2)*G1*h0-*fi3*G3*h5-(1-fi4*fi3)*G4*h5-(G0-G1)*h6);=(fi2*(G1*h0+G3*h1)-G1*h3)/G3;=fi3/G4*(fi2*(G1*h0+G3*h1)-G1*h3+(G4-G3)*h5);=fi7*((G0-G1)*h6+G7*h3)/(G0-G1+G7);=fi8*(G9*h7+G8*h3)/G0;_BALANCE();

}

//Проверяет выполнение ограничений на минимальные и максимальные значения по G и по h

bool CheckConstraints(){(G0h245max)return false;true;

}

//оптимизируемая величинаKPD(){(G0*h8+G6*h5)/(G0*h0+G3*h1);

}

//Вывести решение (на экран или в файл в зависимости от параметра out)

void PrintSolution(ostream &out){<<" G0="<<G0<<endl;<<" G1="<<G1<<endl;<<" G2="<<G2<<endl;<<" G3="<<G3<<endl;<<" G4="<<G4<<endl;<<" G5="<<G5<<endl;<<" G6="<<G6<<endl;<<" G7="<<G7<<endl;<<" G8="<<G8<<endl;<<" G9="<<G9<<endl;<<" h0="<<h0<<endl;<<" h1="<<h1<<endl;<<" h2="<<h2<<endl;<<" h3="<<h3<<endl;<<" h4="<<h4<<endl;<<" h5="<<h5<<endl;<<" h6="<<h6<<endl;<<" h7="<<h7<<endl;<<" h8="<<h8<<endl;<<"Value of KPD="<<KPD()<<endl;

}

//Инициализация - подготовка внутренних переменных,

//а также заполнение "шапки" при выводе в файл

void Init(){.open(pchFileName);

FileOut<<"Результаты для следующих данных: "<<endl;

FileOut<<" fi2="<<fi2<<" fi3="<<fi3<<" fi4="

<<fi4<<" fi7="<<fi7<<" fi8="<<fi8<<endl;

FileOut<<" Максимизация проводится по параметру ";

if(pfFreeG==&G0){<<"G0";

}else if(pfFreeG==&G1){<<"G1";

}else if(pfFreeG==&G3){<<"G3";

}else if(pfFreeG==&G4){<<"G4";

}else if(pfFreeG==&G7){<<"G7";

}else{(!"Нет такого свободного G.");

}<<", пробегающему отрезок ["<<FreeGmin<<";"<<FreeGmax<<"] с шагом "

<<(FreeGmax-FreeGmin)/N<<"."<<endl;<<" Минимальное G: "<<Gmin<<endl;<<" Максимальное G: "<<Gmax<<endl;<<" Минимальное h для h1, h2, h4, h5: "<<h245min<<endl;<<" Максимальное h для h1, h2, h4, h5: "<<h245max<<endl;<<" Минимальное h для h0, h3, h6, h7, h8: "<<h3678min<<endl;<<" Максимальное h для h0, h3, h6, h7, h8: "<<h3678max<<endl;<<" Начальные данные: "<<endl;_G_h();(FileOut);<<"Вычисление. "<<endl;

}

//Деинициализация - освобождение памяти, закрытие ресурсов

//Тело функции пока пусто, т. к. ничего освобождать не надоDeinit(){

}

//Главная функция - она осуществляет максимизацию

bool Optimize(){KPDmax=-INFTY;MaximizingG;fRes=false;(int i=0;i<=N;++i){

*pfFreeG=FreeGmin+i*(FreeGmax-FreeGmin)/N;_G_h();TheKPD=KPD();0)){(TheKPD<=1);<<"*";(KPDmax<TheKPD){=TheKPD;

MaximizingG=*pfFreeG;

}

}<<endl;

}<<endl;(IS_ZERO(KPDmax+INFTY)){//no solutions, sorry...<<"No solutions."<<endl;<<"No solutions."<<endl;false;

}else{

*pfFreeG=MaximizingG;_G_h();(IS_ZERO(KPD()-KPDmax));(FileOut);(cout);true;

}

}

//Точка входа в программуmain(){();();();();

}

 

. ЧИСЛЕННОЕ ИССЛЕДОВАНИЕ И АНАЛИЗ ПОЛУЧЕННЫХ РЕЗУЛЬТАТОВ

 

Выводим результаты расчёта программы:

Результаты для следующих данных:

fi2=0.97 fi3=0.96 fi40.98 fi7=0.99 fi8=0.94

Максимизация проводится по параметру G1, пробегаю?/p>