Meadville Space Center
Welcome, Guest. Please login or register.
May 25, 2013, 03:23:07 PM

Login with username, password and session length
Search:     Advanced search
Project Apollo Beta 7.0 released!
http://nassp.sf.net/wiki/Installation
20011 Posts in 1930 Topics by 2250 Members
Latest Member: mikegk
* Home Help Search Login Register
+  Meadville Space Center
|-+  Project Apollo - NASSP
| |-+  Project Apollo - NASSP News & Discussion (Moderators: movieman, Tschachim, Swatch, lassombra)
| | |-+  LVDC++ Software
« previous next »
Pages: 1 2 3 [4] 5 6 ... 18 Print
Author Topic: LVDC++ Software  (Read 12131 times)
dseagrav
Project Admin
Hero Member
*****
Posts: 831


View Profile
« Reply #45 on: October 18, 2012, 06:50:25 PM »

How do I:

- fire SIVB's ullage thrusters
SetThrusterGroupLevel(thg_ver,1.0);

Quote
- jettison them
I don't know if we simulated that. I don't see it being done.
I may be looking in the wrong place.

Quote
- start SIVB's main engine
SetThrusterResource(th_main[0], ph_3rd);
SetThrusterLevel(th_main[0], 1.0);

Quote
- shut it down again
SetThrusterLevel(th_main[0], 0);

Quote
- fire the APS after orbit insertion?
SetThrusterGroupLevel(thg_aps, 1.0);
Logged
Tschachim
Project Apollo - NASSP
Administrator
Hero Member
****
Posts: 3687


nassp.sf.net


View Profile WWW
« Reply #46 on: October 19, 2012, 11:46:50 AM »

Quote
- jettison them
I don't know if we simulated that. I don't see it being done.

Correct, it's not implemented.

Cheers
Tschachim
Logged

meik84
Project Team Member
Sr. Member
****
Posts: 299



View Profile
« Reply #47 on: October 19, 2012, 11:02:53 PM »

Well, folks: I almost got it.  Excited!
LVDC++ now works from start of TB0 till HSL entry (i.e. shortly before SIVB cutoff).
I'll take care of the HSL this evening (seems to be an initial value problem -the old story...), the only thing left would be the SIVB APS control thing. Gimbaling SIVB's engine causes some roll torque; we'll need it in orbit anyway. I'd like to crib that from AP7's SIVB, where do I find the code for that?
Anyway, thanks to both of you. I wouldn't have come so far without you. Thumbs Up
Logged
Tschachim
Project Apollo - NASSP
Administrator
Hero Member
****
Posts: 3687


nassp.sf.net


View Profile WWW
« Reply #48 on: October 20, 2012, 07:28:48 AM »

Great news!  Thumbs Up

The Apollo S-IVB uses IU::OrientAxis in IU.cpp for on-orbit attitude control. This may include some roll damping, but I'm not sure...
Logged

meik84
Project Team Member
Sr. Member
****
Posts: 299



View Profile
« Reply #49 on: October 21, 2012, 12:06:41 PM »

Just found this little fellow here ->http://ntrs.nasa.gov/archive/nasa/casi.ntrs.nasa.gov/19670083111_1967083111.pdf. It contains the mathematic basics of S-IB's flight control computer, i.e. the buddy who actually controls  the rocket. According to the astrionics doc, S-IB FCC and S-V FCC work the almost the same way (although it's different hardware). Gonna see if they really do... Wink
Edit: does anybody know which c++ thruster is which 'real' APS thruster? I can't find them -or we are having to many attitude thrusters on our SIVB.
And just to crosscheck:
th_main[0] is engine 4 in reality,
th_main[1] is 2,
th_main[3] is 1,
th_main[4] is 3,
right?
« Last Edit: October 21, 2012, 12:38:40 PM by meik84 » Logged
dseagrav
Project Admin
Hero Member
*****
Posts: 831


View Profile
« Reply #50 on: October 21, 2012, 04:19:22 PM »

The S1B FCC has an extra input device the S5 FCC does not. I believe it was a lateral accelerometer. It's covered in the LV guidance equations document.

I don't know which APS thruster is which. When I was searching for engines, I made a temp scenario with the desired ship in earth orbit, then hardcoded in a SetThrusterLevel for 0.25 and noted which one lit up. It was usually very obvious. I would put comments in when I had mapped them out.
Logged
meik84
Project Team Member
Sr. Member
****
Posts: 299



View Profile
« Reply #51 on: October 21, 2012, 05:10:46 PM »

Quote
The S1B FCC has an extra input device the S5 FCC does not. I believe it was a lateral accelerometer. It's covered in the LV guidance equations document.
Yupp. That's the only difference in the math. S1B used it effectively from T1+25 till T1+110; obviously it was considered unneccessary for the S5 and deleted.
Quote
I don't know which APS thruster is which. When I was searching for engines, I made a temp scenario with the desired ship in earth orbit, then hardcoded in a SetThrusterLevel for 0.25 and noted which one lit up.
That's a good idea. I'll try that tomorrow. You put that command in the SaturnV::Timestep, right?
'FCC++' gimbal control is working already. Had to use paper & pen to figure out the signs of the roll error part of the gimbal command equations, though. Wink
Logged
dseagrav
Project Admin
Hero Member
*****
Posts: 831


View Profile
« Reply #52 on: October 21, 2012, 08:17:23 PM »

Yeah, I just stuck it at the top of the LVDC++. I made a timebase -99 and made it boot there. It would wait 5 seconds and then light the thruster. That would give me time to get to the external view and see it come on. If I did it again today, I might have it pulse the thruster on a .5 second cycle (or so) because the on/off state would make it very easy to see.
Logged
meik84
Project Team Member
Sr. Member
****
Posts: 299



View Profile
« Reply #53 on: October 22, 2012, 02:47:00 PM »

I've figured out the APS engine assignments (and I hope they are right Wink).
However, when I try to implement APS steering for powered flight, Orbiter crashes when it comes to the first 'SetThrusterLevel' command. Any idea what I forgot to do?
In orbit everything's fine, so there must be something different between 'LAUNCH_STAGE_SIVB' and 'STAGE_ORBIT_SIVB', but what? Confused
« Last Edit: October 22, 2012, 02:50:43 PM by meik84 » Logged
eddievhfan1984
Full Member
***
Posts: 231



View Profile
« Reply #54 on: October 22, 2012, 03:04:07 PM »

During the launch phase, does the S-IVB have any form of thrust vectoring with the J-2 engine, or is it solely maneuvered by APS thrusters?
Logged
meik84
Project Team Member
Sr. Member
****
Posts: 299



View Profile
« Reply #55 on: October 22, 2012, 03:14:45 PM »

Yaw and pitch is done by gimbaling the engine, roll is done by the APS. And yes, we need roll control; the gimbaling of the engine causes some serious roll torque.
Logged
dseagrav
Project Admin
Hero Member
*****
Posts: 831


View Profile
« Reply #56 on: October 22, 2012, 05:59:03 PM »

I've figured out the APS engine assignments (and I hope they are right Wink).
However, when I try to implement APS steering for powered flight, Orbiter crashes when it comes to the first 'SetThrusterLevel' command. Any idea what I forgot to do?
In orbit everything's fine, so there must be something different between 'LAUNCH_STAGE_SIVB' and 'STAGE_ORBIT_SIVB', but what? Confused

I bet thg_aps wasn't initialized. let me look for where that gets set up.
Logged
eddievhfan1984
Full Member
***
Posts: 231



View Profile
« Reply #57 on: October 22, 2012, 07:31:02 PM »

Well, I was just trying to determine the control mode of the spacecraft. I'm not a master of OOP programming yet. LOL Anyhoo, does the control mode change for TPI? I'm just trying to understand the circumstances of the CTD.
Logged
dseagrav
Project Admin
Hero Member
*****
Posts: 831


View Profile
« Reply #58 on: October 23, 2012, 07:35:26 AM »

I'm almost certain it's because the old on-orbit S4B never used the APS, so it's not present or initialized when the stage is built.
I was chasing down the code for it but got stuck with another emergency. I'll try to jump on it again tonight.
Logged
Tschachim
Project Apollo - NASSP
Administrator
Hero Member
****
Posts: 3687


nassp.sf.net


View Profile WWW
« Reply #59 on: October 23, 2012, 01:25:32 PM »

I thinks there's a kind of misunderstanding here: thg_ver are the 3 stage separation thrusters used at S-IB/S-IVB or S-II/S-IVB staging. thg_aps are only the 2 ullage "propellant settling" thrusters of the S-IVB, not the attitude control thrusters of the S-IVB. For attitude control please use Saturn::SetSaturnAttitudeRotLevel, to be used like Orbiter's SetAttitudeRotLevel. It should use the correct thrusters (th_att_rot[xxx]) for both LAUNCH_STAGE_SIVB and STAGE_ORBIT_SIVB.

If the LVDC++ doesn't use Saturn1b/V::StageLaunchSIVB anymore (I don't know) you need to call AddRCS_S4B to add both thruster systems:

void Saturn1b::StageLaunchSIVB(double simt)

{
   switch (StageState)   {
   case 0:
      SepS.play(LOOP, 130);
      SetThrusterGroupLevel(thg_ver,1.0);
      NextMissionEventTime = MissionTime + 2.0;
      SetSIVBMixtureRatio(5.0);
      ActivateStagingVent();
      StageState++;
      break;

   case 1:
      if (MissionTime >= NextMissionEventTime - 1.0)
         DeactivateStagingVent();

      if (MissionTime >= NextMissionEventTime)
      {
         LastMissionEventTime = NextMissionEventTime;
         NextMissionEventTime += 2.5;
         SetEngineIndicator(1);
         StageState++;
      }
      break;

   //
   // Start bringing engine up to power.
   //

   case 2:
      if (MissionTime  < NextMissionEventTime) {
         double deltat = MissionTime - LastMissionEventTime;
         SetThrusterLevel(th_main[0], 0.9 * (deltat / 2.5));
      } else {
         SetThrusterLevel(th_main[0], 0.9);
         SetThrusterGroupLevel(thg_ver, 0.0);
         LastMissionEventTime = NextMissionEventTime;
         NextMissionEventTime += 2.1;
         StageState++;
      }
      if (GetThrusterLevel(th_main[0]) > 0.65) {
         ClearEngineIndicator(1);
      }
      break;

   //
   // Bring engine to full power.
   //

   case 3:
      if (MissionTime  < NextMissionEventTime) {
         double deltat = MissionTime - LastMissionEventTime;
         SetThrusterLevel(th_main[0], 0.9 + (deltat / 21.0));
      } else {
         SetThrusterLevel(th_main[0], 1.0);
         SepS.stop();
         if (th_att_rot[0] == 0) {
            AddRCS_S4B();
         }

         NextMissionEventTime = MissionTime + 2.05;
         StageState++;
      }
      break;

   //
   // First mixture ratio shift.
   //

   case 4:
      if (MissionTime >= NextMissionEventTime) {
         SetSIVBThrusters(true);
         SetSIVBMixtureRatio(5.5);

         StageState++;
      }
      break;

   //
   // Second mixture ratio shift.
Logged

Pages: 1 2 3 [4] 5 6 ... 18 Print 
« previous next »
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.10 | SMF © 2006-2009, Simple Machines LLC Valid XHTML 1.0! Valid CSS!