Design a square sail with four striped quadrants. Uses CP1.
The sail has a simple core box. Each quadrant is its own component. Actuators are not modeled. Uses CP1 properties. The sail front is +X in the body frame.
Since version 7. ------------------------------------------------------------------------ See also: StripedQuadrant CP1Props, BuildCADModel, CreateBody, CreateComponent, DrawSCPlanPlugIn, VFToMassStructure, Eul2Mat, FindDirectory, SaveStructure, AddAxes ------------------------------------------------------------------------
Contents
%-------------------------------------------------------------------------- % Copyright (c) 2006 Princeton Satellite Systems, Inc. All rights reserved. % Comprehensive Solar Sail Simulation SBIR #NNM06AA38C %--------------------------------------------------------------------------
Properties
%-----------
arealMass = 0.004;
massBus = 100;
lQuad = 30;
[optical, infrared, thermal] = CP1Props;
Initialize
%----------- BuildCADModel( 'initialize' );
Add general properties
%----------------------- BuildCADModel( 'set name' , 'Striped Sail' ); 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
%----- m = CreateComponent( 'make', 'box','x',1, 'y', 1, 'z', 1,'name','CoreBox','body',1,... 'mass', massBus, 'faceColor', 'gold foil', 'inside', 1 ); BuildCADModel( 'add component', m );
Sail
%-----
Get quadrant vertices, in X/Y plane
%------------------------------------
[v,f] = StripedQuadrant( lQuad, 5, 0.2, 4 );
massQuad = VFToMassStructure( v, f );
Multiple by areal mass
%-----------------------
massQuad.mass = massQuad.mass*arealMass;
massQuad.inertia = massQuad.inertia*arealMass;
Create components by rotating quadrant
%--------------------------------------- thetaX = [0 pi/2 pi 3*pi/2]; for k = 1:4 b = Eul2Mat([thetaX(k);0;0])*Eul2Mat([0;-pi/2;0]); m = CreateComponent( 'make', 'sail','name',['Quadrant' num2str(k)],'body',1,... 'mass', massQuad, 'faceColor', 'mirror','rA',[0;0;0],'b',b,... 'sigmaS', optical.sigmaS, 'sigmaD', optical.sigmaD, 'sigmaA', optical.sigmaA,... 'emissivity', thermal.emissivity,... 'sigmaRS',infrared.sigmaRS,'sigmaRD',infrared.sigmaRD,'sigmaRA',infrared.sigmaRA,... 'vertex',v ,'face', f, 'inside', 0 ); BuildCADModel( 'add component', m ); end %------------------------------------------------------------------
Export
%------------------------------------------------------------------ g = BuildCADModel( 'get cad model' ); c = cd; cd(FindDirectory('SailData')); SaveStructure( g, 'StripedSail' ); cd(c);
Draw 3D view
%------------- DrawSCPlanPlugIn('initialize',g); AddAxes(1.1*lQuad,[],[],gcf) %-------------------------------------- % PSS internal file version information %--------------------------------------
ans = Figure (2: 3D Vehicle Plan) with properties: Number: 2 Name: '3D Vehicle Plan' Color: [1 1 1] Position: [500 470 460 460] Units: 'pixels' Use GET to show all properties