40 m Scalable Sail, for deployment analysis.
This model has four triangular quadrants, booms and tip masses, and a core box. The script saves one of two files depending on the value of the "deployed" option, S4PreDeploy.mat or S4Deployed.mat
Since version 7. ------------------------------------------------------------------------ References: 1. Wie, Murphy, Paluszek, and Thomas, "Robust Attitude Control Systems Design for Solar Sails, Part 1: Propellantless Primary ACS". AIAA 2004-5010 2. LeFevre and Jha, "(Student Paper) Attitude Dynamics and Stability of Solar Sails During Deployment". AIAA-2006-1704 ------------------------------------------------------------------------ See also S4Deployment., BuildCADModel, CreateBody, CreateComponent, DrawSCPlanPlugIn, Inertias, VFToMassStructure, Eul2Mat, FindDirectory, SaveStructure, Polygon ------------------------------------------------------------------------
Contents
%------------------------------------------------------------------------------- % Copyright 2006 Princeton Satellite Systems, Inc. All rights reserved. %------------------------------------------------------------------------------- clear mB; %%%%%%%%%%%%%%%%%%%%%%%%% % options deployed = 1; % 0 or 1 %%%%%%%%%%%%%%%%%%%%%%%%%
Characteristic dimensions
%-------------------------- L = 40; % length, m aSail = 1200; % area, m2 Lboom = 28; % max length of the booms Lsail = sqrt(2*aSail/4);
Mass of each sail and boom (4 each on sailcraft)
%-------------------------------------------------
mSail = 6/4;
mBoom = 7/4;
rhoS = 6/1200;
rhoB = mBoom/Lboom;
mTip = 1/4;
Rhub = 1;
Initialize
%----------- BuildCADModel( 'initialize' );
Add general properties
%----------------------- BuildCADModel( 'set name' , 'S4 Deployment' ); BuildCADModel( 'set units', 'mks' ); %------------------------------------------------------------------
Create CAD bodies first
%------------------------------------------------------------------
Core
%----- m = CreateBody( 'make', 'name', 'Core' ); BuildCADModel('add body', m );
This creates the connections between the bodies
%------------------------------------------------ BuildCADModel( 'compute paths' ); %------------------------------------------------------------------
Create CAD Components second
%------------------------------------------------------------------
Core
%-----
mBus = 50;
mPayload = 13;
mCentral = 8;
Spacecraft
%----------- m = CreateComponent( 'make', 'box','name','Bus','body',1,... 'mass', mBus+mPayload+mCentral, 'faceColor', 'gold foil','rA',[0;0;0],... 'x', Rhub,'y', Rhub, 'z',Rhub, 'inside', 0 ); BuildCADModel( 'add component', m ); rS = Rhub*[0 0 0 0; 0.5 -0.5 -0.5 0.5; 0.5 0.5 -0.5 -0.5];
Sail
%----- if deployed vSail = [0 0 0; 0 Lsail 0; 0 0 Lsail]; else vSail = [0 0 0; 0 0.1 0; 0 0 0.1]; end [area, n, r] = Polygon( vSail ); Bsail = {eye(3) Eul2Mat([pi/2;0;0]) Eul2Mat([pi;0;0]) Eul2Mat([3*pi/2;0;0])}; mS = VFToMassStructure( vSail, [1 2 3], struct('a',area,'r',r) ); mS.mass = rhoS*mS.mass; mS.inertia = rhoS*mS.inertia; for k = 1:4 m = CreateComponent( 'make', 'sail','name',['Sail' num2str(k)],'body',1,... 'mass', mS, 'faceColor', 'mirror','rA',rS(:,k),... 'b',Bsail{k}',... 'sigmaS', [1 1], 'sigmaD', [0.0 0.0], 'sigmaA',... [0.0 0.0], 'emissivity', [0.3, 0.3],... 'vertex',vSail,'face', [1 2 3], 'inside', 0 ); BuildCADModel( 'add component', m ); end
Booms and tip masses
%--------------------- if deployed lBoom = Lboom; else lBoom = Rhub; end Bboom = Eul2Mat([-pi/2;0;0]); uTip = [0 0 0 0; 1 0 -1 0; 0 1 0 -1]; inr = Inertias( mBoom, [0.2 lBoom 0.01], 'hollow cylinder', 1 ); cM = [0;0;1]*lBoom/2; mB.mass = mBoom; mB.inertia = inr; for k = 1:4 mB.cM = cM(:,1); m = CreateComponent( 'make', 'cylinder','name',['Boom' num2str(k)],'body',1,... 'rUpper', 0.2, 'rLower', 0.2, 'h', lBoom,... 'b',(Bsail{k}*Bboom)',... 'mass', mB,... 'faceColor', 'steel','rA',[0;0;0],... 'inside', 1 ); BuildCADModel( 'add component', m ); m = CreateComponent( 'make', 'box','name',['Tip' num2str(k)],'body',1,... 'mass', mTip, 'faceColor', 'steel','rA',lBoom*uTip(:,k),... 'x', Rhub,'y', Rhub, 'z',Rhub, 'inside', 0 ); BuildCADModel( 'add component', m ); end
Export
%-------- g = BuildCADModel( 'get cad model' ); cd(FindDirectory('SailData')); if deployed SaveStructure( g, 'S4Deployed' ); else SaveStructure( g, 'S4PreDeploy' ); end
3D View
%--------- DrawSCPlanPlugIn( 'initialize', g ); %-------------------------------------- % PSS internal file version information %--------------------------------------