Contents
Design a 3U CubeSat with Tilted Wings
Specify data in the solarPanel field for CubeSatModel to define tilted wings.
See also RHSCubeSat, CubeSatModel, DrawCubeSat, DrawCubeSatSolarAreas, VOrbit, StructToText, QZero, Unit
%-------------------------------------------------------------------------- % Copyright (c) 2017 Princeton Satellite Systems, Inc. % All rights reserved. %-------------------------------------------------------------------------- disp('3U CubeSat with Tilted Wings');
3U CubeSat with Tilted Wings
Specify the solar panel geometry and construct the model
d = CubeSatModel( 'struct' ); d.massComponents = 3; d.solarPanel.dim = [100 100 10]; % [side attached to cubesat, side perpendicular, thickness] d.solarPanel.nPanels = 2; % Number of panels per wing d.solarPanel.rPanel = [50 -50 0 0;0 0 50 -50;-150 -150 -150 -150]; % Location of inner edge of panel d.solarPanel.sPanel = [1 -1 0 0;0 0 1 -1;-1 -1 -1 -1]; d.solarPanel.cellNormal = Unit([1 -1 0 0;0 0 1 -1;1 1 1 1]); % Cell normal d.solarPanel.sigmaCell = [1;0;0]; % [absorbed; specular; diffuse] d.solarPanel.sigmaBack = [0;0;1]; % [absorbed; specular; diffuse] d.solarPanel.mass = 0.1; [v, f, data] = CubeSatModel( '3U', d ); StructToText( data );
jD0: 2.4552e+06 mass: 5.39864 inertia (3,3): 0.117895 -0.000000 0.000000 -0.000000 0.098448 0.000000 0.000000 0.000000 0.048872 dipole (3,1): 0.000000 0.000000 0.000000 power: STRUCTURE power.solarCellEff: 0.29 power.effPowerConversion: 0.8 power.solarCellArea (1,4): 0.020000 0.020000 0.020000 0.020000 power.solarCellNormal (3,4): 0.707107 -0.707107 0.000000 0.000000 0.000000 0.000000 0.707107 -0.707107 0.707107 0.707107 0.707107 0.707107 power.consumption: 0.5 power.batteryCapacity: 100 surfData: STRUCTURE surfData.cD: 2.7 surfData.cM (3,1): 0.000000 0.000000 -0.037114 surfData.area (1,22): 0.030000 0.030000 0.010000 0.030000 0.030000 0.010000 0.010000 0.010000 0.010000 0.010000 0.010000 0.010000 0.010000 0.010000 0.010000 0.010000 0.010000 0.010000 0.010000 0.010000 0.010000 0.010000 surfData.nFace (3,22): 1.000000 0.000000 0.000000 -1.000000 -0.000000 -0.000000 0.707107 -0.707107 0.707107 -0.707107 -0.707107 0.707107 -0.707107 0.707107 0.000000 -0.000000 0.000000 -0.000000 0.000000 -0.000000 0.000000 -0.000000 0.000000 1.000000 0.000000 -0.000000 -1.000000 -0.000000 0.000000 -0.000000 0.000000 -0.000000 0.000000 -0.000000 0.000000 -0.000000 0.707107 -0.707107 0.707107 -0.707107 -0.707107 0.707107 -0.707107 0.707107 0.000000 0.000000 1.000000 -0.000000 -0.000000 -1.000000 0.707107 -0.707107 0.707107 -0.707107 0.707107 -0.707107 0.707107 -0.707107 0.707107 -0.707107 0.707107 -0.707107 0.707107 -0.707107 0.707107 -0.707107 surfData.rFace (3,22): 0.050000 0.000000 0.000000 -0.050000 -0.000000 -0.000000 0.100000 0.100000 0.200000 0.200000 -0.100000 -0.100000 -0.200000 -0.200000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.050000 0.000000 -0.000000 -0.050000 -0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.100000 0.100000 0.200000 0.200000 -0.100000 -0.100000 -0.200000 -0.200000 0.000000 0.000000 0.150000 -0.000000 -0.000000 -0.150000 -0.200000 -0.200000 -0.300000 -0.300000 -0.200000 -0.200000 -0.300000 -0.300000 -0.200000 -0.200000 -0.300000 -0.300000 -0.200000 -0.200000 -0.300000 -0.300000 surfData.att: STRUCTURE surfData.att.type: 'eci' surfData.att.qLVLHToBody (4,1): 1.000000 0.000000 0.000000 0.000000 surfData.sigma (3,22): 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000 0.000000 1.000000 0.000000 1.000000 0.000000 1.000000 0.000000 1.000000 0.000000 1.000000 0.000000 1.000000 0.000000 1.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 1.000000 0.000000 1.000000 0.000000 1.000000 0.000000 1.000000 0.000000 1.000000 0.000000 1.000000 0.000000 1.000000 0.000000 1.000000 surfData.planet: 1 aeroModel: CubeSatAero opticalModel: CubeSatRadiationPressure atm: STRUCTURE atm.aP: 15 atm.f: 176 atm.fHat: 178.135 atm.fHat400: 146.296 kWheels: [] inertiaRWA: [] tRWA: []
Visualize the model
DrawCubeSat( v, f, data ); DrawCubeSatSolarAreas( data );
Check the RHS output with the model
Point the solar panels (+z) at the sun for the default epoch
uSun = SunV1(data.jD0); q0 = U2Q( uSun, [0;0;1] ); x = [7000;0;0;0;VOrbit(7000);0;q0;0;0;0;0]; t = 0; [~,dist,power] = RHSCubeSat( x, t, data ); StructToText( dist ); fprintf('Max solar power: %g W\n',power); %--------------------------------------
fOptical (3,1): 0.000000 0.000000 0.000000 tOptical (3,1): 0.000000 -0.000000 -0.000000 fAerodyn (3,1): 0.000000 -0.000002 0.000000 tAerodyn (3,1): 0.000000 0.000000 0.000000 tGG (3,1): -0.000000 0.000000 -0.000000 tMag (3,1): -0.000000 0.000000 0.000000 fTotal (3,1): 0.000000 -0.000002 0.000000 tTotal (3,1): 0.000000 0.000000 -0.000000 rho: 4.08773e-13 bField (3,1): -0.000010 0.000017 -0.000012 Max solar power: 18.5067 W