Визуализация инженерных и научных расчетов

Анализ средств визуализации. Разработка программы-расширения для визуализатора инженерных и научных расчетов Compaq Array Visualizer на языке Фортран. Оценка экономической эффективности и конкурентоспособности созданного программного обеспечения на рынке.

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

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

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

Монитор 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

!Block_6

!Subroutins

subroutine Stat()

print *, "Matrix information"

write (*,*) 'min i=',lbi,' max i=',ubi

write (*,*) 'min j=',lbj,' max j=',ubj

write (*,*) 'max k=', ubk

print *, "Current position"

write (*,*) 'k=', k

write (*,*) 'Animate delay is ', delay

end subroutine

subroutine ChangeDelay()

write (*,*) 'Current animate delay is ', delay

write (*,'(a\)') 'Enter new value of delay > '

read *, delay

return

end subroutine

subroutine Animat()

integer :: k1, k2, tmp

if (pld==1) then

print *, "Can't animate in this view type"

return

end if

write (*, '(a\)') 'Current k is '

print *, k

write (*, '(a\)') 'Enter start k > '

read *, k1

if (k1>ubk) then

k1=ubk

end if

if (k1<lbk) then

k1=lbk

end if

write (*, '(a\)') 'Enter end k > '

read *, k2

if (k2>ubk) then

k2=ubk

end if

if (k2<lbk) then

k2=lbk

end if

if (k2<k1) then

tmp=k1

k1=k2

k2=tmp

end if

if (plx==1) then

write(*,'(a\)') 'Enter i > '

read *,ii

i=int(ii/hy)

if (i>ubi) then

i=ubi

end if

if (i<lbi) then

i=lbi

end if

end if

if (ply==1) then

write(*,'(a\)') 'Enter j > '

read *,jj

j=int(jj/hx)

if (j>ubj) then

j=ubj

end if

if (j<lbj) then

j=lbj

end if

end if

print *, "Start animation"

if (vis==1) then

print *, "3D animation"

do k=k1,k2

write (*,*) 'k=', k

do i=lbi,ubi

do j=lbj,ubj

VMas(i,j)=TDMas(k,i,j)

end do

end do

call favUpdate(hav,0,status)

do tmp=1,(delay*1000000)

end do

end do

end if

if (plx==1) then

do k=k1,k2

write (*,*) 'k=', k

do j=lbj,ubj

PXMas(j)=TDMas(k,i,j)

end do

call favUpdate(hav,0,status)

do tmp=1,(delay*1000000)

end do

end do

end if

if (ply==1) then

do k=k1,k2

write (*,*) 'k=', k

do i=lbi,ubi

PYMas(i)=TDMas(k,i,j)

end do

print *, k

call favUpdate(hav,0,status)

do tmp=1,(delay*1000000)

end do

end do

end if

k=k-1

print *, "End animation"

return

end subroutine

subroutine Help()

print *, "Array Visualizer extender v1.01"

print *, "by V. Sidorin (year 2002)"

print *, "View comands:"

print *, "anim, plainx, plainy, plain3d, visual"

print *, "Other comands:"

print *, "newfile, help, k, delay, status, exit"

return

end subroutine

subroutine ChangeK()

write (*,*) 'Current k is: ', k

write(*,'(a\)') 'Enter k > '

read *,k

if (k>ubk) then

k=ubk

end if

if (k<lbk) then

k=lbk

end if

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

call favUpdate(hav, 0, status)

return

end subroutine

subroutine PlainX()

if (plx==0) then

plx=1

ply=0

pld=0

vis=0

call favSetArray(hav, PXMas, status)

call favSetDimScale(hav, 1, XAxis, status)

call favSetUseAxisLabel(hav, X_AXIS, 1, status)

call favSetAxisLabel(hav,X_AXIS, trim(xname), status)

call favSetUseAxisLabel(hav, Z_AXIS, 1, status)

call favSetAxisLabel(hav,Z_AXIS, trim(zname), status)

end if

write(*,'(a\)') 'Enter i > '

read *,ii

i=int(ii/hy)

if (i>ubi) then

i=ubi

end if

if (i<lbi) then

i=lbi

end if

do j=lbj,ubj

PXMas(j)=TDMas(k,i,j)

end do

call favUpdate(hav,0,status)

return

end subroutine

subroutine PlainY()

if (ply==0) then

plx=0

ply=1

pld=0

vis=0

call favSetArray(hav, PYMas, status)

call favSetDimScale(hav, 1, YAxis, status)

call favSetUseAxisLabel(hav, X_AXIS, 1, status)

call favSetAxisLabel(hav,X_AXIS, trim(yname), status)

call favSetUseAxisLabel(hav, Z_AXIS, 1, status)

call favSetAxisLabel(hav,Z_AXIS, trim(zname), status)

end if

write(*,'(a\)') 'Enter j > '

read *,jj

j=int(jj/hx)

if (j>ubi) then

j=ubj

end if

if (j<lbj) then

j=lbj

end if

do i=lbi,ubi

PYMas(i)=TDMas(k,i,j)

end do

call favUpdate(hav,0,status)

return

end subroutine

subroutine Plain()

if (pld==0) then

plx=0

ply=0

pld=1

vis=0

call favSetArray(hav, VMas, status)

call favSetDimScale(hav, 1, YAxis, status)

call favSetDimScale(hav, 2, XAxis, status)

call favSetGraphType(hav, 2, 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)

end if

do i=lbi,ubi

do j=lbj,ubj

VMas(i,j)=TDMas(k,i,j)

end do

end do

call favUpdate(hav,0,status)

return

end subroutine

subroutine Visu()

if (vis==0) then

plx=0

ply=0

pld=0

vis=1

call favSetArray(hav, VMas, status)

call favSetDimScale(hav, 1, YAxis, status)

call favSetDimScale(hav, 2, XAxis, status)

call favSetGraphType(hav, 1, 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)

end if

do i=lbi,ubi

do j=lbj,ubj

VMas(i,j)=TDMas(k,i,j)

end do

end do

call favUpdate(hav,0,status)

return

end subroutine

subroutine Paus()

integer(4) :: tmp, a, b

write(*,'(a\)') 'Enter number of delays > '

read *, a

if (a<1) then

a=1

end if

do b=1,a

do tmp=1,(delay*1000000)

end do

end do

end subroutine

end program


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

  • Подбор игрового движка и описание его основных характеристик. Разработка структуры, алгоритма и интерфейса программы. Проектирование иерархии классов. Выделение типового приема визуализации. Тестирование правильности работы программного обеспечения.

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

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

    дипломная работа [2,4 M], добавлен 28.08.2017

  • Основные приёмы и возможности алгоритмических языков программирования Fortran. Табуляция функции на языке Fortran, ее графический вид и блок-схема алгоритма. Выполнение расчетов на алгоритмическом языке Фортран. Текст (листинг) Fortran-программы.

    курсовая работа [31,9 K], добавлен 15.02.2011

  • Разработка программного обеспечения автоматической системы научных исследований (АСНИ) в интегрированной среде программирования Borland C++ Builder 6.0, работающего в среде ОС Windows, позволяющего осуществлять управление процессом спектрального анализа.

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

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

    лекция [352,8 K], добавлен 09.03.2009

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

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

  • Разработка программы, реализующей алгоритм обработки двухмерных и одномерных массивов. Область применения, требования к программным средствам. Язык программирования Turbo Pascal. Арифметические операции и выражения. Используемые модули и операторы.

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

  • Особенности разработки и реализации модулей двухмерной и трехмерной визуализации. Основные задачи трехмерного модуля управления. Анализ функций модуля управления ParamColorDrawer. Характерные особенности схемы функционирования программного средства.

    реферат [2,2 M], добавлен 07.03.2012

  • Этапы разработки программного приложения, выполняющего синтаксический анализ программы на языке С и форматирование текста программы на языке С. Требования к программному обеспечению и интерфейсу. Конфигурация технических средств и оценка надежности.

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

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

    дипломная работа [1,6 M], добавлен 24.06.2013

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