Dynamical System Modeling and Control Design

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.csail.mit.edu) to authenticate, and then you will be redirected back to this page.

Welcome to Dynamical System Modeling and Control Design -- Fall 2022

Find syllabus, lab descriptions, and assignments by following the calendar and handouts link on the above "Information" tab, find software installation info, lab assembly instructions, and help queue information on the "Resources" tab.

Please join live lectures, MW3-4, 4-231, and live lab sessions, F10-1 or 2-5, 38-545. Lectures will be recorded, and can be found at Lectures.

Lab kits are portable, and zoom sessions can be arranged for those who prefer to work remotely.

Have you ever wondered about the control strategies used temperature regulators, quad-copters, aircraft autopilots, self-driving cars and agile robots? Are you curious about the policies that govern flow in large networks, like the web or the electric power grid? Or are your interests more biological, and you want to know how the body maintains balance, regulates glucose, or repels infection? Or maybe you used a PID controller in a robotics competition, and are now ready to learn more?

If so, you are interested in the general topic of feedback control, in which sensor data (e.g. brightness, temperature, velocity, location, etc.) is used to adjust or correct actuation (e.g. steering, acceleration, or heater output). And yes, as the above examples make clear, feedback control is ubiquitous. But, it is also a uniquely compelling example of mathematical theory guiding practical design. In 6.3100/2 class, we will focus on introducing you to this beautiful marriage of theory and practice, and try to give you a framework for further study, by focusing on a small set of key concepts, which we will apply to controlling several different physical artifacts.

6.3100/6.3102 -- The lab kit.

KITS ARE SELF-CONTAINED: So 6.3100/6.3102 can be continued remotely if needed.


The core of the lab kit is our PC board with a high-performance microcontroller, four pulse-width modulated drivers, eight buffered analog inputs, and four buffered analog outputs. The microcontrollers are easily programmed with a version of the widely-used Arduino environment, sensors and actuators are easy to connect, and your laptop can monitor and allow you to make adjustments in real time (you can even turn your laptop into a rudimentary oscilloscope). With the PC Board, a kit of parts (which includes motors, coils, sensors, propellers,lego, and 3-D printed connectors), a laptop, and our additional software, you will be able to build a variety of interesting artifacts, control them with a variety of approaches, and EASILY run experiments and collect data.

We think students who work together in pairs, join us for lectures, and attend lab periods in person, will have the best experience. But, we are committed to making sure that everyone can participate. The 6.310/6.3102 PC board and a kit of parts (plus your laptop) is a self-contained lab, we will record our lectures, and we can be available for zoom-based help, lab check-offs, and interviews.

The left picture above is a spread of all the parts in the lab kit (from last fall, is being updated). As you can sort of see, there are motors, propellers, coils, nuts and bolts, optical distance sensors, jumpers, Lego parts, Lego-compatible 3-D printed parts, a high-current power supply, a USB to microUSB cable and a USB-C to microUSB cable, a wire stripper, and a screwdriver. The middle picture above shows the parts assembled into three artifacts at once: an optical sensing speed controller (the green propeller over an optical sensor, barely visible in the back), a double-propeller rotating arm (front left), and a magnetic levitator (with the magnets and white reflecting card stuck to the coil bolt in the front right). In the left picture in the back are extra parts for possible midterm projects (a two-coil floating cylinder, and a two-axis arm). The artifacts are shown in a little more detail, and in action, below.

Three stills from the speed controller. Left: the setup showing a propeller above an optical sensor, with the motor and sensor connected to the microcontroller board. Middle: the system running with low gain, with the speed and motor command plotted on the laptop. Right: the system running with higher gain, notice the "ringing" in the step response..

In the left picture above, we show a snapshot of a system that uses proportional-feedback to control the speed of a propeller. The leftmost picture shows the system: a motor that spins a four-blade propeller above an optical sensor, and a microcontroller board which reads the sensor and drives the propeller motor. In the middle and right pictures, the laptop displays a graph of the motor command above the desired and measured rotation speeds, with the middle picture showing low feedback gain, and the right showing higher gain. As the middle and rightmost plot (of the measured and desired speeds) shows, the desired propeller speed is being toggled between 100-10 and 100+10 RPS, and the measured (or actual) speed of the propeller is tracking (mostly) the toggling of the desired speed. Please take particular note of the "overshoot" in the propeller's measured RPS in the rightmost picture. That is, when the desired speed changes from 90 to 110 RPS, the measured speed exceeds 110 RPS but eventually "settles down" to the correct value. You'll come to understand why this overshoot occurs, and more importantly, will know how to change the sensing and the control to improve the system's performance, by the end of the second week of 6.310/6.3102.

Four stills from the two-axis arm. Note that the computer screen displays eight plots (on left) and the microcontroller "sketch" on the right. The eight plots on the computer screen are (from the bottom to top): measured and desired angle one, measured and desired angle two, time derivatives of angle one and two, and the left and right motor commands.

The above picture shows the same microcontroller and software system running a two-axis propeller-driven arm, one of the possible midterm projects. Below are videos of some of the more advanced labs and projects.

On the left are two magnetic levitation control systems in action, in which pairs of electromagnets are holding either a cylinder or bar, with permenant magnets attached, suspended and moving up and down or tilting in space. Notice that the laptop is displaying both control systems (cylinder on top and bar on the bottom). That is, every second or so, the cylinder moves up or down, and the bar tilts back and forth. On the right is a two-propeller arm, being controlled using a state-space based approach. Note that the arm is taking steps from -2 to 2 radians (or rotating about 230 degrees), and that three plots of the system behavior are being displayed on the laptop screen. If you look carefully at the leftmost of the three plots, which shows rotation angle, while watching arm rotation, you can see angle "overshoot" in both. That is, the arm rotates a little too far and then corrects itself. By the end of this class, you will be able to eaily design a much better state space controller.

6.3100/6.3102 FAQ

What is a typical week in 6.310/6.3102?


6.310/6.3102 is divided into two-weeks sections, in which a lab is started in the first week and finished in the second. During each roughly two week period, there are five steps: 1) learn a new feedback concept in lecture and recitation and develop a sense of context by building and "playing with" an associateed artifact in the beginning lab, 2) sharpen your basic understanding by solving on-line exercises (this prelab MUST be completed before finishing lab session), 3) master the concept by working with a partner to analyze, design, implement, measure and reanalyze a control system; 4) discuss your approach with a staff member (see interviews); and 5) reflect on what you have learned by solving postlab problems.

Is 6.310/6.3102 too advanced? Or too elementary?


Formally, the prerequistes for 6.310/6.3102 is some physics (through electromagnetics) and linear algebra, but students with some basic mechanics and differential equations can be successful (if you review matrices and eigenvalues). For students with a basic background, 6.310 is an excellent opportunity to learn the tools of dynamical system analysis (natural frequencies, poles and eigenvalues, time and frequency response, state-space approaches) in a compelling applied context (feedback control). But it is also easy for students with considerably more extensive backgrounds (e.g. linear algebra, dynamical systems, feedback system analysis, circuits, or programming) to challenge themselves, because the issues in the weekly labs are open-ended enough, and the lab interviews are customizable enough. Plus, for 6.3102 students, we have a set of more challenging postlab problems, and a midterm/final project.

How is 6.310/6.3102 graded?


Grading is based on work completed, and is non-competitive. The on-line problems allow many retries, the interviews are pass/retry, and there is a generous budget of no-excuse-needed late days for labs and post-labs (however prelabs MUST be completed BEFORE starting each lab's second half). You can earn an A as long as you don't fall too far behind, complete 90% of the on-line problems, complete all the interviews (including final one-on-one checkoff interview for each of the labs). And for 6.3102, complete a reasonable project.

What class hours are required?


We prefer that students attend lectures (3-4 Mondays and Wednesdays, 4-231), and should either make special arrangements, or plan to attend a lab section (10-1 or 2-5 on Fridays). Lectures will be recorded, and there will be plenty of extra office hours over zoom for lab checkoffs, so coordination with one's lab partner and promptly making up occasional lab absences are not a problem.

What are the final checkoff interviews?


Each of the two-week labs has three to five checkoffs, in which you discuss your lab with a staff member. For all but the last of checkoff of the two-week block, you and your partner can (and should) interview together, the early checkoffs are intended to help you stay on track. The final checkoff interview for each lab is done one-on-one, and involves looking at the performance of your working hardware (you and your partner can use the same hardware).

Each of the final lab checkoff interviews are one-on-one, but are pass/retry(without penalty). We do these interviews individually because we try to tailor the interview to each student. So, we expect many of the first tries at these one-on-one interviews will involve untangling some confusions, but will be followed by second try interviews that demonstrate more thorough mastery. But we will also try to extend the understanding of even the best prepared students, so that every student learns something in every interview, and the experience is never just "box-checking".

Will there be an open-ended project?


6.3100 does not require a project, but 6.3102 does. The goal of the project is for more advanced students to model, and then design a controller for, a system not previously analyzed (e.g. a two-axis arm, a balancing robot, two-dimensional magnetic positioning, or a project of one's own...).