1. A controller for controlling a system having a system input and a system output, the controller comprising: an input interface, that receives a control input signal based on the system output; an output interface, for generating a control output signal in response to a control output value, the control output signal coupled to the system input; and a processor, responsive to the control input signal, for generating the control output value based on a control polynomial and the control input signal, the control polynomial having a plurality of cancellation terms and a plurality of control terms, the plurality of cancellation terms calculated to cancel a plurality of nonlinear terms of a system polynomial, and the plurality of control terms calculated to control a plurality of linear terms of the system polynomial, wherein the system polynomial expresses the system output in terms of the system input and wherein the system polynomial is determined using a plurality of system I/O data.