Solar Power Plant Real Time Simulation/ Visualization
Download
Report
Transcript Solar Power Plant Real Time Simulation/ Visualization
Capstone Project Fall 2009
Team # 6
October 8 2009
Mentors from Tietronix company
Michel Izygon
Peter Armstrong
Insia Iftiqhar
Claus Nilsson
-
[email protected]
[email protected]
[email protected]
[email protected]
Team members:
Ngoc Vu (Team leader, Researcher, Developer)
Hai Tran (Researcher, Algorithm , PR, Documentation Composer)
Hai Nguyen (Researcher, Website admin, Developer)
Tuan Le (Researcher, Developer, Documentation Composer)
Project Description
Project Specification
Applied Technologies
CUDA
Open GL
Issues
Blocking and Shading
Ray Tracing
Project Demo
Milestone
Conclusion
Reference
Solar Thermal Plant is power plant by using
solar energy.
It includes a thousand mirrors around a tower
to reflect the sun light to the receiver at the
top of the tower.
It collects the sun’s energy to generate heat
that is used to run a turbine generator.
(Solar Thermal Energy form http://www.solar-thermal.com/images/image_players.jpg)
The heliostats track the movement of the sun.
The received energy is used to heat the fluid
inside the receiver. This process will generate
water vapor to run turbine generator.
The capstone project will develop a photorealistic 3D simulation of a solar power plant.
It will model the motion of the sun and
heliostats and will be updated in faster than real
time.
The system is a photo-realistic 3D simulation
of a concentrating solar power plant using
Cuda and OpenGL.
It tracks the movement of the sun.
Heliostats will be represented as flat
rectangular mirrors.
The tower will be models as a cylinder.
It will show the shadows of heliostats upon
neighboring heliostats.
The shadow of the tower will be casted.
The system will maintain a graphical frame
rate at a minimum of 20 fames per second.
It will allow users to control the simulation
date and time, the rate of change of time, the
camera position.
NVIDIA CUDA is a parallel processing
architecture.
CUDA leverages the parallel compute engine
in NVIDIA graphic processing units (GPUs) to
solve complex computational problems in
such a much shorter time on CPU.
Developer use C, C++ to program to the
CUDA architecture.
CUDA architecture includes OpenCL[2] and
DirectCompute
CUDA Features:
CUDA driver is used for computing with fast data
transfer path between GPU and CPU
CUDA driver interoperates with OpenGL and
DirectX graphics drivers
It supports for Linux and Windows XP.
GPUs have a
parallel "manycore"
architecture,
and each core
can run
thousands of
threads
simultaneously
The Application Programming Interface (API )
to graphic hardware.
The streamlined, hardware independent
interface.
The standard for computer graphic
programming.
Provides :
Separation of interaction from rendering
3D geometric objects.
3D modeling transformations
Viewing functions to create views of 3D scenes
using the idea of a virtual camera.
High quality rendering of scenes.
Display lists for creating graphic caches and
hierarchical models.
The manipulation of images.
Frame-buffer effects.
Main libraries : provide functions
GLU ( OpenGL Utility Library ) :
▪ More complex primitives.
GLUT ( OpenGL Utility Toolkit ) :
▪ Managing windows on the display screen.
▪ Handling input events from mouse and
keyboard.
▪ Drawing 3D objects
▪ Tools for creating GUI
Shading:
the sunlight
to a heliostat is
blocked by another
heliostat.
Blocking:
the
reflection light beam
from one heliostat to
the receiver is blocked
by another heliostat.
Complicated formula
Time consuming
Peter’s document
Simple formula
Easy to understand and program
Compute vertices of each
heliostats
For each (representative)
heliostat
Find its neighbors
Eliminate don’t-care neighbors
For each do-care neighbor
• Project it to the plane that contains
the representative heliostat (just
four vertices of the neighbor
heliostats are projected)
• Indicate if a vertex is inside the
representative heliostat
• Indicate the shading/blocking
region
• Go to next neighbor
Go to next heliostat
Light source
Source: siggraph.org
Light source
Source: siggraph.org
Light source
Source: siggraph.org
OpenGL supports
Draw 3D model (heliostats, tower)
Define virtual screen
Define viewpoint (where eyes or camera locates)
Use CUDA to process each pixel on the screen
Viewpoint
Screen
From file
Plant configurations
Heliostats’ center
coordinates
Sun position
Using Cuda (one thread for each
heliostat)
Vertices’ coordinates of each heliostat
3D Model using our
shading and blocking
algorithm
3D Model using ray
tracing
Render 3D model to
screen using OpenGL
Milestones
Basic tasks:
Research OpenGL, CUDA, Ray tracing…
Apply OpenGL, CUDA to the project.
Draw 3D objects : tower, heliostats …
Apply changing time, changing direction of
heliostats .
Processing tasks :
Apply shading and blocking for heliostats.
Simulate sun’s movement for the project.
Optimize the algorithm for the project.
Parallel processing with CUDA
http://www.nvidia.com/docs/IO/55972/22040
1_Reprint.pdf
CUDA Zone
http://www.nvidia.com/object/cuda_what_is.
html
An algorithm for shading and blocking
computations of a field of heliostats arranged
in a grid layout - Peter Amstrong, Tietronix
Software, Inc