46985 (588457), страница 4
Текст из файла (страница 4)
К сожалению язык Fortran не предоставляет достаточно мощных подпрограмм обработки строк. Поэтому все команды имеют вид не команда операнды, а просто команда. Далее, при необходимости, программа требует ввод дополнительных данных, обычно – координат, но помимо этого и различных значений. Внимание: все команды должны быть набраны в нижнем регистре.
Команды можно разделить на четыре группы:
-
Команды помощи
-
Виды отображения
-
Анимация
-
Служебные
Рассмотрим все команды (включая их дополнительный ввод) по их видам:
Команды помощи:
-
help – эта команда выводит информацию о программе, ее версии и список всех доступных команд. Упоминание о ней есть в строке приглашения к вводу (Enter comand (help for comand list)>).
-
status – эта команда выводит сообщение о текущих установках: максимальное и минимальное i, максимальное и минимальное j, максимальное k, текущее k, значение delay.
Виды отображения:
-
visual – эта команда включает 3D-вид отображения. При запуске программы включается именно он. Она не требует дополнительного ввода.
-
plain3d – эта команда включает отображение в виде растровой карты (контрастной заливки). В этом виде нельзя проводить анимацию. Не имеет дополнительного ввода.
-
plainx – эта команда переключает в режим отображения одномерных массивов. Она позволяет отобразить сечение по Y. (Т.е. будет отображаться массив с изменяющейся координатой X и постоянной координатой Y). Требует ввод i.
-
plainy – эта команда также переключает в режим отображения одномерных массивов. Она позволяет отобразить сечение по X. (Т.е. будет отображаться массив с изменяющейся координатой Y и постоянной координатой X). Требует ввод j.
Анимация.
-
anim – эта команда позволяет провести анимацию при выбранном типе отображения (кроме контрастной заливки). При 3D –виде (команда visual) она требует только ввода начального значения k (k1) и конечного значения k (k2). При сечении по Y (команда plainx) она требует ввода координаты i, при каком значении этой переменной будет происходить анимация. При сечении по X (команда plainy) она требует ввода координаты j, при каком значении этой переменной будет происходить анимация. По окончании анимации текущее k принимает значение k2.
Служебные команды.
-
k – эта команда позволяет изменить текущее значение k. При наборе k<0 k становится равным 1. При наборе k>max k, k становится равным max k.
-
delay – эта команда позволяет изменить значение переменной delay, которая определяет задержку между кадрами анимации. Это значение нисколько не указывает на количество секунд или миллисекунд, на которые происходит задержка. При равных значениях переменной delay, более быстрые компьютеры будут давать более маленькую задержку. Начальное значение – 80.
-
pause – эта команда предназначена для скриптового режима работы. Она позволяет приостановить программу. Требует дополнительного ввода количества задержек.
newfile – эта команда позволяет загрузить новые файлы. Она перебрасывает в начало работы с программой.
-
exit – выход из программы.
Скриптовый режим программы.
Наличие этого режима – прямое следствие консольного интерфейса программы. Т.е. для создания такой возможности не было необходимости в дополнительных затратах.
Скрипт (сценарий) состоит из команд программы и требуемого для них дополнительного ввода. Кроме этого, первые две строки скрипта это имена pre-файла и файла данных соответственно. Приведем простой пример скрипта:
out.pre
out.txt
plainx
20
delay
50
anim
2
12
20
pause
2
exit
Его работа заключается в следующем:
-
Считывается pre-файл out.pre из директории где находится программа console.
-
Считывается файл данных out.txt из директории где находится программа console.
-
Выполняется команда plainx (сечение по Y) с координатой i=20. Координата задается в следующей строке после команды. Любой дополнительный ввод начинается с новой строки скрипта.
-
Замена стандартного значения задержки (80) на новое – 50.
-
Далее выполняется анимация этого вида. После команды anim следуют три строки с ее параметрами – начальное k (2), конечное k (12) и координата i (20), по которой будет происходить сечение.
-
Потом выполняется команда pause с параметром 2. Это дает двойную задержку перед выполнением следующей команды.
-
Далее идет команда exit, закрывающая экземпляр AV и программу console.
Заметим, что построение командного интерпретатора позволяет после первых двух строк вставлять любые комментарии. Эти комментарии программа попытается обработать как команды, но не найдя таких команд в своем списке просто их проигнорирует. Однако очень важно помнить, что первые две строки сценария – это обязательно имена pre-файла и файла данных.
Запуск программы console.
Как видно из предыдущих подразделов программу можно запустить в двух режимах: командном и скриптовом.
-
Запуск в командном режиме: при запуске в командном режиме сначала выводится список всех команд, затем запрашивается имя файла со служебной информацией (pre-файла), затем имя файла с данными (результатами расчетов).
-
Запуск в скриптовом режиме: это можно осуществить только при помощи сеанса MS-DOS (Windows 95/98) или программ-оболочек с командной строкой DOS (например Far, Dos Navigator, Norton Commander). Скриптовый режим обеспечивается при помощи перенаправления ввода. Т.е. в командной строке указывается имя программы, потом символ перенаправления ‘<, затем имя файла со скриптом. Пример командной строки: console.exe < in.txt. При выполнении этой команды весь ввод будет браться из файла скрипта in.txt.
1.6 Описание интерфейса между программой визуализации и прикладной инженерной программой.
Инженер, собирающийся воспользоваться программой console должен организовать в своей программе вывод результатов в текстовый файл. Каждое новое число с новой строки. Приведем примеры вывода результатов в файл для Fortran- и C-программ.
Fortran.
Формат выводимых чисел для языка Fortran – E12.5. Т.е. в текстовом файле будет число в виде 1.23456E+02 с пробелом в начале если число положительное и знаком ‘ - ‘ если отрицательное. Пример кода:
Допустим у нас есть массив, объявленный как
Real(4) M(lbi:ubi, lbj:ubj)
Тогда записывать его значения в файл out.txt мы будем следующим образом.
Объявим формат E12.5:
90 FORMAT (E12.5)
Сначала открываем файл:
open (3,FILE='out.txt', STATUS='UNKNOWN')
Далее на каждом шаге моделирования записываем в него информацию из массива следующим образом:
do i=lbi,ubi
do j=lbj,ubj
write(3,90) M(i, j)
end do
end do
После того как пройдены все шаги моделирования, файл необходимо закрыть:
close (3)
Таким образом мы можем записать все шаги моделирования в файл данных, чтобы впоследствии им воспользоваться для работы с программой console.
C/C++
Для С/С++ программ необходим формат “%12.5E”. Все числа необходимо приводить в строки. Напомним, что файл должен быть текстовым.
Пример кода с пояснениями.
Для начала объявим переменные массива, файла и вспомогательную строку:
float M[UBI][UBJ];
FILE* f;
char str[12];
Далее в программе необходимо открыть файл:
f=fopen(“out.txt”,”wt”);
Далее на каждом шаге моделирования записываем в него информацию из массива следующим образом:
for (i=0;i for (j=0;j sprintf(str, "%12.5E", M[i][j]); fputs(str,f); fprintf(f,”\n”); } После того как пройдены все шаги моделирования, файл необходимо закрыть: fclose(f); Обратите внимание на использование функции sprintf. Это наиболее простой способ привести float-числа к нужному виду, идентичному с форматом E12.5 используемому в программе console для считывания данных. 1.7 Тестирование программы и результаты тестовых расчетов Проведем тестирование программы на файлах данных созданных Fortran и C++ программами. Приведем листинг Fortran-программы: program Sample IMPLICIT NONE real(4), allocatable :: M(:,:) integer(1), parameter :: lbi=1, ubi=20, lbj=1, ubj=20 integer(1) :: i,j allocate (M(lbi:ubi,lbj:ubj)) do i=lbi,ubi do j=lbj,ubj M(i,j)=sin(real(i))+sin(real(j)) end do end do 90 FORMAT (E12.5) open (3,FILE='out.txt',STATUS='UNKNOWN') do i=lbi,ubi do j=lbj,ubj write(3,90) M(i,j) end do end do close(3) end program Sample Как видим здесь формируется двумерный массив M(1:20,1:20) который заполняется значениями M(i,j)=sin(i)+sin(j). Составим pre-файл для него (out.pre): 1 20 20 1.00 1.00 X-scale Y-scale Function Результаты вывода программы: 1. 3D-вид (visual) (рис 5 2. Контрастная заливка (рис 6): р 3. Сечение по X (команда plainy с параметром 20) (рис7): 1-30. Проверим теперь взаимодействие с C++ программой: #include #include #include #define UBI 20 #define UBJ 20 FILE* f; char str[12]; float M[UBI][UBJ]; int i,j; void main() { for (i=0;i for (j=0;j if (i<19) M[i][j]=(float)i+sin((float)j) else M[i][j]=0; f=fopen("out.txt","w+t"); for (i=0;i for (j=0;j sprintf(str, "%12.5E", M[i][j]); fputs(str,f); fprintf(f,”\n”); } fclose(f); } Здесь формируется массив M[20]][20] (необходимо помнить, что в C массивы начинаются с 0) и заполняется функцией M[i][j]=i+sin(j). Pre-файл для него такой же как и в предыдущем примере. Р 3D-вид (рис 8): рис 8. Контрастная заливка (рис 9): Сечение по X (команда plainy) (рис 10): р Мы рассмотрели все виды и варианты работы программы, протестировали ее во всех режимах. Программа прекрасно согласуется как с Fortran-программами, так и с C/C++ программами. Помимо этих тестов программа была протестирована на результатах вычисления параметров полупроводниковых приборов и показала хорошие результаты. Системные требования. Работа программы тестировалась на системах Windows 98, Windows 2000 и Windows XP. Минимальные системные требования – Pentium 166 MMX, 32Mb RAM, 1Mb Video. Как видим поддержка OpenGL не обязательна, хотя желательна. Размер программы, вместе с пакетом Compaq Array Visualizer v1.5 – 16Mb. Заключение Разработанная программа, использующая AV, является своеобразным гейтвеем (от англ. gateway) с командной оболочкой, позволяющим передавать данные из рассчитывающей программы инженера в пакет графического отображения информации. Она предоставляет более простой интерфейс для передачи данных. К тому же данные сохраняются в файл и нет необходимости в переносе программы, достаточно переносить только результаты. Помимо этого, за счет скриптового режима программа позволяет устраивать презентации и показы. Несложная командная система не требует длительного изучения и освоения. Программу можно освоить за 30-40 минут. Разработанную программу можно использовать на лабораторных работах студентов, для отображения полученных ими результатов. Она может использоваться сотрудниками институтов или предприятий для отображения результатов моделирования как в процессе программирования и отладки моделирующей программы, так и в процессе демонстрации результатов. Таким образом программа console имеет университетский уровень. Раздел 2. Технология разработки программного обеспечения для визуализации инженерных расчетов Введение Десять - пятнадцать лет назад ЭВМ либо не имели возможности графического вывода, либо графические дисплеи были очень слабы и не подходили для качественного вывода информации. Печатающие устройства существовали только для символьного вывода. Поэтому все результаты расчетов выводились в виде числовых распечаток, по которым проводился анализ, строились графики и т.д. Пять – десять лет назад графические системы позволяли выводить графики с приемлемым качеством изображения, но только для одномерных случаев. Вывод двухмерных случаев в виде поверхностей требовал огромных вычислительных затрат, с которыми не справлялись процессоры тех лет. В наше время, когда высокого быстродействия достигли не только ЦП и математические сопроцессоры, но и графические сопроцессоры вывод результатов в графическом виде ускорился в сотни раз, построение трехмерных изображений и их преобразование заметно упростилось. Поэтому для всех современных САПР и инженерных программ необходимо представление результатов в виде графиков, поверхностей и т.д. Как и всякий процесс, написание программ обработки результатов для последующего графического вывода и вывод имеет свою технологию. В данном разделе и будет рассмотрена такая технология. 2.1 Этапы разработки программного обеспечения для визуализации инженерных расчетов. Для начала выделим основные этапы создания ПО для визуализации инженерных расчетов (далее просто ПО). Постановка задачи. Формирование требований к выводимой информации. Создание структуры данных и интерфейса с рассчитывающими программами. Построение математической модели отображаемой информации (2 подхода): Использование готовых библиотек OpenGL или DirectX, а также готовых компонент ActiveX. Построение собственных математических моделей. Создание интерфейса пользователя. Итак, мы видим пять основных этапов, различных по сложности и объему работ. К тому же, благодаря большому количеству разработчиков библиотек для графического вывода у нас есть два качественно разных подхода. Рассмотрим каждый этап в отдельности более подробно. Постановка задачи Очень важно правильно сформулировать задачу и требования к ПО. Это поможет избежать лишних затрат на создание ненужных подпрограмм вывода, либо переделки готовых программ для дополнения необходимого. Так же при постановке задачи необходимо решить стоит ли использовать подход с построением собственных математических моделей, или достаточно ограничиться уже готовыми библиотеками и компонентами, пусть и платными. В дополнении необходимо учесть необходимость вывода числовой информации, а так же создание “твердой копии”, т. е. распечатки на принтере. При определении вида графической информации, нужно решить для каких случаев она будет выводиться – двумерных или же только одномерных. При выборе двумерных случаев у нас тоже есть выбор: можно выводить в виде поверхностей, либо в виде “контрастной заливки”, или же оба этих случая. При постановке задачи на вывод надо учитывать собственные вычислительные ресурсы и необходимую скорость создания приложения. При определении подхода к построению математической модели вышеуказанные два фактора так же играют главную роль. Собственная модель может обойтись дороже, так как на ее создание уйдет время и, к тому же, как правило, такие модели не задействуют вообще или не на полную мощность возможности графического сопроцессора, а это шаг назад. В связи с этим в последнее время создание собственных математических моделей становится все менее целесообразным и экономически выгодным. 2.3 Создание структуры данных и интерфейса с расчетной программой Этот этап очень важен. От структуры данных зависит быстродействие создаваемого ПО, компактность кода и файлов, в которых хранятся результаты расчетов. Интерфейс с рассчитывающей программой может быть совершенно различным. Информация может передаваться через оперативную память (ОЗУ), через файловую систему в виде бинарных файлов или, более объемных, текстовых файлов. Файлы могут быть компрессированы или нет. Какой из способов выбирать зависит от нескольких факторов: Скорость выполнения расчета – если рассчитывающая программа проводит быстрый анализ, то, возможно, целесообразнее не создавать лишних файлов на внешнем носителе и использовать ОЗУ. Частота изменения входных данных – при частой смене входных данных для расчетов намного эффективнее будет применение передачи результатов через ОЗУ, с вызовом программы визуализации как подпрограммы. По этим двум факторам можно сказать еще следующее: если программа выполняет расчеты долго, или входные данные не меняются (используется итеративный процесс) целесообразней будет использование файловой системы для долгосрочного хранения. Объем передаваемой информации – если объем очень большой, то эффективнее будет хранить его в виде файла. Выбор вида файла (бинарный или текстовый) зависит от языка программирования. Однако следует учесть, что бинарный файл меньше по объему. Компрессировать или нет файл с результатами определяется следующим фактором: если вы пишете ПО для большой САПР и программисты, принимающие участие в этом проекте используют одну и ту же подпрограмму компрессии, то в этом случае следует выбрать сжатый файл. Если же вы пишите университетскую программу или программу для предприятия, на которой будут смотреть результаты своих программ инженеры вашего коллектива, то в этом случае, для упрощения процесса написания рассчитывающих программ следует выбрать не сжатые файлы. В структуру данных также включается управляющая информация для ПО. Она может включать в себя различные параметры как-то: границы массивов данных, значения или шаги по осям, виды представления. При выборе файлового интерфейса ее можно хранить либо отдельно от основных данных, либо вместе с ними. Это уже зависит от вкуса программиста. 2.4 Построение математической модели отображаемой информации. 2.4.1 Использование готовых библиотек В наше время, как отмечалось выше, большинство разработчиков программного обеспечения, связанного с графикой, используют стандартные библиотеки от крупных производителей программ (Microsoft, Silicon Graphics, 3Dfx). Этими библиотеками являются: OpenGL, DirectX, Direct Draw. Их использование ускоряет процесс разработки программы, к тому же они в полной мере задействуют графический и математический сопроцессоры, что увеличивает производительность. Эти библиотеки включают в себя и аппроксимацию и методы работы с двухмерными и трехмерными объектами, такие как аффинные преобразования и методы скрытия невидимых линий, т. е. Так же исчезает необходимость в затратах на сложный процесс математического моделирования. Помимо этого, некоторые производители компиляторов поставляют пакеты обработки результатов математического анализа для отображения в графическом виде. Обычно эти пакеты поставляются в виде компонентов ActiveX (для Windows-платформ). Реже поставляются готовые универсальные оболочки. Программы, написанные для них не нуждаются в разработке интерфейса пользователя большой сложности, что, например, для языка Visual Fortran, использующего только WIN32 API, заметно сокращает время и затраты на создание ПО для визуализации. Частным примером такого пакета является рассматриваемый в данной дипломной работе Compaq Array Visualizer (версия 1.5), включающий в себя компоненты ActiveX: Avis2D (для отображения двумерных массивов данных) и AvisGrid (для отображения числовых данных в виде таблицы). Использование таких компонент и пакетов еще больше ускоряет процесс разработки (хотя, вследствие дороговизны пакетов не дает более экономически выгодных результатов). К преимуществам разработки на готовых универсальных оболочках является стандартизация, т.е. пользователю или инженеру нет необходимости изучать новые программы и их системы интерфейсов и меню. Таким образом, недостающего экономического эффекта можно достигать путем сокращения расходов на обучение персонала. Негативная сторона заключается в затратах на обучение программистов, а так же в затратах на оболочки визуализации. Помимо этого библиотеки, а тем более оболочки, могут не иметь нужных вам функций (например: неудобно выводить данные в логарифмическом масштабе при использовании Avis2D). Кроме того, для использования данного подхода, так как в этом случае крупные производители ПО не применяют технологию “открытого кода”, практически невозможно учесть ошибки, содержащиеся в коде скомпилированных библиотек и оболочек. Такие ошибки обнаруживаются только в процессе использования программы. Но, по сравнению с исправлением программы с собственной математической моделью, это занимает гораздо меньшее время, так как там ошибки могут содержаться не только в коде, но и в модели. Построение собственных математических моделей При разработке своей математической модели (далее: модели) необходимо учитывать быстродействие машин, на которых должна исполнятся программа. Таким образом можно пропустить некоторые из описанных ниже математических и алгоритмических методов. Интерполяция. Результаты вычисляемые рассчитывающей программой представлены в табличном виде. Для сглаживания графиков и поверхностей необходима интерполяция данных. Существует множество алгоритмов и методов интерполяции. Наиболее быстрым и часто применяемым методом является сплайн-интерполяция, которую мы рассмотрим более подробно. Кусочно-полиномиальная интерполяция заключается в том, что между любыми соседними узлами сетки функция интерполируется кубическим полиномом (кубическая сплайн-интерполяция). Его коэффициенты на каждом интервале определяются из условий сопряжения в узлах: fi=yi f’(xi-0)=f’(xi+0) f’’(xi-0)=f’’(xi+0) Кроме того, на границе, при x=x0 и x=xn ставятся условия: f'’(x0)=0 и f``(xn)=0 (1) Будем искать кубический полином в виде: f Из условия fi=yi имеем: f(xi-1)=ai=yi-1 f(xi)=ai+bihi+ciIi2+dihi3=yi. (3) hi=xi-xi-1, i=1,2,…,n-1 Вычислим производные: f’(x)=bi+2ci(x-xi-1)+3di(x-xi-1), f’’(x)=2ci+6di(x-xi-1), И потребуем их непрерывности при x=xi: bi+1=bi+2cihi+3dihi2, ci+1=ci+3dihi, i=1,2,…,n-1 (4) Общее число неизвестных коэффициентов, очевидно, равно 4n, число уравнений (3) и (4) равно 4n-2. Недостающие два уравнения получаем из условий (1) при x=x0 и x=xn; ci=0, cn+3dnhn=0. В ai=yi-1, получим: i=1,2,…,n-1, П после несложных преобразований получаем для определения ci разностное уравнение второго порядка. i=1,2,…,n-1. (5) C краевыми условиями: c1=0, cn+1=0. (6) Условие cn+1=0 эквивалентно условию cn+3dnhn=0 и уравнению ci+1=ci+dihi. Разностное уравнение (5) с условиями (6) решается методом прогонки. Можно ввести понятие сплайна порядка m как функции, которая является полиномом степени m на каждом их отрезков сетки и во всех внутренних узлах сетки удовлетворяет условиям непрерывности функции и производной порядка m-1 включительно. Обычно для интерполяции используются случаи m=3 (рассмотренный выше кубический сплайн) и m=1 (линейный сплайн, соответствующий аппроксимации графика функции y(x) ломаной, проходящей через точки (xi,yi)). Работа с трехмерными изображениями. После проведения интерполяции уже можно построить графики для одномерных случаев. Но двумерные случаи (поверхности) требуют дополнительных математических и алгоритмических методов. Изображение пространственных объектов на экранной плоскости не возможно без операции проектирования. Видов такого проектирования существует довольно много. Мы остановимся на описании проектирования пучком прямолинейных лучей. Различают два типа таких пучков: пучок лучей, исходящих из одной точки и пучок лучей, параллельный заданному направлению. Для получения проекции заданного объекта на плоскость необходимо провести через каждую его точку прямую из проектирующего пучка и затем найти координаты точек пересечения этих прямых с плоскостью изображения. В зависимости от взаимного расположения плоскости изображения и направления пучка параллельных прямых, осуществляющих проектирование, различают несколько случаев. Самым простым является тот, когда прямые перпендикулярны плоскости изображения, а сама эта плоскость является одной из координатных плоскостей или параллельна ей. Для описания преобразований проектирования также удобно пользоваться матрицами. Например, матрица проектирования на плоскость 0yz вдоль оси 0x имеет следующий вид: Если M(x,y,z) – заданная точка, то соответствующая ей точка на плоскости изображения находится так:v Таким образом, точка M проектируется в точку M*(0,y,z). В случае, если плоскость проектирования параллельна координатной плоскости 0yz, матрица несколько изменяется: Аналогично записываются матрицы проектирования на две другие координатные плоскости вдоль соответствующих координатных осей: Матрицы, соответствующие другим случаям взаимного расположения проектирующего пучка параллельных лучей и координатной системы, разумеется, также существуют. Рассмотрим, например, случай косоугольного проектирования, при котором пучок прямых пересекает координатную плоскость 0xy по углом 45o (кабинетная проекция). Тогда соответствующая матрица будет иметь следующий вид: Для просмотра построенной поверхности необходимо включить операции вращения 3D-объекта и, иногда увеличения. Увеличение целесообразно делать по полученным после процесса интерполяции данным, т.е. пересчитывать функцию снова. А вот вращение, перемещение а также зеркальное отображение необходимо делать при помощи общего аффинного преобразования: x*=a1x+b1y+c1z+d1, y*=a2x+b2y+c2z+d2, z*=a3x+b3y+c3z+d3. Любое изменение координат, описываемое этими формулами, можно представить посредством комбинации (последовательного выполнения) простейших операций: параллельного переноса, поворота, зеркального отражения и растяжения (сжатия). Р матрица поворота вокруг оси 0x. матрица поворота вокруг оси 0y. м О Для построения качественного изображения желательно удалить те линии, которые при проектировании на плоскость экрана оказываются невидимыми. Для этого можно использовать различные алгоритмы как-то: алгоритм плавающего горизонта, алгоритм использующий список приоритетов, алгоритм использующий трассировку лучей, алгоритм использующий z-буфер. Последний, наиболее простой разберем подробно. Это один из простейших алгоритмов удаления невидимых поверхностей. Работает этот алгоритм в пространстве изображения. Идея z-буфера является простым обобщением идеи о буфере кадра. Буфер кадра используется для запоминания атрибутов (интенсивности) каждого пиксела в пространстве изображения, z-буфер - это отдельный буфер глубины, используемый для запоминания координаты z или глубины каждого видимого пиксела в пространстве изображения. В процессе работы глубина или значение z каждого нового пиксела, который нужно занести в буфер кадра, сравнивается с глубиной того пиксела, который уже занесен в z-буфер. Если это сравнение показывает, что новый пиксел расположен впереди пиксела, находящегося в буфере кадра, то новый пиксел заносится в этот буфер и, кроме того, производится корректировка z-буфера новым значением z. Если же сравнение дает противоположный результат, то никаких действий не производится. По сути, алгоритм является поиском по х и у наибольшего значения функции z (х, у). Главное преимущество алгоритма - его простота. Кроме того, этот алгоритм решает задачу об удалении невидимых поверхностей и делает тривиальной визуализацию пересечений сложных поверхностей. Сцены могут быть любой сложности. Поскольку габариты пространства изображения фиксированы, оценка вычислительной трудоемкости алгоритма не более чем линейна. Поскольку элементы сцены или картинки можно заносить в буфер кадра или в z-буфер в произвольном порядке, их не нужно предварительно сортировать по приоритету глубины. Поэтому экономится вычислительное время, затрачиваемое на сортировку по глубине. Основной недостаток алгоритма - большой объем требуемой памяти. Если сцена подвергается видовому преобразованию и отсекается до фиксированного диапазона координат z значений, то можно использовать z-буфер с фиксированной точностью. Информацию о глубине нужно обрабатывать с большей точностью, чем координатную информацию на плоскости (х, y); обычно бывает достаточно 20 бит. Буфер кадра размером 512х512х24 бит в комбинации с z-буфером размером 512х512х20 бит требует почти 1.5 мегабайт памяти. Однако снижение цен на память делает экономически оправданным создание специализированных запоминающих устройств для z-буфера и связанной с ним аппаратуры. Альтернативой созданию специальной памяти для z-буфера является использование для этой цели оперативной или массовой памяти. Уменьшение требуемой памяти достигается разбиением пространства изображения на 4, 16 или больше квадратов или полос. В предельном варианте можно использовать г-буфер размером в одну строку развертки. Для последнего случая имеется интересный алгоритм построчного сканирования. Поскольку каждый элемент сцены обрабатывается много раз, то сегментирование z-буфера, вообще говоря, приводит к увеличению времени, необходимого для обработки сцены. Однако сортировка на плоскости, позволяющая не обрабатывать все многоугольники в каждом из квадратов или полос, может значительно сократить этот рост. Другой недостаток алгоритма z-буфера состоит в трудоемкости и высокой стоимости устранения лестничного эффекта, а также реализации эффектов прозрачности и просвечивания. Поскольку алгоритм заносит пикселы в буфер кадра в произвольном порядке, то нелегко получить информацию, необходимую для методов устранения лестничного эффекта, основывающихся на предварительной фильтрации. При реализации эффектов прозрачности и просвечивания, пикселы могут заноситься в буфер кадра в некорректном порядке, что ведет к локальным ошибкам. Хотя реализация методов устранения лестничного эффекта, основывающихся на префильтрации, в принципе возможна, практически это сделать трудно. Однако относительно легко реализуются методы постфильтрации (усреднение подпикселов). Напомним, что в методах устранения лестничного эффекта, основывающихся на постфильтрации, сцена вычисляется в таком пространстве изображения, разрешающая способность которого выше, чем разрешающая способность экрана. Поэтому возможны два подхода к устранению лестничного эффекта на основе постфильтрации. В первом используется буфер кадра, заданный в пространстве изображения, разрешение которого выше, чем у экрана, и z-буфер, разрешение которого совпадает с разрешением экрана. Глубина изображения вычисляется только в центре той группы подпикселов, которая усредняется. Если для имитации расстояния от наблюдателя используется масштабирование интенсивности, то этот метод может оказаться неадекватным. Во втором методе оба буфера, заданные в пространстве изображения, имеют повышенную разрешающую способность. При визуализации изображения. Как мы видим построение собственных математических моделей – процесс трудоемкий и сложный. В моделях могут содержаться ошибки, которые исправить гораздо сложнее, чем ошибки в программах. К тому же использование аппаратных функций видеоадаптеров и графических ускорителей требует специальных знаний, на обучение которым тратится много времени. А без таких знаний выполнение графических программ заметно замедляется. Создание интерфейса пользователя Этот этап выделен как заключающий, потому что от вида интерфейса зависит только удобство работы с программой. Однако любой пользователь достаточно быстро привыкает к любому интерфейсу. С другой стороны, создание хорошего интерфейса пользователя позволит ему быстрее освоить программу и эффективнее с ней работать. На данный момент существует 2 вида интерфейса пользователя: интерфейс командной строки (называемый так же DOS-интерфейс, UNIX-интерфейс или консольный интерфейс) и графический интерфейс (называемый так же GUI – Graphics Users Interface (графическая среда пользователя) или оконный интерфейс). Написание консольного интерфейса не трудоемко в плане написания программы, но весьма сложно в плане разработки системы команд. Если система команд разработана неправильно, то зачастую приходится много раз повторять один и тот же ввод, одни и те же команды, что заметно усложняет процесс работы с программой. Для создания программ с консольным интерфейсом достаточно знаний обработки строк и перевода данных из строкового типа в различные числовые. Написание графического интерфейса наоборот, требует специальных знаний графических библиотек и упрощает разработку структуры интерфейса, так как все GUI стандартизированы и строятся одинаково. Однако программы с графическим интерфейсом занимают больше места, и гораздо больше времени на создания, которое, однако можно сократить используя определенные языки программирования и определенные IDE, например: Object Pascal – Delphi, C++ - C++ Builder с библиотекой OWL, C++ - Visual C++ с библиотекой MFC. Однако не все современные языки программирования имеют развитые IDE и хорошие библиотеки для создания GUI. Частный пример – язык Fortran. Compaq Visual Fortran 6.5 входящий в пакет Visual Studio 6 не поддерживает библиотеку MFC и способен работать только с WIN32 API, что заметно замедляет скорость написания программы, и увеличивает количество строк кода. Заключение Итак, мы подробно рассмотрели все 4 этапа создания программного обеспечения для визуализации инженерных расчетов, а также основные и наиболее часто используемые алгоритмы и математические методы применяемые в таких программах. Подытоживая все выше сказанное, можно отметить что в наше время выгоднее писать программы, в которых модель строится на готовых библиотеках и компонентах. Выгоднее также использовать графический интерфейс, если это позволяет выбранный язык программирования. Раздел 3. Организационно-экономический раздел Оценка целесообразности создания программного продукта с применением методики оценки конкурентоспособности. Введение Оговоримся сразу, что использование созданного ПО предполагается в рамках университетской программы, к тому же работающей по расчетам программ инженеров. Таким образом основными техническими характеристиками будут являться системные требования программ, так как компьютерная техника в России остается достаточно дорогой и поставить мощные рабочие станции во всех классах и лабораториях института не представляется возможным. К тому же по всем остальным параметрам очень сложно определить различия узкоспециализированной программы от САПР более общего назначения. Можно еще заметить, что алгоритмы визуализации программы Array Visualizer ничем не уступают тому же Cadence. Оценим конкурентоспособность созданного товара с этими условиями (т.е. как университетской программы). 3.1 Понятие конкурентоспособности Чтобы товар представлял интерес для покупателя, он должен обладать определенными технико-эксплуатационными и экономическими параметрами. Условием приобретения товара, совершения покупки является соответствие этих параметров основным характеристикам неудовлетворенной потребности потребителя. В процессе покупки покупатель осуществляет выбор товара, устанавливает отличительные признаки, характеризующие конкурентное превосходство данного товара, устанавливает отличительные признаки, характеризующие конкурентное превосходство данного товара над аналогичными по значению товарами конкурентов, находящимися на рынке. Приобретая товар, покупатель там самым оценивает его привлекательность, возможную степень удовлетворения своей конкретной потребности и свою готовность нести затраты, связанные с приобретением и использованием данного товара. Совокупность качественных и стоимостных характеристик товара, способствующих созданию превосходства данного товара перед товарами-конкурентами в удовлетворении конкретной потребности покупателя, определяет конкурентоспособность товара. По степени конкурентоспособности товара производитель может судить о целесообразности вывода данного товара на рынок. Конкурентоспособность характеризует способность товара быть купленным в числе первых на рынке среди товаров-конкурентов. А покупателю конкурентоспособность товара раскрывает уровень привлекательности данного товара и степень его конкурентных преимуществ. Таким образом, конкурентоспособность товара может рассматриваться как степень привлекательности товара для потребителей, которая определяет возможность удовлетворения целого комплекса их требований. Покупатель обосновывает выбор товара, оценивая полезный эффект от его использования и расходы связанные с его покупкой и эксплуатацией. Поэтому конкурентоспособность товара определяется путем сравнения потребителем цены, качества и уровня сервиса, который ему может быть предоставлен до и после покупки товара. Сравнению подлежит также такой показатель, как уровень маркетингового окружения (сопровождения) товара, т.е. состояние расширенных характеристик товара (маркетинг-логистика, сервис, гарантии, реклама, имидж, упаковка, брэндинг и т.д.) Классификационную схему, отражающую факторы привлекательности товара и его конкурентоспособности, можно представить в виде цепочки: цена – качество – сервис – маркетинговое окружение. Или в виде следующей таблицы: Качественные показатели конкурентоспособности характеризуют свойства товара, его характеристики с точки зрения готовности товара удовлетворить конкурентную потребность. Качество товара – это совокупность свойств, обуславливающих его пригодность удовлетворять определенные потребности в соответствии с назначением. Качество товара проявляется в потреблении. Оценивая качество товара, потребитель опосредует степень полезности этого товара как потребительской стоимости. Свойство товара может проявляться при его создании и при эксплуатации. Свойства могут характеризовать товар как объект проектирования (новизна, сложность, патентная чистота и т.д.), как объект производства (материалоемкость, энергоемкость и т.д.) и как объект потребления, эксплуатации (производительность, мощность, скорость, надежность, безопасность, расход материалов и т.д.). Качество услуги включает следующие факторы: компетентность фирмы; надежность деятельности и обязательности фирмы; отзывчивость и внимательность сотрудников; доступность коммуникаций и общения; быстрое понимание потребностей клиента; безопасность обслуживания (в юридическом, финансовом и моральном отношениях); представительность инфраструктуры фирмы и культура обслуживания. Количественные характеристики какого-либо свойства товара, определяющие качество, называются показателями качества. Показатели качества могут классифицироваться по следующим критериям: характеризуемые свойства, способ измерения, способ использования, стадия определения и др. Конкурентоспособность товара характеризует не само по себе его качество, а степень соответствия качества данного товара показаниям аналогичного по назначению товара конкурента. Таким образом, оценка конкурентоспособности товара подразумевает сопоставление значений показателей качества товара фирмы с показателем качества товара конкурента. В связи с этим качественные показатели конкурентоспособности товара подразделяются на классификационные и оценочные. Классификационные показатели раскрывают свойства товара, которые определяют его назначение, область применения и условия использования. Оценочные показатели характеризуют свойства товара, которые определяют его качество. Оценочные показатели используются для анализа соответствия параметров продукции технологическим требованиям и стандартам, а также для установления степени соответствия товара, его свойств конкретной потребности. Оценка соответствия параметров продукции технологическим требованиям и стандартам, как правило, осуществляется на стадии производства и аттестации товара. Поэтому эту группу оценочных показателей можно условно называть нормативно-производственной. Д где qi – частный показатель по i-му нормативному параметру; m – число нормативных параметров, подлежащих оценке. Если изделие соответствует нормам и стандартам, то этот показатель равен 1, если нет, - то 0. Общий показатель по нормативным параметрам (Iнп) рассчитывается как произведение частных показателей по каждому параметру: Как видно, если один из частных показателей будет равен 0, то общий показатель также будет равен 0, а значит изделие или товар в этом случае являются неконкурентоспособными. Экономические показатели конкурентоспособности товара должны оценивать цену потребления, т.е. затраты потребителя, необходимые для удовлетворения его потребности. Они включают затраты на приобретение товара и затраты по эксплуатации товара. Цена потребления (Цп) складывается из рыночной цены товара (Цт), а также из расходов, связанных с эксплуатацией (Цэ), использованием этого товара в период его жизненного цикла: Цп=Цт+Цэ. Оценка соответствия свойств товара конкретной потребности производится чаще всего в процессе использования товара. Поэтому эту группу оценочных показателей условно можно называть консументной (от англ. consume – потреблять). При оценке консументных параметров устанавливается, какие свойства товара наиболее ценны для покупателя, а затем определяется соответствие свойств существующего товара этой потребности или эталону. В количественном отношении такая оценка может быть произведена по формуле: где Ki – частный консументный показатель по i-му параметру; Pнi – величина i-го параметра анализируемого изделия; Pэi – величина i-го параметра эталонного изделия (например, товара–конкурента ). После расчета частных консументных показателей определяют общий показатель по консументным параметрам (Kкп): где ai – удельный вес i-го параметра. m – число параметров Рассчитанный общий показатель Kкп показывает, на сколько создаваемый (или уже созданный) товар соответствует эталонному товару по данному параметру. На практике сопоставление возможно с товаром-конурентом. Поэтому реальное значение Kкп должно быть проверено на соответствие конкретной потребности (1): где Pнi – величина консументного параметра создаваемого изделия; Pкi – величина консументного параметра изделия-конкурента. Оценка экономических параметров конкурентоспособности связана с определением цены потребления анализируемого (или создаваемого) изделия и сравнением ее с ценой потребления товара-конкурента. Сравнение цен потребления производится по формуле (2): где Э – общий показатель по экономическим параметрам; Цпа – цена потребления анализируемого изделия; Цпк – цена потребления товара-конкурента. После определения общих показателей конкурентоспособности по качественным, экономическим и маркетинговым параметрам рассчитывается интегральный показатель уровня конкурентоспособности изделия (3): При Kип>=1 изделие считается конкурентоспособным. Оценка конкурентоспособности изделия или товара – достаточно сложный процесс. Определенные трудности могут возникнуть при выборе единой размерности сопоставляемых показателей и оценке их значимости, определении коэффициентов весомости различных свойств изделия для потребителя. 3.2 Оценка конкурентоспособности В качестве товара-конкурента возьмем популярную САПР для ИМС Cadence. Созданное в процессе дипломного проектирования ПО соответствует минимальным нормативным требованиям, предъявляемым к ПО. Поэтому Iнп=1. Рассчитаем экономический параметр Э. Цена используемой программы Compaq Array Visualizer 1.5 составляет от $200 до $500 в зависимости от поставки. Будем брать максимальную. Система Cadence для ПК стоит порядка $5000 (не будем брать в учет затраты на обучение персонала считаем что сотрудники уже обучены). В соответствии с формулой (2): Э = 500/5000=0.1. Выделим теперь консументные параметры (поскольку системные требования – чем меньше – тем лучше, то взята обратная величина, за идеальное принята минимальная величина). Название параметра Array Visualizer + созданное ПО Cadence AV Ki Cadence Ki Мин. рабочая частота процессора, MHz 166 300 1 0.55 Мин. объем ОЗУ, Mb 32 64 1 0.5 Занимаемое место на HDD, Mb 16 1300 1 0.01 Расчет относительных значений технических параметров: С учетом экономического параметра Э=0.1 интегральный показатель Kин=(Kкп / Э)=(2 / 0.1)=20. Обоснуем выбор коэффициентов ai. Наиболее дешевой компонентой компьютера из всех системных требований является жесткий диск. Величина в 1.5 Gb уже не является заоблачной. Однако процессоры по-прежнему дороги, как и модули ОЗУ. А вот удобство использования - очень важный параметр. Итак общий Kкп в соответствии с формулой (1) : Kкп=2. Тогда, исходя из формулы (3) интегральный показатель уровня конкурентоспособности изделия Kин=20. Это означает что производимое ПО конкурентоспособно. Заключение. Естественно, что мы сравнивали созданное ПО с САПР для ИМС Cadence только в узкой, специализированной нише. Т.е. наша программа ни в коей мере не заменяет полностью такую систему как Cadence. Однако для выводов инженерных расчетов на уровне университетской программы она может в некоторых случаях оказаться экономически выгоднее, чем большие системы (например: лабораторные работы студентов, проектирование новых приборов с написанием собственных программ сотрудниками института). Раздел 4. Производственно-экологическая безопасность и охрана труда. Анализ нормативных документов при работе с ПК. Введение На современном этапе создание новой техники ставит задачу не только облегчить труд человека, но и привести к изменению его роли и места в производственном процессе. В условиях технического прогресса увеличивается количество объектов, которыми он должен управлять, возрастают скорости управляемых им процессов, широкое применение получает дистанционное управление. В связи с этим возрастает роль охраны труда, призванной не только облегчить труд человека, но и сделать условия труда комфортными. При использовании человеком даже самой передовой технологии у него могут возникнуть соответствующие профессиональные заболевания, если работая, он будет пренебрегать даже элементарными правилами техники безопасности. Типичными ощущениями, которые испытывают к концу рабочего дня чрезмерно увлеченные и беспечные пользователи персональных компьютеров, являются: головная боль, резь в глазах, тянущие боли в мышцах шеи, рук и спины, зуд кожи на лице и т.д. Испытываемые день за днем, они могут привести к мигреням, частичной потере зрения, сколиозу, кожным воспалениям и другим нежелательным явлениям. Все это не случайно. Вероятнее всего, человеку уже никогда не удастся полностью избежать пагубного влияния передовых технологий, но, как и во многих других случаях, сами пользователи персональных компьютеров, по крайней мере, могут свести их к минимуму. Большинство проблем решаются сами собой при правильной организации рабочего места, соблюдении правил техники безопасности и разумном распределении рабочего времени. При рассмотрении вопросов охраны труда большое внимание уделяется производственному освещению, оздоровлению воздушной среды, защите от шума, электробезопасности, пожарной безопасности и др. 4.1 Требования к производственному освещению Правильно спроектированное и выполненное производственное освещение обеспечивает возможность нормальной производственной деятельности. Сохранность зрения человека, состояние его центральной нервной системы и безопасность на производстве в значительной мере зависят от условий освещения. Производственное освещение должно удовлетворять следующим требованиям: 1. Освещенность должна соответствовать характеру труда, который определяется объектом различия, фоном, контрастом объекта с фоном. 2. Необходимо обеспечить достаточно равномерное распределение яркости на рабочей поверхности, а также в пределах окружающего пространства. Светлая окраска потолка, стен и производственного оборудования способствует созданию равномерного распределения яркости в поле зрения. 3. На рабочей поверхности должны отсутствовать резкие тени. Особенно вредны движущиеся тени, которые могут привести к травмам. Тени необходимо смягчать, применяя, например, светильники со светорассеивающими молочными стеклами. На окнах необходимо предусматривать солнцезащитные устройства (например жалюзи). 4. В поле зрения должна отсутствовать блескость. Блескость - повышенная яркость светящихся поверхностей, вызывающая нарушение зрительных функций (ослепленность), т.е. ухудшение видимости объектов. Блескость снижают уменьшением яркости источника света или выбором рациональных углов светильника. 5. Величина освещенности должна быть постоянной во времени. Колебания освещенности, вызванные резким изменением напряжения в сети, приводят к значительному утомлению. Пульсация освещенности связана также с особенностями работы газоразрядной лампы. Снижение коэффициента пульсации с 55 до 5% (при трехфазном включении) приводит к повышению производительности труда на 15%. 6. Следует выбирать оптимальную направленность светового потока. Наибольшая видимость достигается при падении света под углом 60 градусов к его нормали, а наихудшая при нуле градусов. 7. Следует выбирать необходимый состав спектра освещения. Это существенно при работах, где требуется правильная цветопередача. 8. Все элементы осветительных установок должны быть достаточно долговечными, электро- и взрыво- безопасными. Обеспечение этого условия достигается применением зануления или заземления, ограничением напряжения для питания местных или переносных светильников до 42 вольт и ниже. Анализируя условия работы программиста получаем следующие требования к производственному освещению: - наименьшая допустимая освещенность от общего освещения составляет 300 лк; - при работе за компьютером желательно, чтобы освещенность рабочего места не превышала 2/3 нормальной освещенности помещения; - экран дисплея не должен быть ориентирован в сторону источников света (окон, настольных ламп и т.п.); при размещении рабочего места рядом с окном угол между экраном дисплея и плоскостью окна должен составлять не менее 90 градусов (для исключения бликов), прилегающую часть окна желательно зашторить; - не следует располагать дисплей непосредственно под источником освещения или вплотную с ним; - стена позади дисплея должна быть освещена примерно так же, как и его экран; - яркость для блестящих поверхностей более 0.2 кв.м не должна превышать 500 кд/кв.м; - показатель ослепленности не должен превышать 40 единиц; коэффициент пульсаций 10 - 20 %. Специфика работы за ПК, состоит в том, что работать приходится с так называемым самосветящимся объектом. Свечение со стороны экрана, а также частая смена заставок на экране при большой продолжительности трудовой деятельности может отрицательно воздействовать на зрение. Такой режим работы утомляет зрительные органы. Поэтому разработчику программного обеспечения следует учитывать этот фактор при проектировании программного обеспечения и его отладке за компьютером. 4.2 Защита от излучений Основным источником эргономических проблем, связанных с охраной здоровья людей, использующих в своей работе персональные компьютеры, являются дисплеи (мониторы), особенно дисплеи с электронно-лучевыми трубками. Они представляют собой источники наиболее вредных излучений, неблагоприятно влияющих на здоровье операторов. История исследования этого вопроса достаточно длительная и непростая, но полученные результаты носят пока еще преимущественно статистический характер и не имеют адекватного объяснения. Частотный состав (спектр) излучения монитора характеризуется наличием рентгеновских, ультрафиолетовых, инфракрасных и других электромагнитных колебаний. Опасность рентгеновского и части других излучений большинством ученых признается пренебрежимо малой, поскольку их уровень достаточно невелик и в основном поглощается покрытием экрана. Наиболее тяжелая ситуация связана, по-видимому, с полями излучений очень низких частот (ОНЧ) и крайне низких частот (КНЧ), которые, как выяснилось, способны вызывать биологические эффекты при воздействии на живые организмы. Было обнаружено, что электромагнитные поля с частотой порядка 60 Гц могут инициировать изменения в клетках животных (вплоть до нарушения синтеза ДНК). Особенно поразительным для исследователей оказался тот факт, что, в отличие, например, от рентгеновского излучения, электромагнитные волны обладают необычным свойством: опасность их воздействия при снижении интенсивности излучения не уменьшается, мало того, некоторые поля действуют на клетки тела только при малых интенсивностях или на конкретных частотах. Специальные измерения показали, что мониторы действительно излучают магнитные волны, по интенсивности не уступающие уровням магнитных полей, способных обусловливать возникновение опухолей у людей. Более серьезные результаты были получены при обследовании беременных женщин. Оказалось, что для тех женщин, которые проводили за дисплеем компьютеров не менее 20 часов в неделю, вероятность преждевременного прерывания беременности (выкидыша) на 80% выше, чем для выполняющих аналогичные работы без применения компьютера. Исследователи из Macworld обнаружили, что если на расстоянии 10 см перед мониторами, обычно используемыми с компьютерами Macintosh, напряженность магнитного поля составляет примерно от 5 до 23 мГс, то на расстоянии 70 см от экрана ни у одного из обследованных мониторов напряженность поля не превышала величины 1 мГс. (Интенсивность поля вне указанных пределов составляла 0.1 - 0.5 мГс.) Как это ни странно, но до сих пор нет нормативов для излучений КНЧ-магнитных полей, хотя в некоторых странах (в том числе в Швеции и Канаде) разработаны стандарты для излучений ОНЧ-магнитных полей. Большое число поставщиков - например, фирмы IBM, DEC и Philips - продают мониторы, удовлетворяющие указанным стандартам. Кроме того, любой монитор, работающий не на ЭЛТ, имеет то преимущество, что не излучает переменных компонент, связанных с наличием систем вертикального и горизонтального отклонения электронного луча. Пользователям персональных компьютеров, желающим снизить уровень облучения переменными магнитными полями, следует расположить мониторы так, чтобы расстояние до них составляло величину, равную расстоянию вытянутой руки (с вытянутыми пальцами). Поскольку магнитные поля сзади и по бокам большинства мониторов значительно сильнее, чем перед экраном, пользователи должны располагать свои рабочие места на расстоянии не менее 1.22 м от боковых и задних стенок других компьютеров. Следует иметь в виду, что магнитное излучение ни чем не задерживается. 4.3 Электробезопасность Электроэнергия получила широкое применение во всех отраслях промышленности. С электроэнергией связаны в той или иной степени все работающие. При неумелом обращении или несоблюдении установленных требований электрический ток представляет серьезную опасность. С применением ПК эта проблема встает особенно остро, поскольку систему электропитания нужно проложить по всему помещению, где расположены ПЭВМ. Основными причинами воздействия тока на человека являются: случайное прикосновение или приближение на опасное расстояние к токоведущим частям; появление напряжения на металлических частях оборудования в результате повреждения изоляции или ошибочных действий персонала; шаговое напряжение на поверхности Земли в результате замыкания провода и др. ГОСТ 12.4.011-75 в разделе "Средства коллективной защиты" определяет следующий перечень основных видов средств защиты от поражения электрическим током: устройства оградительные, автоматического контроля и сигнализации, защитного заземления и зануления, автоматического отключения, выравнивания потенциалов и понижения напряжения, дистанционного управления; изолирующие устройства и покрытия; предохранительные устройства; молниеотводы и разрядники; знаки безопасности. ГОСТ 12.2.007-75 устанавливает требования безопасности, предотвращающие или уменьшающие до допустимого уровня воздействие на человека электрического тока; электрической искры или дуги; движущихся частей изделия; частей изделия, нагревающихся до высоких температур; опасных и вредных материалов, используемых в конструкции изделия, а также опасных и вредных веществ, выделяющихся при эксплуатации. Основными средствами защиты от поражения электрическим током при работе на компьютере являются защитное заземление и зануление. Защитное заземление - это преднамеренное электрическое соединение с землей или ее эквивалентом металлических нетоковедущих частей электрического и технологического оборудования, которые могут оказаться под напряжением. Защитное заземление является простым, эффективным и широко распространенным способом защиты человека от поражения электрическим током при прикосновении к металлическим поверхностям, оказавшимся под напряжением. Обеспечивается это снижением напряжения между оборудованием, оказавшимся под напряжением, и землей до безопасной величины. При установке ПК типа IBM PC с использованием защитного заземления наибольшее допустимое сопротивление защитных заземляющих устройств составляет 4 Ома. Зануление является одним из средств, обеспечивающих безопасную эксплуатацию электроустановок. Оно выполняется присоединением к неоднократно заземленному нулевому проводу корпусов и других конструктивных металлических частей электрооборудования, которые нормально не находятся под напряжением, но могут оказаться под ним при повреждении изоляции. Наибольшее допустимое сопротивление заземляющих устройств и заземлителей в системе зануления при подключении ПК типа IBM PC составляет 30 Ом. Изоляция имеет важное значение в электроустановках, она защищает их от чрезмерной утечки токов, предохраняет людей от поражения током и исключает возникновение пожаров. Правилами устройства электроустановок определено, что сопротивление изоляции сети на участке между двумя смежными предохранителями или за последними предохранителями между любыми проводами должно быть не менее 0.5 МОм. Проводка в производственных помещениях выполняется изолированными проводами или кабелями, которые в местах, где возможны их механические повреждения, укладываются в металлические трубы. Помещения, в которых устанавливаются персональные компьютеры должны соответствовать всем вышеуказанным требованиям. 4.4 Пожарная безопасность Очень важным организационным мероприятием является также проведение обязательного и периодически повторяемого инструктажа по электро - и пожаробезопасности всех лиц, которые допускаются к работе на ПК. При проведении периодически повторяемых противопожарных инструктажей необходимо обязательно добиваться, чтобы персонал практически умел пользоваться первичными средствами тушения пожара и средствами связи Для тушения пожара должны применяться ручные огнетушители и переносные установки. Электросети и электроустановки, которые находятся под напряжением, тушить водой нельзя ни в коем случае, т.к. через струю воды может произойти поражение электрическим током. Именно поэтому для тушения пожара, который возник из-за неисправности электроприборов, применяют только пенные огнетушители. Возможность быстрой ликвидации пожара во многом зависит от своевременного оповещения о пожаре. Обычно на предприятиях электронной промышленности весьма распространенным средством оповещения является телефонная связь. 4.5 Защита от шума и вибрации Шум - это беспорядочное сочетание звуков различной частоты и интенсивности. Шум на рабочих местах в помещениях, где приходится работать программистам, создается внутренними источниками: техническими средствами, установками кондиционирования воздуха и другим оборудованием. Допустимые шумовые характеристики рабочих мест регламентируются ГОСТ 12.1.003-83. Мероприятия, проводимые для снижения уровня шума определяются ГОСТ 12.1.029-80 "ССБТ. Средства и методы защиты от шума. Классификация". Снижение уровня производственных шумов в машинных залах достигается ослаблением шумов самих источников и специальными архитектурно-планировочными мероприятиями, такими как: - облицовка стен и колонн звукопоглощающими перфорированными плитами с прокладкой из пористых поглотителей шума; - уменьшение площади стеклянных ограждений и оконных проемов; - установка особо шумящих устройств на упругие (резиновые, войлочные и т.п.) прокладки; - применение на рабочих местах звукогасящих экранов; - отделение помещений с высоким уровнем шума от других помещений звукоизолирующими перегородками. Колебания тел с частотой, меньшей 16 Гц, воспринимаются организмом человека только как вибрация. Сопровождающие шум механические вибрации не только вредно воздействуют на организм, но и мешают человеку выполнять как мыслительные, так и двигательные операции. Зрительное восприятие также ухудшается под воздействием вибрации. Нормируются параметры вибрации в соответствии с требованиями ГОСТ 12.1.012-78 "ССБТ. Вибрация. Общие требования безопасности". Для ограничения распространения вибрации по материалу жестких конструкций рекомендуется применение изолирующих прокладок (резина, иногда войлок), или пружин, на которые опираются вибрирующие механизмы или их узлы. 4.6 Психофизиологические опасные и вредные производственные факторы Психофизиологические факторы в зависимости от характера действия делятся на следующие группы: физические перегрузки (статические, динамические) и нервно-психические перегрузки (умственное перенапряжение, перенапряжение анализаторов, монотонность труда, эмоциональные перегрузки). Монотонность или монотония - психическое состояние человека, вызванное однообразием восприятий или действий. Под утомлением понимается процесс понижения работоспособности, временный упадок сил, возникающий при выполнении определенной физической или умственной работы. Для уменьшения влияния этих факторов необходимо применять оптимальные режимы труда и отдыха в течении рабочего дня: - общее время работы за дисплеем не должно превышать 50% всего рабочего времени программиста; - при обычной работе за компьютером необходимо делать 15-минутные перерывы через каждые два часа, а при интенсивной работе - через каждый час; - не следует превышать темп работы порядка 10 тысяч нажатий клавиш в час (примерно 1500 слов); - предпочтительнее использовать дисплеи с высокой разрешающей способностью (разрешением) и удобным размером экрана (лучше не применять CGA и EGA-мониторы и малоразмерные, менее 15" по диагонали, экраны); - лучше выбирать видеоадаптеры с высоким разрешением и, по возможности (если есть на рынке и цена приемлемая), частотой обновления экранного изображения не менее 70-72 Гц; - обязательно ставить на дисплеи экранные, в частности, поляризационные, фильтры, в несколько раз снижающие утомляемость глаз; - наконец, при вводе данных с клавиатуры рекомендуется не зажимать телефонную трубку между плечом и ухом. Рабочая поза оказывает значительное влияние на эффективность работы человека. Основные требования к рабочим местам при выполнении работы сидя приведены в ГОСТ 12.2.033-78 "ССБТ. Рабочее место при выполнении работ сидя. Общие эргономические требования". При организации рабочего места программиста необходимо придерживаться следующих рекомендаций: - рабочее место должно быть оборудовано так, чтобы исключать неудобные позы и длительные статические напряжения тела; - поскольку найти такое идеальное положение для тела, в котором можно было бы пребывать в течении всего дня, вряд ли возможно, для большинства людей комфортабельным может быть рабочее место, которое можно приспособить, как минимум, для двух позиций (при этом положение оборудования должно соответствовать выполняемой работе и привычкам пользователя). К обслуживанию и работе на ПК допускаются лица прошедшие медосмотр при поступлении на работу. Последующий медосмотр проводится раз в два года. Также необходимо соблюдать ограничения на работу с персональными компьютерами для служащих, страдающих заболеваниями опорно-двигательного аппарата, глаз (или нарушениями зрения), кожи, а также для беременных женщин (во всех случаях лучше получить консультацию у врача). 4.7 Расчет воздухообмена Одним из основных параметров по оптимизации микроклимата и состава воздуха в помещении является обеспечение надлежащего воздухообмена. Санитарными нормами установлено, что объем производственных помещений на одного работающего должен составлять не менее 15 кубометров, а площадь помещения - не менее 4.5 кв.м. В производственных помещениях объемом до 20 кубометров на одного работающего при отсутствии загрязнения воздуха производственными вредностями вентиляция должна обеспечивать подачу наружного воздуха в количестве не менее 30 куб.м/час на одного работника, а в помещениях объемом 20 - 40 кубометров на одного работающего - не менее 20 куб.м/час. Во всех указанных случаях при этом должны быть выдержаны нормы по температуре и влажности воздуха. Помещение, где располагается рабочее место программиста, имеет площадь 24.5 кв.м и объем 81 кубометр. Учитывая вышеприведенные требования найдем допустимое количество одновременно работающих человек: а) N < 24.5 / 4.5 = 5.5 б) N < 81 / 15 = 5.4 Получаем, что для выполнения указанных требований в данном помещении могут работать не более пяти человек. Произведем расчет воздухообмена. Исходные данные: 1. норма температуры в рабочей зоне для помещений, характеризуемых избытком [>23 Вт/м3] теплоты для легкой работы t = 20 - 22 °C ; 2. Объем помещения: 81 кубометр. 3. Количество аппаратуры и выделяемая ей мощность: Монитор SK-3142 - K1=4 шт. - W1=150 Вт ЭВМ IBM PC/AT - K2=4 шт. - W2=250 Вт 5. Количество работающих: n = 4. При расчете будем исходить из требований санитарно-профилактических норм, предъявляемых к помещениям типа дисплейного класса. Для одного человека необходимо L'=30м3/ч воздуха. Для удаления тепла выделенного аппаратурой тоже необходим воздухообмен. Исходя из количества работающих, необходим следующий воздухообмен L1 = n * L' = 4 * 20 = 120 м3/ч. Для расчета воздухообмена по теплоизбыткам используется следующая формула: где: 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 + W2*K2) = = 3600*(4*150+4*250) = = 3600*1600 Дж/ч = 5760 кДж/ч Избыточное тепло выделяемое людьми: Qл = 4 чел * 355 кДж/ч = 1420 кДж/ч. Явно выделяющееся избыточное тепло: Qя = Qа + Qл = 5760 + 1420 = 7180 кДж/ч. Температура удаляемого воздуха: tух = 22 oC+1.5 ( 2.2-1 ) = 24 °C. Пусть температура поступающего воздуха tп=20 °C. Тогда Таким образом получаем, что система воздухообмена должна обеспечивать собственную производительность 1496 м3/ч для поддержания нормального микроклимата, при обеспечении кондиционером температура поступающего воздуха не более 20 °С. Заключение В данном разделе проведен анализ нормативов по освещенности, защите от шума и вибрации, электро и пожаробезопасности, защите от излучений, психофизиологических факторов при работе с персональными компьютерами, нормативов помещений дисплейных классов. Так же произведен расчет воздухообмена для дисплейного класса кафедры, который показал что при работе четырех человек в помещении объемом 81 кубометр необходим воздухообмен примерно 1500м3/ч. Выводы по дипломному проекту В процессе дипломного проектирования была создана программа – расширение для визуализатора инженерных и научных расчетов Compaq Array Visualizer. Эта программа написана на языке Фортран и рассчитана на визуализацию расчетов полупроводниковых приборов, хотя может быть использована для визуализации любых инженерных и научных расчетов. Программа согласуется с инженерными программами на языках C++ и Fortran и может быть использована как на этапе отладки, так и на этапе демонстрации. Режим сценариев (скриптов) позволяет проводить презентации. Программа, в совокупности с визуализатором Compaq Array Visualizer показала индекс конкурентоспособности по отношению к САПР Cadence в нише визуализации Kкп=20, в основном из-за малой цены. Литература 1. Братеньев О.В. Современный Фортран. Москва. Диалог-МИФИ, 1998г. 2. Братеньев О.В. Фортран для профессионалов. Математическая библиотека IMSL. Москва. Диалог-МИФИ. 2000г. 3. Шелеств В.Д. Программирование. Санкт-Петербург. BHV. 2001г. 4. Самарский А.А. Введение в численные методы. 5. Боресков А.В. Шикин Е.В. Шикина Г.Е. Компьютерная графика: первое знакомство. Москва. Финансы и статистика. 1996г. 6. Константинова Л.А. Ларионов Н.М. Писеев В.М. Методические указания по выполнению раздела “Охрана Труда” в дипломном проекте для студентов МИЭТ. Москва. МИЭТ. 1988г. 7. Багиев Г.Л., Тарасевич В.М., Х. Анн “Маркетинг: учебник”. Москва. “Экономика”. 2001г. Приложение 1. Листинг программы console program Diplom_console use AVDef use DFLib use AVViewer !Block_1 implicit none integer :: lbi=1,ubi,lbj=1,ubj,lbk=1,ubk,i,j,k,status,hav integer(2) :: plx, ply, vis, pld integer(4) :: delay real(4) :: hx,hy,ii,jj real(4), allocatable :: TDMas(:,:,:) real(4), allocatable :: VMas(:,:) !DEC$ATTRIBUTES array_visualizer :: VMas real(4), allocatable :: PXMas(:) !DEC$ATTRIBUTES array_visualizer :: PXMas real(4), allocatable :: PYMas(:) !DEC$ATTRIBUTES array_visualizer :: PYMas !Sclaes real(4), allocatable :: XAxis (:) !DEC$ATTRIBUTES array_visualizer :: XAxis real(4), allocatable :: YAxis (:) !DEC$ATTRIBUTES array_visualizer :: YAxis character (8) :: com character (70) :: preFile, txtFile character (20) :: xname, yname, zname !Block_2 !reading filenames call Help() 1 write (*,'(a\)') 'Enter name of file with presets values >' read *,preFile write (*,'(a\)') 'Enter name of file with matrix values >' read *,txtFile !default values hx=1 hy=1 xname='X' yname='Y' zname='Z' !reading presets 98 format (E4.2) open (3,FILE=trim(preFile)) read(3,'(I2)', END=2) ubk,ubi,ubj read(3,98, END=2) hx,hy read(3,'(a)', END=2) xname read(3,'(a)', END=2) yname read(3,'(a)', END=2) zname 2 close (3) !allocate arrays allocate (TDMas(lbk:ubk,lbi:ubi,lbj:ubj)) allocate (VMas(lbi:ubi,lbj:ubj)) allocate (PXMas(lbj:ubj)) allocate (PYMas(lbi:ubi)) allocate (XAxis(lbj:ubj)) allocate (YAxis(lbi:ubi)) !set axis scales do j=lbj,ubj XAxis(j) = real(j)*hx end do do i=lbi,ubi YAxis(i) = real(i)*hy end do !reading values 99 format (E12.5) open (3,FILE=trim(txtFile)) do k=lbk,ubk do i=lbi,ubi do j=lbj,ubj read(3,99,END=3) TDMas(k,i,j); end do end do end do close (3) !starting state k=1, i=1, j=1 3 k=1 do i=lbi,ubi do j=lbj,ubj VMas(i,j)=TDMas(k,i,j) end do end do j=1 do i=lbi,ubi PYMas(i)=VMas(i,j) end do i=1 do j=lbj,ubj PXMas(j)=VMas(i,j) end do delay = 80 !Block_3 !prepare to start AV call faglStartWatch(VMas, status) call faglStartWatch(PXMas, status) call faglStartWatch(PYMas, status) call faglStartWatch(XAxis, status) call faglStartWatch(YAxis, status) !starting graph is 'visual' k=1 plx=0; ply=0; pld=0; vis=1; call favStartViewer(hav, status) call favSetArray(hav, VMas, status) call favSetDimScale(hav, 1, YAxis, status) call favSetDimScale(hav, 2, XAxis, status) call favShowWindow(hav, av_true, status) call favSetUseAxisLabel(hav, X_AXIS, 1, status) call favSetAxisLabel(hav,X_AXIS, trim(xname), status) call favSetUseAxisLabel(hav, Y_AXIS, 1, status) call favSetAxisLabel(hav,Y_AXIS, trim(yname), status) call favSetUseAxisLabel(hav, Z_AXIS, 1, status) call favSetAxisLabel(hav,Z_AXIS, trim(zname), status) call Stat() !Block_4 4 call favSetArrayName(hav, 'Array Visualizer Extender Shell', status) write (*,'(a\)') 'Enter comand (help for comand list)> ' read(*,'(a)') com if (trim(com) == 'status') then call Stat() end if if (trim(com) == 'anim') then call Animat() end if if (trim(com) == 'delay') then call ChangeDelay() end if if (trim(com) == 'k') then call ChangeK() end if if (trim(com) == 'plainx') then call PlainX() end if if (trim(com) == 'plainy') then call PlainY() end if if (trim(com) == 'plain3d') then call Plain() end if if (trim(com) == 'visual') then call Visu() end if if (trim(com) == 'help') then call Help() end if if (trim(com) == 'exit') then goto 5 end if if (trim(com) == 'pause') then call Paus() end if if (trim(com) == 'newfile') then goto 1 end if goto 4 !Block_5 5 print *, "Ending work" call faglEndWatch(Vmas, status) call faglEndWatch(PXMas, status) call faglEndWatch(PYMas, status) call faglEndWatch(XAxis, status) call faglEndWatch(YAxis, status) deallocate(TDMas) deallocate(VMas) deallocate(PXMas) deallocate(PYMas) deallocate(XAxis) deallocate(YAxis) call favEndViewer(hav, status) contains ис 6.
езультаты вывода программы console:
ис 10.
(x)=ai+bi(x -–xi-1)+ci(x-xi-1)2+di(x-xi-1)3, (2)
ыражая из (4) di=(ci+1-ci)/3hi, подставляя это значение в (3) и исключая
одставив теперь выражения для bi, bi+1 и di в первую формулу (4),
Следует, однако, заметить, что при составлении программ приведенная выше покоординатная формула записи простейших преобразований, как правило, не используется. Ее заменяют другой, более удобной матричной записью:
ассмотрим частный случай для вращения:
атрица поворота вокруг оси 0z
перацию параллельного переноса нельзя записать при помощи матрицы используемого размера 3 на 3. Тем не менее, единая матричная запись всех упомянутых преобразований возможно, если формально ввести еще одну дополнительную координату:
Созданная в процессе дипломного проектирования программа использует пакет Compaq Array Visualizer v1.5 для своей работы. Целью данного раздела является показать целесообразность такого выбора, а так же экономические выгоды от использования данной программы.
Созданное ПО имеет массу конкурентов на рынке. В основном это большие САПР для ИМС такие как, например Cadence имеющие свои, встроенные, программы визуализации.
Фактор.
Характеристика критериев.
Цена
Соотношение уровня цены с ценами основных конкурентов.
Развитость системы дифференциации цен в зависимости от соотношения спроса и предложения, а также политики конкурентов.
Привлекательность для потребителей системы скидок.
Качество
Технико-эксплуатационные характеристики продукции (функциональность, надежность, удобство эксплуатации и т.д.).
Престижность, дизайн, экологичность товара.
Сервис
Качество поставки товара.
Уровень торгового обслуживания.
Наличие запасных материалов и центров по сервисному обслуживанию.
Маркетинговое окружение.
Уровень организации маркетинг-логистики.
Эффективность рекламных мероприятий.
Уровень дизайна и содержательности упаковки.
Разработанность брэндинга товара.
Уровень гарантийного обслуживания покупателей до и после приобретения товара.
Возможность покупки товара с помощью средств мультимедиатехноглогий.
ля оценки уровня нормативных параметров используется специальный показатель, который имеет только два значения – 1 или 0.
Удобство использования
-
-
0.4
1
Название параметра
AV Ki
Cadence Ki
ai
(Pнi/Pкi)*ai
Мин. рабочая частота процессора
1
0.55
0.20
0.36
Мин. объем ОЗУ
1
0.5
0.20
0.4
Занимаемое место на HDD
1
0.01
0.01
1
Удобство использования
0.4
1
0.59
0.24
Общий Kкп
2