ATVC/ASA development

GLS

Well-known member
Orbiter Contributor
Addon Developer
Joined
Mar 22, 2008
Messages
5,958
Reaction score
2,979
Points
188
Website
github.com
From what I've read, the ATVC and ASA aren't that different so I figure 1 thread for both is enough.

And just a heads up: for now, I only commit to ATVC work. That doesn't mean that I won't do the ASA, but for now it's just ATVC...

First order of business: I vote to move ATVC from mps namespace to gnc. (the ASA would also be in the gnc...) The reasons behind this are the similarities between ATVC and ASA, the fact that the ATVC also controls the actuators in the SRBs, and also they seem to have a lot to do with the G and the C in GNC...;) All in favor...

#2: Urwumpe, do you have any indications on what (not) to do, before I start???
 

Urwumpe

Not funny anymore
Addon Developer
Donator
Joined
Feb 6, 2008
Messages
37,664
Reaction score
2,386
Points
203
Location
Wolfsburg
Preferred Pronouns
Sire
From what I understand, the voting and error handling of the ATVC controller is different to the ASA (actually, we have different kinds of ASAs), so I would not implement them equally.

But maybe, you can share many hydraulics patters in both ATVC and ASA, and only handle them differently internally.

A hydraulics actuator for example is pretty similar between all systems, so I think this one can be shared.

I support your decision to move the ATVC to the namespace gnc. It makes sense.
 

GLS

Well-known member
Orbiter Contributor
Addon Developer
Joined
Mar 22, 2008
Messages
5,958
Reaction score
2,979
Points
188
Website
github.com
A few questions:
#1) what do the ATVCs really get from the GPCs? An angular position (relative to the the nozzle null position or the OV...), or a number between (let's say) 0 and 1, 0 being full to one side and 1 full to the other side??? Also, is it just position or also rate???

#2) does the FA MDM between the GPC and the ATVC *change* anything (in our sim world)??

#3) about the disc ports, who connects them? If it's my (ATVC) job, when and how?

#4) is the hyd actuator a subsystem??? (like ATVC, SSME, whatever)
 

Urwumpe

Not funny anymore
Addon Developer
Donator
Joined
Feb 6, 2008
Messages
37,664
Reaction score
2,386
Points
203
Location
Wolfsburg
Preferred Pronouns
Sire
1) I think deflection commands from 0 to 100%

2) The MDMs should convert a 16-bit integer for a deflection command into a discrete line voltage. for example 0 -> 0V and 100% -> 5V. The MDMs get their data from the GPCs over a Shuttle Bus connection. With the OPS9 SPEC 112 "GPC/BTU I/F" display of the DPS, it should be possible to make low level tests of each MDM.

3) Each subsystem should, as far as it can know that, connect itself to the correct cable bundles in Realize(). If you use the DiscreteBundleManager objects of Atlantis and DiscreteBundleManager::CreateBundle() for defining which bundle you want to connect to. The name for a cable bundle has to be unique for the Orbiter.

4) Not defined yet. Possible to make it that way, but it might be simpler making a hydraulic system a subsystem and keep the abstraction limited.
 

GLS

Well-known member
Orbiter Contributor
Addon Developer
Joined
Mar 22, 2008
Messages
5,958
Reaction score
2,979
Points
188
Website
github.com
1) I think deflection commands from 0 to 100%

2) The MDMs should convert a 16-bit integer for a deflection command into a discrete line voltage. for example 0 -> 0V and 100% -> 5V. The MDMs get their data from the GPCs over a Shuttle Bus connection. With the OPS9 SPEC 112 "GPC/BTU I/F" display of the DPS, it should be possible to make low level tests of each MDM.

3) Each subsystem should, as far as it can know that, connect itself to the correct cable bundles in Realize(). If you use the DiscreteBundleManager objects of Atlantis and DiscreteBundleManager::CreateBundle() for defining which bundle you want to connect to. The name for a cable bundle has to be unique for the Orbiter.

4) Not defined yet. Possible to make it that way, but it might be simpler making a hydraulic system a subsystem and keep the abstraction limited.

#1) no rate? so the HydAct has to *decide* on a rate between 10º/sec and 20º/sec...

#2) So should I use disc signals to get cmds or a funct call works???
 

Urwumpe

Not funny anymore
Addon Developer
Donator
Joined
Feb 6, 2008
Messages
37,664
Reaction score
2,386
Points
203
Location
Wolfsburg
Preferred Pronouns
Sire
#1) no rate? so the HydAct has to *decide* on a rate between 10º/sec and 20º/sec...

No, in reality, the decision would be done by simple physics inside the actuator - the actuator is actually a control loop of it's own, trying to move itself to the target position. The bigger the position error, the higher should be the maximum speed during the transition until reaching the peak velocity of the actuator, which is limited by the maximum inflow of hydraulic fluid.

#2) So should I use disc signals to get cmds or a funct call works???

What do you mean? I would use disc signals, as we can that way standardize the interface for the MDMs - and test the ATVC unit even without direct connections to the simulation.
 

GLS

Well-known member
Orbiter Contributor
Addon Developer
Joined
Mar 22, 2008
Messages
5,958
Reaction score
2,979
Points
188
Website
github.com
No, in reality, the decision would be done by simple physics inside the actuator - the actuator is actually a control loop of it's own, trying to move itself to the target position. The bigger the position error, the higher should be the maximum speed during the transition until reaching the peak velocity of the actuator, which is limited by the maximum inflow of hydraulic fluid.


that's what I meant by *decide*...;)
 

GLS

Well-known member
Orbiter Contributor
Addon Developer
Joined
Mar 22, 2008
Messages
5,958
Reaction score
2,979
Points
188
Website
github.com
Just uploaded the ATVC files...
 
Top