I was recently asked to help provide teaching resources on motors and motor control. There is a lot of material floating around due to the increased interest in Mechatronics at a number of universities around the country. However, there seems to be no consistency in what is taught and how it is taught.
This touches on a couple of major themes. What is the best way to teach the subject of motion control or mechatronics? And this is followed by; What is the ideal descriptive language for motion control programming?
For all the mechatronics information around these days, there are no standards for teaching it. And as the subject has become more broadly defined over time, makes matters more difficult with regard to teaching the subject. However, since the field of mechatronics is mechanically bounded, the best place to start the teaching of the subject is with the basics that govern the mechanical load that is to be controlled. The mechanical definition should also include a description of the work being done, which gives insight to the input energy required for a given system.
The mechanical definition can be incredibly complex when robotic systems are considered. The teaching of kinematic descriptions and the differential equations required to define these systems involve enormous sophistication which suggest the need for structured programs of instruction.
One significant aspect of mechatronic systems is the need to describe the required behavior of a particular application. In automated systems, this requires the use of controllers with program languages that can perform the required control. The description of the motion control can generally be done in a simple velocity displacement curve plotted against time. But none of the major control languages incorporate this type of information into their programming. Which is kind of sad.
Which brings us to the nature of descriptive languages. Programming languages like Boolean and “C” don’t really provide a useful description of motion. The “C” language has been used to program stepping motor controls and several multi-axis controllers. The difficulty in these situations is that the “C” language libraries are all custom scripted in order to support the needed functionality. But the interesting aspect is that none of the programming libraries have any commonality. Part of this is the use of a variety of microprocessors which have diverse instruction sets. But overall, this points out the complexity of a defining a good descriptive language of motion control.