Solar Power Plant iPhone Visualization

Project Report

Version 2.0

By

Darshan Chipade

Mohammed Gooni

Syed Zaidi

Yogesh Banchhod

InstructorMentors

Dr. Kwok Bun YueDr. Michel Izygon

Peter Armstrong

Insia Iftiqhar

Claus Nilsson

November 28, 2009

Capstone Project – CSCI 6838

Team# 5

Fall 2009

University of Houston Clear-Lake

HoustonTX, U.S.

Executive Summary

Solar thermal power plant generates electricity from energy of the sun. The heat is generated using sun tracking mirrors called heliostats. These heliostats reflect the sunrays onto a receiver located at the top of a tower. The receiver consists of a fluid heated by the reflected sunrays from the heliostat. This heat creates water vapor further sent to turbines to generate electricity.

The purpose of the project was to focus on the development of an iPhone/iPod Touch program, visualizes the central heliostat along with surrounding eight heliostats at a user-specified location, time and date. The user also provides information related to tower and heliostats. The application renders the heliostat field and models the light emitted by the sun. The heliostats reflect the lights onto the receiver. The interaction of heliostats with one another was modeled to the extent that they can cast shadows and block the view of the receiver. The development platform was Xcode and Unity 3D game engine. A Unity 3D game engine was used for rendering the graphics of shading and blocking. The Unity game engine can improve 3D imagination of designers and serve as a convenient and very intuitive tool for an interpretation of measurements and experiments on solar concentrators. The heliostats can be visualized from sun and tower positions. This application developed will be used for marketing the solar power plant.

Acknowledgement

With affection and deep appreciation, we acknowledge our indebtedness to our professor Dr. Kwok Bun Yue,Chair, Division of Computing and Mathematics, for giving us an opportunity to explore our skills and innovations beyond the prescribed syllabi of our coursework by granting us the permission to work at Tietronix Inc. We further extend our gratitude to our mentorDr. Michel Izygon, CEO, Tietronix Inc., for providing us with an opportunity to work on the latest iPhone technologies and all the required software and hardware. We are also thankful to the team of mentors fromTietronix Inc., including Peter Armstrong, Insia Iftiqhar, and Claus Nilsson for the guidance throughout the course of our project and providing us with the required information and details which helped us in resolving the critical issues.

Table of Contents

Contents

Executive Summary

Acknowledgement

Table of Contents

List of Tables

1.Introduction

2.Project Requirements

3.Development and Work Environment

3.1Assumption and Dependencies

4.Project Methodologies

4.1.Phase 1: Analyze

4.2.Phase 2: Design

4.3.Phase 3: Development / Implementation

4.4.Phase 4: Deployment

4.5.Phase5: Testing Validatin and Verification

Appendix A: Team Information

Appendix B: Project Management

Appendix C: Major Task and Contributions

Appendix D: Screen Shots

Appendix E: Acronyms and Abbreviations

List of Tables

Table 1: Game Engines Comparison

Table 2: Team Contributions

List of Figures

Figure 1: Solar Power Plant

Figure 2: Heliostat View

Figure 3: Sun, Tower and Heliostats Position

Figure 4: Unity 3D Game Engine

Figure 5: MAC OS

Figure 6: iPhone/iPOD Device

Figure 7: Sun Vector Geometry

Figure 8: Sun Azimuth and Elevation

University of Houston Clear Lake-Fall 09 1

Solar Power Plant iPhone Visualization

1.Introduction

Solar Thermal power plants are generating electricity from the energy of the sun. They use a field of a few thousand mirrors to reflect the sun rays onto a receiver located at the top of a tower. In the receiver a fluid is being heated by the concentrated sunlight and then water vapor generated is sent to a regular turbine. These power plants were studied extensively in the 70’s and 80’s. There is a strong renewed interest in the technology, and for the past few years a number of new projects were started that need updated software tools for their design and operation.

The Solar Power Plants based on solar thermal energy in the Mojave Desert, USA and Spain

Field view is as shown in Figure 1.

Figure 2.shows the heliostat view of the Solar Power Plant project.

Figure 3.shows the relation between sun, Tower, and Heliostat position

The purpose of the project was the development of a suite of software that can support the solar plant designers as well as the plant operators. This project focused on the development of an iPhone (and/or iPod Touch) computer software program which visualizes the heliostats and central tower of a simplified solar power plant at a user-specified location, time and date.

The scope of the project was to visualize a cell consisting of a central heliostat and eight neighboring heliostat at a time. The part of the project was to position the sun and heliostat as per the calculation given in paper[1] using user input. Also, display the shadowing and blocking among the heliostats.

This project is beneficial from marketing point of view, to demonstrate the working of the Solar Power Plant at a user-specified location, time and date.

The subsequent sections discuss about the project requirement, research work, unity iPhone details, project methodology, details related to implementation of sun, tower, heliostats and blocking/shading.

2.Project Requirements

Major project requirements are as follows:

User Input screen

User should be able to enter the inputs such as date, time, heliostat measurement, tower measurement, field layout, tower placement.

Grid Layout screen

In grid field layout, the user interface shall display a simple 2D grid of the given dimensions.The user shall be able to touch a cell in the grid to indicate which cell is to be graphically displayed in 3D. When the user has selected the desired cell to be rendered, the user shall touch a button to indicate that the application will begin the rendering process.The orientation of each heliostat shall be computed based upon the relative position of the sun, tower and the heliostats location in the field.

Computation of Sun position, Heliostat position and blocking/shading.

Cell View screen

-Graphically render the field in 3D on the iPhone (and/or iPod Touch)

-Graphically render the reflections (shiny texture) on the mirrored surface of neighboring heliostats.

-The user shall be able to navigate through cells using navigation arrows.

-The application shall display the Sun position information on the screen.

Different Views

User should able to view cell view in different cameras such as Sun view, Tower view and Heliostat view etc.

3.Development and Work Environment

Unity iPhone 3D Game Engine:

Unity is an integrated authoring tool for creating 3D video games or other interactive content such as architectural visualizations or real-time 3D animations.

The editor runs on Windows and Mac OS X and can produce games for Windows, Mac, or iPhone platforms.

MAC OS

MAC OS is required for the iPhone development purpose.

It support the unity iPhone software application, which is useful

to develop the unity iPhone application.

iPhone/ iPOD Device

The unity iPhone application needs to deploy on the iPhone / iPOD device was the major requirement of the project,

3.1Assumption and Dependencies

Date Time not considering the weather condition on that time.

4.Project Methodologies

4.1.Phase 1: Analyze

Research Work

Our team performed the research on different game engines such as SIO2, Unity iPhone, OOLONG and Torque.The research mainly focused on cost of the software and development time.

Table 1: Game EnginesComparison

Properties / SIO2 / Unity iPhone / OOLONG / Torque
Cost / Free / iPhone publication cost / Free / $150
User Friendly / No / Yes / No / No
Other Tools / Blender required / No / No / No
Compatibility / Win/MAC / Win/MAC / Win/Mac / Win/Mac
Shadowing / Yes / Yes / Yes / No
iPhone simulator / Yes / No / No / Yes
Documentation / Limited / Good / Limited / Limited

Approaches/ Proposed Solution

Complete Unity project (selected approach)

In this approach, GUI was created using unity iPhone API. It allowsusing the external API’s.This was a good approach as it allows navigating through GUI and rendering modules. No Work around is required for the same. This approach does not allow using some of the XCode related features. Only Unity application needs to be run which eventually results in better performance.

XCode – Unity Combination

In this approach, GUI is created using XCode and rendering using Unity iPhone. This approach was very complicated; it required a lot of work around using flags to navigate through GUI and rendering modules. This approach allows using all the XCode features. However, XCode and Unity both application need to run all the time. XCode and Unity does not work vice-versa.

4.2.Phase 2: Design

4.2.1.GUI framework

This was one of the critical tasks in iPhone application development. iPhone devices are smaller in size which makes it very tedious to design the GUI design suitable to touch panel.The application was based on many user inputs. So to make user friendly GUI design, separate GUI formswerecreated for different types of inputs such as Date, Time input, Heliostat input, Tower input, Field layout input and Summary etc. The main window combined all the user input windows. Summary form displayed all user inputs and also allowed the user to modify the given input.

4.2.2.Store/Retrieve information framework

User preference setting stored in players setting in the file. ‘StoreData’ class was created to handle the Store/Retrieve user settings.Only one instance of ‘Store Data’ object created throughout the application using Singleton design pattern. When user submits the information, all the user input related information will be stored in the file. ‘Load Button’ provided to the user in order to load the previously entered data by the user.

4.2.3.Current Date and Time population

Current Date and Time was automatically populated into the date and time field respectively.

4.2.4.Validation framework:

Each user input is validating as per the requirement. Once user submits the form, validation process executes and it will pop up the error message window which will eventually display all the error messages in the particular form.

4.3.Phase 3: Development / Implementation

The development of the Phase 3 began with the calculation of sun, heliostat. In this phase we calculated the shading and blocking of the heliostat as well. Our aim was to verify the sample values provided in paper [1] with the calculation part completed by our team in this phase. Section 4.3.1, 4.3.2 and 4.3.3 gives the brief overview of the sun, heliostat, shading and blocking respectively. Section 4.3.4 and 4.3.5 gives the detailed description about the implementation of Solar thermal power plant using the Unity game engine.

4.3.1.Sun Calculation

According to [1], the implementation of sun calculation finds the position of the sun in the true equator and equinox of date frame of reference. The position is found within an accuracy of 0.01 degrees (36 arc seconds) in celestial longitude. Since the sun’s minimum angular size is about 0.525 degrees, this method is accurate to within 1.9% of the mean solar diameter.

Figure 7: Sun Vector Geometry

The above diagram is the geometry included to calculate the sun vector at a particular date and time. Using date, time, north latitude, east longitude and elevation we calculated the following vectors

=Geocentric Sun Position Vector

=Station Position Vector

=Sun’s slant range vector

=Topodetic Sun position vector

E=Sun’s Elevation

Az=Sun’s Azimuth

Figure 8: Sun Azimuth and Elevation

Figure 8.shows the Sun azimuth and elevation in the topodetic east-north-up field coordinate

4.3.2.Heliostats

According to[1]a method for systematically determining how heliostats interact with and affect the performance of a physically adjacent neighbor in the simple case of a grid layout with a cylindrical receiver. A field of heliostats is approximated by a grid of n rows and m columns. The grid is said to be composed of cells. Each cell is square, with its length provided by the user. One of the cells contains a tower. The tower’s location is specified by its row and column numbersrespectively, and the center of that cell forms the origin of the field (Figure 8). The centerheliostat is called the representative heliostat. The field coordinates of the representative heliostat in each cell are derived from the cell size and location in the grid.The coordinates of the vertices of the heliostat is to represent the shape of the reflective surface to an adequate fidelity. In the case of a rectangular heliostat, four vertices are sufficient.

Figure 9. Cell Representation

Figure 9.shows the cell representation of heliostats. The red noderepresents the center heliostat and neighboring heliostatsare represented by blue nodes. This cell happens to be directly to north of the tower.

4.3.3.Shading and Blocking

Shading

Shading is the degree to which neighbors cast their shadows onto the representative heliostat. Shading will be viewable from the sun view. Figure shows two heliostats, neighboring heliostat and representative heliostat. When sun rays are passed on the neighbor heliostat it creates shading on the representative heliostat which is visible in the figure. The projection of the neighboring heliostat onto plane of representative heliostat shows the intersection where shading is taking place.

Blocking

Blocking is the degree to which light is being reflected from each representative heliostat and is intercepted, or blocked, by its neighbors.Blocking will be viewable from the tower view. In the figure there are two heliostats shown, neighboring heliostat and therepresentative heliostat. The neighboring heliostat intersect some part of the representative heliostat which is shown as a projection onto plane of representative heliostat, so when the sunlight is passed on the representative heliostat it will not be reflected completely to the tower.

Unity-PRO version has a built in functionality for blocking and shading, but, Unity-iPhone does not support blocking and shading. The technique used to show blocking and shading is discussed in detail in the Implementation section.

4.3.4. Implementation

Visualization Screen

Visualization screen renders the Solar Thermal power plant on the iPhone/iPod touch. The development platform is Unity 3D game engine which renders the graphics for Solar Thermal Power plant. The Unity game engine enhances 3D imagination of the designers. Unity is a multiplatform 3D game engine targeted largely for indie developers and casual games, although the scope appears to be expanding. Platforms include Mac (widget, browser and standalone), Windows (browser and standalone), iPhone and Wii. The initial development phase began with the implementation of the sample 3D models like cube, sphere and cone etc. Unity game engine comes with a built in function to create these 3D models. The screen basically in our project visualizes the plane, heliostat, sun, tower, buttons and compass etc. The detailed description including implementation, positioning, and textures of the 3D models rendered in our project is mentioned below.

Assumption

The entire development was done the Unity game engine. Unity game engine comes with certain inbuilt features. Whenever a new project is built in Unity the following assumptions are made

  1. A scene view is created which portray the vision in three dimensions.
  2. A Project view is created with the new project. All the 3D objects created are directly added in the project view.
  3. A 3D object added to the scene always comes with an Inspector window. This window allows user to change the position, rotation and scale of the 3D model directly.
  4. In order to run the project Unity provides with the play button or play ctrl+p.
  5. Unity comes with the iPhone view (Tall view and Horizontal view).
  1. Plane
  1. Creation

The plane in Unity game engine actually imitates the ground in Solar Thermal Power plant. The plane was created using the Unity game engine built in function. To create a plane we had to follow the path GameObject=> Create other => Plane in Unity 3D game engine. Athree dimensional plane with basic texture appeared in a 3D view.

  1. Positioning and Scaling

The positioning and scaling of the plane was done using the Transform window which appeared once the plane was created. The position of the plane was set to origin (0, 0, 0). The scale was initially set to default and later was adjusted based on the positioning of the other 3D models.

  1. Textures

The plane once created comes with a default grey colored texture. The final texture implemented in the Visualization screen was Good Dirt ground. The Good Dirt ground is simply a .psd image created in Adobe Photoshop. To change the default texture to a Good dirt ground we had to add image to the material section in the Inspector window. This plane imitates a ground like appearance giving the feel of presence of actual field in the Solar Thermal Power plant.