System Modeling for Control Systems

I've also had this problem...even though I've done controls work for a living. My part of the controls work has been dealing with what the system identification guys give me, so I never developed that skill as well as I wanted. After a while, I've picked up a couple of additional books and relearned how to do it in some cases.

The method that I use is by constructing lagrangian equations that describe the system. The lagrangian describes the kinetic and potential energy in a system. I've found that Control system design: An Introduction to state-space methods (cheap) actually has a decent reference for performing system identification. I recommend going through all of the examples and problems in chapter 2.

Additionally, the thermal problem you describe can be handled by converting the components of the model to electrical equivalents. This can be found in the book or by doing a bit of googling.


I've had a similar history with control theory. Last year, I tried to solve the same problem, but I was only somewhat successful. I learned a few things:

  • This part of the field is called "system identification."

  • Unfortunately, most engineering literature on the topic covers dynamic system identification, meaning the task of adjusting control parameters because, for example, the mass of your robotic arm changed because it picked up a box.

  • For a lot of physical parameters, there are tests you can do that will give you decent estimates. For example, in mechanical systems, you can measure the stiffness of a beam by weighing it down with a few different masses and measuring how far it deflects. For the specific example of thermal mass, I'd think your best bet is probably estimation by material properties and volume, unless you have a calorimeter.

  • For estimating gains for PID systems that actually exist outside the computer, I've found the Ziegler-Nichols method to be a good start: http://www.mstarlabs.com/control/znrule.html

  • From what I can tell, the general procedure often involves building a prototype with a powerful actuator, and then seeing how the system reacts to different inputs. See, for example, this Matlab tutorial that describes how you can estimate the damping coefficient and natural frequency of a system by measuring its response to a step input (i.e. jerking a spring and seeing how it wiggles): http://www.me.cmu.edu/ctms/modeling/tutorial/systemidentification/mainframes.htm