Использование ЭВМ в кардиологии

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

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 28.04.2011
Размер файла 337,6 K

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

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

Главное окно приложения.

На рис. 3.2 приведено главное окно приложения. Через набор управляющих элементов производится управление основной программой.

Элементы управления:

- Кнопка “Загрузить файл” - реализует загрузку оцифрованного и упакованного файла ЭКГ диаграммы (рис. 2), хранящегося на диске и отображает распакованные данные в окне просмотра (рис. 3).

- Кнопка “Выход” - выйти из приложения.

- Комбинированное поле фильтров - Выбор фильтра для последующего отображения в окне просмотра.

- Флажок переключатель ”Фильтр пробка” - установка режима фильтрации сетевой наводки (игнорирует выбор фильтра в комбинированном поле).

- Флажок переключатель “Дифференциатор” - устанавливает режим определения подачи импульсов дефибриляции.

- Комбинированное поле отведений - Выбор номера отведения для отображения в окне просмотра.

- Кнопка “применить” - устанавливает режим отображения отфильтрованного сигнала в окне просмотра (работает после загрузки файла).

Рис. 3.2 Главное окно приложения.

Загрузка файла.

Прежде чем на экране появится второе окно с данными баз ЭКГ, в программе необходимо загрузить один из файлов *.@8. В функции, реагирующей на нажатие кнопки “Загрузить файл” используется стандартный диалог выбора файла для загрузки, далее выбранный файл передается в функцию, выделяющую массивы значений всех двенадцати отведений. После этого здесь же конструируется окно просмотра с неинициализированной фильтрованной ЭКГ.

void CNewvisualDlg::OnLoadFile()

{

//конструктор файлового диалога

CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,"Экг диаграммы(*.@8)|*.@8||");

//сделать модальным и запомнить состояние

int response = dlg.DoModal();

if(response = IDOK)

{

CString fname=dlg.GetFileName();

if(fname=="") goto end;

HANDLE InputFile = CreateFile(fname,GENERIC_READ,FILE_SHARE_READ,

0,OPEN_EXISTING,FILE_FLAG_SEQUENTIAL_SCAN,0);

//распаковать и выделить 12 отведений

ReadK12(InputFile);

//создать окно просмотра

m_dlgPaint.Create(IDD_VIEW_GRAPH,this);

m_dlgPaint.SetWindowPos(&wndTop,200,0,m_dlgPaint.right*0.8,

m_dlgPaint.left-100,SWP_SHOWWINDOW);m_dlgPaint.ShowWindow(SW_SHOW);//показать окно

m_dlgPaint.Counter = 0;

SetTimer(ID_SHOW_TIMER,2,NULL);

memcpy(m_dlgPaint.StartOtv,StartOtv[0],16000);

Flag = true;

UpdateData();

m_dlgPaint.Invalidate();

}

end:

;;

}

Дальше более интересно было бы рассмотреть алгоритм выделения отведений из файлов баз ЭКГ. У файлов *.@8 первые 53 байта содержат заголовочную информацию для параметров ЭКГ(время снятия ЭКГ, тип ЭКГ, частота сигнала и т.д.). Взятие дальнейшей информации идет в зависимости от типа ЭКГ, если ЭКГ сжата, то работает алгоритм сжатия, если не сжата, то данные берутся элементарным способом.

Окно просмотра ЭКГ диаграмм.

Окно просмотрареализует отображение ЭКГ диаграмм в режиме

прокрутки, в соответствии с реальным временем снятия ЭКГ сигнала (рис 2).

Режим прокрутки реализуется при помощи установки таймера функцией SetTimer(ID_SHOW_TIMER,2,NULL), где 2 - время в миллисекундах посыла сообщения от таймера к системе. Поскольку частота съема данных ЭКГ равна 500 Гц. , то здесь прокрутка реализована со скоростью отрисовки в один пиксел на каждый посыл сообщения от таймера. Алгоритм работы таймера будет рассмотрен ниже.

компьютерный программный импульс дефибриляция

Рис.3.3 Окно просмотра ЭКГ диаграмм (Неотфильтрованный и отфильтрованный сигнал)

В данном окне используется два режима работы; режим показа сигнала из файла загрузки, режим показа как сигнала из файла загрузки, так и отфильтрованного сигнала, в соответствии с установками управляющих элементов. Для вывода данных ЭКГ на экран была написана динамически подключаемая графическая библиотека Graph.dll, которая может использоваться в других приложениях. Созданный динамический модуль система интегрирует в пространство другого(клиентского) процесса, загрузив его по определенному базовому адресу. Мы воспользуемся преимуществом, которое предоставляет библиотека MFC, расширяющая WIN32 - поддержку DLL. DLL - расширение способно экспортировать не только отдельные функции, но и целые классы C++. Приложение, использующее DLL(клиентское приложение), может создавать объекты импортируемого класса, а так же создавать производные классы на основе класса, реализованного в DLL. Обычные DLL могут экспортировать функции. DLL-расширения могут экспортировать как функции, так и классы.

DLL - расширение динамически связывается с кодом DLL - версии библиотеки MFC и требует, чтобы клиентская программа тоже компоновалась с ним динамически. Обычная DLL может связываться с библиотекой MFC как динамически, так и статически. Но это не снижает привлекательности DLL - расширений, так как при необходимости можно поставить заказчику необходимые системные DLL, такие как Mfc42d.dll, Mfc042.dll и другие.

Исходный код определения экспортируемого класса приведен ниже.

class AFX_EXT_CLASS CGraph

{

double dXLeft;// Левый верхний угол

double dYTop;

double dFracX;// Ширина и высота

double dFracY;

double dMinX, dMaxX;// Min-Max значения по горизонтали

double dMinY, dMaxY;// Min-Max значения по вертикали

double dSpanX;// Размах графика по горизонтали

double dSpanY;// Размах графика по вертикали

double dStepX, dStartX;// Шаг и начальное значение

double dStepY, dStartY;

UINT nPoints;// Количество точек

// Целочисленные аналоги

UINT nStepsX, nStepX, MinX, MaxX;

UINT nStepsY, nStepY, MinY, MaxY;

UINT *X, *Y;// Координаты точек на экране

int iPowerX, iPowerY;// Экспоненты

CRect rect;// Прямоугольник вывода

// Три типа шрифтов: для осей, заголовка и экспонент

CFont TextFont, TitleFont, PowerFont;

public:

void GetRect(int&,int&,int&,int&); //получить размер прямоугольника отображения

Cgraph (CRect, UINT, double ,double ,double ,double);//конструктор

// Функции нормировки исходных массивов

void ScaleX(TValues&);

void ScaleY(TValues&);

// Масштабирование массива

void Scale (double, int&, double&);

// Изображение координатной сетки

void DrawGrid (CDC*, CString&, CString&, CString&, TValues&, TValues&);

// Изображение графика зависимости

void DrawFunc (CDC*,BYTE *);

virtual ~CGraph ();

};

В конструкторе мы инициализируем область вывода графика, количество отображаемых точек и коэффициенты вывода, относительно общей области. Далее в основном приложении для вывода графики нам понадобятся функции DrawGrid и DrawFunc. Масштабирование входных координат точек графика, задаваемых числами с плавающей точкой двойной точности, производится в функции Scale, где значения по осям Х и Y масштабируются отдельно через вызовы функций ScaleX и ScaleY. Функция DrawGrid выводит на экран координатную сетку, а функция DrawFunc рисует график.

Класс Filters.

Класс Filters реализует хранение и расчет данных для фильтрации ЭКГ.

class Filters

{

public:

char Name[10];// название фильтра

double * Coeficients;//коэффициенты фильтра с плавающей точкой

short * QuantizCoeficients;//целочисленные коэффициенты

BYTE NumCoef;// число коэфициентов

//конструктор

Filters(char * FilterName,BYTE NumCoeficientsdouble,double * Coef = NULL,double * Quant = NULL);

// функция расчета КИХ фильтров

void GetType_1(short * InBuffer,short * OutBuffer);

// функция рассчета БИХ фильтров

void GetType_2(short * Inbuffer,short * Outbuffer);

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

// к целочисленным коэфициентам

void GetQType(short * Inbuffer,short * Outbuffer,BOOL Type,BYTE PreCoef = 0);

~Filters();// деструктор

};

В конструкторе происходит инициализация названия фильтра, числа коэффициентов, самих коэффициентов в зависимости от типа фильтра.

Предварительная обработка сигнала в электрокардиографии заключается, в основном, в цифровой фильтрации сигнала и его усреднении. Цель фильтрации - подавление неблагоприятных факторов, таких как шумы, выделение определенных характеристик сигнала и его коррекция. Наиболее простой в реализации и достаточно эффективной является линейная инвариантная к сдвигу фильтрация. С точки зрения реализации (впрочем, это является общепринятым в теории ЦОС ) разумно разделить линейные цифровые фильтры на 2 типа: фильтры с конечной импульсной характеристикой (КИХ) и фильтры с бесконечной импульсной характеристикой (БИХ). По-другому они называются нерекурсивный и рекурсивный соответственно.

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

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

Передаточная функция не имеет полюсов, следовательно, фильтр всегда устойчив, более того, если ряд коэффициентов симметричен, то фильтр имеет линейную ФЧХ. КИХ - фильтры обычно реализуются в такой же форме, как и определяются, т.е. в виде суммы.

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

Передаточная функция имеет вид:

Существует достаточно много типов БИХ фильтров, классифицируемых прежде всего по форме передаточной характеристики: Баттерворта, Чебышева, эллиптический.

Цифровые фильтры обычно проектируются в соответствии с определенными требованиями, предъявляемыми обычно к передаточной функции, которая, естественно, определяется конкретной задачей, для которой разрабатываемый фильтр и предназначен. Идеальные фильтры не реализуемы, поэтому приходится говорить лишь о соответствии фильтра параметрам в рамках допустимой ошибки. Для расчета цифровых фильтров существует несколько методик, требующих различных вычислительных возможностей. В электрокардиографии обычно применяют фильтры какого - либо одного типа и для определенной частоты среза и частоты дискретизации. Поэтому расчет фильтра в реальном времени проводить обычно не требуется, а коэффициенты рассчитываются при помощи какого - либо пакета, позволяющего сделать это визуально и интерактивно (в данном дипломном проекте расчеты проводились в среде Matlab v.6.0).

Функции КИХ и БИХ фильтрации:

//Функция КИХ фильтрации

void Filters::GetType_1(short * InBuffer,short * OutBuffer)

{

WORD i = 0;

double Temp = 0;

while(i<8000)

{

if(i<NumCoef) OutBuffer[i] = InBuffer[i];

else

{

for(BYTE j = 0;j<NumCoef;j++)

Temp += InBuffer[i-j]*Coeficients[j];

OutBuffer[i] = (short)Temp;

}

Temp = 0.0;

i++;

}

}

//Функция БИХ фильтрации

void Filters::GetType_2(short * Inbuffer,short * Outbuffer)

{

WORD i = 0;

double Temp = 0;

while(i<8000)

{

if(i<(NumCoef/2 - 1)) Outbuffer[i] = Inbuffer[i];

else

{

for(BYTE j = 0;j<(NumCoef/2);j++)

Temp += (Inbuffer[i-j]*Coeficients[j]

- Outbuffer[i-j]*Coeficients[j+NumCoef/2]);

Outbuffer[i] = (short)Temp;

}

Temp = 0;

i++;

}

}

Если тип фильтра - БИХ, тогда коэффициенты обратной связи ак в конструкторе нужно передавать сразу за коэффициентами bm.

В связи с тем, что последующая реализация тестируемых фильтров будет производиться на микроконтроллере Siemence без реализации арифметики с плавающей точкой, необходимо реализовать фильтрацию с целочисленными коэффициентами. Реализация целочисленных коэффициентов производится в функции GetQType. В конструктор передаются коэффициенты с плавающей точкой, рассчитанные в среде Matlab при условиях квантизации, которые при перемножении на число два в пятнадцатой степени дают целочисленные коэффициенты. Соответственно после фильтрации все точки ЭКГ масштабируются к исходным значениям.

//Функция фильтрации с целочисленными коэффициентами

void Filters::GetQType(short * Inbuffer,short * Outbuffer,BOOL Type,BYTE PreCoef)

{

WORD i = 0;

int Temp = 0;

while(i<8000)

{

if(i<(NumCoef/2 - 1)) Outbuffer[i] = Inbuffer[i];

else

{

for(BYTE j = 0;j<(NumCoef/2);j++)

if(Type == FALSE)

Temp += (int)(Inbuffer[i-j]*(short)QuantizCoeficients[j]);

else

Temp += (Inbuffer[i-j]*QuantizCoeficients[j]

-Outbuffer[i-j]*QuantizCoeficients[j+NumCoef/2]);

if(Temp>0)

Outbuffer[i] = (short)( Temp >> (15+PreCoef) );

else

Outbuffer[i] = -(short)( (-Temp) >> (15+PreCoef) );

}

Temp = 0;

i++;

}

}

Первый параметр функции - входной массив графика, второй параметр - массив в который будут передаваться отфильтрованные значения, третий параметр - тип фильтра (БИХ или КИХ), четвертый параметр - коэффициент масштабирования отфильтрованных значений выходного массива.

Реализация таймера.

При успешной загрузке данных из файла устанавливается системный таймер с временем срабатывания (в миллисекундах), равным 2. Таймеры являются лимитированным глобальным ресурсом системы, поэтому следует проверять код, возвращаемый функцией SetTimer. После установки таймера каждые 2 миллисекунды система будет посылать в очередь сообщений нашего приложения сообщение WM_TIMER. Значение третьего параметра NULL говорит о том, что сообщение будет обрабатываться в оконном классе, а не в специально созданной глобальной функции, адрес которой следовало бы передать третьим параметром. При возникновении прерывания от таймера управление будет передано в функцию OnTimer.

void CNewvisualDlg::OnTimer(UINT nIDEvent)

{

if(Flag == true)

{

if(m_dlgPaint.NPoints == 500)

m_dlgPaint.NPoints = (m_dlgPaint.x2 - m_dlgPaint.x1);

else

{

m_dlgPaint.NPoints+=(m_dlgPaint.x2 - m_dlgPaint.x1);

m_dlgPaint.PointCounter+=(m_dlgPaint.x2 - m_dlgPaint.x1);

}

m_dlgPaint.rect.left = m_dlgPaint.x1-5;

m_dlgPaint.rect.right = m_dlgPaint.x1;

m_dlgPaint.rect.top = m_dlgPaint.y1;

m_dlgPaint.rect.bottom = m_dlgPaint.y2+10;

CRect rect2;rect2.CopyRect(&m_dlgPaint.rect);

rect2.SetRect(0,0,(m_dlgPaint.rect.right-1),

m_dlgPaint.rect.bottom);

m_dlgPaint.InvalidateRect(&rect2);

}

if(m_dlgPaint.rect.right >= m_dlgPaint.x2) Flag = true;

if(m_dlgPaint.Counter < m_dlgPaint.NPoints)

{

m_dlgPaint.Counter+=5;

m_dlgPaint.rect.left+=5;

m_dlgPaint.rect.right+=5;

Flag=false;

}

else Flag = true;

if(m_dlgPaint.NPoints>=8000)

{

Flag = true;

m_dlgPaint.NPoints= 500;

m_dlgPaint.Counter = 0;

m_dlgPaint.PointCounter = 0;

}

m_dlgPaint.InvalidateRect(&m_dlgPaint.rect);

CDialog::OnTimer(nIDEvent);

}

Реализация QRS детектора.

Интеграция в проект QRS детектора была осуществлена при помощи руководителя практики, заголовочный файл и файл реализации были подключены к проекту. Графическая реализация была целиком самостоятельной работой. Для отображения заметок определения QRS, в функцию, рисующую график добавляется параметр (массив из 8000 элементов)

//код заполнения массива для

//последующего отображения в окне просмотра

if(m_dlgPaint.StartOtv[0] == 0) return;

INT disp,amp;

memset(m_dlgPaint.DifFlag,0,8000);

for(i=0;i<8000;i++)

if(CalcPoint(m_dlgPaint.StartOtvFilt[i],&disp,&amp))

{

m_dlgPaint.DifFlag[i-disp] = 1;

}

Глава 4. Расчет затрат на создание программного продукта

Цель составления любых программ состоит в получении определенных результатов в процессе эксплуатации и оценивается эффективностью программного средства. Поводом для создания рассматриваемого пакета программ послужила необходимость обеспечения входного и межоперационного контроля над физическими параметрами полупроводниковых микросхем, а также повышения точности этого контроля на этапе исследования п/п пластины. Уточним применяемое далее понятие эффективности процесса разработки программного средства. Выбор адекватных показателей эффективности программных средств зависит от их назначения, области применения, а также от ряда характеристик программ, проявляющихся при их применении. Поэтому, для выбора технических решений могут использоваться различные критерии. Целесообразно подразумевать под эффективностью процесса разработки минимум затрат на разработку программ при заданной экономической эффективности применения и качества программных средств. Минимизация затрат на обеспечение жизненного цикла комплекта программ (далее КП) в некоторой степени эквивалентны максимизации разности эффекта и затрат, если предположить, что экономический эффект от применения программ зафиксирован и стабилен. Затраты в жизненном цикле ПО определяются не только этапом разработки, но и этапами эксплуатации и сопровождения, причем затраты на этих этапах могут значительно превосходить затраты на этапе проектирования и разработки и характеризуются своими особыми закономерностями. Обычно, критерии качества изделий используются в совокупности, с разных сторон отражающей основные характеристики функционирования объекта. Тем не менее, во многих случаях доминирует экономический эффект, который наиболее прост, и обобщенно принято описывать суммарным доходом Э от использования изделия в течение его жизненного цикла продолжительностью Тж. В первом приближении это разность между полной идеальной экономической эффективностью программы Эо и суммарными потерями и затратами K , снижающими предельный доход за весь жизненный цикл:

Э = Эо - K

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

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

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

затраты на создание КП и обеспечение решения заданных задач (в том числе на технологическое обеспечение, аппаратную оснащенность разработки) - Kр;

затраты на эксплуатацию программных и аппаратных средств ЭВМ, реализующих КП - Sэ;

затраты на сопровождение КП, включающие затраты на хранение и контроль его состояния, проведение модификации, исправление ошибок и т.д. - Kс;

накладные расходы Kн.

В результате совокупную реальную эффективность функционирования ПО за весь жизненный цикл длительностью Тж можно представить в виде:

Э = Эо - Kр - Sэ - Kс - Kн

Составляющие затрат на разработку программ Kр

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

Наибольшее значение в составе Kр при разработке комплекса программ (КП) имеют следующие составляющие затрат:

на непосредственное проектирование, программирование, отладку и испытания программ в соответствии с требованиями пользователя или заказчика - K;

на изготовление опытного образца КП как продукции производственно-технического назначения - K;

на разработку, подготовку и применение технологии программных средств автоматизации разработки программ - K;

на технологические и реализующие ЭВМ, используемые для автоматизации разработки программ - K;

на подготовку и повышение квалификации специалистов-разработчиков - K.

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

Затраты на непосредственную разработку КП

Затраты на непосредственную разработку комплекса программ K являются важнейшей составляющей в жизненном цикле КП. Наибольшее влияние на них оказывает объем КП. Затраты на разработку K и объем программ Пк связаны через показатель интегральной средней производительности труда разработчиков Р. Для учета влияния на K различных факторов удобно пользоваться коэффициентами изменения трудоемкости (КИТ) - Сij, учитывающими зависимость i-ой составляющей совокупных затрат от j-го фактора. Непосредственные затраты на разработку можно представить как частное от деления объема КП и производительность труда, корректируемое произведением коэффициентов изменения трудоемкости:

Выделим четыре основных группы факторов, влияющих на затраты K при непосредственной разработке программ:

факторы, отражающие особенности создаваемого комплекса программ как объекта разработки, и требования к его общим характеристикам;

факторы, характеризующие технологическую и программную оснащенность средствами автоматизации процесса разработки программ;

факторы, отражающие оснащенность процесса создания КП аппаратурными средствами, на которых базируются системы автоматизации разработки;

факторы, определяющие оснащенность процесса разработки программ и его обеспечение квалифицированными специалистами.Для каждого фактора может быть выделен параметр, наиболее полно отражающий его содержание численными значениями. Для большинства факторов произведены оценки диапазона возможного изменения относительных затрат на разработку одной команды в КП при варьировании соответствующего параметра в указанном диапазоне. Эти изменения затрат характеризуются коэффициентами Сij изменения усредненной трудоемкости разработки строки текста программы за весь цикл создания КП при варьировании j-го фактора i-ой группы. Приводятся их средние значения.

Факторы КП как объекта проектирования, влияющие на непосредственные затраты при разработке программ.

Эта группа факторов отличается наибольшим влиянием на затраты и производительность труда.

Наиболее активно в качестве показателя сложности программ используется ее объем, выраженный числом операторов на ассемблере или строк на языке программирования высокого уровня. Объем программ является одной из наиболее достоверно измеряемых характеристик КП. Логично предположить, что по мере увеличения объема КП возрастает относительная трудоемкость разработки каждой команды в программе. Такая зависимость

может быть описана логарифмической функцией: (источник формул см. используемую литературу [1] )

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

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

Ограничение ресурсов производительности и оперативной памяти реализующей ЭВМ: при использовании создаваемым КП производительности и памяти реальной ЭВМ менее чем на 50% можно и не учитывать эти ограничения, однако в нашем случае ресурсы ЭВМ используются практически полностью:

С14 = (1.14 * (1 - р)1/2)-1

где р - реальная загрузка ЭВМ ( в относительных величинах ).

Длительность предполагаемой эксплуатации КП изменяется от нескольких месяцев до нескольких лет. По экспертным оценкам, увеличение предстоящей длительности эксплуатации КП на порядок от 1 до 10 лет приводит к увеличению КИТ С15 примерно в 1.5-2 раза. Такую зависимость можно описать логарифмической функцией:

где а15 изменяется в диапазоне от 1 до 1.5.

Предполагаемый тираж программ: при переходе от уникального КП к программам , подлежащим тиражированию, затраты заметно возрастают:

Применение современных методов разработки КП.

При создании данного КП использовалась пошаговая разработка компонентов программы. В этом случае интегральная оценка эффективности метода более-менее стабильна и характеризуется повышением производительности труда приблизительно на 30 - 40% (С31=0.6-0.7).

Уровень автоматизации разработки КП рассматривается, прежде всего, как фактор, влияющий на С и на производительность труда специалистов.

В нашем случае С32 = 1.

Уровень языков программирования КП. Разработка нашей программы на языке С++, обладающем удовлетворяющими нас характеристиками, а также доступность процедур и функций языка высокого уровня в совокупности дали увеличение производительности на 50% (С33= 0.5).

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

С34 = 1.

Факторы оснащенности процесса разработки КП аппаратурными средствами, влияющими на непосредственные затраты при разработке программ.

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

Относительное быстродействие ЭВМ определяет доступный уровень автоматизации разработки программ. Влияние относительного быстродействия на полные затраты можно оценить на уровне 20-30%.(С41 = 0.7 - 0.8).

Относительный объем оперативной памяти может также проявиться как заметный фактор, изменяющий производительность труда разработчика. В нашем случае недостаточный объем памяти вызвал снижение производительности труда на 10-20% (С42 = 1.1-1.2)

Факторы организации процесса разработки КП, влияющие на непосредственные затраты при создании программ.

Индивидуальные особенности специалистов могут приводить к изменению производительности труда во много раз. В среднем технологическую квалификацию можно считать выше среднего (С52=0.7), тематическую квалификацию - как средняя (С51=0.8). Программистская квалификация и опыт работы с языками проектирования составил 3 года (С53 = 0.9)

Уровень квалификации заказчика высок, но техническое задание на разработку было сформировано с дальнейшими доработками (С54=1.2).

Затраты на изготовление опытного образца как продукции производственно-технического назначения.

Затраты на изготовление опытного образца КП как продукции производственно-технического назначения К определяется необходимостью обеспечить отчуждение всего комплекса программ от его непосредственных разработчиков. Для изготовления КП как продукции производственно-технического назначения необходимо:

изготовить и оформить опытный образец КП на носителях данных;

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

Затраты на технологию и программные средства автоматизации разработки КП.

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

Затраты на ЭВМ, используемые для автоматизации разработки данной программы.

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

Поэтому общие затраты на ЭВМ будут выглядеть как:

С = С4р1 = а41р.

Где а41 - стоимость машинного времени реализующей ЭВМ.

Расчет затрат на разработку комплекса

Исходные данные

Наименование характеристики

Количество

Количество программистов, S

1 чел.

Оклад программиста, Sм

1000 руб./ мес.

Объем программы, П

3000 строк

Стоимость одного часа машинного времени, а41

5 руб./ч

Общее время разработки, Tр

4 мес.

Количество машинного времени, затраченного в день, Тдн

3 ч/день

Коэффициенты изменения трудоемкости

сложность программы - С11 = lg(3000 * 10-3)=0.47;

ограничение ресурсов производительности ЭВМ -

С14 = (1.14 * (1 - р)1/2)-1 = 2.7;

современные методы разработки - С31 = 0.7;

уровень языка программирования - С33 = 0.5;

относительное быстродействие ЭВМ - С41 = 0.8;

относительный объем памяти - С42 = 1.1;

технологическая квалификация - С51 = 0.7;

тематическая квалификация - С52 = 0.8;

программистская квалификация - С53 = 0.9;

квалификация заказчика - С54 = 1.2;

остальные коэффициенты примем равными единице.

Расчет непосредственных затрат на разработку

Пк =3000 (команд);

Производительность P = Пк / Тр = 3000/88=34.1 (команд/день);

Считаем, что в месяце, в среднем, 22 рабочих дня, тогда средняя дневная заработная плата разработчика Sд = 45,45 (руб.);

Произведение коэффициентов

Сij - Пij Cij = 0.245;

Также необходимо учитывать расходы, включающие в себя:

заработную плату административно - управленческого персонала с отчислением на социальные нужды;

аренду помещения;

хозяйственные нужды;

приобретение специальной литературы.

Считаем, что

накладные расходы составили kнр = 90% от непосредственных затрат;

коэффициент дополнительной зарплаты kдоп = 29%;

коэффициент сбора на социальные нужды kсн = 41%.

Теперь можем рассчитать непосредственные затраты на разработку - К:

K = Пк * ПijCij * Sд * S * 1.5 / P = 3000 * 0.245 * 45,45* 1 * 1.5 /34.1 = 1474 (рублей).

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

Затраты на ЭВМ

Тр = 88 (дней);

Рассчитаем затраты на ЭВМ:

К = а41р * Tдн = 5 * 88 *3 = 1320 (руб)

Все результаты сведем в таблицу.

Затраты на разработку КП

Составляющие

Затраты (руб.)

% от затрат на разработку

K

1474

53%

K

1320

47%

Таким образом затраты на разработку системы моделирования макроэкономики составляют Kр = 2794 руб.

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

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

Глава 5. Производственно-экологическая безопасность при разработке программных фильтров

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

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

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

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

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

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

Зависимость между показателями утомления и условиями труда

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

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

Можно установить количественную зависимость между показателем утомления и условиями труда. Для этой цели используются критерии отнесения факторов в группы условий труда, разработанные НИИ труда. Каждый фактор (элемент) условий труда оценивается в 1-6 баллов. Баллы, полученные по всем критериям, суммируются, что позволяет получать показатель условий труда. Чем выше показатель условий труда, тем они более неблагоприятны. Наиболее высокий (а значит и наиболее неблагоприятный) показатель равен 72 баллам.

Эта методика имеет ряд упрощений, при которых допускается одинаковая значимость всех критериев. Кроме того, санитарно-гигиенические условия считаются нормальными, если их значение не превышает предельно-допустимых концентраций и уровней (ПДК и ПДУ), что также является определенным упрощением, так как, несомненно, условия, приближающиеся к уровню ПДК и ПДУ, нельзя считать оптимальными. Несмотря на все эти упрощения, выявлена весьма высокая корреляция (r = 0,83) между показателями утомления и условий труда. На основании экспериментальных материалов получено уравнение:

(6.1)

где

Y -

показатель утомления,

X -

показатель условий труда.

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

Таблица 5.1. Расчет уровня утомляемости

Оценка психофизиологических и санитарно-гигиенических условий труда

Значение элемента

Количество баллов

А. Психофизиологические факторы.

1. Физическая динамическая нагрузка

Незначительная

1

2. Физическая статическая нагрузка

Незначительная

1

3. Поза и передвижение в пространстве

Поза несвободная (“сидя”). Корпус и конечности в удобном положении.

3

4. Напряжение зрения, категория

зрительных работ

Высокой точности

5

5. Длительность сосредоточенного наблюдения, в % от времени смены

Более 90%

5

6. Темп, число движений в час

Мелкие движения пальцев, кистей рук (работа на клавиатуре)

1

7. Продолжительность повторяющихся операций (монотонность)

Монотонность отсутствует

1

Б. Санитарно-гигиенические факторы

8. Температура на рабочем месте, 0С

20 0С

1

9. Токсические вещества

Ниже ПДК

1

10. Промышленная пыль

Ниже ПДК

1

1. Промышленный шум

Ниже ПДК

1

12. Инфракрасное (тепловое) излучение

Незначительное

1

Общая сумма баллов: X = 22

При отсутствии фактора оценка его должна соответствовать одному баллу, поэтому показатель условий труда не может быть менее 12 баллов.

Прогнозируемое утомление: Y = 2,15 * 22 - 10,3 = 37 отн.ед.

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

Анализ экспериментальных данных, позволяет прийти к заключению, что производственное утомление до 40 отн.ед. не вызывает признаков переутомления. Показатель утомления в диапазоне от 0 до 25 отн.ед. можно считать небольшим, от 26 до 40 отн.ед. - умеренным и более 40 отн.ед. - значительным.

На основании полученной оценки прогнозируемого утомления можно сделать вывод о том, что труд программиста нельзя назвать легкой работой. Согласно приведенной шкале (рис. 5.1), прогнозируемая утомляемость программистов находится почти на границе умеренной зоны и зоны значительного утомления

Рис. 5.1 Прогнозируемая утомляемость при работе за компьютером.

Комплекс мероприятий, направленных на уменьшение утомляемости при работе за компьютером

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

Рассмотрим основные факторы, влияющие на работоспособность и здоровье программистов и пользователей ЭВМ, а также мероприятия, направленные на уменьшение их вредного воздействия.

Электромагнитное излучение

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

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

Другим видом вредного излучения является радиационное, возникающее вместе со свечением люминофора в результате бомбардировки поверхности экрана электронами. В соответствии с ГОСТ 27954-88 мощность дозы рентгеновского излучения на расстоянии 5 см от поверхности экрана при 41-часовой рабочей неделе не должна превышать 0,03 мкР/с. Однако уровень этого излучения достаточно низок, быстро убывает с увеличением расстояния от поверхности ЭЛТ и не превышает действующих норм.

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

экранирование посредством защитных фильтров, что, впрочем, утратило свою актуальность в последнее время ввиду значительного улучшения качества самих мониторов;

защита расстоянием:

рекомендуемое расстояние от глаз оператора до поверхности монитора составляет 70 см (минимальное - 30 см);

расположение рабочего места - на расстоянии не ближе 1.2 м от задней и боковых поверхностей соседних терминалов;

регулярные обследования пользователей у окулиста.

Электрическая опасность

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

ГОСТ 12.2007-75 устанавливает требования безопасности, предотвращающие или уменьшающие до допустимого уровня воздействие на человека электрического тока.

Одной из обязательных мер электробезопасности при работе с компьютером является надежное заземление его (так как потребляемая ЭВМ мощность составляет 150-200Вт,а напряжение сети - 220В(+/-15В), то ток заведомо больше порогового Iпор=0,5мА, следовательно, сопротивление защитного заземления должно равняться Rз=4Ом). Для заземления компьютера, в первую очередь, могут применяться естественные заземлители, любые металлические конструкции, имеющие хорошую связь с землей. Если сопротивление естественных заземлителей больше нормируемого, то необходимо сооружать искусственные заземлители. Ими могут быть стальные трубы, угловая сталь, металлические стержни и др.

Нерациональное освещение

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

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

Как отмечено выше, работа за компьютером относится к категории работ высокой точности (размер объектов до 1,0 мм, контраст с фоном - малый, фон - темный), наименьшая необходимая освещенность при этом равна 300 лк.

При работе с ЭВМ необходимо соблюдать следующие правила:

прежде, чем начать работу за ПК, пройти всестороннее обследование у окулиста;

терминал не должен быть обращен к окну, так как интенсивная освещенность поля зрения ухудшает контрастность изображения на экране;

равномерное распределение яркости - может быть достигнуто за счет использования нескольких источников света либо применения ламп дневного освещения;

оптимальная направленность светового потока - рекомендуемый угол падения света на рабочую поверхность составляет 60 градусов к ее нормали;

осветительные установки не должны являться источниками повышенной опасности;

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

стена позади программиста должна быть освещена так же, как и экран.

Посторонние шумы

При работе различные части компьютера создают посторонний шумовой фон, который отрицательно воздействует на психику человека. Требованиями СН 3223-85 «Допустимые уровни шума на рабочих местах» при работе на ПК допускается уровень шума, не превышающий 50 дБ. Однако в современных моделях компьютеров наблюдается устойчивая тенденция к снижению уровня посторонних шумов (значительно ниже установленной нормы), поэтому шумы на сегодня являются весьма незначительным вредным фактором.

Микроклимат

Согласно СН 4088-86 "Микроклимат производственных помещений" в залах с работающей вычислительной техникой параметры микроклимата должны быть следующими:

в холодные периоды года температура воздуха, скорость его движения и относительная влажность воздуха должны соответственно составлять: 22-24 градуса; 0.1 м/с; 40-60%; температура воздуха может колебаться в пределах от 21 до 25 градусов при сохранении остальных параметров в вышеуказанных пределах.

в теплые периоды года температура воздуха, его подвижность и относительная влажность воздуха должны соответственно составлять: 23-25 градуса; 0.1-0.2 м/с; 40-60%; температура воздуха может колебаться в пределах от 22 до 26 градусов при сохранении остальных параметров в вышеуказанных пределах.

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

Психофизиологические факторы

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

Для уменьшения вредного влияния этих факторов необходимо соблюдать режим работы за компьютером. Продолжительность рабочего дня непосредственно за экраном ПК не должна превышать 4 часов; кроме того, рекомендуется каждый час делать перерыв на 5-10 минут и выполнять легкую разминку, включающую несколько простых физических упражнений.

Планирование рабочего места

При планировании рабочего места за компьютером необходимо учитывать рассмотренные выше требования:

организационные,

электробезопасности,

по уменьшению влияния вредных психофизических воздействий,

по защите от воздействия побочных излучений,

к микроклимату рабочего помещения,

к освещенности.

Кроме того, компьютер должен быть установлен так, чтобы за ним было легко и удобно работать. В процессе работы Ваша поза должна быть такой, чтобы Вы не уставали и, чтобы все необходимое для работы было легкодоступным. Уровень глаз при вертикальном расположении экрана должен приходиться на центр экрана или на 2/3 его высоты. Клавиатуру лучше располагать на расстоянии 10-20 см от края стола, что позволит запястьям рук опираться о стол, либо на коленях. Стул, на котором Вы сидите, должен быть со спинкой и желательно с подлокотниками.

Расчет воздухообмена

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

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

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

а) N < 47.5 / 4.5 = 10.5

б) N < 156.5 / 15 = 10.4

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

Произведем расчет воздухообмена.

Исходные данные:

1. норма температуры в рабочей зоне для помещений, характеризуемых избытком [>23 Вт/м3] теплоты для легкой работы t = 20 - 22 °C ;

2. Объем помещения: 156.5 кубометров.

3. Количество аппаратуры и выделяемая ей мощность:

Монитор SK-3142- K1=2 шт.- W1=150 Вт

ЭВМ IBM PC/AT- K2=2 шт.- W2=250 Вт

Генератор импульсов Г5-75- K3=2 шт.- W3=60 Вт

Осциллограф двухлучевой С1-103- K4=2 шт. - W4=130 Вт

Источник питания Б5-46- K5=1 шт.- W5=400 Вт

Источник питания Б5-47- K6=2 шт.- W6=150 Вт

Вольтметр универсальный В7-40- K7=3 шт.- W7=30 Вт

5. Количество работающих: n = 7.

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

Для одного человека необходимо L'=20м3/ч воздуха. Для удаления тепла выделенного аппаратурой тоже необходим воздухообмен.

Исходя из количества работающих, необходим следующий воздухообмен

L1 = n * L' = 7 * 20 = 140 м3/ч.

Для расчета воздухообмена по теплоизбыткам используется следующая формула:

L2= ,

р *c*( tух-tпр )

где Qя - явно выделяемое тепло в помещении в Дж/ч;

p - плотность воздуха - 1,2 кг/м3;

c - теплоемкость воздуха - 1 кДж/кг К;

tух - температура воздуха, уходящего из помещения;

tпр - температура воздуха, подаваемого в помещение.

tух обычно определяется по следующей формуле:

tух=tрз + t(H-L) ,

где tрз - температура в рабочей зоне;

H - высота от пола до центра вытяжного отверстия;

t - температурный градиент (0,5 - 1,5 °C/м);

L - высота от пола до рабочей зоны.

Избыточное тепло, выделяемое аппаратурой:

Qа = 3600*(W1*K1 + ... + W7*K7) = 3600*(2*150+2*250+2*60+2*130+1*400+2*150+3*30) = 3600*1970 Дж/ч = 7092 кДж/ч


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

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