I have a problem with my representation of roll in Simulink
I am currently a French engineering student (I apology about my English) and a member of the aerospace club of my engineering school (ESILV) which is called LéoFly. We’re a team of 12 students and are building a Fusex (Experimental Rocket) for the launch campaign of the CNES in partnership with Planète Sciences association. The goal of our experimentation is to counter the “natural” roll of the rocket after the boost-phase. Thus, I am the one who must program the algorithm that counter the roll using a gyroscope and four solenoid valves (2 for the clockwise direction and the 2 others for the counter clockwise direction). I decided to use Simulink to develop the closed loop control using the following image, equations and data.
The image is the cross section of the rocket with the four fins. This is an example of a “natural” roll in the counter clockwise direction, so the program gives the order to the two solenoid valves of the clockwise direction to eject gases and cancel the roll of the rocket.
Here are the equations with which we have started with.
The C’s are the torques considered in the experimentation (Thrust torque and Roll torque), J is the inertia, theta is the angle and theta is equals to the derivative of omega in the time domain. After that, Fa is the force of thrust, Fb is the force of roll, R1 and R2 are two different radiuses of the rocket.
Here are the data, taken from our experimentations and our rocket.
Then, in Simulink, I’ve crafted the closed loop thanks to the schematic representation, the equations and the data. We don’t want roll, so the input is 0 (in radiant per second) and the output is the roll of the rocket (in radiant per second). This is a closed loop because of the gyroscope, and the dynamic subsystem is composed of the thrust torque and the roll torque which is the disturbance in this problem.
Thêta-lim is the saturation block that represent the max roll that the rocket can have physically. 394
The White-Noise block is here to add randomness in the representation of the roll torque. The roll torque can be clockwise or counter clockwise and is never always at the maximum of him (here the Roll Torque block is equals to approximately 10 N.m so the disturbance which is added to the thrust torque is between 10 N.m and -10 N.m). Thrust Torque is approximately equals to 0.29 N.m and the inverse of Inertia is equals to 90 m².kg-1. The switch subsystem is here just to permit a better implementation in the Arduino to pin the solenoid valves in the program (which will be generated from Simulink). The PID has the next values: P = 114 and I = 28. I didn’t used the auto-tuner because It gives the values for a step of 1 while we don’t want a step of 1 but an input of 0. Thus, here is what the scope gives me.
It is what we wanted for our roll control system: counter the “natural roll” and converge to an angular velocity of 0 radiant per second. Of course, It is a student Fusex so we don’t want to have a perfect curve that converge to 0, we don’t have the time and the money to do that!
But the problem is at t = 0+: I put in Simulink (in the integrator block) a “natural” roll (angular velocity) of 2 radiant per second. How is it possible to go from 19 rpm to approximately 0 rpm in 0 second? It does not seem to be physically possible, and we don’t know if It is a problem due to Simulink or if It is a problem in our blocks, if our closed-loop is poorly conceived or if the starting equations are not good. One of our professors told us that It can certainly be the problem of Simulink (because of the side effects apparently).
Thus, what are your impressions about this and what do you recommend me to resolve this (these) problem(s)? 628