# Is modelling a robot and deriving its Equations of Motions more applicable to a system that is inherently unstable?

As someone who is new and is still learning about robotics, I hope you can help me out.

Let's say I have two systems:

• (a) Inverted Pendulum (unstable system)
• (b) Pole Climbing Robot (stable system)

For system (a), I would say that generally, it is a more dynamic system that produces fast motion. So, in order to effectively control it, I would have to derive the Equations of Motions (EOM) and only then I can supply the sufficient input to achieve the desired output. Eventually, the program will implement the EOM which enables the microcontroller to produce the right signal to get the desired output.

However for system (b), I assume that it is a stable system. Instead of deriving the EOM, why cant I just rely on the sensor to determine whether the output produced is exactly what I want to achieve?

For unstable system, controlling it is just difficult and moreover, it does not tolerate erratic behavior well. The system will get damaged, as a consequence.

On the contrary, stable system is more tolerant towards unpredictable behavior since it is in fact stable.

Am I right to think about it from this perspective? What exactly is the need for deriving the EOM of systems (a) and (b) above? What are the advantages? How does it affect the programming of such systems?

Edited: Some examples of the climbing robot that I'm talking about:

## 3 Answers

A system is (marginally) stable if all of the poles are (equal to or) less than zero. In general, the poles of a system determine whether a system is stable or not, and the zeros of a system determine the approach to stability (rise time, settling time, overshoot, etc.)

A PID controller operates with no system model taken into account. A PID controller adds a pole at zero and two zeros to the system; these can be adjusted to tune the system response.

The problem with trying to use a PID controller on an unstable system is that you need to tune the zeros of the controller to exactly equal to the unstable poles to achieve pole-zero cancellation. If, for some reason (friction, wear, capacitor aging, vibration, etc.) the controller's zero end up not exactly equal to the unstable poles, then the unstable poles are no longer cancelled and the system goes unstable again.

In scenarios like this, adding zeros is not the solution. The way to control an unstable pole is to actually place the (unstable) open-loop poles somewhere else. In this manner you're not trying to control the system by cancelling the poles, you're actually acting to change the fundamental dynamics of the system.

The technique to achieve pole placement is generally state feedback control. This requires a system model because (hand-waving) you need to know which poles are unstable and in order to be able to make them stable. Remember, for stability, a positive pole is unstable and a negative pole is stable, from the inverse Laplace tranform of the pole, $e^{\pm pt}$ - the time response either decays or "explodes" exponentially.

So, once you have a system model and evaluate which poles need to be moved from the right- to the left-hand plane you can calculate the gains required to do the move et voila, the controller is complete. Note the (hand-waving); this can be a very time-consuming task.

So, in conclusion, while you might be able to "skate by" with a PID controller on an unstable system, PID control will never change the pole locations of the underlying system so you will only ever achieve tenuous stability. In order to change the underlying system dynamics, you first need to know the underlying system dynamics, and that's why you need a system model.

• Thanks Chuck. I may need some time to digest this and will get back to you later. – goddar Oct 22 '15 at 15:22
• Hi Chuck, finally. Now I get it that PID is susceptible to external factors, but how is this different from using the state feedback method? They are also made up of the same components. Physically, I know that using PID requires us to tweak the gains Kp, Kd and Ki to calculate u (t) and thus sending the appropriate voltage to the actuators. But, can you explain how does state feedback change the fundamental dynamics? Physically, how is it possible to change the fundamental dynamics of a system that we have already built? How is that achieved? Only through software? – goddar Nov 8 '15 at 13:12
• Should I put up a new topic to discuss this because I have a few more questions. I like to know how the analytical aspect of a control system algorithm translates into the physical form to affect the system. What do you think? – goddar Nov 8 '15 at 13:14
• @goddar - I'm on my phone, so it's a little hard for me to search/comment well at the moment, but I wrote a rather long explanation of state feedback controls for another answer I can link you to. Briefly, PID controllers add poles and zeros to your system, while state feedback controllers move the existing poles of the system. As far as I know, all state feedback controllers are implemented in software, meaning I'm not aware of any electronic or fluid analogies like there are for PID controllers. – Chuck Nov 8 '15 at 17:07
• @goddar - A PID controller uses the plant dynamics to generate an output, then applies more poles and zeros to a comparison of that output and the reference input. A state feedback controller doesn't need output feedback (but it does help!), so you are free to modify the reference signal without needing to apply the original plant dynamics first. A state feedback controller allows you to exploit a priori knowledge of the system for more "optimal" control. That's all I can really say here; if you have more questions just make one and I'll chip in! – Chuck Nov 8 '15 at 17:11

Interesting question...

In a closed loop system you always rely on a sensor to see if the output equals your reference value or not (e.g. is the actual state and desired state the same). If no, your controller acts tries to minimize the difference between desired state and current state.

The input you can give to the inverted pendulum is not the same as your output, what you measure. If it would be, it would not be an inverted pendulum. Infact with the EOM you try to figure out what input should you give to the system to produce the output you expect. In other word how does your input relate to your output (or vice versa).

Here is a tutorial on how to write the EOM: http://ctms.engin.umich.edu/CTMS/index.php?example=InvertedPendulum&section=SimulinkModeling

I am not sure what you meen by pole climbing robot, but I assume it is a more complex system consisting of more actuators and so it has a higher level (maybe open loop) control system and then closed loops for all different actuators...

• Some examples of the climbing robot that I'm talking about: i) i.ytimg.com/vi/gf7hIBl5M2U/hqdefault.jpg ii) ece.ubc.ca/~baghani/Academics/Project_Photos/UTPCR.jpg – goddar Oct 22 '15 at 14:48
• Thanks for the explanation. So, without the EOM, controlling the motion of the inverted pendulum will be difficult due to the tight requirement and margin of error for the following criteria: overshoot, rise time, settling time and etc? So, how about the stable system? What if none of the criteria above matter? – goddar Oct 22 '15 at 14:55
• If you take a look at a simple motor control application for position control you give PWM signals to the motor which turns the rotor. If you stop giving the pwm signals the motor stops moving. The PID controller or a cascaded PID controller can then deal with the position control, ths controlled variable (motor torque) is more or less in a direct relationship with the desired output (rotor position). For the case of the inverted pendulum this relationship is given by the EOM. – 50k4 Oct 26 '15 at 11:10

The inverted pendulum is unstable in the sense that it will diverge away from the upright position if perturbed (for example, slightly blown by wind or lightly vibrated). On the other hand the "climbing robot" will swing back to its original position if perturbed, so you can say it is stable.

You don't need to derive the equations of motion for an unstable system in order to control it if you have sensor feedback of the desired output (just like you said). Instead, you use a feedback control law that compares the sensor reading to your desired output to compute the required control input that reduces that difference. Read about PID controllers to get an idea of how that works (it's actually pretty simple).

The advantage to using the equations of motion is that you can predict the required input to achieve a desired response, and this predicted input is often referred to as feed-forward control (or open-loop control). If you combine both feed-forward and feedback control you get a very robust system that applies predicted inputs to achieve a desired output but also implements feedback based on sensors to correct for errors (your equations of motion can never be perfectly accurate).

Another benefit of using the equations of motion is that you can account for non-linearities in the system that might otherwise be problematic for a PID controller.

When it comes to programming, using feedback will be much simpler than using feed-forward since the equations of motion will likely be relatively complex (in general, but not bad for a simple inverted pendulum).

• Thx. But I dont quite get the implementation of feedfwd+feedback part. You were saying that implementing feedforward requires me to derive the EOM, which allows me to calculate the input based on the output that I desire? However, the calculated feedforward control input does not adapt to the external load due to lack of feedback, right? At the same time, the feedback control also calculates the input based on the feedback by the sensor, which will also produce the desired output. Aren't this redundant? Will they end up produce excessive control input and thus overshoot the desired output? – goddar Oct 22 '15 at 18:45
• That is exactly correct, the EOM allows you to predict the input needed for some desired output response. There will be errors due to external load and so feedback will be needed to adapt. What is important is that the feedback controller is also accounting for the motion being caused by the feedforward controller. Yes, you may get larger inputs but it is not redundant since your feedback controller will be tuned to account for that. With better feedforward control you need less feedback correction. – Brian Lynch Oct 22 '15 at 18:51
• Not at all, I understand you perfectly, and you seem to understand the problem quite well. Just keep in mind that when we say "desired output" we are talking about the final motion of the system. And that motion is continuously updating, which then updates how the controller responds. As long as we account for everything in our model then we can design the feedback part to produce the output we want. – Brian Lynch Oct 22 '15 at 18:54
• Yes, your first comment sounds correct in spirit, but I wouldn't say "deriving the EOM helps us produce a more efficient system", it is simply "using the EOM to generate feed-forward control inputs improves the system performance". I can derive all kinds of EOMs but that doesn't do anything by itself. Also, don't think of some control input producing desired output directly. If you have a large positive error and feedback alone produces a large negative motion to correct it, then that is the desired output in some senses. – Brian Lynch Nov 12 '15 at 19:41
• Equations of motion are equations of motion. You can transform any time-domain equation to Laplace-domain. The EOM is usually not the transfer function between input and output, especially with feedback control. It is typically only part of what is called the "plant", and is usually integrated afterwards. – Brian Lynch Nov 12 '15 at 19:43