Contents - Index - Previous - Next

Define Collector System


If this topic seems to be a little bit difficult for the first reading, read it through to understand only what it is about. Then, after you become familiar with "solar" windows, return to it and reread it together with all other linked topics.


Use array-objects to define your system


Once you created the architectural environment of your solar project according to the previous topic, it is time to define your collector system. 


Note, the example scene files with solar collectors have the prefix "s" in their file names. You can find them in the "Examples" sub folder inside the installation folder of our software product on your PC.


Array-objects with PV-modules


The "solar" windows of Shadow Calculator and Shadow Analyzer interpret objects of the following object types as solar collectors:



This mechanism provides a user with a flexible way to construct collector systems of different configurations attaching a few array-objects of these types to surfaces of "architectural" objects or allocating them directly on the ground.


In all aspects, objects of these types behave as usual objects. You can create, delete, copy, and past them, set their parameters, coordinates, parents and children, as well as decorate them as any other objects. You do not feel any "solar" specific of these array-objects until you open one of the "solar" windows of Shadow Calculator or Shadow Analyzer.


"Solar Day" and "Solar Year" windows scan the scene for solar array-objects, "assemble" a collector system from them, and update the system after each change of the object parameters.


Trackers without PV-modules


Trackers without PV-modules are implemented as symbolic pure wire-frame models without faces:



An object of any one of these two types by itself is not a solar collector. However, if you attach a set of PV-modules to each tracker (using array-objects of the "A: PVM" type), then Shadow Analyzer will interpret such a compound object as a solar collector of your specific design, and will include it in the shadow and power calculations.


To manage PV-strings of such a compound object, you need to apply the ATT-editing individually to each set of PV-modules. To unite a few sets of PV-modules (perhaps situated on different trackers) into one PV-string, you can use the parameter Ext-ID. This point is explained below in the section "Static solar collectors".


The following screen shot of the scene "s621_All_PVM_and_Trackers.sa1" illustrates all types of array-objects that you can use to define you collector system.



Use solar windows "Solar Day" and "Solar Year" effectively


Solar windows do their work in a parallel to any user action with a scene. Even if you change parameters of non-solar objects, the solar windows recalculate the shading characteristics under new "architectural" conditions. This fact has two consequences.


On one hand, you can follow the changes of the shading of your collector system immediately after any change in your solar project. It can be useful, when you refine an almost completed project or one of its version.


On the other hand, the shading calculations take time. The reaction of the "Solar Year" window can take a few seconds if the scene contains many "architectural" details. So do not keep solar windows opened in early phases of the editing of your collector system, otherwise it can slow down the design process without any sense (for example, when you use the spin control to smoothly increase/decrease a parameter value).


The best practice is to prepare in advance a few scenes with major versions of your project, open their "3D View" windows simultaneously, then open a solar window, and then activate the scene windows one by one (with a mouse-click on them) comparing their shading and power output.


Static solar collectors


Static solar collectors are represented by the single object-type "A: PVM" that you can use to create a plane panel of PV-modules or a set of inclined PV-modules.


With the combo box "PAR" or the "PAR"-pane of the 3D View window, you can select and then edit the array size (parameters nMx, nMy -- numbers of elements in the matrix rows and columns) as well as the shape parameters of its elements. The parameter iA is the inclination angle of modules in respect to the XY-plane of own CS. The array with iA = 0 is a plane panel of PVM. Increasing parameters iA and gY, you transform the initially plane array into a set of rows of inclined PVM.


These two modifications of the static solar collectors are shown on the following screen shot.



The scene "s623_Static_PV_on_Planes.sa1" contains two "architectural" objects "1 House" and "8 Storehouse". See the Tree pane in the left top corner of the 3D View window.


The first static solar collector object "13 PV on House" is a plane panel of PV-modules that is attached to the southern plane of the House roof. The southern plane of the House roof is inclined to the South quite enough. So we can use a plane panel with iA = 0.


The second static solar collector object "15 PV on Store" is attached to the horizontal roof of the Storehouse. So we transformed it into four rows of inclined PV-modules. The gap between rows (the parameter gY) is increased to avoid the self-shading of PV-modules.


How to fill a non-rectangular area by rectangular array-objects


Array-objects have a rectangular structure like a 2D matrix. Static or sun-tracking collectors are organized in rows and columns that occupy a rectangular area. What to do if the available free area for your collectors is not rectangular? There are two ways to cover a non-rectangular area by array-objects. 


The first way is to fill the area by a few arrays of smaller sizes attaching them to the same surface and then moving them relative to one another by parameters "move_X" and "move_Y". These parameters are automatically adjusted to the X/Y-steps of the periodical space structure of the array, so you can complete the task in a few mouse-clicks without a tedious adjustment of individual X/Y-coordinates of each object by the "Location" toolbar.


The second way to fill a non-rectangular area is to use a single array-object with "voids" that you can arrange inside the array or along its perimeter excluding some elements by the "ATT" options. These options are represented in the user interface by the "ATT" menu-button of the toolbar "Scene". They are designed just to edit complex attributes of objects -- the complex object properties that cannot be expressed by simple integer or real parameters.


The following screen shot illustrates this second way. You see the 3D View window of the same scene "s623_Static_PV_on_Planes.sa1". The toolbars of the main window are not shown. The object "13 PV on House" is selected both in the Tree pane of the 3D View and in the combo box "SCENE" of the "Scene" toolbar. If an object is selected and its type has any "ATT" options, then the "ATT" menu-button becomes active. We clicked on it and selected its menu item "Exclude PV-Modules...". Afterward the pop-up window "Exclude Elements" appeared above the main window. We moved it, so you see it just on the background of the 3D View.  



You see parameters nMx = 8, nMy = 3 of the array-object "13 PV on House" in the "Parameters" pane of the 3D View window. It means that the array-matrix contains 8 PV-modules in each of its 3 rows. With a few right-mouse-clicks, we excluded 5 modules from the first row and then 3 modules from the second row of the matrix. Then we set the parameter SYM = 1. In a result, the array of PV-modules on the red roof of the House became symmetrical in respect to its Y-axis (independently of the fact, where namely we made voids inside a row). Otherwise (if SYM = 0), the array on the roof would look like its array-matrix inside the pop-up window.


How to set PV-strings


There are two ways to set PV-strings. The fist way is to set the PV-string identification number (PVS ID) individually for each PV-module of a given array-object with the pop-up window "Set PV-Strings" of the "ATT" options for this object. In this first way you can set one or more "internal" strings inside one array object. The second way is to assign the same PVS ID to all PV-modules of the entire object using its parameter Ext-ID. In this second way you can unite (connect) two or more array-objects into one "external" string.


Actually, there is no difference between "internal" and "external" PV-strings. We use words "internal"/"external" only to denote two specific options of the user interface of our software.


The shading of PV-strings and the electrical connections between PV-modules


For the shading and power calculations, only the spatial configuration and 3D positions of PV-modules of a PV-string are important, while the sequence of electrical connections between PV-modules of a given "geometrically defined" PV-string does not make any difference. Moreover, only the total number of shaded PV-modules (but not their sequence and individual "electrical positions" inside the PV-string circuit) determines the power output of the given PV-string. In other words, it is important "how many" modules are shaded, while "which namely" modules are shaded is not important.


Therefore, we are focused on the pure geometrical definition (setting) of PV-strings, and do not need to use any elements of Electro CAD.


How to set PV-strings using the "ATT" pop-up windows


The first way to set PV-strings by means of the pop-up window "Set PV-Strings" is illustrated on the following screen shot. You see all the same example scene "s623_Static_PV_on_Planes.sa1". The collector object "15 PV on Store" is selected in the Tree pane. The pop-up window opened for this object contains the symbolic image of the array-matrix (on the left) and the table with the list of PV-strings (on the right). Colors of elements of the array-matrix correspond to colors of PVS listed in the table. The array-matrix with colored elements is a "map" of PV-strings, and the table plays the role of a "legend" of this "map". So you can recognize a string by its color.


To change the string ID of a particular PV-module, you need firstly select the string inside the "PVS" column of the table, and then right-click on the element of the array-matrix. In our terminology, the string ID of a particular PV-module is the PV-string identification number (PVS ID), which this PV-module belongs to (is connected to).



Let us consider the table of the pop-up window "Set PV-Strings" in details.



The sequential number of the collector object "15 PV on Store" inside the list of scene objects is 15. So you see that the "absolute" identification number of a PV-string (its PVS ID) inside the entire PV-system is the "object sequential number inside the scene" multiplied by 1000 plus the "internal" "relative" sequential number of the PV-string inside the array object.


The maximal allowed amount of objects in the scene is 999. So in all possible combinations of the PV-strings' settings, all the "absolute" PVS ID are unique. Note that the list of the PVS ID values for the entire PV-system is not contiguous. First 512 positions from 1 to 512 are reserved for "external" strings that you can set with the parameter Ext-ID.


This way of the PV-string enumeration will help you to recognize the location of a PV-string in the scene by its PVS ID, when you will analyze the results of the shading calculations shown in "Solar Day" and "Solar Year" windows.


So remember, the PVS ID with 3 or less digits denotes an "external" string, the PVS ID with 4 or more digits denotes an "internal" string. The number of "thousands" in PVS ID of the "internal" PV-string is the sequential number of the object, where the PV-string is located. 


The first line of the table has the gray "Color". It corresponds to "not connected" PV-Models. Such modules have neither "relative" (PVS) nor "absolute" (PVS ID) identification numbers. Selecting this line and right-clicking on elements of the array-matrix you can disconnect for a time some PV-Modules from your PV-system. It can be useful, when you compare and analyze the shading of different versions of your PV-system.


The last line of the table is marked by the word "new" in the "PVS" column. Select this last line to start a new PV-string, and then as usual right-click on the matrix elements to connect PV-modules to this new string. Just after you add any first PV-module to this string, the string will get its "relative" (PVS) and its "absolute" (PVS ID) identification number, and the new "last" line titled "new" with a new color will be added to the table. 


Use "pv" button to see PV-strings in 3D view


Sometimes you need to see the configuration of all PV-strings of your PV-system. Really, it is not convenient to open the pop-up window "Set PV-Strings" for each array-object, when you want to see the string configuration. So we added the new "pv" button to the toolbar "3D View" and the corresponding shortcut key "x" of your keyboard to show the configuration of PV-strings directly in the 3D pane of the "3D View" window.


You should to remember that all shortcut keys (including the shortcut key "x") are working only when the 3D pane of the "3D View" window is active, while the "pv" button does work, when any pane of the "3D View" window is active, and even when you activate the pop-up window of another scene. However, after you make any change in this pop-up window of another scene, it activates just this "another scene" and its "3D View" window, so that the "pv" button also starts to manage "another scene".


Not to be confused by all these sophisticated details of the behavior of the control elements of the program that in turn are based on inner mechanisms of the Windows system, keep the following simple rule: activate the corresponding 3D pane of the "3D View" window before to use the shortcut keys!


The following screen shot illustrates the result of the usage of the "pv" button (however the "pv" button itself is not shown).



When the "pv" button is in the "pressed" state, the PV-modules obtain the colors of their PV-strings. When you click on the "pv" button again, the PV-modules return to their "original" colors that you can manage with the toolbar "Color".


How to set PV-strings using the "Ext-ID" parameter


On previous pictures, the parameter Ext-ID = 0. You see it in the selected line of the "PAR" pane of the "3D View" window. It means that PV-modules of objects "13" and "15" have no "external" connections with any PV-modules of other objects, that is all PV-strings of these objects are "internal" -- they are situated inside their objects.


One could say that the zero-value of Ext-ID is merely ignored. However, more precisely is to say that the case Ext-ID = 0 is one of two modes of the PV-string settings. In this first mode you can set one or more PV-strings inside one array-object using the pop-up window "Set PV-Strings".


The second mode of the PV-string settings corresponds to the case of Ext-ID > 0. In this second mode you can "connect" two or more array-objects into one PV-string with a common PVS ID = Ext-ID, which is the same for the "connected" objects. In this case the pop-up window "Set PV-Strings" does not work (you can open it, but cannot set strings right-clicking on the matrix elements).


The range of allowed positive Ext-ID values is [1,512]. So you can organize many complex "external" multi-object PV-strings inside your PV-system.


The following screen shot illustrates the usage of the parameter Ext-ID. We edited the previous scene "s623..." and saved it in the file "s624_Static_PV_Ext_ID_on_House.sa1". You see the picture, when the "pv" button is again in the "pressed" state.



We transformed the part of the PV-system that is attached to the front plane of the red roof of the House-object. Instead of one array-object "13", we use now two objects "13" and "16". We set the parameter Ext-ID of both objects to 2. So these objects belong now to a common multi-object PV-string with PVS ID = 2. We opened the pop-up window for the object "16", and then selected the object "13" in the Tree pane. So you see values of the parameter Ext-ID of both objects (one in the "PVS ID" column of the pop-up window, and another in the "PAR" pane of the "3D View" window).


Note, we cannot "construct" the PV-string like the shown one (with PVS ID = 2) using only one array object with excluded elements, because parts of the string have different orientations. So it is a hint for you when to set "internal" PV-strings, and when to set "external" PV-strings defined by Ext-ID parameters.


Use new parameter "Mod_kW"


In the previous version of our software we used the global characteristic of the entire scene, the "Efficiency" of PV-modules. All the modules of a scene had the same "Efficiency", that could be set in a dialog window.


The "Efficiency" was defined as a dimensionless number that is equal to the peak power of the module (at solar radiation of 1 kW/m2) divided by the area of the module. So that "Peak Power" = "Efficiency" * (1 kW/m2) * "Area".


In the new version of our software we use another characteristic, the peak power of one PV-module "Mod_kW" expressed in kWp. It is not a global characteristic of a scene, but a parameter of a solar array-object. So now you can construct your PV-system of PV-modules of different types (with different peak power and different dimensions). However, you need to set the "Mod_kW" parameter for each array-object individually.


When an "old" scene is loading in the new version of Shadow Analyzer, the "Mod_kW" parameter of each array-object is being recalculated and set automatically according to the formula "Mod_kW" = "Efficiency" * (1 kW/m2) * "Area". Here, the "Efficiency" is the "old" efficiency stored in the "old" scene file, and the "Area" = dX * dY.


Note, a minor inaccuracy in the third decimal digit of the "Mod_kW" parameter can appear during this operation. Its origin is the rounding of the "Efficiency" values that occurred "long time ago" at the setting of the "Efficiency" in the "old" scene. So verify the "Mod_kW" values and correct them if it is needed after the loading of an "old" scene file.


Do not forget to set "Mod_kW" values explicitly, when you edit "old" scenes. When you edit parameters dX, dY of a module, its area is changing, but its "Mod_kW" parameter stays the same (without any automatic "recalculation") until you change it by yourself.


Just this occurred with us, when we started to write this topic. You can see Mod_kW = 0.304 on first pictures of the scene "s623_Static_PV_on_Planes.sa1". It is too high value for a module with the area of about 1.2 m2. It corresponded to the original "old" module with the initial greater area. Later we corrected it to a more realistic value Mod_kW = 0.165.


Include the inverter efficiency into the setting of "Mod_kW" parameter


Some users of the previous version of our software reported that they interpret global parameter "Efficiency" as the multiplication of the efficiency of the PV-module and the efficiency of the inverter. So that the "Efficiency" = "Eff_Module" * "Eff_Inverter".


If you want to use this experience in the new software version, then include the inverter efficiency into the setting of "Mod_kW" parameter using the formula "Mod_kW" = "Mod_kW_nominal" * "Eff_Inverter".


Verify the compatibility of PV-modules united in "external" PV-strings !


In the practice, you should use the identical modules inside each one PV-string. You can use different modules in different PV-strings, but modules of each one given PV-string should have the same dimensions and electrical characteristics. Another necessary condition: modules inside a PV-string should have the same common direction of their normals (their planes should be parallel) -- it concerns both the static and sun-tracking collectors.


When you model your PV-system in our software using array-objects, the "internal" PV-strings satisfy both the conditions automatically by the definition. However, when you unite a few array-objects into an "external" PV-string, you need to be careful not to construct an "external" string of "incompatible" modules. The current software version still does not verify the compatibility of PV-modules ! So please do it by yourself !


Sun-tracking solar collectors


Most of the written above about the user interface for static solar collectors concerns also the case of sun-tracking solar collectors. We hope, you will effectively manage array-objects in your scenes after that detailed explanations. So now we need to add only a few notes about the specific of sun-tracking solar collectors.


Sun-tracking solar collectors are represented in our software by two object-types "A: PVM-T1" and "A: PVM-T2". Array-objects of these types contain plane panels of PV-modules installed on trackers.


The type "A: PVM-T1" uses 1-axis trackers with the inclined axis supported by two columns.


The type "A: PVM-T2" uses 2-axes trackers with one vertical (azimuthal) axis that corresponds to the single central support column and one horizontal (zenith) axis. Note that the support column is always vertical (is parallel to the Z-axis of the main coordinate system of the scene) even if the object is attached to a non-horizontal surface or is rotated by its E2 angle.


The "solar" windows of Shadow Analyzer interpret objects of these types as solar collectors, and include them in the shadow and power calculations.


Specific of "Exclude Elements" and "Set PV-Strings" options


Actually, a sun-tracking solar collector is a 4D structure, or a 2D x 2D structure of PV-modules, because it consists of a 2D array of Trackers, where each Tracker supports a 2D array (a plane rectangular panel) of PV-Modules. So the ATT management of such an object has three exclude-options with three types of pop-up windows:


      1) you can exclude an entire tracker together with all its PV-modules;

      2) you can set a common pattern for the panel of PV-modules (with the same configuration of excluded modules in all panels);

      3) you can exclude individual modules from the entire 4D structure of PV-modules.


The "Set PV-Strings" pop-up window shows the entire 4D structure of PV-modules. The symbolic grid lines correspond to boundaries between trackers. This specific is illustrated by the following screen shot of the "Set PV-Strings" pop-up window for the object # 8 'PVM-T2' of the scene "s621_All_PVM_and_Trackers.sa1".



The sun-tracking constraints


The goal of the sun-tracking is to increase the "cosine factor" of PV-modules. Two-axes trackers dynamically adjust the orientation of PV-modules so that their surfaces are perpendicular to the direct solar radiation, their Normal vectors are directed to the Sun, and the cosine of the incident angle becomes equal to 1. One-axis trackers try to do the same, but achieves this goal only partly.


Trackers should be able to rotate freely in a very wide range of angles to implement their task during the entire year. Real trackers might have some constraints on the allowed range of rotation angles according to their constructive specific, and cannot cover exactly all the possible Sun positions. You can model this situation using the following parameters of the array-objects. 


The sun-tracking constraints of "A: PVM-T1" objects:


rot_L -- axial rotation limit in range [0, 180]; the rotation span is (-/+) rot_L from its 'noon'-position when the plane Normal is 'vertical'


The sun-tracking constraints of "A: PVM-T2" objects:


El_min -- minimal Elevation of Normal (tracking constraints at 'low Sun') in range [0, 90], default = 0


El_max -- maximal Elevation of Normal (tracking constraints at 'high Sun') in range [0, 90], default = 90


Az_0 -- the 'noon' tracking azimuth (towards-noon-Sun), set to 180/0 for Northern/Southern Hemisphere, default = 180


Az_L -- the azimuthal tracking limit (-/+ from Az_0) in range [0, 180], default = 180 results in no constraints


Trackers without PV-modules


Trackers without PV-modules are represented in our software by two object types "A: T1-Frame" and "A: T2-Frame". First is an array of 1-axis-trackers, and the second is an array of 2-axes-trackers. They are implemented as pure wire-frame models without faces, and have the same parameters of the sun-tracking constraints as the corresponding trackers with PV-modules "A: PVM-T1" and "A: PVM-T2" discussed above.


Objects of these types has no own PV-modules and by themselves are not solar collectors. However, if you attach a set of PV-modules of the "A: PVM" type to each frame tracker, then Shadow Analyzer will interpret such a compound object as a solar collector of your specific design, and will include it in the shadow and power calculations.


You can use such compound objects to model your specific sun-tracking collectors if they cannot be expressed by our standard "A: PVM-T1" and "A: PVM-T2" types. See an example at Some of 2-axes trackers shown at this link have modules that are situated not in one but in two parallel planes. It is just the case when a tracker frame with two plane panels of PV-modules attached to it might be useful.  


To manage PV-strings of such a compound object, you need to apply the ATT-editing individually to each set of PV-modules. To unite a few sets of PV-modules (perhaps situated on different trackers) into one PV-string, you can use the parameter Ext-ID.


How "solar" windows assemble a collector system from solar objects


The "Solar Day" and "Solar Year" windows work with solar collectors of the active scene. They use the same procedure to recognize solar objects among other scene objects and assemble a collector system from them. You need to understand this procedure to use Shadow Calculator and Shadow Analyzer properly.


To assemble a collector system, "solar" windows scan a scene and prepare a preliminary list of all solar objects. It is the list of potential members of the collector system. Then "solar" windows scan this list again, and exclude from it those solar objects, whose front faces are hidden by the settings of the toolbar "Color". Solar objects with not-hidden front faces become actual members of the collector system. Other solar objects with hidden front faces stay to be not-included in the collector system. They become a part of the architecture environment like other not-solar objects -- they can cast shadows but do not generate power. In this way we distinguish "active" and "inactive" solar array-objects.


Use the toolbar "Color" and its button "h" to hide or unhide the front faces of the solar objects:



With this method you can quickly change the contents of the collector system. If you not only hide front faces but also make all the object faces not-shadowers with the button "sr" of the toolbar "Color", than you completely exclude the object also from the shading calculations. Sometimes it can be more convenient to do so during the shading analysis than to delete the object or to prepare two scenes.


Notes about filters


Note that a collector array with the hidden front faces is still a shadower if its "surface" and all face groups (all zones) are marked as shadowers with the button "sr" of the toolbar "Color". In this way, the "inactive" collectors take part in the shading calculations of "active" collectors. This is an example of the usage of filters of object properties.


See the topic Set Object Colors/Filters for more details about the three-level system of filters. The filters define the object properties and the way how objects are shown in the 3D View window. You need to understand the logic and the sense of these filters.


For your convenience (not to learn all from the very beginning), we remind you the following key rules:









All this means that the assembling of the collector system and the shading calculations are based only on the object properties that you set with the "Color" toolbar, and do not depend at all on the show filters that you set with the toolbar "Show".


Colors and textures are ignored by the shading calculations too. So you can manage the visualization independently from the shadow calculations. 


The energy output of the collector system, which is calculated and displayed in "solar" windows, depends only on the parameter "Mod_kW", and does not depend on colors that you choose for the collector faces. So even if you set (unlike the reality) the white color for the collector faces to display shadows on them in a more contrast manner in the 3D View window, it will not impact the calculated energy output of the collector system.