Apply different optical/infrared coefficients for the back side of the solar array

Hi all! Currently I am trying to model the non-gravitational perturbations acting on a satellite using the BoxAndSolarArraySpacecraft class. I am providing the list of all the Panels that form the box and the solar array. I have a macro-model with all the optical and infrared properties of the different surfaces including the solar panels. For the solar panels I am using the PointingPanel class targeting the Sun and I am providing the coefficients of the side of the panel facing the Sun. I would like to know if it is possible to provide also the coefficients of the back side of the solar panel, given that they are different from those of the front. Is there any way to do that? I was thinking to create another PointingPanel which somehow points towards the anti-Sun direction, but I am afraid that then it is considering again the front and the back with the same coefficients. Many thanks for you help!

Hello @fpan, and welcome to the Orekit forum!

I am not an expert in this type of modelling, but I can do some low-lift to guide you through the docs.

From the documentation of 12.0, the BoxAndSolarArraySpacecraft consumes a list of objects that inherit the Panel interface. There are three implementation classes of this Panel interface.

  • PointingPanel: Double sided panel that can rotate its surface wrt the satellite body. Provided coefficients seem to apply to both sides. It seems the intent is to model solar panels, which many times populate both sides of a panel (to avoid death modes, but not always)
  • SlewingPanel: Double sided panel, similar to PointingPanel
  • FixedPanel: Single sided panel, without the ability to rotate (no degree of freedom), fixed wrt to the satellite.

If your spacecraft is using a rotating panel with one side populated with solar cells, I don’t know how that would be implemented (this in fact may not be uncommon, e.g. Starlink’s huge solar array). But if your panels have fixed orientation wrt satellite body frame, and you control the Sun pointing at the level of the satellite body attitude, have you considered using FixedPanel pairs with opposite orientations and different material properties?

This recently resolved issue shows that the support for “Facet dependent coefficients” was recently added for the FixedPanel, but I would love to be corrected and know if this applies for PointingPanel as well!

Welcome once again! Manny

Hi Manny,
thanks a lot for your reply. From your inputs I thought about possible solutions. The solar panel does not have fixed orientation with respect to the satellite body frame. So then I decided to create a “modified” PointingPanel class in my source code, with “doubleSided” parameter set to “false” (differently from what the orekit PointingPanel class is doing) and adding another input parameter to define if the considered solar panel plate is “frontside” or “backside” (the frontside is towards the Sun of course). So if I provide two modified “PointingPanel” objects (one for the frontside and one for the backside) I will be able to compute the normal to the panel rotation axis that best points towards the Sun with a set of coefficients and the anti-normal opposite of Sun with a different set of coefficients. Then everything should be handled correctly by the class BoxAndSolarArraySpacecraft which computes
the direction of the incoming flux with respect to the frontside solar plate normal (towards the Sun) and the backside solar plate normal (anti-Sun direction).

Thanks again!

1 Like