Sunday, November 12, 2006

Problem Solving

How to Solve Mathematical Problems

It is useful for engineers of all stripes to build a personal toolkit of problem solving techniques. This small volume serves admirably as an introduction to problem solving and is chockful of motivating examples demonstrating each technique.

The Towers of Hanoi, for example, is a staple problem for budding computer scientists to cut their teeth on algorithm design. By exploring several different approaches to this and other problams, the author Wayne A. Wickelgren takes the challenge away from low-level algorithm implementation and into the realm of selecting an approach.

Wickelgren explores depth first, induction, sub goal and working backwards among others in an ongoing discussion with the reader. First he sets the problem and gives a clue as to how to solve it, then adds more information until, almost magically, the path towards the answer becomes obvious to the reader.

At least it is while reading the lively discourse. Readers will need to put in a lot of practice in order to be able apply these methods in their everyday work. That said, the intent is to empower the reader by adding more tools to his kit of problem-solving techniques.

Software engineers need to know a lot more than just computer science and I heartily recommend this read to anyone who wants to excel in problem solving in a professional setting.

Friday, November 03, 2006

Systems and Signals

The beginning is founded in mathematics and the end in grounded in applications that are rather sophisticated. So perhaps it is best to start in the middle. The foundation stone for systems is grounded in analysis. System technology is what Systec is all about and system analysis is the fashion of work.

The lapis philosophorum or Philosophers Stone might be the dream material for alchemists even if it does not exist. Luckily for us, there is a raft of tools at our disposal for analysing systems from differential equations, matrix and state-space analysis in the fields of control systems and signal processing. Signals are the germ from which our systems grow.

It is perhaps wise when starting in the middle to allude to the beginning and to take a focussed look into the end. To find our feet and to remain grounded. Differential equations of the ordinary and partial kind are incredibly useful tools if sometimes unwieldy. Various transformations into algebraic representations, homeomorphisms in equivalent phase spaces, give us one or more matrix equations instead of a set of differential terms.

For example, Fourier and Laplace transformations provide algebraic terms in linear combinations of s=jw (the complex value j=-1) being s, s^2 and so on to represent the frequency domain response of a system.

There are neat relationships between this formulation and similar expressions in quantum mechanics for representing spin states of fermions and bosons (we will examine elsewhere) that I mention to emphasise the universality of expressions like e^{-st) or e^{-jwt} and related symmetry relations.

The sorts of applications we are envisaging include adaptive control systems for process control, active noise reduction, smart structures like flexible space structures, cardiac regulation, flight control systems, synthetic aperture and other signal processing techniques. The generic approaches are usually categorised into conventional feeedback control systems based on single channel techniques including bode plots for stability and step responses.

Modern control theory embraces multiple input and multiple output channels, utilising state-space control theory to describe such systems using systems of matrix equations called state equations that have solutions for, naturally enough, the evolution of the state of the system in phase space.

Alternative approaches that have started to gain traction in recent years include H-infinity analysis for robustness analysis and whole families of optimisation approaches for solving the parameters of state equations.

One of the most successul approaches takes an altogether different approach to any of these and uses adaptive signal processing to build adaptive feedforward controllers that mimic and counter the behaviour of disturbances on the system that has been modelled online.

The model and controller take the form of finite or indefinite in time impulse response or lattice fillters with various combinations of poles and zeros, perhaps not provably, globally stable. In contrast, conventional regulators in feedback control systems are provably, globally stable in many instances.

Some of the most exciting applications of adaptive signal processing and adaptive feedforward control include some of those mentioned earlier like adaptive noise control and adaptive array processing for synthetic aperture radar and sonar. These are the areas that I have the most experience in and show the most promise as real developments today in addition to having much scope for further improvement in the future.