Follow Stanford System’s work on a Fin-Guidance Flight Computer

I’m starting a little journal on things I’m working on pertaining to the new FGAR paper including the flight computer for the D-Beta Atmospheric Rocket. While a lot bigger than even most HPR rockets, I need to test it with HPR vehicles so it will be rock solid when I integrate it into the D-Beta.

To follow my work on this, check out the Fin Guidance thread on the Stanford Systems Discussion Forum. Feel free to contact me about any questions you might have at my email address or post them there. Hopefully I can help.

Also, if you are an active HPR/AM/EX guy here in Arizona and can help me out, please contact me as I have to get this flight computer tested in real-life here in the next few months and could use the help. Thanks in advance.

Advertisements

2 thoughts on “Follow Stanford System’s work on a Fin-Guidance Flight Computer

  1. Offer: Collaboration on Fin Guidance Project

    If you are interested in the coding aspect of our FEM and Fin-Guidance work, you too can participate with us in programming a small flight computer that can be used to steer a High-Powered or AM/EX rocket through a proscribed parabolic flight path.

    We are currently only releasing the FEM (Finite Element Analysis) modeling software at this stage until we can figure out the legal technicalities. As always we are pushing the envelope, but hopefully not too far.

    If you would like a copy of our early FEM modeling software and other related programs, a collection of documented C language UNIX utilities, please provide a photographed/scanned copy of your US drivers license to prove that you are here in the good old US of A, as well as a short blurb on what you are looking to get out of a partnership with Stanford Systems and email them to us.

    Thanks in advance.

    Like

  2. Example of FEM source code:

    #include
    #include

    // ***************
    // MATBETA1: this utility constructs a FEM DEF file with shell and rect defintions that can be rendered as a FEM model
    // ***************

    float m[100]; //table of mass values in lbs/sq. in.
    int num_mass_constants=0; //number of populated mass constants in array, set programatically as array is loaded

    char o_file[255]; //output file passed as param1 from the command line

    struct prim_type
    {
    int primtype; //shell=1, rect=2, advance slice=99
    int material; //populate with mass constants from that array
    float param1;
    float param2;
    float param3;
    float param4;
    float param5;
    } prim[20000];

    float size_x_element=0.25; //measured in inches…defined
    float size_y_element=0.25; //same

    // ***************

    load_mass_constants()
    {
    //note loads the global array, m with FEM element values for mass
    //expressed in lbs per sq. in.

    //mn = mass nothing
    m[0]=0;

    //mh1 = mass hoop 1 : regular unstruted hoop
    m[1]=0;

    //mh2 = mass hoop 2: regular struted hoop
    m[2]=0;

    //mh3 = mass hoop 2 : motor stabilization hoop
    m[3]=0;

    //mp = mass pillar : main vertical beams
    m[4]=0;

    //mc = mass composite nosecone : average density of nosecone (not including parachute)
    m[5]=0;

    //mp = mass parachute
    m[6]=0;

    //ma = mass aluminium skin
    m[7]=0;

    //mb = mass motor bulkhead
    m[8]=0;

    //mn = mass motor nozzle
    m[9]=0;

    //mpn = mass propellant nothing : can be variable in some models that deal with burn rates and the like
    m[10]=0;

    //mi = mass motor insert
    m[11]=0;

    //mply = mass plywood circles
    m[12]=0;

    //mstl = mass solid steel
    m[13]=0;

    //mal = mass solid aluminum
    m[14]=0;

    num_mass_constants=14;

    return;

    }

    initialize1()
    {
    //put all generic initialization here

    int a;

    for (a=0;a<20000;a++) //hardcode
    {
    prim[a].primtype=0; //set to "no primative code"
    prim[a].material=0; //set to nothing
    prim[a].param1=0;
    prim[a].param2=0;
    prim[a].param3=0;
    prim[a].param4=0;
    }
    }

    build_vehicle()
    {

    int c=0; //remember that slices start at the bottom of the FEM model and proceed upward
    int a;
    float p1,p2,p3,p4; //temporary working variable for mathematical equations and the like

    //build nozzle mathematically
    p1=3;
    for (a=0;a<(8/size_y_element);a++) //optimize
    {
    prim[c].primtype=1;
    prim[c].material=9; //note variable "material" is param5 in the protocol specification
    prim[c].param1=0;
    prim[c].param2=0;
    prim[c].param3=p1;
    prim[c].param4=p1-0.01; //convention to make the thinnest possible shell during FEM rendering

    c++; //advance prim array counter

    prim[c].primtype=99; //code for advance slice upward

    c++;

    p1=p1-(1.5/(8*4)); //mathematical equation to produce a truncated cone with a height of 8", base 6" in diameter, and top 3" diameter

    }

    //the final slice is market by putting the value 999 in the primtype
    prim[c].primtype=999;
    c++;

    return c; //function returns the total number of slices
    }

    main(int argc, char *argv[])
    {

    if (argc<2)
    {
    printf("Fatal Error 101: Output filename not specified. Usage: matbeta1.exe .def\n”);
    return 1;
    }

    //capture the output file name from the command line
    strcpy(o_file,argv[1]);

    //initialize globals, constants, various subsystems
    //printf(“initializing\n”); //debug code
    initialize1();
    load_mass_constants();
    // print_mass_constants(); //debug code

    //build the DBETA craft mathematically from the primatives SHELL and RECT
    //see white paper MRGFP paper for description of FEM protocol (Appendix)
    //printf(“building vehicle in prim array\n”); debug code
    build_vehicle();

    Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s