1 00:00:00,090 --> 00:00:02,490 The following content is provided under a Creative 2 00:00:02,490 --> 00:00:04,030 Commons license. 3 00:00:04,030 --> 00:00:06,330 Your support will help MIT OpenCourseWare 4 00:00:06,330 --> 00:00:10,720 continue to offer high quality educational resources for free. 5 00:00:10,720 --> 00:00:13,320 To make a donation, or view additional materials 6 00:00:13,320 --> 00:00:17,280 from hundreds of MIT courses, visit MIT OpenCourseWare 7 00:00:17,280 --> 00:00:18,450 at ocw.mit.edu. 8 00:00:30,707 --> 00:00:32,290 PROFESSOR: I wanted to give a lecture, 9 00:00:32,290 --> 00:00:36,819 because as I told you in presentations, I love feedback. 10 00:00:36,819 --> 00:00:38,235 In fact, I love it so much, that I 11 00:00:38,235 --> 00:00:40,890 think the examples we're going to do, 12 00:00:40,890 --> 00:00:45,900 we can do analytically are not maybe 13 00:00:45,900 --> 00:00:50,860 sufficiently compelling for you to believe how exciting control 14 00:00:50,860 --> 00:00:51,360 can be. 15 00:00:51,360 --> 00:00:54,090 So let me just start by giving a few minutes of a research 16 00:00:54,090 --> 00:00:57,181 result we had a few years ago. 17 00:00:57,181 --> 00:00:59,430 That's why you've got color images-- everybody noticed 18 00:00:59,430 --> 00:01:02,670 the color images on the slides. 19 00:01:02,670 --> 00:01:06,180 I brought this robot in to the first recitation 20 00:01:06,180 --> 00:01:07,610 of [INAUDIBLE]. 21 00:01:07,610 --> 00:01:11,350 It's a big 2 meter wing span ornithopter, and in my case, 22 00:01:11,350 --> 00:01:13,950 we've been trying to design control systems to make 23 00:01:13,950 --> 00:01:16,710 airplanes move more like birds. 24 00:01:16,710 --> 00:01:18,880 Here's one example of that. 25 00:01:18,880 --> 00:01:21,080 One thing birds do that planes don't do very well 26 00:01:21,080 --> 00:01:24,340 is land on a perch. 27 00:01:24,340 --> 00:01:26,880 So we asked the question, can we take a simple airplane 28 00:01:26,880 --> 00:01:29,280 with fixed wings, no flapping allowed, 29 00:01:29,280 --> 00:01:31,260 and make it land on a perch-- 30 00:01:31,260 --> 00:01:33,880 UAV stands for unmanned aerial vehicle-- 31 00:01:33,880 --> 00:01:36,730 land on a perch like a bird. 32 00:01:36,730 --> 00:01:39,730 The story I want to tell you is that with feedback design, 33 00:01:39,730 --> 00:01:41,670 you can. 34 00:01:41,670 --> 00:01:43,890 Here's why it's interesting and hard. 35 00:01:43,890 --> 00:01:47,600 The reason airplanes don't land on a perch 36 00:01:47,600 --> 00:01:51,136 is because, when your wing is at a low angle, which 37 00:01:51,136 --> 00:01:53,120 a plane normally is when it's flying, 38 00:01:53,120 --> 00:01:56,350 the air flow around the wing is relatively easy to model. 39 00:01:56,350 --> 00:01:59,730 It's easy to write a block diagram description of. 40 00:01:59,730 --> 00:02:02,590 But if you go to moderate angles, that's still true. 41 00:02:02,590 --> 00:02:05,210 The air stays attached to the wings and everything-- 42 00:02:05,210 --> 00:02:12,050 [INAUDIBLE] 43 00:02:12,050 --> 00:02:16,660 At a low angle, the air is still attached to the wing, 44 00:02:16,660 --> 00:02:19,610 and so we have very good models of the airflow around here, 45 00:02:19,610 --> 00:02:22,100 and the lift and drag forces that you get when 46 00:02:22,100 --> 00:02:23,900 you're flying in these regimes. 47 00:02:23,900 --> 00:02:27,020 But if you go up too far, like this, then everything changes. 48 00:02:27,020 --> 00:02:30,380 So you think, the air can't quite stay around the wing. 49 00:02:30,380 --> 00:02:31,490 You get separation. 50 00:02:31,490 --> 00:02:33,860 You get big vortices pulling off the back. 51 00:02:33,860 --> 00:02:36,920 It's very nonlinear, very unsteady. 52 00:02:36,920 --> 00:02:38,810 Very complicated flight regime. 53 00:02:38,810 --> 00:02:43,040 And as such, our best aircrafts to date 54 00:02:43,040 --> 00:02:45,710 mostly stay down in this regime where we have good models 55 00:02:45,710 --> 00:02:49,740 and we can design conventional control systems for. 56 00:02:49,740 --> 00:02:51,780 But birds don't do that at all. 57 00:02:51,780 --> 00:02:54,440 So birds are, often, when they're landing on a perch, 58 00:02:54,440 --> 00:02:56,570 they're up even far beyond this. 59 00:02:56,570 --> 00:02:57,980 Maybe even 90 degrees. 60 00:02:57,980 --> 00:02:59,840 "Angle of attack", it's called. 61 00:02:59,840 --> 00:03:02,390 They're way into this deep stall regime-- 62 00:03:02,390 --> 00:03:06,100 that's called stalling your wings when that happens. 63 00:03:06,100 --> 00:03:08,900 And it seems like they're doing a lot better landing on a perch 64 00:03:08,900 --> 00:03:11,420 because we don't see our airplanes do it. 65 00:03:11,420 --> 00:03:13,310 But you can actually try to quantify that. 66 00:03:13,310 --> 00:03:16,190 So if you want to compare the performance of a bird 67 00:03:16,190 --> 00:03:18,807 landing versus a plane landing, the first thing you have to do 68 00:03:18,807 --> 00:03:21,140 is you have to take out the differences in mass and wing 69 00:03:21,140 --> 00:03:22,820 area and all these things. 70 00:03:22,820 --> 00:03:24,130 But you can do that. 71 00:03:24,130 --> 00:03:27,320 And a fair comparison is the distance 72 00:03:27,320 --> 00:03:30,850 averaged drag coefficient, which is just a way 73 00:03:30,850 --> 00:03:33,650 to scale out the effects that you'd expect from having 74 00:03:33,650 --> 00:03:36,950 a bigger wing or a bigger mass. 75 00:03:36,950 --> 00:03:38,960 You can plot this drag coefficient 76 00:03:38,960 --> 00:03:41,090 for a few different vehicles. 77 00:03:41,090 --> 00:03:44,330 This is a standard runway landing of a 747, 78 00:03:44,330 --> 00:03:45,830 would get the drag coefficient, just 79 00:03:45,830 --> 00:03:50,480 so you have some calibration, of about a 0.16. 80 00:03:50,480 --> 00:03:54,920 The X-31 was a super maneuverable research vehicle. 81 00:03:54,920 --> 00:03:58,256 It was designed to do super short runway landings, 82 00:03:58,256 --> 00:04:00,380 and it got a drag coefficient during those landings 83 00:04:00,380 --> 00:04:02,967 of about 0.3. 84 00:04:02,967 --> 00:04:04,550 There's a few other projects out there 85 00:04:04,550 --> 00:04:06,870 about trying to make perching planes that 86 00:04:06,870 --> 00:04:08,621 were getting similar numbers. 87 00:04:08,621 --> 00:04:10,370 But then we went out and looked at nature. 88 00:04:10,370 --> 00:04:12,230 I have some collaborators at Harvard 89 00:04:12,230 --> 00:04:14,667 that work with real birds. 90 00:04:14,667 --> 00:04:16,250 It turns out-- I wanted him to tell me 91 00:04:16,250 --> 00:04:18,200 the numbers from some really elite bird, 92 00:04:18,200 --> 00:04:21,179 like at least a hawk or something like this. 93 00:04:21,179 --> 00:04:22,220 But they work on pigeons. 94 00:04:22,220 --> 00:04:24,440 So that was the only number we could get, was a pigeon. 95 00:04:24,440 --> 00:04:25,550 They actually convinced me by the end 96 00:04:25,550 --> 00:04:26,650 that pigeons are really good. 97 00:04:26,650 --> 00:04:28,608 The way they can sort of dive through the fence 98 00:04:28,608 --> 00:04:30,200 and get your lunch by the food trucks? 99 00:04:30,200 --> 00:04:32,100 I mean, that's actually-- 100 00:04:32,100 --> 00:04:35,210 they're seriously skilled birds. 101 00:04:35,210 --> 00:04:36,680 We even had-- one of the fun things 102 00:04:36,680 --> 00:04:38,240 about doing this kind of research is you get visitors. 103 00:04:38,240 --> 00:04:41,181 We had will.i.am from the Black Eyed Peas come to the lab. 104 00:04:41,181 --> 00:04:42,930 And he said-- after we told him the story, 105 00:04:42,930 --> 00:04:45,410 he said pigeons are ghetto birds. 106 00:04:45,410 --> 00:04:47,030 They got mad stop. 107 00:04:47,030 --> 00:04:50,390 That sort of summarizes it. 108 00:04:53,390 --> 00:04:54,620 You already know the answer. 109 00:04:54,620 --> 00:04:57,800 But if you look at the drag coefficient 110 00:04:57,800 --> 00:05:01,430 that a bird gets when it's landing, they get a 10. 111 00:05:01,430 --> 00:05:03,620 So they're doing orders of magnitude 112 00:05:03,620 --> 00:05:05,730 better than our best planes in terms of stopping. 113 00:05:05,730 --> 00:05:07,460 If you just want to be fun about it, 114 00:05:07,460 --> 00:05:09,290 you could say, what would it take for a 747 115 00:05:09,290 --> 00:05:12,090 to get a 10 to impress will.i.am. 116 00:05:12,090 --> 00:05:14,240 And it turns out that 747 would have 117 00:05:14,240 --> 00:05:17,600 to go-- they fly at about 450 miles an hour cruise speed. 118 00:05:17,600 --> 00:05:19,700 It would have to stop in 40 meters 119 00:05:19,700 --> 00:05:21,145 to do what a bird's doing. 120 00:05:21,145 --> 00:05:22,520 The wings would probably pop off. 121 00:05:22,520 --> 00:05:23,645 There's problems with that. 122 00:05:23,645 --> 00:05:26,782 But the dynamics are impressive, of the birds. 123 00:05:26,782 --> 00:05:28,490 And what's more, when they're doing that, 124 00:05:28,490 --> 00:05:30,890 they're getting incredible accuracy. 125 00:05:30,890 --> 00:05:35,474 This is one of my favorite videos of a perching owl. 126 00:05:35,474 --> 00:05:37,640 If you watch really closely, you can see the airflow 127 00:05:37,640 --> 00:05:38,870 get complicated on his wings. 128 00:05:38,870 --> 00:05:41,390 You can see his leading edge feathers start to flip over. 129 00:05:49,940 --> 00:05:50,677 Boom. 130 00:05:50,677 --> 00:05:52,760 The way you do that is you put food by the camera. 131 00:05:55,910 --> 00:05:57,740 We tried to build these simple planes 132 00:05:57,740 --> 00:05:59,855 and ask if could they do what the owls are doing, 133 00:05:59,855 --> 00:06:00,980 what the pigeons are doing. 134 00:06:00,980 --> 00:06:02,780 Very simple planes. 135 00:06:02,780 --> 00:06:05,660 We did them in an indoor environment. 136 00:06:05,660 --> 00:06:09,800 We made it so it was basically a boring plane, 137 00:06:09,800 --> 00:06:12,545 but it can do very interesting things in pitch, up and down. 138 00:06:15,590 --> 00:06:18,530 Then we spent some time trying to build a dynamical systems 139 00:06:18,530 --> 00:06:20,060 representation of the plane. 140 00:06:20,060 --> 00:06:21,341 And how do you do that? 141 00:06:21,341 --> 00:06:23,090 Well, you shoot the plane a bunch of times 142 00:06:23,090 --> 00:06:25,340 into a fishing net. 143 00:06:25,340 --> 00:06:26,840 And you collect a bunch of data. 144 00:06:26,840 --> 00:06:28,464 And like we talked about in recitation, 145 00:06:28,464 --> 00:06:30,230 you can potentially get from that data 146 00:06:30,230 --> 00:06:31,700 a model of the dynamics. 147 00:06:31,700 --> 00:06:33,920 And turns out, we had to do a nonlinear dynamical 148 00:06:33,920 --> 00:06:35,810 model for the vehicle, but we could 149 00:06:35,810 --> 00:06:39,830 do a linear actuator model plus delays and everything. 150 00:06:39,830 --> 00:06:43,520 We built a pretty good model of the plane, which is sort of-- 151 00:06:43,520 --> 00:06:45,560 for an aerodynamics crowd, this would 152 00:06:45,560 --> 00:06:48,170 tell you that this is a surprisingly good fit 153 00:06:48,170 --> 00:06:53,960 to the lift and drag forces over a very large range of angles. 154 00:06:53,960 --> 00:06:57,250 Then we had a 6003 problem, basically. 155 00:06:57,250 --> 00:06:59,785 The nonlinear terms make it a little different. 156 00:06:59,785 --> 00:07:01,160 And what we did as a group was we 157 00:07:01,160 --> 00:07:04,820 innovated a way to design a feedback controller that 158 00:07:04,820 --> 00:07:07,370 could make this thing very accurate during very 159 00:07:07,370 --> 00:07:09,680 high performance maneuvers. 160 00:07:09,680 --> 00:07:12,260 And a long story short, we can now shoot an airplane 161 00:07:12,260 --> 00:07:14,090 into a motion capture arena. 162 00:07:14,090 --> 00:07:16,390 This is slowed down about 11 times. 163 00:07:16,390 --> 00:07:18,210 It's this airplane right here. 164 00:07:18,210 --> 00:07:20,869 And it goes into a very deep stall. 165 00:07:20,869 --> 00:07:22,910 And we can land with an accuracy, enough accuracy 166 00:07:22,910 --> 00:07:25,205 to land on a perch. 167 00:07:25,205 --> 00:07:27,830 It turns out if you can build a good enough control system that 168 00:07:27,830 --> 00:07:30,440 can handle the complexity of the dynamics, 169 00:07:30,440 --> 00:07:33,631 then you can make these things happen. 170 00:07:33,631 --> 00:07:35,630 This is just-- to convince you that the dynamics 171 00:07:35,630 --> 00:07:38,240 are complicated, this is the flow visualization. 172 00:07:38,240 --> 00:07:41,570 We built a wind tunnel releasing smoke from the leading edge 173 00:07:41,570 --> 00:07:43,850 and took a picture of it to show you how 174 00:07:43,850 --> 00:07:45,230 complicated the dynamics were. 175 00:07:45,230 --> 00:07:49,580 So control is potentially an incredibly powerful idea. 176 00:07:49,580 --> 00:07:52,940 You can make-- we try to make robots that run like ostriches. 177 00:07:52,940 --> 00:07:55,490 We try to make all kinds of things happen. 178 00:07:55,490 --> 00:07:57,999 You could imagine improving wind energy. 179 00:07:57,999 --> 00:07:59,540 You could imagine all kinds of things 180 00:07:59,540 --> 00:08:01,206 where control is an integral part of it. 181 00:08:05,410 --> 00:08:08,330 The feedback in there was absolutely essential. 182 00:08:08,330 --> 00:08:12,590 If I took the same plane and thought about the model a lot 183 00:08:12,590 --> 00:08:16,340 and then designed a controller, just a set of commands 184 00:08:16,340 --> 00:08:20,240 to the elevator, to try to make it land on the perch, 185 00:08:20,240 --> 00:08:23,210 it misses the perch every single time. 186 00:08:23,210 --> 00:08:24,830 And with feedback, we can hit-- it's 187 00:08:24,830 --> 00:08:26,246 only with feedback that we can hit 188 00:08:26,246 --> 00:08:27,600 the perch every single time. 189 00:08:27,600 --> 00:08:28,850 And there's a reason for that. 190 00:08:28,850 --> 00:08:34,010 You guys probably heard the idea that fighter jets 191 00:08:34,010 --> 00:08:36,200 are unstable without the control system, right? 192 00:08:36,200 --> 00:08:39,020 Fighter jets are-- a lot of times, the systems that 193 00:08:39,020 --> 00:08:41,330 have peak maneuverability, that's 194 00:08:41,330 --> 00:08:43,919 often at odds with stability. 195 00:08:43,919 --> 00:08:46,460 In fact, when you try to make a very high performance fighter 196 00:08:46,460 --> 00:08:49,730 jet, and you want to be able to turn, you actually-- 197 00:08:49,730 --> 00:08:53,150 if the control system is off, this thing should be unstable. 198 00:08:53,150 --> 00:08:57,200 It's not a complete pathology, but that's pretty true, 199 00:08:57,200 --> 00:09:00,200 because what you want, you can elicit a very fast turn 200 00:09:00,200 --> 00:09:02,540 if you basically let the system go unstable. 201 00:09:02,540 --> 00:09:05,330 Then you can let the unstable dynamics of the system 202 00:09:05,330 --> 00:09:07,880 make a very rapid turn. 203 00:09:07,880 --> 00:09:12,370 In fact, it's common to build a system that is unstable, 204 00:09:12,370 --> 00:09:14,640 and it's only stable when there's feedback in the loop 205 00:09:14,640 --> 00:09:17,071 so that you can have very high maneuverability when 206 00:09:17,071 --> 00:09:17,570 you need it. 207 00:09:21,710 --> 00:09:25,520 You've already done feedback if you took 601, right? 208 00:09:25,520 --> 00:09:28,190 So what I want to do today is-- 209 00:09:28,190 --> 00:09:30,620 I taught 601 when some of you were in there. 210 00:09:30,620 --> 00:09:33,920 I want to go through the example that you already worked through 211 00:09:33,920 --> 00:09:36,050 in the 601 lab for those of you that took it. 212 00:09:36,050 --> 00:09:39,110 I think it's sufficiently complete here 213 00:09:39,110 --> 00:09:40,430 if you didn't take it. 214 00:09:40,430 --> 00:09:41,480 But we want to use that-- 215 00:09:41,480 --> 00:09:42,950 I'm going to use that as an example to build 216 00:09:42,950 --> 00:09:45,366 on what you already know and to show us with the new tools 217 00:09:45,366 --> 00:09:48,050 how far you can get in thinking about what that robot did 218 00:09:48,050 --> 00:09:49,240 for you last year. 219 00:09:49,240 --> 00:09:52,490 Do you remember this example of the little pioneer robot that 220 00:09:52,490 --> 00:09:56,240 had to go to the wall, the foam wall, 221 00:09:56,240 --> 00:09:58,130 using the noisy sonar sensor? 222 00:09:58,130 --> 00:10:00,500 And we wanted to get a desired distance from the wall? 223 00:10:00,500 --> 00:10:02,450 And by the end, you guys were moving the board around 224 00:10:02,450 --> 00:10:03,950 and it was trying to track the wall? 225 00:10:06,860 --> 00:10:09,590 In that exercise, in the 601 lab, 226 00:10:09,590 --> 00:10:11,930 you guys tried a bunch of different gains. 227 00:10:11,930 --> 00:10:14,810 For some gains, we saw responses that sort of looked like this. 228 00:10:14,810 --> 00:10:16,630 If you gave a desired distance to a wall, 229 00:10:16,630 --> 00:10:18,491 it would go up to that desired distance. 230 00:10:18,491 --> 00:10:20,240 For other gains, you saw some oscillation. 231 00:10:20,240 --> 00:10:22,760 You saw some big oscillations if you tried 232 00:10:22,760 --> 00:10:25,490 all the gains we recommended. 233 00:10:25,490 --> 00:10:27,114 Now you guys have a deep understanding 234 00:10:27,114 --> 00:10:29,405 of what kind of things can cause that type of response. 235 00:10:32,960 --> 00:10:35,876 The way we told you to think about it in 601 236 00:10:35,876 --> 00:10:37,250 is actually the way that we often 237 00:10:37,250 --> 00:10:39,590 think about control systems. 238 00:10:39,590 --> 00:10:42,470 Typically, we have something called the plant, which 239 00:10:42,470 --> 00:10:44,480 describes the dynamics of the robot or the thing 240 00:10:44,480 --> 00:10:46,160 we're trying to care about. 241 00:10:46,160 --> 00:10:49,690 You guys know why it's called the plant often? 242 00:10:49,690 --> 00:10:52,580 What would be the history of calling it "plant"? 243 00:10:52,580 --> 00:10:55,634 It's a weird name for it, right? 244 00:10:55,634 --> 00:10:57,800 Actually, some of this stuff grew up in the chemical 245 00:10:57,800 --> 00:10:59,424 industry, in chemical plants. 246 00:10:59,424 --> 00:11:00,340 Is that what you said? 247 00:11:00,340 --> 00:11:01,730 No? 248 00:11:01,730 --> 00:11:04,560 It's actually-- it has a history in chemical plants. 249 00:11:04,560 --> 00:11:09,020 But now everybody calls their robot plants. 250 00:11:09,020 --> 00:11:12,140 The plant is the dynamics of our robot, for instance. 251 00:11:12,140 --> 00:11:13,490 You've got some output of that. 252 00:11:13,490 --> 00:11:15,830 In this case, it's the position to the wall. 253 00:11:15,830 --> 00:11:17,330 A sensor that reads it. 254 00:11:17,330 --> 00:11:19,820 It may have its own dynamics. 255 00:11:19,820 --> 00:11:23,090 And your goal is to take some reference command, a position 256 00:11:23,090 --> 00:11:24,784 you want to go to, let's say, compare it 257 00:11:24,784 --> 00:11:27,200 with what the sensor is saying and build a controller that 258 00:11:27,200 --> 00:11:31,371 takes that error and makes the robot or control system do what 259 00:11:31,371 --> 00:11:32,120 you want it to do. 260 00:11:35,560 --> 00:11:39,370 In this example, the one you studied in 601, 261 00:11:39,370 --> 00:11:41,470 the plant was a very simple model 262 00:11:41,470 --> 00:11:43,690 of the dynamics of the robot. 263 00:11:43,690 --> 00:11:45,700 It was just a first-order model. 264 00:11:45,700 --> 00:11:48,010 We said that the output, the distance 265 00:11:48,010 --> 00:11:51,970 from the wall, the distance in front of the wall, at time n 266 00:11:51,970 --> 00:11:56,530 was just the distance in front of the wall time minus-- 267 00:11:56,530 --> 00:11:58,210 because, you remember the frustration 268 00:11:58,210 --> 00:11:59,590 of the flipped sign, too? 269 00:11:59,590 --> 00:12:01,730 But I kept it consistent here. 270 00:12:01,730 --> 00:12:03,399 So it's T times the velocity, just 271 00:12:03,399 --> 00:12:05,440 happens that since the velocity is going this way 272 00:12:05,440 --> 00:12:06,970 and the distance is getting smaller, 273 00:12:06,970 --> 00:12:08,890 you get a minus T. This looks almost 274 00:12:08,890 --> 00:12:13,590 like the first-order approximation of a CT system, 275 00:12:13,590 --> 00:12:15,130 right? 276 00:12:15,130 --> 00:12:17,131 So that's the dynamics of the vehicle. 277 00:12:17,131 --> 00:12:18,880 The sensor, we're going to assume for now, 278 00:12:18,880 --> 00:12:21,070 is just perfect, that it just immediately 279 00:12:21,070 --> 00:12:23,650 tells me the distance to the wall 280 00:12:23,650 --> 00:12:25,570 and gives the perfect feedback. 281 00:12:25,570 --> 00:12:27,917 And then we designed a controller, which 282 00:12:27,917 --> 00:12:30,250 just takes the error, the difference between the desired 283 00:12:30,250 --> 00:12:32,560 position and the actual position, 284 00:12:32,560 --> 00:12:35,800 multiplies it by a constant K and comes 285 00:12:35,800 --> 00:12:38,170 up with a velocity command that goes to the motors. 286 00:12:41,420 --> 00:12:45,810 You can visualize that as a block diagram, of course. 287 00:12:45,810 --> 00:12:49,880 You get that this plant model here-- 288 00:12:49,880 --> 00:12:51,890 it's got a minus one here and a minus one here, 289 00:12:51,890 --> 00:12:54,740 so that's equivalent having a delay in the forward path. 290 00:12:54,740 --> 00:12:57,210 And then it's got feedback, because the previous signal 291 00:12:57,210 --> 00:12:58,880 was directly put around to the feedback. 292 00:12:58,880 --> 00:13:02,570 So this part here is the model of the plant. 293 00:13:05,190 --> 00:13:07,130 Then we put the T in, with a gain 294 00:13:07,130 --> 00:13:10,100 here, so I guess this part here is the plant. 295 00:13:10,100 --> 00:13:14,334 Here's our simple controller and our sensor is perfect. 296 00:13:14,334 --> 00:13:15,500 So that's our block diagram. 297 00:13:15,500 --> 00:13:17,541 We've just turned our robot into a block diagram. 298 00:13:17,541 --> 00:13:21,740 And we know everything about how to analyze those things. 299 00:13:21,740 --> 00:13:23,390 You can use the operator notation. 300 00:13:23,390 --> 00:13:28,070 You could think of it as a system function, too. 301 00:13:28,070 --> 00:13:29,900 This guy here you know is-- 302 00:13:33,032 --> 00:13:34,990 you guys can do this in your sleep now, almost? 303 00:13:34,990 --> 00:13:38,126 But if I just take that by itself, 304 00:13:38,126 --> 00:13:39,250 what does that come out to? 305 00:13:41,800 --> 00:13:42,850 It's a plus here. 306 00:13:42,850 --> 00:13:44,920 This is x and y. 307 00:13:44,920 --> 00:13:52,630 So I get y is R x plus y. 308 00:13:52,630 --> 00:14:01,720 Or y over x is R over 1 minus R. Then 309 00:14:01,720 --> 00:14:06,144 I multiply that by K and a negative t. 310 00:14:06,144 --> 00:14:07,810 And then I do the exact same computation 311 00:14:07,810 --> 00:14:09,550 again to get this loop around. 312 00:14:09,550 --> 00:14:14,060 And this is our input output system function. 313 00:14:14,060 --> 00:14:16,510 Simplify it a little bit, I get this. 314 00:14:16,510 --> 00:14:20,080 Simplify it a little bit more to identify the pole, 315 00:14:20,080 --> 00:14:22,540 and you can see that the pole now looks like 1 plus KT. 316 00:14:25,100 --> 00:14:29,200 T represents the time step between updates, 317 00:14:29,200 --> 00:14:30,300 K is our feedback gain. 318 00:14:33,679 --> 00:14:35,220 Now, we can start thinking about what 319 00:14:35,220 --> 00:14:37,050 happens if we choose different-- let's just 320 00:14:37,050 --> 00:14:39,360 lump K and T together, because the K you choose 321 00:14:39,360 --> 00:14:41,664 is going to be intimately connected to time. 322 00:14:41,664 --> 00:14:43,830 In this system, there's no point in separating them. 323 00:14:43,830 --> 00:14:46,980 So we just talk about KT as a system. 324 00:14:46,980 --> 00:14:48,150 If we chose KT-- 325 00:14:48,150 --> 00:14:50,100 KT is almost always going to be negative. 326 00:14:50,100 --> 00:14:52,410 You want negative feedback, in general, 327 00:14:52,410 --> 00:14:54,960 for making things stable. 328 00:14:54,960 --> 00:14:59,280 If we choose KT equals 0.5, then with that system function, 329 00:14:59,280 --> 00:15:00,780 there's a delay in the forward path, 330 00:15:00,780 --> 00:15:02,154 so it's going to be offset by one 331 00:15:02,154 --> 00:15:06,000 and then it's just got the simple single pole response. 332 00:15:06,000 --> 00:15:09,222 The unit step response similarly looks like this. 333 00:15:09,222 --> 00:15:10,680 So the question is, what determines 334 00:15:10,680 --> 00:15:14,030 the speed of that response? 335 00:15:14,030 --> 00:15:15,780 Here you go. 336 00:15:15,780 --> 00:15:17,530 I have to get you to talk to your neighbor 337 00:15:17,530 --> 00:15:18,904 the way Denny always seems to get 338 00:15:18,904 --> 00:15:20,587 you to talk to your neighbor. 339 00:15:20,587 --> 00:15:21,170 Take a minute. 340 00:15:21,170 --> 00:15:23,570 Figure out which of these or none of them do you think 341 00:15:23,570 --> 00:15:26,420 would give you the best response for this simple block diagram 342 00:15:26,420 --> 00:15:26,920 system. 343 00:15:31,889 --> 00:15:33,180 Talk out loud to your neighbor. 344 00:16:48,501 --> 00:16:49,000 OK. 345 00:16:49,000 --> 00:16:50,770 Show of fingers, what do you think it is? 346 00:16:54,760 --> 00:16:55,260 OK. 347 00:16:55,260 --> 00:16:56,520 A lot of right answers. 348 00:16:56,520 --> 00:16:57,885 Let's just do it real quick. 349 00:17:01,100 --> 00:17:03,830 The fastest possible convergence is 350 00:17:03,830 --> 00:17:06,470 going to be at the pole zero. 351 00:17:06,470 --> 00:17:08,730 Pole zero, what's it going to look like? 352 00:17:08,730 --> 00:17:11,240 It's going to give you-- 353 00:17:11,240 --> 00:17:13,280 the best you can do if you zero this out, 354 00:17:13,280 --> 00:17:15,391 you get the impulse response. 355 00:17:15,391 --> 00:17:16,849 The unit sample response would just 356 00:17:16,849 --> 00:17:21,780 be R. You're going to have a delay of 1, that's inevitable. 357 00:17:21,780 --> 00:17:27,340 You get one non-zero entry and then zeroes everywhere else. 358 00:17:27,340 --> 00:17:29,090 In discrete time systems, you can actually 359 00:17:29,090 --> 00:17:30,560 kill things in a single step. 360 00:17:30,560 --> 00:17:35,560 You can set a pole at 0 that's the fastest possible response. 361 00:17:35,560 --> 00:17:37,550 But if you think about the different responses 362 00:17:37,550 --> 00:17:40,700 for different values of K, you can use the pole zero diagrams 363 00:17:40,700 --> 00:17:42,230 to pretty much understand everything 364 00:17:42,230 --> 00:17:45,020 there is to know about it. 365 00:17:45,020 --> 00:17:49,220 For KT less than 0 to negative 1-- like I said, 366 00:17:49,220 --> 00:17:51,140 we want to think about negative feedback-- 367 00:17:51,140 --> 00:17:54,860 that's going to take us from out here on the unit circle back 368 00:17:54,860 --> 00:17:55,760 towards the origin. 369 00:17:55,760 --> 00:17:58,400 If I keep making KT more negative, 370 00:17:58,400 --> 00:17:59,620 it's going to go out here. 371 00:17:59,620 --> 00:18:01,697 If I make KT too negative, bad things 372 00:18:01,697 --> 00:18:02,780 are going to happen again. 373 00:18:02,780 --> 00:18:04,820 The poles are going to go outside the unit circle 374 00:18:04,820 --> 00:18:06,236 and will actually have alternating 375 00:18:06,236 --> 00:18:07,340 diverging responses. 376 00:18:12,650 --> 00:18:14,570 The answer is negative 1. 377 00:18:14,570 --> 00:18:16,880 Negative 1 puts you at a pole of 0. 378 00:18:21,810 --> 00:18:24,540 Here's to think about it physically. 379 00:18:24,540 --> 00:18:30,690 If I choose K correctly, since KT was negative 1, 380 00:18:30,690 --> 00:18:33,130 that means K's going to be negative 10. 381 00:18:33,130 --> 00:18:36,660 That's going to be commanding exactly the right speed so 382 00:18:36,660 --> 00:18:41,580 that the robot, after the one tenth of a second, let's say, 383 00:18:41,580 --> 00:18:43,610 it gets you exactly to the right position. 384 00:18:43,610 --> 00:18:48,090 Unit sample response in this case would be saying, 385 00:18:48,090 --> 00:18:50,257 the robot's at zero, I want it to be at 1, 386 00:18:50,257 --> 00:18:51,840 and then I want it to be back at zero. 387 00:18:51,840 --> 00:18:54,660 The command is going 0, 1, 0. 388 00:18:54,660 --> 00:18:57,130 And the robot is going to be almost doing exactly that. 389 00:18:57,130 --> 00:19:00,300 It's going to go from 0 to 1 in a single step. 390 00:19:00,300 --> 00:19:03,180 And then back to 0 in a single step. 391 00:19:03,180 --> 00:19:04,830 It's just going to be delayed by one. 392 00:19:04,830 --> 00:19:07,814 So you give it a command saying, go here, go here, go back. 393 00:19:07,814 --> 00:19:10,230 And it's going to do exactly the right thing-- boom, boom, 394 00:19:10,230 --> 00:19:12,480 except for one step delayed, because you can't get rid 395 00:19:12,480 --> 00:19:14,490 of that R. 396 00:19:14,490 --> 00:19:18,002 So if I plot it-- let me draw a stem diagram, 397 00:19:18,002 --> 00:19:20,460 but coming down in time so that I can line up with the axes 398 00:19:20,460 --> 00:19:21,440 up here. 399 00:19:21,440 --> 00:19:24,570 If I start with an initial position here, 400 00:19:24,570 --> 00:19:28,020 and I command it to go to the desired front position, 401 00:19:28,020 --> 00:19:30,720 it's going to go boom right to that front position 402 00:19:30,720 --> 00:19:32,460 with one unit of delay. 403 00:19:32,460 --> 00:19:37,880 And then it's going to stay there for the rest of the time. 404 00:19:37,880 --> 00:19:40,260 It would be a unit step response. 405 00:19:44,220 --> 00:19:47,890 But that's not what we got to see on the robots in 601, 406 00:19:47,890 --> 00:19:48,390 right? 407 00:19:48,390 --> 00:19:51,670 The real robot didn't work like that. 408 00:19:51,670 --> 00:19:55,420 And the way we made the robot model more realistic was we 409 00:19:55,420 --> 00:19:58,240 said, OK, but your sensor's got some delay. 410 00:19:58,240 --> 00:20:00,310 And actually, if you knew what was going on 411 00:20:00,310 --> 00:20:02,850 behind those 601 robots, it's actually had a lot of delay. 412 00:20:02,850 --> 00:20:05,200 There's Python running serial interfaces 413 00:20:05,200 --> 00:20:10,480 to over the serial link to the fairly old controller 414 00:20:10,480 --> 00:20:11,370 in the pioneer robot. 415 00:20:11,370 --> 00:20:13,440 So the delay is real. 416 00:20:13,440 --> 00:20:18,670 There's a delay of about 1/10 of a second in the sensor. 417 00:20:18,670 --> 00:20:22,180 If I take that exact same controller, exact same gain 418 00:20:22,180 --> 00:20:24,850 that I already did, now put it in this new system that 419 00:20:24,850 --> 00:20:27,320 has an extra delay, then what happens? 420 00:20:27,320 --> 00:20:30,640 I get a velocity of 10 after one step, looks good. 421 00:20:30,640 --> 00:20:32,260 But then, uh-oh, there was some delay 422 00:20:32,260 --> 00:20:34,245 in the sensor I didn't realize was here, 423 00:20:34,245 --> 00:20:36,370 so I'm still going to take corrective action trying 424 00:20:36,370 --> 00:20:37,060 to get me there. 425 00:20:37,060 --> 00:20:38,976 It's going to move me all the way to the wall, 426 00:20:38,976 --> 00:20:40,660 smash into the wall, and then it's 427 00:20:40,660 --> 00:20:41,920 going to realize it was zero. 428 00:20:41,920 --> 00:20:44,003 It's going to-- there's some delay in seeing that. 429 00:20:44,003 --> 00:20:45,460 It's going to move me back. 430 00:20:45,460 --> 00:20:49,620 And you're going to get oscillations. 431 00:20:49,620 --> 00:20:52,650 You can see that now by just adding the model to our block 432 00:20:52,650 --> 00:20:54,790 diagram. 433 00:20:54,790 --> 00:20:59,550 If we put the delay now in the feedback path, 434 00:20:59,550 --> 00:21:03,630 otherwise, keep the block diagram exactly the same. 435 00:21:03,630 --> 00:21:07,020 Now, you can write the system function. 436 00:21:07,020 --> 00:21:08,524 What's the resulting system function 437 00:21:08,524 --> 00:21:10,440 given that this thing is in the feedback path? 438 00:22:48,317 --> 00:22:50,900 Go ahead and put your fingers up when you think you've got it. 439 00:22:54,600 --> 00:22:55,170 All right. 440 00:22:55,170 --> 00:22:55,770 Fantastic. 441 00:23:02,060 --> 00:23:03,810 Just like I did here, you can just quickly 442 00:23:03,810 --> 00:23:07,350 replace the accumulator there with the equivalent block 443 00:23:07,350 --> 00:23:08,790 diagram. 444 00:23:08,790 --> 00:23:09,750 Do the loop again. 445 00:23:09,750 --> 00:23:11,610 It's going to be exactly what we did before, 446 00:23:11,610 --> 00:23:15,910 but it's got a new R in the feedback path. 447 00:23:15,910 --> 00:23:19,720 Giving us the R-squared here, just on the feedback path. 448 00:23:19,720 --> 00:23:21,920 It's exactly the same otherwise except for that R, 449 00:23:21,920 --> 00:23:24,750 and that simplifies out to this. 450 00:23:24,750 --> 00:23:27,130 So the answer was 4. 451 00:23:27,130 --> 00:23:29,640 That's just operator notation, polynomial algebra. 452 00:23:34,720 --> 00:23:37,750 If we want to find the poles of that system, 453 00:23:37,750 --> 00:23:43,270 we can just go ahead and factor the quadratic form 454 00:23:43,270 --> 00:23:45,289 in the denominator. 455 00:23:45,289 --> 00:23:47,080 The roots of the denominator look something 456 00:23:47,080 --> 00:23:50,290 like this, which is a little ugly to think about. 457 00:23:50,290 --> 00:23:53,980 But we can think it through. 458 00:23:53,980 --> 00:24:00,190 For general KT-- when KT's small, KT's about zero, 459 00:24:00,190 --> 00:24:03,300 then I'll go ahead and simplify that a little bit to say, 460 00:24:03,300 --> 00:24:04,990 KT could sneak inside the-- 461 00:24:04,990 --> 00:24:07,420 KT and KT-squared aren't so different. 462 00:24:07,420 --> 00:24:09,340 We're going to sneak it inside here. 463 00:24:09,340 --> 00:24:12,090 And then you can see that the poles end up at-- around K 464 00:24:12,090 --> 00:24:17,130 equal to zero you get a pole at the origin. 465 00:24:17,130 --> 00:24:20,860 But you also get a pole up by the unit circle. 466 00:24:20,860 --> 00:24:24,620 Around 1 and around 0. 467 00:24:24,620 --> 00:24:30,560 Remember, when you've got multiple poles in the system, 468 00:24:30,560 --> 00:24:34,220 the total response is going to be dominated 469 00:24:34,220 --> 00:24:38,204 by whatever is the slower pole. 470 00:24:38,204 --> 00:24:39,620 The total system response is going 471 00:24:39,620 --> 00:24:40,760 to be dominated by the slower pole. 472 00:24:40,760 --> 00:24:43,250 In this case, the slower pole's the one closer to the unit 473 00:24:43,250 --> 00:24:43,749 circle. 474 00:24:48,540 --> 00:24:52,410 What about if KT equals negative 0.25? 475 00:24:52,410 --> 00:24:54,390 We can pop that in and solve it. 476 00:24:54,390 --> 00:24:57,510 Exactly-- math works out nicely. 477 00:24:57,510 --> 00:25:02,820 We get poles at a half, two poles at a half. 478 00:25:02,820 --> 00:25:05,940 And in fact, there's a smooth transition between-- if you 479 00:25:05,940 --> 00:25:10,080 look at the numbers between KT equals zero and KT equals 0.25, 480 00:25:10,080 --> 00:25:12,630 you'll see as you vary that gain, 481 00:25:12,630 --> 00:25:17,040 the poles move together along the real axis 482 00:25:17,040 --> 00:25:18,990 until they come together at a half. 483 00:25:21,860 --> 00:25:29,270 So here, you've got a purely real response dominated 484 00:25:29,270 --> 00:25:31,130 by these poles at a half. 485 00:25:31,130 --> 00:25:33,080 System's stable. 486 00:25:33,080 --> 00:25:36,170 If you keep changing K though, the poles came together 487 00:25:36,170 --> 00:25:40,310 and then they split off and start going this way. 488 00:25:40,310 --> 00:25:42,260 And in fact, if you look at negative 1, which 489 00:25:42,260 --> 00:25:44,960 is the one that was the best response, 490 00:25:44,960 --> 00:25:50,300 it put a pole exactly at 0, for the system with no delay. 491 00:25:50,300 --> 00:25:52,130 If you put it at the system with delay, 492 00:25:52,130 --> 00:25:55,280 they land exactly on the unit circle. 493 00:25:55,280 --> 00:25:57,260 Right there. 494 00:25:57,260 --> 00:26:00,230 Complex poles on the unit circle. 495 00:26:00,230 --> 00:26:02,269 You're going to get a stable oscillation. 496 00:26:07,720 --> 00:26:09,580 Which is exactly what we saw there. 497 00:26:13,400 --> 00:26:16,490 Just a quick-- you know this like the back of your hand now, 498 00:26:16,490 --> 00:26:19,955 but what's the period of that oscillation? 499 00:26:26,260 --> 00:26:31,660 You've got two poles on the unit circle right there. 500 00:26:31,660 --> 00:26:33,855 What's the period of oscillation? 501 00:26:39,300 --> 00:26:41,370 Put your fingers up when you think you know. 502 00:26:52,380 --> 00:26:53,120 Yep. 503 00:26:53,120 --> 00:26:54,290 Good. 504 00:26:54,290 --> 00:26:56,650 Most people got it. 505 00:26:56,650 --> 00:27:00,820 This thing was a half, so it's 1/2 square root of 3 over 2. 506 00:27:00,820 --> 00:27:03,497 So that thing had to be at pi over 3. 507 00:27:03,497 --> 00:27:05,080 It's actually the same pole that I was 508 00:27:05,080 --> 00:27:09,782 using in recitation yesterday. 509 00:27:09,782 --> 00:27:11,240 So if you have a pole at pi over 3, 510 00:27:11,240 --> 00:27:15,140 it makes it around in six steps. 511 00:27:15,140 --> 00:27:17,340 The period of the oscillation is six. 512 00:27:26,140 --> 00:27:28,840 This is generally true, that if you 513 00:27:28,840 --> 00:27:32,110 put a controlled gain, a feedback gain, 514 00:27:32,110 --> 00:27:36,700 into the closed loop dynamics, then even a simple gain 515 00:27:36,700 --> 00:27:40,240 can allow you to really shift around the poles of the system. 516 00:27:40,240 --> 00:27:42,850 And since we know the response of the system, the zeros 517 00:27:42,850 --> 00:27:46,570 matter, but for convergence, for the rate of convergence, 518 00:27:46,570 --> 00:27:49,410 it's the biggest pole that dominates. 519 00:27:49,410 --> 00:27:53,436 It's very nice to understand how those poles move with K. 520 00:27:53,436 --> 00:27:54,810 If you change the system, the way 521 00:27:54,810 --> 00:27:56,880 they move with K is different. 522 00:27:56,880 --> 00:28:00,000 And you can just change K to tune the response 523 00:28:00,000 --> 00:28:03,330 to be what you want, from KT equals 0 to infinity, 524 00:28:03,330 --> 00:28:06,810 the poles go towards here and then off in both 525 00:28:06,810 --> 00:28:08,608 directions, actually, to infinity. 526 00:28:14,450 --> 00:28:19,740 So, KT equals negative 1 was the fastest possible response 527 00:28:19,740 --> 00:28:22,020 for the system without any delay in the sensor. 528 00:28:22,020 --> 00:28:24,700 What's the fastest possible response for this one? 529 00:28:40,200 --> 00:28:41,250 Oscillations are allowed. 530 00:28:41,250 --> 00:28:43,050 I just want the fastest possible response. 531 00:29:14,840 --> 00:29:15,340 Yeah. 532 00:29:15,340 --> 00:29:15,880 Looks good. 533 00:29:15,880 --> 00:29:19,431 So where do I want the poles to be for the fastest possible 534 00:29:19,431 --> 00:29:19,930 response? 535 00:29:26,470 --> 00:29:31,180 These poles are still stable and oscillations are 536 00:29:31,180 --> 00:29:33,370 fine, but the absolute-- 537 00:29:33,370 --> 00:29:35,920 the magnitude of those poles is larger 538 00:29:35,920 --> 00:29:38,260 when they're out here in the complex. 539 00:29:38,260 --> 00:29:39,910 When I'm down here, I have got a pole 540 00:29:39,910 --> 00:29:41,960 over by one, that's going to dominate. 541 00:29:41,960 --> 00:29:45,400 So the best I can do is if I put the poles at a half. 542 00:29:45,400 --> 00:29:48,130 That gives us the largest pole, the smallest 543 00:29:48,130 --> 00:29:49,950 possible magnitude. 544 00:29:49,950 --> 00:29:54,640 And that happened if the poles-- the double poles at a half 545 00:29:54,640 --> 00:29:57,940 happened when KT was negative 0.25. 546 00:29:57,940 --> 00:30:00,289 Most of you said, the answer is 2. 547 00:30:08,560 --> 00:30:11,920 In general, delay is a bad thing. 548 00:30:11,920 --> 00:30:14,530 In DT systems, we have good representations of delay. 549 00:30:14,530 --> 00:30:17,290 It's even worse in continuous time. 550 00:30:17,290 --> 00:30:18,250 Delay is a bad thing. 551 00:30:18,250 --> 00:30:23,770 It tends to make control systems not work as well. 552 00:30:23,770 --> 00:30:27,460 If you just took the ideal sensor, we had a K equals 1, 553 00:30:27,460 --> 00:30:30,580 we had a response that started here, we could put it anywhere 554 00:30:30,580 --> 00:30:33,534 we wanted along the real axis. 555 00:30:33,534 --> 00:30:35,200 As far negative as we wanted, of course, 556 00:30:35,200 --> 00:30:38,980 what we chose was to put it right at the origin. 557 00:30:38,980 --> 00:30:41,380 But as soon as we just added that one piece of delay, 558 00:30:41,380 --> 00:30:44,140 the things we could do with proportional feedback 559 00:30:44,140 --> 00:30:46,630 changed completely, and ultimately, 560 00:30:46,630 --> 00:30:51,320 got worse because I have two poles now, first of all, 561 00:30:51,320 --> 00:30:54,130 and I can't simultaneously get both of those poles 562 00:30:54,130 --> 00:30:55,450 to go to zero. 563 00:30:55,450 --> 00:30:58,949 In fact, as I change them, they go off into complex. 564 00:30:58,949 --> 00:31:00,490 The fact that it's complex isn't bad. 565 00:31:00,490 --> 00:31:03,156 But the fact that there's two of them, and the best I can do now 566 00:31:03,156 --> 00:31:05,620 is get to a half, which is a much slower response, the best 567 00:31:05,620 --> 00:31:06,480 possible response. 568 00:31:10,030 --> 00:31:13,600 If I added even more delay, things get even worse. 569 00:31:13,600 --> 00:31:16,004 If I had two units of delay and I 570 00:31:16,004 --> 00:31:17,920 went through the same exercise, what you'd see 571 00:31:17,920 --> 00:31:21,780 is that the poles would start in the same place. 572 00:31:21,780 --> 00:31:23,735 They'd come together and go there, 573 00:31:23,735 --> 00:31:25,360 and there's another pole that goes off. 574 00:31:25,360 --> 00:31:27,870 Just because there are three poles in that system. 575 00:31:27,870 --> 00:31:32,230 Two poles come together and split off this way. 576 00:31:32,230 --> 00:31:35,290 And this one goes off this way. 577 00:31:35,290 --> 00:31:37,104 And the place you probably want, depending 578 00:31:37,104 --> 00:31:39,020 on how fast this one splits off, but the place 579 00:31:39,020 --> 00:31:41,630 you probably want to put it is when the two poles are together 580 00:31:41,630 --> 00:31:42,270 right there. 581 00:31:42,270 --> 00:31:44,370 That's going to give you the fastest response. 582 00:31:44,370 --> 00:31:48,570 But that fastest response is still slower than what we had-- 583 00:31:48,570 --> 00:31:50,780 it's a bigger number than a half. 584 00:31:50,780 --> 00:31:54,340 It's 0.682. 585 00:31:54,340 --> 00:31:57,890 It's going to be a worse response than when 586 00:31:57,890 --> 00:32:00,421 I had a delay of one, which is intuitive. 587 00:32:05,420 --> 00:32:08,460 That's a quick reminder of something you already 588 00:32:08,460 --> 00:32:13,080 did in 601, of using feedback and the tools we've already 589 00:32:13,080 --> 00:32:16,072 got, which is poles and zeros and everything, to understand 590 00:32:16,072 --> 00:32:17,280 how to design feedback gains. 591 00:32:17,280 --> 00:32:20,020 We're going to get more into it in the next couple of lectures. 592 00:32:20,020 --> 00:32:23,490 But let me just convince you that this stuff is real. 593 00:32:23,490 --> 00:32:25,620 And I showed this diagram once in 601, 594 00:32:25,620 --> 00:32:27,940 but it probably means even more to you now. 595 00:32:33,170 --> 00:32:36,810 This is an F-14. 596 00:32:36,810 --> 00:32:41,900 It's one of the best modern engineering control 597 00:32:41,900 --> 00:32:44,750 systems ever built. It was built for this F-14. 598 00:32:44,750 --> 00:32:49,220 They got more research money and modeling this vehicle, 599 00:32:49,220 --> 00:32:53,480 designing ultimate gains for it. 600 00:32:53,480 --> 00:32:56,420 It's such a success story that you can actually, 601 00:32:56,420 --> 00:32:59,900 if you're in MATLAB, you can open up the F-14 demo 602 00:32:59,900 --> 00:33:04,940 and see what a flight control system for an F-14 looks like. 603 00:33:04,940 --> 00:33:07,190 MATLAB-- I don't know if you've played with Simulink-- 604 00:33:07,190 --> 00:33:11,000 MATLAB has a language called Simulink, a graphical language 605 00:33:11,000 --> 00:33:13,460 that allows you to draw the block diagrams 606 00:33:13,460 --> 00:33:17,430 and simulate them and even design controllers for them. 607 00:33:17,430 --> 00:33:19,310 And it turns out you can make a block diagram 608 00:33:19,310 --> 00:33:27,860 description of an F-14 using only tools from 601 and 6003. 609 00:33:27,860 --> 00:33:31,520 You can see all the same adders and gains, 610 00:33:31,520 --> 00:33:36,480 transfer functions, system functions like this. 611 00:33:36,480 --> 00:33:39,710 The only essential difference is that in some of the diagrams, 612 00:33:39,710 --> 00:33:41,810 you see multiple inputs coming in. 613 00:33:41,810 --> 00:33:43,610 In this class, we've restricted ourselves 614 00:33:43,610 --> 00:33:46,850 so far to thinking about single input, single output systems, 615 00:33:46,850 --> 00:33:48,190 which keeps everything clean. 616 00:33:48,190 --> 00:33:51,410 All the intuition scales to multiple inputs 617 00:33:51,410 --> 00:33:53,120 and multiple outputs. 618 00:33:53,120 --> 00:33:58,570 But that's sort of the only big addition of complexity 619 00:33:58,570 --> 00:34:02,200 when you go to this model from what we've done before. 620 00:34:02,200 --> 00:34:06,759 If you zoom in onto the controller here, you can-- 621 00:34:06,759 --> 00:34:08,300 these block diagrams in this language 622 00:34:08,300 --> 00:34:10,777 allow you to abstract away a bunch of hidden things 623 00:34:10,777 --> 00:34:12,110 with a single transfer function. 624 00:34:12,110 --> 00:34:16,670 If I zoom in, then you can see things you recognize. 625 00:34:16,670 --> 00:34:18,770 It's got a low-pass filter, which 626 00:34:18,770 --> 00:34:21,139 is just a system with a pole at negative 1, 627 00:34:21,139 --> 00:34:25,150 exactly what we did in recitation the other day. 628 00:34:25,150 --> 00:34:27,590 This is what people-- 629 00:34:27,590 --> 00:34:29,510 this is what MATLAB uses on an F-14. 630 00:34:29,510 --> 00:34:31,468 I guess it might not be what the military uses. 631 00:34:31,468 --> 00:34:35,739 But it's modeled after what the unclassified documents say 632 00:34:35,739 --> 00:34:36,739 is happening on an F-14. 633 00:34:39,949 --> 00:34:41,659 Everything here, you understand, right? 634 00:34:41,659 --> 00:34:44,330 A proportional controller in the end. 635 00:34:44,330 --> 00:34:47,300 One difference in F-14s is that-- 636 00:34:47,300 --> 00:34:50,060 and in general for these more complicated systems-- 637 00:34:50,060 --> 00:34:52,520 they'll design slightly different controllers 638 00:34:52,520 --> 00:34:53,929 given the situation. 639 00:34:53,929 --> 00:34:59,746 So if you have an altimeter on there and pressure sensors, 640 00:34:59,746 --> 00:35:03,720 an inclinometer will tell you the angle of the plane-- 641 00:35:03,720 --> 00:35:07,490 given those sensors, they'll pick a different K 642 00:35:07,490 --> 00:35:09,230 for a proportional controller out 643 00:35:09,230 --> 00:35:12,500 of a pot of a library of controllers 644 00:35:12,500 --> 00:35:14,300 they've already designed. 645 00:35:14,300 --> 00:35:16,610 So it's called gain scheduled control. 646 00:35:16,610 --> 00:35:19,340 But the analysis and design of each K 647 00:35:19,340 --> 00:35:23,310 is a linear systems design and analysis. 648 00:35:23,310 --> 00:35:24,900 This is super powerful stuff. 649 00:35:24,900 --> 00:35:28,310 I think-- signal processing is good, too, 650 00:35:28,310 --> 00:35:30,170 but control is where it's at. 651 00:35:32,900 --> 00:35:35,810 I guess I went a little fast, but that's 652 00:35:35,810 --> 00:35:39,260 your introduction to feedback. 653 00:35:39,260 --> 00:35:42,410 We'll do DT and CT feedback in the next couple of lectures. 654 00:35:42,410 --> 00:35:44,450 And if anybody hasn't picked up their exams, 655 00:35:44,450 --> 00:35:45,930 we have them over here. 656 00:35:45,930 --> 00:35:48,670 And we'll see you in recitation tomorrow.