Obtaining Plant Input data from System Identification (PID)

I'm trying to obtain a mathematical model from a physical plant using MATLAB. Using the system identification tool you need the plant input and output data. I'm struggling to match the theory to my practical example.

My plant is a balance beam with a rotor on each end. The plant output is the angle of tilt of the beam, and the input is the motor/s (actuator) command.

What would qualify as a step input on the plant so I can perform System ID? Would it be a step command of X voltage applied to one motor? Would it need to be applied to both motors? Do the units of plant input and output have to match?

Increasing the voltage on one motor would very quickly tilt the beam one way until it's physically constrained by how far it can go. I have concerns about the time it would take to reach that point being sufficient for system analysis.

What would qualify as a step input on the plant so I can perform System ID?

If the system response is linear compared to the system input. For example: if I applied a step input with a input of 1 and got a 5 deg angle on the balance beam then applied a step input of 2 and got a 10 deg angle (and so on), then to capture system dynamics only one step input would be needed. Conversely if I applied a step input with a input of 1 and got a 5 deg angle on the balance beam then applied a step input of 2 and got a 15 deg angle and a step input of 3 had a 25 deg angle then to capture the system dynamics all amplitudes should be tested.

Would it be a step command of X voltage applied to one motor? Would it need to be applied to both motors?

If each motor is controlled independently then yes, you would need to test one input at a time. It also matters if the SysID is a MIMO system, if the motor control is not independent, then you'll need to put in a step input, and then a step input in the negative direction.

It would also be advantageous to turn one motor on, then let the system return to normal, then turn the other on, let the system return to normal. Then turn one on then the other on at the same time. If the system goes unstable by turning one motor on, then you might not be able to get enough data for a system ID.

Do the units of plant input and output have to match?

No, this is taken care of by any gain parameters.

Make sure you get the order right, it would probably be advantageous to model the system on paper and see what kind of order it has and then use that order if using a linear model. If I remember right a simple inverted pendulum control system is non-linear so either use a nonlinear model or linearize the control inputs if this applies to the system

For the system you described it may be easier to model using first principles, but that's not what you asked.

What would qualify as a step input on the plant so I can perform System ID?

A step input can be any magnitude, what is important is that the actuator input rises quickly relative to the system's response to the input. Of course the rotor blades will take some time to spin up, that is ok as long as they spin up and stabilize much faster than it takes for the balance beam to move any significant amount.

Would it need to be applied to both motors?

I am assuming each rotor is symmetrically placed relative to the beam's pivot point. I'll also assume that movement where the "right" arm of the beam goes up the angle is moving in the positive direction. I drew what I think you are describing: If this is true than we can treat the two motor's as one "actuator" where each rotor represents thrust going in the positive or negative angle direction. So if the controller asks for a step of positive thrust the right motor would spin up. So for a step input one motor should be spun at a time.

Do the units of plant input and output have to match?

No you can think of the system transfer function as a ratio of angle to rotor thrust. This would mean when you input rotor thrust the transfer function outputs the angle. Your controller gains take on the units necessary to correct the units.

Increasing the voltage on one motor would very quickly tilt the beam one way until it's physically constrained by how far it can go.

Hopefully there is an input that is large enough to move the beam, but small enough that you can collect enough angle data points for useful characterization. If not than I would recommend building a model through first principles and validating that model through experimentation.

Good Luck!

• So, to clarify, going on from your drawing - if I gave the right motor +0.5, i.e. a positive thrust step input, and then observed the angle as the output, that would be sufficient/appropriate? Would i then also need to do it for the left motor? – el16a2t Apr 16 at 15:56
• I think that should be sufficient to characterize the system dynamics. By thinking of the two motors as a single actuator, spinning only the left motor would be like giving a negative step input. The dynamics should be the same the output angle will simply be negative given the reference I drew. If both motors are spinning than the sum of their thrusts would be the equivalent actuator action. So if the right motor is putting out greater thrust than the left motor, the total actuator action is a positive thrust with magnitude (Right thrust - Left Thrust) – Clipboard_Waving_Enginerd Apr 16 at 18:08

What would qualify as a step input on the plant so I can perform System ID?

A step on whatever you are using as your input. If you have more than one input, then you need to use MIMO (or at least MISO*) techniques.

* Now I'm hungry.