Friday, 27 November 2015

Abstracting to Engineering Simplicity

Abstraction is about taking particulars and getting a generality, and in doing so, ignoring non-essential elements. For example, a drawn square can be abstracted into mathematical object, but in doing so you ignore all sorts of things: what the square was drawn with, the thickness of the lines, any irregularities, and so forth. I recently learnt that you can apply this concept to cross from physics to engineering and then within engineering, up the ladder of technology.

The example used was within the discipline of electrical engineering, where the lecturer summarized the physics relating to electrical engineering as Maxwell's equations. But Maxwell's equations, he pointed out, are an abstraction of electromagnetic phenomena. What you actually start with is a very large data set and what Maxwell's equations do is abstract that data into a pattern by grabbing the essential variables and ignoring the incidental things. Not everything about a system is relevant to its electromagnetic properties: the colour of the things is irrelevant, what it smells or tastes like does not matter, the material's tensile strength is beside the point (in fact, it could be a liquid, gas or vacuum, which are not things where you often talk about tensile strength). So you abstract from data to physical equations. Actually, if you were being really precise, you could think of Maxwell's equations as abstractions of the more basic quantum theory of electromagnetism; take the physics of the relevant size, speed and so forth, and you get Maxwell's equations by ignoring the quantum corrections.

But Maxwell's equations are actually pretty hard to work with if you're working with circuits. So abstract a bit more. The next step is the lumped circuit abstraction where you make two basic assumptions about the system: you assume that there is no charge build up within a wire (charge in = charge out) and you assume that the change in the magnetic flux outside the element is zero. This allows you to easily define the current (denoted I) and the voltage/potential difference (V), and ultimately gives you Ohm's law: V=IR.

There is no need to stop at the physics-engineering boundary, either, and it will make the life of an engineer much simpler if we do not. From the lumped circuit abstraction we can go on to the simple amplifier abstraction. Then we can abstract digitally or analogically, all the way up until we get programming languages, operating systems and videogames, or whatever else electrical engineers make. In a videogame, pressing a key like "up" sets a whole code in motion and has all sorts of effects - that key abstracted an enormous range of commands. You can see a table of abstractions in his lecture notes on page 5 of this pdf.

The crucial thing here to learn for me was how important the idea of abstraction was in engineering as a concept, and it has helped me to understand how you go from simple things like Ohm's law through to computers: take what you want and ignore the rest. Make things simple. Abstract. It's a great tool for making anything complicated simple, really, not just engineering.

No comments:

Post a Comment