- •Министерство транспорта российской федерации
- •Пояснительная записка
- •Реферат
- •Техническое задание
- •Содержание
- •Определения
- •Введение
- •1 Плановая задача гидравлики и методы ее решения
- •1.1 Обзор методов построения планов течений (решения уравнений плановой задачи)
- •1.2 Метод построения линий тока способом Бернадского
- •1.3 Методы построения полей средней скорости речных потоков
- •1.3.1 Расчет плана течений равномерных турбулентных потоков
- •1.3.2 Уравнение плановой задачи равномерных турбулентных потоков
- •1.4 Распределение средних по глубине скоростей в русле произвольного сечения
- •1.5 Выводы по главе 1
- •2 Разработка программных модулей для решения плановой задачи
- •2.1 Модуль для расчета и анализа локальных параметров сечения русла
- •2.2 Методика и алгоритм расчета локальных параметров участка русла
- •2.3 Разработка модуля для расчета и анализа локальных параметров сечения русла
- •2.4.Методика и алгоритм построения плана течений реки
- •2.4.1. Методика построения плана течений реки методом Бернадского
- •2.4.2. Алгоритм построения плана течений реки
- •2.4.3 Тестовый пример построения плана течений реки
- •3 Разработка программного обеспечения модуля для расчета плановой задачи
- •3.1 Обоснование выбора системы программирования и операционной системы
- •3.1.1 Обоснование выбора системы программирования
- •3.1.2 Обоснование выбора операционной системы
- •3.2 Пользовательский интерфейс модуля и инструкция для пользователя
- •3.3. Примеры выполнения расчетов
- •3.4 Выводы к главе 3
- •4. Безопасность жизнедеятельности
- •4.1 Эргономика рабочего места
- •4.2 Режим труда и отдыха при работе за компьютером
- •4.3 Вывод к главе 4
- •5 Технико-экономическое обоснование разработки программного обеспечения
- •5.1 Экономическое обоснование проекта
- •5.2 Расчет затрат на разработку программы
- •5.3 Расчет цены разработанной программы
- •5.4 Расчет капитальных вложений
- •5.5 Расчет эксплуатационных расходов
- •5.6 Расчет денежного годового экономического эффекта
- •5.7 Выводы к главе 5
- •Заключение
- •Список используемых источников
3.1.2 Обоснование выбора операционной системы
Лидирующее место на рынке операционных систем занимают линейка операционных систем Windows от Microsoft. Именно большое распространение операционных систем Windows NT(2000), наложило большой отпечаток на выбор операционной среды под разрабатываемую в рамках дипломного проекта информационную систему. Основополагающим фактором становится степень подготовленности пользователя рабочей станции к использованию информационной системы в той или иной операционной среде. Проще создать программный продукт под «штатную» операционную систему, чем переучивать весь персонал под более «удобную» для программного продукта систему.
Разрабатываемая в дипломной работе система является относительно простой и не ресурсоёмкой и не задействует какие-нибудь специфические библиотеки операционной системы, оставаясь отчасти независимой от внутренней архитектуры ОС.
Таким образом, ОС Windows XP удовлетворяет требованиям информационной системы, разрабатываемой в дипломной работе.
3.2 Пользовательский интерфейс модуля и инструкция для пользователя
Главным требованием к графическому интерфейсу программного продукта является удобное обеспечение взаимодействия между системой и человеком. Чаще всего в последнее время используются диалоговые окна при работе человека с ЭВМ.
Вид
окна модуля:
Рисунок 3.1- Начальный вид окна модуля
Главное окно программы можно разделить на две части: окно задания параметров, окно вывода расчетного графика.
В окне задания параметров мы указываем какие берутся сечения, интервалы между ними, отступ от береговой линии, а также общий расход воды. Код описывающий задание начальных параметров:
Sech(1).name=get(handles.sech1,'String');
Sech(2).name=get(handles.sech2,'String');
Sech(3).name=get(handles.sech3,'String');
Sech(4).name=get(handles.sech4,'String');
Sech(5).name=get(handles.sech5,'String');
Sech(6).name=get(handles.sech6,'String');
Sech(7).name=get(handles.sech7,'String');
S_MAX=7;
for n=1:S_MAX
Sech(n).name;
end
% Name_Uch= ['RES_' Sech(1).name '_' Sech(2).name '.txt'];
% % set(handles.txt_Name_Uch,'String',Name_Uch);
% Data_Uch =csvread(Name_Uch);
% SIZ_Uch= size(Data_Uch);
%
% Numm_elem_Uch=numel(Data_Uch);
% S1 = Data_Uch(1,:);
% S2 = Data_Uch(2,:);
% S3 = Data_Uch(3,:);
% B_H = S1(1,1); OMEGA_H =S1(1,2); T_SRED_H = S1(1,3);
% B_K = S2(1,1); OMEGA_K =S2(1,2); T_SRED_K = S2(1,3);
% SREZKA_H= S3(1,1); SREZKA_K = S3(1,2); SHEROX= S3(1,3);
% DISTANT =S3(1,4); F = S3(1,5);
% %set(handles.ed_MODULF,'String',num2str(F));
%___________ Чтение файлов линий тока ____________
for m=1:S_MAX-1
Name_Tok= ['TOK_' Sech(m).name '_' Sech(m+1).name '.txt'];
% Name_Tok= 'TOK_TeST1_TeST2.txt'
Data_Tok =csvread(Name_Tok);
SIZ_Tok= size(Data_Tok);
Numm_elem_Tok=numel(Data_Tok) ;
arBH(m).Tok = Data_Tok(1,:);
arBK(m).Tok = Data_Tok(3,:);
end
NQ= length(arBH(1).Tok)-1;
set(handles.ed_N,'String',num2str(NQ));
% arBH
% arBH.Tok
% arBK.Tok
Блок, расчитывающий формулу Шези:
Q = str2double(get(handles.ed_Q,'String'));
F = str2double(get(handles.ed_MODULF,'String'));
DZ = Q^2*F ;
set(handles.ed_DZ,'String',num2str(DZ ));
DISTANT = DIST(end);
UKLON = (DZ/DISTANT)*1000;
set(handles.ed_UKLON,'String',num2str(UKLON ));
DQ = Q/NQ;
set(handles.ed_DQ,'String',num2str(DQ ));
График можно представить в двух вариантах:
Линейный вывод линий тока. В данном случае линии тока строятся путем соединения прямых линий отдельных участков.

Рисунок 3.1 - Линейный вывод тока
Код, описывающий линейный вывод тока:
if strcmp(interp_type, 'linear')
for k=1:S_MAX-1
for n=NN : NQ
if (n==1)|(n==NQ)
Col= 'black'; LW=3;
else Col= 'blue'; LW = 2;
end
line([DIST(k) DIST(k+1)],[arBH(k).Tok(n)+REL(k) ...
arBK(k).Tok(n)+REL(k+1)],...
'LineWidth',LW,'Color',Col)
end
end
line([DIST],[REL],'LineWidth',4,'Color','black')
end
% AA = [arBH.Tok] ;
% AA1 =[arBH(1).Tok];
2)Вывод линий тока сплайн. Это геометрическая конструкция, используемая во многих графических программах для создания сложных кривых и поверхностей из множества коротких сегментов, каждый из которых описывается кубическим полиномом. Кубический полином выбран потому, что, в отличие, например, от квадратного, обеспечивает идеально плавное сопряжение кривых, если они соединяются в точках перегиба, т. е. точках с нулевой кривизной.

Рисунок 3.2 - Вывод линий тока сплайн
Код, описывающий вывод линий тока сплайн:
LSS =LinTok+M_REL;
plt=0.01;% шаг plot
if strcmp(interp_type, 'cubic')
for m=NN:NQ
X=DIST;
Y= LSS(:,m);
XX=DIST(1):plt*DIST(end):DIST(end);
YY= spline(X,Y,XX) ;
if( m==1) | (m==NQ )
Col='black'; LW =4;
else Col='blue'; LW = 2;
end
%plot(X,Y,'o',XX,YY,'-','LineWidth',2,'Color',Col,'LineWidth',LW)
plot(XX,YY,'-','LineWidth',2,'Color',Col,'LineWidth',LW)
end
X=DIST;
Y= LSS(:,1);
XX=DIST(1):plt*DIST(end):DIST(end);
YY= spline(X,Y,XX) ;
plot(XX,YY,'-','LineWidth',2,'Color',Col,'LineWidth',LW)
В качестве дополнительной опции существует функция, которая выводит график без линий тока, а только границы русла реки:

Рисунок 3.3 - Вывод графика без линий тока
