The goal of the Osiris throttle controller is to use data obtained from instrumentation as feedback parameters to control engine thrust while maintaining the same mixture ratio.
From a given thrust level, the oxidizer and fuel mass flow rates can be computed, as can the desired chamber pressure.
Since the N2O mass flow cannot directly be known, the controller only controls IPA mass flow directly, and controls the N2O mass flow indirectly from chamber pressure. In this way, the N2O controller assumes that the IPA controller is working as expected.
For the IPA controller, an mdot_IPA reference is entered into the controller, which is demanding some IPA mass flow rate. The controller subtracts these two mass flow rates to get the mass flow rate error. Then, it passes that mdot_err into a PID controller, which computes theta_dot*sqrt(dP_valve). If we focus on theta_dot first, we can see that theta_dot is just the rate of change in valve angle required to bring the mdot_err to zero. We multiply this by sqrt(dP_valve) to remove nonlinearity from the main loop. Then, theta_dot is isolated, and passed through the plant dynamics of the system. These dynamics allow us to calculate the new pressure drop across the IPA injector as a result of this slight change in valve angle. Then, we can scale this by the rest of the orifice mdot equation to obtain mdot_IPA, which is fed back into the beginning of the controller.