390 likes | 700 Views
Capstone Project Fall 2009 Team # 6 October 8 2009. Solar Power Plant Real Time Simulation/ Visualization Requirements. GENERAL PROJECT AND TEAM INFORMATION. Mentors from Tietronix company Michel Izygon - Michel.Izygon@tietronix.com Peter Armstrong - peter.armstrong-1@tietronix.com
E N D
Capstone Project Fall 2009 Team # 6 October 8 2009 Solar Power Plant Real Time Simulation/ Visualization Requirements
GENERAL PROJECT AND TEAM INFORMATION • Mentors from Tietronix company • Michel Izygon - Michel.Izygon@tietronix.com • Peter Armstrong - peter.armstrong-1@tietronix.com • Insia Iftiqhar - Insia.Iftiqhar@tietronix.com • Claus Nilsson - Claus.Nilsson@tietronix.com • 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)
Table of contents • Project Description • Project Specification • Applied Technologies • CUDA • Open GL • Issues • Blocking and Shading • Ray Tracing • Project Demo • Milestone • Conclusion • Reference
Project Description • 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.
Project Description (cont.) (Solar Thermal Energy form http://www.solar-thermal.com/images/image_players.jpg)
Project Description (cont.) • 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 photo-realistic 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.
Project Specification • 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.
Project Specification • 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.
CUDA • 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 (cont.) • 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.
CUDA (cont.) • GPUs have a parallel "many-core" architecture, and each core can run thousands of threads simultaneously
Open GL • The Application Programming Interface (API ) to graphic hardware. • The streamlined, hardware independent interface. • The standard for computer graphic programming.
Open GL • 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.
Open GL • High quality rendering of scenes. • Display lists for creating graphic caches and hierarchical models. • The manipulation of images. • Frame-buffer effects.
Open GL • 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 • Shading: the sunlight to a heliostat is blocked by another heliostat.
Blocking • Blocking: the reflection light beam from one heliostat to the receiver is blocked by another heliostat.
Old shading and blocking Algorithm • Complicated formula • Time consuming • Peter’s document
Our algorithm • Simple formula • Easy to understand and program
Our algorithm (cont.) • 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
Ray Tracing Light source Source: siggraph.org
Ray Tracing (cont.) Light source Source: siggraph.org
Ray Tracing (cont.) Light source Source: siggraph.org
Ray Tracing in the Project • 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
Ray Tracing in the Project Viewpoint Screen
Program Flow 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
Milestone • Milestones
Conclusion • 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 .
Conclusion • Processing tasks : • Apply shading and blocking for heliostats. • Simulate sun’s movement for the project. • Optimize the algorithm for the project.
Reference • Parallel processing with CUDA http://www.nvidia.com/docs/IO/55972/220401_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