Part B: H(z)

You are not logged in.

Please Log In for full access to the web site.
Note that this link will take you to an external site (https://shimmer.mit.edu) to authenticate, and then you will be redirected back to this page.

Where We Have Been, and Where We Are Going

In the first week and first lab, we learned how to: model systems with LDE's, how to use an LDE's natural frequencies to determine system behavior (such as stability), and how to use proportional feedback to control first-order systems. In the first version of the Crane example problem, we adjusted Crane velocity to control Crane position, by making velocity proportional to the difference between the desired and measured positions. In lab, we adjusted motor current (which is proportional to motor acceleration) to control motor rotational velocity, by making motor current proportional to the difference between desired and measured velocity. We also informally examined how proportional gain affects a first-order system's natural frequency, and discovered that increasing the gain can improve performance in two ways:

  1. Better Tracking: Higher proportional gain can result in lower error (the mismatch between desired and measured values). The error decreases more rapidly, and steady-state errors are smaller.
  2. Better Disturbance Rejection: Higher proportional gain can result in smaller errors due to disturbances. Errors due to brief disturbances decay faster, and errors due to chronic disturbances have smaller steady-state values.
The problem is that beyond a critical gain, discrete-time first-order systems with proportional feedback will oscillate, and at even higher gains, will become unstable (continuous-time first-order systems with proportional feedback never oscillate, and in principle, allow infinite gain as we will see in the next few weeks. In practice, no system is identically first-order, but many continuous-time systems are close enough to allow very high gains).

In the second Crane problem and in the first part of the second lab, we examined second-order systems. Such systems have complex natural frequencies, resulting in oscillatory behavior. Determining the impact of feedback gains in second- and higher-order systems is more complicated, yet such systems are unavoidable. They arise, for example, whenever changes in position are the result of force actuation, like when we raise the copter-levitated arm by increasing the copter thrust, or reposition a crane by controlling its acceleration and deceleration. Feedback control in second- and higher-order systems is a big leap from proportional feedback in first-order systems. In the first-order case, we used one proportional gain to nudge one natural frequency along the real line, but in the higher order systems (such as the copter-arm and the acceleration-controlled Crane), we use proportional and delta (derivative) feedback, together with proportional and delta (derivative) gains, to position the feedback system's natural frequencies inside the unit circle (or equivalently, keep their magnitude below one) in the two-dimensional complex plane.

We did not "gain" enough with proportional and delta feedback. In particular, we have to set a direct term by experiment, and we would like the controller to do that. In the second half of this lab, you will add a sum (integral) term to the discrete-time feedback controller for the propeller arm, to complete the PSD (Proportional-Summation-Delta) controller (better known as a Proportional-Integral-Derivative controller even though they are almost always implemented in discrete-time). This new controller should perform better, and in particular, should not require you to set a non-zero direct term.

Setting three gains, K_p, K_d and now K_i, by trial and error is a bit much. Instead, we should try to develop a reasonably-accurate model, and then design with the model. But an accurate model for the motor-command to arm-angle system has to represent the fact that copter thrust does not change instantly after a change in motor command, Recall that in the motor speed lab, you modeled the non-instant relationship between motor command and motor speed, have already modeled thrust is a function of propeller speed, and in the motor speed lab), something we did not model in last week's lab.

The more complicated model, along with the more complicated controller, is too much to analyze with the cumbersome procedure of shifting difference equations. Instead, we will start using Z transforms, and convert the problem of shifting difference equations into a problem of manipulating ratios of polynomials (also known as rational functions). And in addition, we will start using a set of software tools for creating complicated system models by composing subsystems described by transfer functions. This transform-plus-software-based approach will obviate the need to rely on error-free algebra skills, and should allow you to focus on the issues of controller design.

In what follows, we will start with a set of hand-written notes reviewing the aspects of z-transform needed in this class (as many of you have not seen Z transforms before), show you examples of root locus plots, and then demonstrate how to generate and manipulate transforms and make root locus plots using matlab's control system toolbox. There is also a control toolbox for python, but it is not as comprehensive.

Finally, we will examine the impact of proportional, summation and delta feedback in a fan example, and look at the impact of this more complex controller entirely qualitatively, to develop some intuition before lab.