My question concerns the control loop shown in the attached image. I am trying to recreate the attitude-control feedback loop for a satellite’s orientation. This control system deals with the orientation around one of the three axes. The part that is not outlined in red normally has no issues. It’s the section I added at the top—the one inside the red box—that is giving me trouble.
The lower part is a fairly standard control loop used to regulate an angular position. The top part in the red box is supposed to represent an external angular-velocity variation that activates only when the angular velocity of the satellite’s internal reaction wheel exceeds its maximum allowable speed. Thanks to magnetic torquers, a torque is applied that desaturates the wheel by slowing it down, without rotating the satellite, because the torque from the magnetic torquers compensates for it. The purpose of this is to reduce the wheel’s speed once it reaches its maximum, at which point it can no longer help control the satellite.
My problem and objective are therefore to add a signal into the summing junction (the one connected to the red-outlined area) only if the angular velocity measured after that summing junction exceeds a certain limit. The issue is that if I rely only on the dynamic switch, once the wheel speed reaches its maximum, it will decelerate, then accelerate again, then decelerate, accelerate, and so on, causing oscillations. This is neither practical nor optimal.
What I would like instead is that as soon as the speed reaches its maximum, a full desaturation maneuver is triggered. In other words, this part of the circuit should activate for a fixed duration of X seconds (to be computed), corresponding to the time required to desaturate the wheel down to an acceptable level. Therefore, I need a way to activate a signal from the output of my comparator for a fixed amount of time. The dynamic switch does exactly what I want in principle, except it does not hold the signal for the required duration. It outputs 0 when the speed condition is not met, and it outputs a step input to the magnetic torquers when the condition is satisfied—nothing more.
So in fact, the part outlined in green probably needs to be replaced. What I currently have in the green box is the closest thing I’ve found to what I want: it copies the incoming signal and updates it at fixed intervals determined by the clock. Why isn’t this perfect? Because depending on when the saturation event occurs relative to the clock timing, the desaturation may start at the wrong moment, and may only last for a fraction of the required X seconds.
I hope my explanation was clear and not too long.
Thanks in advance for your help, and have a great day.
