Systems and methods for array level terrain based backtracking

A system and method for array level terrain based backtracking includes a tracker configured to collect solar irradiance and attached to a rotational mechanism for changing a plane of the tracker and a controller in communication with a rotational mechanism. The controller is programmed to determine a position of the sun at a first specific point in time, retrieve height information, execute a shadow model based on the retrieved height information and the position of the sun, determine a first angle for the tracker; collect an angle for each tracker in a plurality of trackers in an array; adjust the first angle based on executing the shadow model with the first angle and the plurality of angles associated with the plurality of trackers; transmit instructions to the rotational mechanism to change the plane of the tracker to the adjusted first angle.

BACKGROUND

The field relates generally to tracking systems for adjusting solar trackers and, more specifically, to determining angles for solar trackers to maximize production and reduce shadows based on the terrain at the location of the solar tracker.

Recently, the development of a variety of energy substitution such as, a clean energy source and environment friendly energy are emerging to replace fossil fuels due to the shortage of fossil fuels, environmental contamination issues, etc. One of the solutions is to use solar energy. This type of solar energy use can be categorized into three types; one of the types converts solar energy to heat energy and uses it for heating or boiling water. The converted heat energy can also be used to operate a generator to generate electric energy. The second type is used to condense sunlight and induce it into fiber optics which is then used for lighting. The third type is to directly convert light energy of the sun to electric energy using solar cells.

Solar trackers are groups of collection devices, such as solar modules. Some solar trackers are configured to follow the path of the sun to minimize the angle of incidence between incoming sunlight and the solar tracker to maximize the solar energy collected. To face the sun correctly, a program or device to track the sun is necessary. This is called a sunlight tracking system or tracking system. The method to track the sunlight can generally be categorized as a method of using a sensor or a method of using a program.

In terms of a power generation system using solar energy, a large number of solar trackers are generally installed on a vast area of flat land to keep modules of solar trackers from overlapping. But, when multiple solar trackers are installed, shade can occur due to interference between the solar trackers, and sunlight cannot be fully absorbed when the sun does not arise above a certain angle or due to weather conditions. Furthermore, solar trackers are grouped into arrays of trackers, where multiple solar trackers are positioned from East to West along the terrain.

In addition, some solar trackers are installed in areas with changes in elevation between solar trackers. In these situations, significant shading from other trackers can occur. When the sun is at certain angles, such as just after sunrise or just before sunset, a solar tracker can interfere with the solar collection of a solar tracker multiple rows away.

BRIEF DESCRIPTION

In one aspect, a system is provided. The system includes a first tracker attached to a rotational mechanism for changing a plane of the first tracker. The first tracker is configured to collect solar irradiance. The first tracker is in an array including a plurality of trackers. The system also includes a controller in communication with the rotational mechanism. The controller includes at least one processor in communication with at least one memory device. Each tracker of the plurality of trackers is associated with a controller. The at least one processor is programmed to store, in the at least one memory device, a plurality of positional information and a shadow model for determining placement of shadows based on positions of objects relative to the sun. The at least one processor is also programmed to determine a position of the sun at a first specific point in time. The at least one processor is further programmed to retrieve, from the at least one memory device, height information for the plurality of trackers in the array. A first height of the first tracker is different than a second height of a second tracker of the plurality of trackers in the array. In addition, the at least one processor is programmed to execute the shadow model based on the retrieved height information and the position of the sun. Moreover, the at least one processor is programmed to determine a first angle for the first tracker based on the executed shadow model. Furthermore, the at least one processor is programmed to collect an angle for each tracker in the plurality of trackers in the array. In addition, the at least one processor is also programmed to adjust the first angle based on executing the shadow model with the first angle and the plurality of angles associated with the plurality of trackers in the array. In addition, the at least one processor is further programmed to transmit instructions to the rotational mechanism to change the plane of the tracker to the adjusted first angle.

In another aspect, a method for operating a first tracker in an array is provided. The method is implemented by at least one processor in communication with at least one memory device. The method includes storing, in the at least one memory device, a plurality of positional information and a shadow model for determining placement of shadows based on positions of objects relative to the sun. The method also includes determining a position of the sun at a first specific point in time. The method further includes retrieving, from the at least one memory device, height information for the first tracker and a plurality of trackers in the array. A first height of the first tracker is different than a second height of a second tracker of the plurality of trackers in the array. In addition, the method includes executing the shadow model based on the retrieved height information and the position of the sun. Moreover, the method includes determining a first angle for the first tracker based on the executed shadow model. Furthermore, the method includes collecting an angle for each tracker in the plurality of trackers in the array. In addition, the method also includes adjusting the first angle based on executing the shadow model with the first angle and the plurality of angles associated with the plurality of trackers in the array. In addition, the method further includes transmitting instructions to change a plane of the first tracker to the adjusted first angle.

In a further aspect, a controller for a first tracker in an array is provided. The controller includes at least one processor in communication with at least one memory device. The at least one processor is programmed to store, in the at least one memory device, a plurality of positional information and a shadow model for determining placement of shadows based on positions of objects relative to the sun. The at least one processor is also programmed to determine a position of the sun at a first specific point in time. The at least one processor is further programmed to retrieve, from the at least one memory device, height information for the first tracker and a plurality of trackers in the array. A first height of the first tracker is different than a second height of a second tracker of the plurality of trackers in the array. In addition, the at least one processor is programmed to execute the shadow model based on the retrieved height information and the position of the sun. Moreover, the at least one processor is programmed to determine a first angle for the first tracker based on the executed shadow model. Furthermore, the at least one processor is programmed to collect an angle for each tracker in the plurality of trackers in the array. In addition, the at least one processor is also programmed to adjust the first angle based on executing the shadow model with the first angle and the plurality of angles associated with the plurality of trackers in the array. In addition, the at least one processor is further programmed to transmit instructions to a rotational mechanism connected to the first tracker to change a plane of the first tracker to the adjusted first angle.

DETAILED DESCRIPTION

The systems and processes are not limited to the specific embodiments described herein. In addition, components of each system and each process can be practiced independent and separate from other components and processes described herein. Each component and process also can be used in combination with other assembly packages and processes.

FIG. 1is a perspective view of a solar module100of a solar tracker.FIG. 2is a cross-sectional view of the solar module100(shown inFIG. 1) taken along line A-A ofFIG. 1.

The module100includes a top surface106and a bottom surface108. Edges110extend between the top surface106and the bottom surface108. Module100is rectangular shaped. In other embodiments, module100may have any shape that allows the module100to function as described herein.

A frame104circumscribes and supports the module100. The frame104is coupled to the module100, for example as shown inFIG. 2. The frame104protects the edges110of the module100. The frame104includes an outer surface112spaced from one or more layers116of the module and an inner surface114adjacent to the one or more layers116. The outer surface112is spaced from, and substantially parallel to, the inner surface114. The frame104may be made of any suitable material providing sufficient rigidity including, for example, metal or metal alloys, plastic, fiberglass, carbon fiber, and other material capable of supporting the module100as described herein. In some embodiments, the frame is made of aluminum, such as 6000 series anodized aluminum.

In the illustrated embodiment, the module100is a photovoltaic module. The module100has a laminate structure that includes a plurality of layers116. Layers116include, for example, glass layers, non-reflective layers, electrical connection layers, n-type silicon layers, p-type silicon layers, backing layers, and combinations thereof. In other embodiments, the module100may have more or fewer layers116than shown inFIG. 2, including only one layer116. The photovoltaic module100may include a plurality of photovoltaic modules with each module made of photovoltaic cells.

In some embodiments, the module100is a thermal collector that heats a fluid such as water. In such embodiments, the module100may include tubes of fluid which are heated by solar radiation. While the present disclosure may describe and show a photovoltaic module, the principles disclosed herein are also applicable to a solar module100configured as a thermal collector or sunlight condenser unless stated otherwise.

FIG. 3is a side view of a tracker300in accordance with at least one embodiment. Tracker300includes a plurality of modules100(shown inFIG. 1). The tracker300(also known as a tracker row) controls the position of a plurality of modules100. The tracker300includes support columns305and one or more rotational mechanisms310. The rotational mechanism310is configured to rotate the tracker300to track the sun315as described herein. In the example, the rotational mechanism310rotates the tracker300along a single axis from −60 degrees to 60 degrees, where 0 degrees is horizontal. Rotation mechanism310can be any rotational mechanism310able to move the tracker300between angles as described herein. The rotational mechanism310can include, but is not limited to, linear actuators and slew drives.

The tracker300can include a single module or a plurality of modules100. The tracker300can also include an entire row of modules100positioned side-by-side. Or any other combination of modules100that allows the tracker300to work as described herein.

FIG. 4is an overhead view of an example solar array400at a solar site405. The solar array400includes a plurality of trackers300, where each tracker300includes a plurality of modules100positioned in a row. The solar site405includes a plurality of solar arrays400. The trackers300are configured to rotate so that the top surface106(shown inFIG. 2) of each tracker is perpendicular to the angle of the sun315(shown inFIG. 3).

The position of each tracker300is controlled by a row controller410. The row controller410calculates the angle for the modules100in the tracker300and instructs a rotational mechanism310(shown inFIG. 3) to move the tracker300to that angle. The rotational mechanism310can be capable of moving a tracker300, which can consist of a single module100, an entire row of modules100, or a portion of a row of modules100. A tracker300can include multiple rotational mechanisms310. A single rotational mechanism310can adjust multiple trackers300.

The row controller410of this embodiment is in communication with a site controller415. The site controller415can provide information to the row controller410such as, but not limited to, weather information, forecast information, sun position information, and other information to allow the row controller410to operate as described herein. In some embodiment, site controller415may only be an array zone controller, which controls and sends information to a plurality of row controllers410in an array400, but is only in communication with a portion of the row controllers at the site405.

The row controller410and/or the site controller415are in communication with one or more sensors420located at the solar site405. The one or more sensors420measure conditions at the solar site405.

The row controller410is programmed to determine the position of the sun and the corresponding angle of the trackers300in this embodiment. For each tracker300, the row controller410determines the sun's position with respect to the center of the tracker300. The row controller410stores the latitude, longitude, and altitude of the tracker300. In at least one embodiment, the row controller410calculates the current position of the sun using the National Renewable Energy Lab's (NREL) equations to calculate the sun's position at any given point in time. In alternative embodiments, the row controller410is in communication with one or more sensors420capable of determining the sun's current position. The row controller410is programmed to maximize the energy yield for the trackers300by minimizing the angle between the sun vector and the normal vector of the plane of the tracker300.

The row controller410instructs the rotational mechanism310to adjust the plane of the tracker300, so that the plane of the tracker300does not deviate by more than +/−1 degree while tracking the sun. In some embodiments, the row controller410provides a step size to the angle of the plane of the tracker300of two degrees. This means that the row controller410adjusts the plane of the tracker300for every two degrees the sun moves. The row controller410can adjust the angle of the plane of the tracker300by any amount, limited by the mechanical tolerances of the tracker300and the rotational mechanism310. In some embodiments, the row controller410instructs the rotation mechanisms310to adjust each tracker300individually, where trackers300in the same row may be adjusted to different angles. In other embodiments, the row controller410transmits instructions to the trackers300in a single row that all of the trackers300in that row should be adjusted to the same angle. In some further embodiments, the row controller410may transmit instructions to trackers300in different rows. For example, a row controller410may control trackers300in two adjacent rows.

FIG. 5illustrates a plurality of trackers300(shown inFIG. 3) on uneven terrain during backtracking. During the early hours and late hours of the day, the sun315(shown inFIG. 3) is low on the horizon. This can cause shadows to appear on various trackers300because of the angle required for the plane of the tracker300to be normal to the angle of the sun315.

Backtracking is an algorithm for calculating the optimum angles for the plurality of trackers300to prevent shadows during tracking. In the illustrated embodiment, the backtracking algorithm is executed by the row controller410(shown inFIG. 4). The backtracking algorithm considers eastward and westward terrain slope to determine the angle for the tracker300for shadow-free tracking. The backtracking algorithm uses a mathematical model of the tracker300to calculate and update the backtracking angles for every two degrees of the sun's movement. While the predetermined threshold is described as two degrees herein, any predetermined threshold can be used depending on how often the users desire the tracker's angle to be updated.

For calculating the optimal angle, the backtracking algorithm takes into consideration the width of the tracker300, the distance between adjacent rows of trackers300, the difference in elevation between the different rows of trackers300, the current angle of the tracker300, and the angle of the sun315. The row controller410calculates the backtracking angles for the trackers300its row. The row controller410uses the backtracking algorithm to maximize the energy yield for the trackers300by minimizing the angle between the sun vector and the normal vector of the plane of the tracker300while also minimizing the shadows cast by the adjacent trackers300.

More specifically,FIG. 5illustrates five different trackers A-E505,510,515,520, and525. Each of the five trackers A-E505,510,515,520, and525is associated with a different row. For this example, each of the five trackers A-E505,510,515,520, and525is currently facing in an easterly direction towards the sun315(shown inFIG. 3). In addition, each of the five trackers A-E505,510,515,520, and525are positioned at a different elevation. The different elevation could cause shading issues at certain times of day.

To account for the terrain, the row controller410executes a terrain based backtracking algorithm to determine an optimal angle for the tracker(s)300in its row based on the terrain information for the row in question and the adjacent rows to the east and the west of the row in question.

During morning backtracking, the row controller410sets the angle of the tracker300so that the shadow from an eastern, adjacent tracker300will come as close as possible to the lower edge of the tracker300in question as possible. This is because in the morning, the sun315is rising, so the gap between the shadow and the tracker300increases over time. Every time the row controller410adjusts the angle of the tracker300, the shadow moves back to as close as possible to the bottom edge of the tracker300.

During afternoon backtracking, the row controller410sets the angle of the tracker300so that the shadow from a western, adjacent tracker300has a gap between the shadow cast by the adjacent tracker300and the bottom of the tracker300in question. Since the sun315is setting, the gap will decrease over time. The goal is to have the gap disappear by the time the sun315has moved enough that the row controller410needs to move the tracker300again.

The row controller410stores the terrain information for each row including the top-of-post heights of the trackers300in each row. The row controller410also stores the size of the tracker300and the spacing between the rows, including any variable spacing between the rows. Other information stored by the row controller410includes, but is not limited to, the latitude, longitude, and altitude of the site, the current time, and the current sun position based on the exact date, time, latitude, longitude, and altitude. The row controller410uses this information to model shadows to compute the exact shadow regions that will be made by the current row and the adjacent rows. The row controller410determines the plane of the array for each of the adjacent rows. Then the row controller410uses the determined planes of array for the adjacent rows to determine the plane of array for the current row. Each of the planes of arrays are calculated to maximize the amount of solar irradiance collected while minimizing the amount of shadow received and projected onto other trackers300.

For example, tracker C515is associated with row controller C530, which is similar to row controller410. Row controller C530stores the top of post heights of and the distances between the trackers B, C, and D510,515, and520. Based on the relative post heights of the three trackers B, C, and D510,515, and520, the distance between their corresponding rows, the sizes of the three trackers B, C, & D510,515, and520, the current position of the sun315based on the current time and the physical location of the three trackers B, C, and D510,515, and520, and one or more future positions of the sun315, the row controller C530is able to determine an optimal angle to set tracker C515to and instructs the associated rotational mechanism310(shown inFIG. 3) to set the tracker to that optimal angle. In at least one embodiment, the row controller410determines the angles for the plane of arrays for trackers B, C, and D510,515, and520as if the angles for all three are the same as each other.

All of the trackers300in a single row are at the same elevation in this embodiment. In alternative embodiments, some of the trackers300in a row are at different elevations. In these alternative embodiments, the corresponding row controller410calculates the angles for the trackers300either individually or in groups by elevation. This can include calculating the angles in groups based on the varying elevations of the adjacent rows. In some embodiments with varying elevations, the row controller410can use the average elevation, the lowest elevation, and/or a combination thereof to calculate the angle for the tracker300.

Array600includes a plurality of trackers605-640.FIG. 6also illustrates a plurality of shadows650-685cast by the plurality of trackers605-640.

As shown inFIG. 6, a shadow650cast by a tracker605may affect the performance of tracker620that is a distance away from the casting tracker605. Accordingly, the row controller410needs to account for the shadows that affect trackers one or more rows away. This may occur during periods where the sun is particularly low in the horizon, such as early morning or late afternoon. This also may occur when the different trackers605-640are at different altitudes based on their terrain. For example, a tracker300may be in a gully or depression in the terrain and be more susceptible to being blocked by higher altitude trackers300.

FIG. 7illustrates another plurality of solar trackers300(shown inFIG. 3) in an array700on uneven terrain during backtracking. During the early hours and late hours of the day, the sun315(shown inFIG. 3) is low on the horizon. This can cause shadows to appear on various trackers300because of the angle required for the plane of the tracker300to be normal to the angle of the sun315.

Backtracking is an algorithm for calculating the optimum angles for the plurality of trackers300to prevent shadows during tracking. However, in some cases the sun315is at such an angle that shadows from a tracker300impact a tracker multiple rows away from the tracker300casting the shadow. To mitigate this issue the row controllers410(shown inFIG. 4) can communicate to coordinate to maximize the amount of solar irradiance collected for the array700as a whole.

In the array700shown inFIG. 7, there are five rows of trackers705-725, each with their own row controller730-750. In some embodiments, the row controllers730-750are in communication with an array controller755.

The backtracking algorithm is executed by each row controller730-750. The backtracking algorithm considers eastward and westward terrain slope to determine the angle for the tracker300for shadow-free tracking. The backtracking algorithm uses a mathematical model of the tracker300to calculate and update the backtracking angles for every two degrees of the sun's movement. While the predetermined threshold is described as two degrees herein, any predetermined threshold can be used depending on how often the users desire the tracker's angle to be updated.

For calculating the optimal angle, the backtracking algorithm takes into consideration the width of the tracker300, the distance between the rows of trackers705-725, the difference in elevation between the different rows of trackers705-725, the current angle of each tracker705-725, and the angle of the sun315. The row controller410calculates the backtracking angles for the trackers300its row. The corresponding row controller730-750uses the backtracking algorithm to maximize the energy yield for the trackers705-725by minimizing the angle between the sun vector and the normal vector of the plane of the tracker300while also minimizing the shadows cast by the other trackers705-725in the array700.

During morning backtracking, the row controller730-750sets the angle of each tracker300so that the shadow from an eastern, adjacent tracker300will come as close as possible to the lower edge of the tracker300in question as possible. This is because in the morning, the sun315is rising, so the gap between the shadow and the tracker300increases over time. Every time the row controller730-750adjusts the angle of the tracker300, the shadow moves back to as close as possible to the bottom edge of the tracker300.

During afternoon backtracking, the row controller730-750sets the angle of each tracker300so that the shadow from a western, adjacent tracker300has a gap between the shadow cast by the adjacent tracker300and the bottom of the tracker300in question. Since the sun315is setting, the gap will decrease over time. The goal is to have the gap disappear by the time the sun315has moved enough that the row controller730-750needs to move the tracker300again.

However, at some angles and some relative elevations, a single tracker300can shade more than one other row of trackers705-725. More specifically,FIG. 7illustrates five different rows of trackers 1-5705,710,715,720, and725. Each of the five rows of trackers 1-5705,710,715,720, and725is associated with a different row. For this example, each of the five rows of trackers 1-5705,710,715,720, and725is currently facing in a westerly direction towards the sun315(shown inFIG. 3). In addition, each of the five rows of trackers 1-5705,710,715,720, and725are positioned at different elevations. The differences in elevations could cause shading issues at certain times of day. For example, if tracker row 5725was positioned so that the tracker300was normal to the position of the sun315as is currently shown inFIG. 7, multiple other trackers would be shaded. In this example tracker row 4720would be completely shaded, tracker row 3715would be mostly shaded and a portion of tracker row 2710would be shaded as well. Accordingly, more irradiance would be lost than would be gained by having tracker row 5725normal to the vector of the position of the sun315.

To account for the terrain and the other rows of trackers705-725, each row controller730-750executes an array level terrain based backtracking algorithm to determine an optimal angle for the rows of tracker(s)705-725based on the terrain information for the row in question and the other rows of trackers705-725to the east and the west of the row in question.

In the array level terrain based backtracking algorithm, the row controller730-750stores the terrain information for each row of trackers705-725including the top-of-post heights of the trackers300in each row of trackers705-725. The row controller730-750also stores the size of the tracker300and the spacing between the rows, including any variable spacing between the rows. Other information stored by the row controller730-750includes, but is not limited to, the latitude, longitude, and altitude of the site, the current time, and the current sun position based on the exact date, time, latitude, longitude, and altitude. The row controller730-750uses this information to model shadows to compute the exact shadow regions that will be made by the current row and the adjacent rows.

In the array level terrain based backtracking algorithm, each tracker controller730-750determines the optimal angle for each row of trackers705-725. The optimal angle for each tracker705-725is the angle that provides the maximum irradiance collected, which is usually the angle that is closest normal to the vector of the sun315. In other embodiments, the tracker controller730-750calculates an angle where the shadow cast by the row of trackers705-720in question is cast at the base of the adjacent row of trackers705-725. In this embodiment, the row controller730-750assumes that the starting position of the adjacent rows of trackers705-725is the same as the row of trackers705-725in question. In some embodiments, the row controller730-750determines the plane of the array for each of the adjacent rows. Then the row controller730-750uses the determined planes of array for the adjacent rows to determine the plane of array for the current row. Each of the planes of arrays are calculated to maximize the amount of solar irradiance collected while minimizing the amount of shadow received and projected onto other trackers300.

The row controllers730-750then communicate their angle with the rest of the row controllers730-750and each receive the angles for each of the other rows of trackers705-725. Then the row controller730-750executes a shadow model to determine the shadows being cast by its row of trackers705-725and the shadows being cast by other rows of trackers705-725based on the provided angles, and how those shadows may impact the irradiance collected by the row of trackers705-725in question.

Each row controller730-750then calculates a new angle for its row of trackers705-725based on the shadows that its row of trackers705-725would cast and the shadows cast by other rows of trackers705-725to maximize the amount of irradiance collected for the array700as a whole. The row controllers730-750report these new angles to each of the other row controllers730-750. Each row controller730-750will repeatedly calculate a new angle for its row of trackers705-725based on the reported angles of the other rows of trackers705-725. In some embodiments, this process is repeated until a maximum amount of irradiance is determined based on the angles of the rows of trackers705-725and the shadows that they cast. In the example embodiment, the process is repeated multiple times until optimal angles are determined for each of the rows of trackers705-725for each angle of the sun315desired. For example, the process can be repeated for every two degrees that the sun315moves or another predetermined threshold based on the user's preferences.

In some embodiments, the row controller730-750determines that a row of trackers705-725is a lost cause, such as when a row of trackers705-725is in a gully, surrounded by hills, or just having a higher elevation row of trackers705between it and the sun315. If the row of trackers705is determined to be a lost cause, the row of trackers705-725in question will be set to a horizontal position, i.e., at an angle of zero degrees. For example, row of trackers 4720may be determined to be a lost cause because of the shadows cast by row of trackers 5725. In this example, row of trackers 4720is set to angle zero. Then, the row of trackers 5725may be set at an angle that is fully normal to the vector of the sun315or as close as possible without casting shade on row of trackers 3715. Row of trackers 5725can also be set to an angle that casts a shadow at the bottom of row of trackers 3715to allow that row of trackers 3715to not be shaded and to also maximize the amount of irradiance collected. The row of trackers705-725can maximize the irradiance collected by positioning the tracker300at an angle as close to normal to the sun315as possible without encountering shade. However, the amount of shading caused may reduce the overall amount of irradiance collected.

In some other embodiments, the process is performed by the array controller755. The array controller755stores the elevation and spacing information for the rows of trackers705-725that make up the array700. Based on the angle of the sun315, the array controller755uses the shadow model to determine the angles for each of the rows of trackers705-725that maximizes the amount of solar irradiance collected by the array700as a whole. This can mean that to maximize the total irradiance collected by the array700, one or more rows of trackers705-725may be set to not directly collect irradiance, such as row of trackers 4720inFIG. 7. In these embodiments, the array controller755can replace the row controllers730-750. The array controller755can also be in communication with the row controllers730-750to determine the current angle for each row of trackers705-725and to instruct the row controllers730-750, which angle to set each row of trackers705-725to.

In some further embodiments, rather than setting the angle of a lost cause row of trackers705-725to zero, the angle is set to match the angle of the sun315to provide a minimum amount of shadow on the other rows of trackers705-725. For example, the row controllers730-750and/or the array controller755determine that if row 5 of trackers725is turned towards the sun315, then the row 5 trackers725will block multiple rows of trackers725from collecting solar irradiance. The row controllers730-750and/or the array controller755determine that the amount of solar irradiance lost is greater than the amount of irradiance collected by the plane of row 5 of trackers725being normal to the angle of the sun315. In this situation, the row controllers730-750and/or the array controller755can set row 5 of trackers725to an angle equal to or close to the angle of the sun315. In this way, the row 5 of trackers725provides a minimum amount of shade to the other rows of trackers 7-5-720.

FIG. 8illustrates an example graph800of the angles for the plane of the tracker300(shown inFIG. 3) over the period of one day. Line805illustrates the angles of the tracker300during a single day. At the beginning of the day, the tracker800is positioned using morning backtracking810. During the majority of the day, the tracker300is positioned using the normal algorithm815. At the end of the day, the tracker300is positioned using evening backtracking820.

FIG. 9illustrates another graph900of the angles for the plane of the tracker300(shown inFIG. 3) over the period of one day. Line905illustrates the absolute value of the angle. In the embodiment shown inFIG. 9, the tracker300is stored in the horizontal position overnight.

The row controller410stores1005, in at least one memory device, a plurality of positional information and a shadow model for determining placement of shadows based on positions of objects relative to the sun315(shown inFIG. 3).

The row controller410determines1010a position of the sun315at a first specific point in time. The row controller410retrieves1015, from the at least one memory device, height information for the tracker C515and at least one adjacent tracker300, such as tracker B510(shown inFIG. 5). A first height of the tracker300is different than a second height of the at least one adjacent tracker300, such as trackers B & C510and515. Both heights are based on the top of support column305(shown inFIG. 3) of the corresponding tracker300. In some embodiments, the support column305is the same height for each tracker300, but the relative heights of the tops of the support columns305is based on the terrain in which the support columns305are placed. In other words, a difference in the first height of the tracker300and a second height of the at least one adjacent tracker300is based on terrain where the individual tracker300is positioned. In this embodiment, the tracker300is a first tracker300, wherein the at least one adjacent tracker300includes a second tracker300and a third tracker300, such as trackers B & D510and520respectively, where tracker C515is the first tracker300. The second tracker300is positioned east of the first tracker300and the third tracker300is positioned west of the first tracker300. The first tracker300is in a first row. The second tracker is in a second row. The third tracker300is in a third row.

The row controller410executes1020the shadow model based on the retrieved height information and the position of the sun315. The row controller410determines1025a first angle for the tracker300based on the executed shadow model. In executing the shadow model, the row controller410determines a first position of a first shadow cast by the second tracker300(aka tracker B510). The row controller410can also determine a second position of a second shadow cast by the third tracker (aka tracker D520). The row controller410determines the first angle for the first tracker300(aka tracker C515) to avoid the first shadow and/or the second shadow.

In executing the shadow model, the row controller410also determines a third position of a third shadow cast by the first tracker300(aka tracker C515). The row controller410determines the first angle for the first tracker300(aka tracker C515) to avoid casting the third shadow on at least one of the second tracker300(aka tracker B510) and the third tracker300(aka tracker D520). In this embodiment, the row controller410only executes the shadow model and the backtracking process1000when the sun315is low in the sky, such as when the angle between the sun315and a horizon is below a predetermined threshold. In alternative embodiments, the predetermined threshold is based on the second height of the at least one adjacent tracker300.

The row controller410transmits1030instructions to the rotational mechanism310associated with the tracker300to change the plane of the tracker300to the first angle. The plane of the tracker300is considered the top surface106(shown inFIG. 2) of the tracker300. In some embodiments, the row controller410instructs every tracker200in the plurality of trackers300to the first angle.

Each tracker300of the plurality of trackers300includes a rotational mechanism310and the row controller410transmits instructions to each of the plurality of rotational mechanisms310to change the plane of the corresponding tracker300to the first angle in this embodiment. In alternative embodiments, the rotational mechanism310is attached to each tracker300of the plurality of trackers300and the row controller410instructs the rotational mechanism310to change the plane of the plurality of trackers300to the first angle.

The row controller410determines a second position of the sun315at a second specific point in time. The row controller410executes the shadow model based on the retrieved height information and the second position of the sun315. The row controller410determines a second angle for the tracker300based on the executed shadow model. The row controller410transmits instructions to the rotational mechanism310to change the facing of the tracker300to the second angle. Steps1005through1030are repeated continuously during the backtracking process1000.

The row controller410repeats steps1005to1030to change the plane of the tracker300once the sun315has moved a predetermined amount. The row controller410determines if a difference between the position of the sun315and the second position of the sun315exceeds a predetermined threshold. This can be based on a change in angle of the sun315or after a specific amount of time has passed. If the difference exceeds the predetermined threshold, the row controller410transmits instructions to the rotational mechanism310to change the plane of the tracker300to the second angle.

During morning backtracking, the row controller410sets the angle of the tracker300so that the shadow from an eastern, adjacent tracker300(tracker B510) will come as close as possible to the lower edge of the tracker300(tracker C515) in question as possible. This is because in the morning, the sun315is rising, so the gap between the shadow and the tracker300increases over time. Every time the row controller410adjusts the angle of the tracker300, the shadow moves back to as close as possible to the bottom edge of the tracker300(tracker C515).

During afternoon backtracking, the row controller410sets the angle of the tracker300so that the shadow from a western, adjacent tracker300(tracker D520) has a gap between the shadow cast by the adjacent tracker300(tracker D520) and the bottom of the tracker300in question (tracker C515). Since the sun315is setting, the gap will decrease over time. The goal is to have the gap disappear by the time the sun315has moved enough that the row controller410needs to move the tracker300again.

Process1000can be performed dynamically in real time. Process1000can also be performed in advance. For example, row controller410can determine all of the angles for a day based on knowing where the sun315will be positioned at each moment in the day. The steps of process1000can also be performed by site controller415or other computer devices and the results can be provided to the row controller410to know when to adjust the tracker300and what angle to adjust the tracker300to.

FIG. 11illustrates a process1100for performing backtracking on the array600and700of trackers (shown inFIGS. 6 and 7). In at least one embodiment, process1100is performed by the row controller410(shown inFIG. 4) controlling a single tracker300(shown inFIG. 3), such as row controller740controlling tracker row 5715(both shown inFIG. 7). In another embodiment, process1100is performed by the array controller755(shown inFIG. 7).

The row controller410stores1105a plurality of positional information and a shadow model for determining placement of shadows based on positions of objects relative to the sun in the at least one memory device. In some embodiments, the row controller410also stores height information for each of the trackers300in the array700.

The row controller410determines1110a position of the sun315(shown inFIG. 3) at a first specific point in time. The row controller410retrieves1115height information for the plurality of trackers300in the array700from the at least one memory device. The first height of the first tracker300is different than a second height of a second tracker300of the plurality of trackers300in the array700. For example, tracker705is a first height and tracker725is at the second height. Both heights are based on the top of support column305(shown inFIG. 3) of the corresponding tracker300. In some embodiments, the support column305is the same height for each tracker300, but the relative heights of the tops of the support columns305is based on the terrain in which the support columns305are placed. In other words, a difference in the first height of the tracker300and a second height of the at least one adjacent tracker300is based on terrain where the individual tracker300is positioned.

The row controller410executes1120the shadow model based on the retrieved height information and the position of the sun315. The row controller410determines1125a first angle for the first tracker300based on the executed shadow model. The row controller410collects1130an angle for each tracker300in the plurality of trackers300in the array700. While the row controller410is collecting1130the angle for each tracker, the row controller410is also transmitting the first angle to the other row controllers410. The angles from each tracker300are the angle that was calculated by each individual row controller410. Each row controller410transmits its calculated angle to the other row controllers410. The row controller410adjusts1135the first angle based on executing the shadow model with the first angle and the plurality of angles associated with the plurality of trackers300in the array700. For example, the row controller410determines a first position of a first shadow cast by the second tracker300. The row controller410determines the adjusted first angle for the first tracker300to avoid the first shadow. The row controller410determines a second position of a second shadow cast by the first tracker300. The row controller410determines the adjusted first angle for the first tracker300to avoid casting the second shadow on a third tracker300of the plurality of trackers300.

The row controller410transmits1140instructions to the rotational mechanism310to change the plane of the tracker300to the adjusted first angle.

In some embodiments, the row controller410collects a plurality of adjusted angles for each tracker300in the plurality of trackers300. Where the adjusted angles are calculated by the row controllers410of each row of trackers300in the array700based on the plurality of angles and the first angle. The row controller410further adjusts the adjusted first angle based on executing the shadow model with the adjusted first angle and the plurality of adjusted angles. These steps, of collecting adjusted angles from the other row controllers410and readjusting the first angle can be cycled through repeatedly until desired conditions are met. One set of desired conditions is maximum amount of irradiance collect for the array700as a whole or the amount of irradiance to be collected that exceeds a predetermined threshold. Another set of desired conditions can be no shadows being cast on any of the trackers300.

The row controller410determines a first amount of irradiance to be collected based on the first angle, the plurality of angles, and the shadow model. The row controller410determines a second amount of irradiance to be collected based on the adjusted first angle, the plurality of adjusted angles, and the shadow model. The row controller410compares the first amount of irradiance to be collected with the second amount of irradiance to be collected. Then the row controller410determines whether to transmit instructions for the first angle or the adjusted first angle based on the comparison. The row controller410can make repeated amount of irradiance to be collected comparisons to determine which set of angles provides the maximum irradiance collected. By repeatedly cycling through the steps of process1100, the row controller410determines an adjusted first angle to maximize an amount of irradiance to be collected by the plurality of trackers300in the array700.

The row controller410determines a second position of the sun315at a second specific point in time. The row controller410executes the shadow model based on the retrieved height information and the second position of the sun315. The row controller410determines a second angle for the first tracker300based on the executed shadow model. The row controller410collects an additional angle for each tracker300in the plurality of trackers300. The row controller410adjusts the second angle based on executing the shadow model with the second angle and the plurality of additional angles associated with the plurality of trackers300. The row controller410transmits instructions to the rotational mechanism310to change the plane of the first tracker300to the adjusted second angle. The row controller410can determine if a difference between the position of the sun315and the second position of the sun315exceeds a predetermined threshold. If the difference exceeds the predetermined threshold, the row controller410can transmit instructions to the rotational mechanism310to change the plane of the first tracker300to the adjusted second angle.

In some embodiments, the first tracker300is in a first row including a plurality of trackers300in a row. In these embodiments, the row controller410instructs every tracker300in the first row to change the plane of the plurality of trackers300in the first row to the adjusted first angle.

In some embodiments, the array controller755performs the steps of Process1100for all of the trackers300in the array700. In these embodiments, the array controller755determines a first angle for the first tracker and the plurality of angles for the plurality of trackers300in the array700based on the executed shadow model.

Process1100can be performed dynamically in real time. Process1100can also be performed in advance. For example, row controller410can determine all of the angles for a day based on knowing where the sun315will be positioned at each moment in the day. The steps of process1000can also be performed by site controller415or other computer devices and the results can be provided to the row controller410to know when to adjust the tracker300and what angle to adjust the tracker300to.

FIG. 12illustrates an example configuration of a user computer device1202used in the site405(shown inFIG. 4), in accordance with one example of the present disclosure. User computer device1202is operated by a user1201. The user computer device1202can include, but is not limited to, the row controller410, the site controller415, and the sensors420(all shown inFIG. 1). The user computer device1202includes a processor1205for executing instructions. In some examples, executable instructions are stored in a memory area1210. The processor1205can include one or more processing units (e.g., in a multi-core configuration). The memory area1210is any device allowing information such as executable instructions and/or transaction data to be stored and retrieved. The memory area1210can include one or more computer-readable media.

The user computer device1202also includes at least one media output component1215for presenting information to the user1201. The media output component1215is any component capable of conveying information to the user1201. In some examples, the media output component1215includes an output adapter (not shown) such as a video adapter and/or an audio adapter. An output adapter is operatively coupled to the processor1205and operatively coupleable to an output device such as a display device (e.g., a cathode ray tube (CRT), liquid crystal display (LCD), light emitting diode (LED) display, or “electronic ink” display) or an audio output device (e.g., a speaker or headphones). In some examples, the media output component1215is configured to present a graphical user interface (e.g., a web browser and/or a client application) to the user1201. A graphical user interface can include, for example, an interface for viewing the performance information about a tracker300(shown inFIG. 3). In some examples, the user computer device1202includes an input device1220for receiving input from the user1201. The user1201can use the input device1220to, without limitation, select to view the performance of a tracker300. The input device1220can include, for example, a keyboard, a pointing device, a mouse, a stylus, a touch sensitive panel (e.g., a touch pad or a touch screen), a gyroscope, an accelerometer, a position detector, a biometric input device, and/or an audio input device. A single component such as a touch screen can function as both an output device of the media output component1215and the input device1220.

The user computer device1202can also include a communication interface1225, communicatively coupled to a remote device such as the site controller415. The communication interface1225can include, for example, a wired or wireless network adapter and/or a wireless data transceiver for use with a mobile telecommunications network.

Stored in the memory area1210are, for example, computer-readable instructions for providing a user interface to the user1201via the media output component1215and, optionally, receiving and processing input from the input device1220. A user interface can include, among other possibilities, a web browser and/or a client application. Web browsers enable users, such as the user1201, to display and interact with media and other information typically embedded on a web page or a website from the row controller410. A client application allows the user1201to interact with, for example, the row controller410. For example, instructions can be stored by a cloud service, and the output of the execution of the instructions sent to the media output component1215.

The processor1205executes computer-executable instructions for implementing aspects of the disclosure. In some examples, the processor1205is transformed into a special purpose microprocessor by executing computer-executable instructions or by otherwise being programmed. For example, the processor1205is programmed with instructions such as those shown inFIGS. 10 and 11.

Described herein are computer systems such as the row controller and related computer systems. As described herein, all such computer systems include a processor and a memory. However, any processor in a computer device referred to herein may also refer to one or more processors wherein the processor may be in one computing device or a plurality of computing devices acting in parallel. Additionally, any memory in a computer device referred to herein may also refer to one or more memories wherein the memories may be in one computing device or a plurality of computing devices acting in parallel.

In one embodiment, a computer program is provided, and the program is embodied on a computer-readable medium. In an example embodiment, the system is executed on a single computer system, without requiring a connection to a server computer. In a further embodiment, the system is being run in a Windows® environment (Windows is a registered trademark of Microsoft Corporation, Redmond, Wash.). In yet another embodiment, the system is run on a mainframe environment and a UNIX® server environment (UNIX is a registered trademark of X/Open Company Limited located in Reading, Berkshire, United Kingdom). The application is flexible and designed to run in various different environments without compromising any major functionality. In some embodiments, the system includes multiple components distributed among a plurality of computing devices. One or more components may be in the form of computer-executable instructions embodied in a computer-readable medium.

The methods and system described herein may be implemented using computer programming or engineering techniques including computer software, firmware, hardware, or any combination or subset. As disclosed above, at least one technical problem with prior systems is that there is a need for systems for a cost-effective and reliable manner for determining a direction of arrival of a wireless signal. The system and methods described herein address that technical problem. Additionally, at least one of the technical solutions to the technical problems provided by this system may include: (i) improved accuracy in determining proper angles for solar trackers, (ii) reduced shadows on solar trackers during dusk and dawn hours; (iii) increased overall solar irradiance collected; (iv) up-to-date positioning of solar trackers based on adjacent solar trackers; and (v) reduced processing power needed to calculate necessary angles for optimal solar collection.

The methods and systems described herein may be implemented using computer programming or engineering techniques including computer software, firmware, hardware, or any combination or subset thereof, wherein the technical effects may be achieved by performing at least one of the following steps: a) store, in the at least one memory device, a plurality of positional information and a shadow model for determining placement of shadows based on positions of objects relative to the sun; b) determine a position of the sun at a first specific point in time; c) retrieve, from the at least one memory device, height information for the plurality of trackers in the array, wherein a first height of the first tracker is different than a second height of a second tracker of the plurality of trackers in the array, wherein a difference in the first height of the first tracker and the second height of the second tracker is based on terrain where the array is positioned, wherein the first tracker is in a first row comprising a plurality of trackers in a row, and wherein the at least one processor is programmed to instruct every tracker in the first row to change the plane of the plurality of trackers in the first row to the adjusted first angle; d) execute the shadow model based on the retrieved height information and the position of the sun; e) determine a first angle for the first tracker based on the executed shadow model; f) collect an angle for each tracker in the plurality of trackers in the array; g) adjust the first angle based on executing the shadow model with the first angle and the plurality of angles associated with the plurality of trackers in the array; h) transmit instructions to the rotational mechanism to change the plane of the tracker to the adjusted first angle; i) collect a plurality of adjusted angles for each tracker in the plurality of trackers; j) adjust the adjusted first angle based on executing the shadow model with the adjusted first angle and the plurality of adjusted angles; k) determine a first amount of irradiance to be collected based on the first angle, the plurality of angles, and the shadow model; l) determine a second amount of irradiance to be collected based on the adjusted first angle, the plurality of adjusted angles, and the shadow model; m) compare the first amount of irradiance to be collected with the second amount of irradiance to be collected; n) determine whether to transmit instructions for the first angle or the adjusted first angle based on the comparison; o) determine an adjusted first angle to maximize an amount of irradiance to be collected by the plurality of trackers in the array; p) transmit the first angle to a plurality of controllers associated with the plurality of trackers in the array; q) determine a first angle for the first tracker and the plurality of angles for the plurality of trackers in the array based on the executed shadow model; r) determine a second position of the sun at a second specific point in time; s) execute the shadow model based on the retrieved height information and the second position of the sun; t) determine a second angle for the first tracker based on the executed shadow model; u) collect an additional angle for each tracker in the plurality of trackers; v) adjust the second angle based on executing the shadow model with the second angle and the plurality of additional angles associated with the plurality of trackers; w) transmit instructions to the rotational mechanism to change the plane of the first tracker to the adjusted second angle; x) determine if a difference between the position of the sun and the second position of the sun exceeds a predetermined threshold; y) if the difference exceeds the predetermined threshold, transmit instructions to the rotational mechanism to change the plane of the first tracker to the adjusted second angle; z) determine a first position of a first shadow cast by the second tracker; aa) determine the adjusted first angle for the first tracker to avoid the first shadow; bb) determine a second position of a second shadow cast by the first tracker; and cc) determine the adjusted first angle for the first tracker to avoid casting the second shadow on a third tracker of the plurality of trackers.

The computer-implemented methods discussed herein may include additional, less, or alternate actions, including those discussed elsewhere herein. The methods may be implemented via one or more local or remote processors, transceivers, servers, and/or sensors (such as processors, transceivers, servers, and/or sensors mounted on vehicles or mobile devices, or associated with smart infrastructure or remote servers), and/or via computer-executable instructions stored on non-transitory computer-readable media or medium. Additionally, the computer systems discussed herein may include additional, less, or alternate functionality, including that discussed elsewhere herein. The computer systems discussed herein may include or be implemented via computer-executable instructions stored on non-transitory computer-readable media or medium.