Closed WardLT closed 1 month ago
Hello @WardLT
Thanks for your suggestion. Sorry for the delay - I was on paternity leave until this week.
You're describing a pretty common case that we've run into with many of our models. The recommended solution for this is to include your control input in the state vector. This is referred internally as a "pass-through input".
There's a few reasons for this:
I've looked through our public models and cant find an example of passthrough inputs, but it's present in a few of the nasa-internal models.
It would look something like this:
class MyModel:
def next_state(self, x, u, dt):
... # Logic of model
next_x['some_input'] = u['some_input'] # passthrough input
def output(self, x):
# use x['some_input']
Is this an adequate solution to your problem? Let me know if this doesn't solve it and we can talk more about your proposed solution.
First, congrats!
Second, passthrough inputs makes sense and I don't forsee it becoming a problem. I'll go ahead and close my PR then find out if I can make this work with our models.
Requirement Text I would like to include a model where the control vector has an influence on the measured outputs, but the interface to
PrognosticsModel
only includes the state as input.Background Information I'm implementing a single-resistor (R_int) equivalent circuit model.
Suggested Solution Add
u
to the inputs ofPrognosticModel.output
, update the use of the model in the various StateEstimator classes.DoD edit this to be a list of tasks that need to be completed