|
8 | 8 | "source": [
|
9 | 9 | "# Inverted Pendulum Dynamics\n",
|
10 | 10 | "\n",
|
11 |
| - "CDS 110/ChE 105, Winter 2024 <br>\n", |
| 11 | + "CDS 110, Winter 2024 <br>\n", |
12 | 12 | "Richard M. Murray\n",
|
13 | 13 | "\n",
|
14 | 14 | "In this lecture we investigate the nonlinear dynamics of an inverted pendulum system. More information on this example can be found in [FBS2e](https://fbswiki.org/wiki/index.php?title=FBS), Examples 3.3 and 5.4.\n"
|
|
56 | 56 | " y = \\theta,\n",
|
57 | 57 | "$$\n",
|
58 | 58 | "\n",
|
59 |
| - "where $m$ and $J_t = J + m l^2$ are the mass and (total) moment of inertia of the system to be balanced, $l$ is the distance from the base to the center of mass of the balanced body, $b$ is the coefficient of viscous friction, and $g$ is the acceleration due to gravity.\n", |
| 59 | + "where $m$ and $J_t = J + m l^2$ are the mass and (total) moment of inertia of the system to be balanced, $l$ is the distance from the base to the center of mass of the balanced body, $b$ is the coefficient of rotational friction, and $g$ is the acceleration due to gravity.\n", |
60 | 60 | "\n",
|
61 | 61 | "We begin by creating a nonlinear model of the system:"
|
62 | 62 | ]
|
|
155 | 155 | "source": [
|
156 | 156 | "We see that the vertical ($\\theta = 0$) equilibrium point is unstable, but the downward equlibrium points ($\\theta = \\pm \\pi$) are stable.\n",
|
157 | 157 | "\n",
|
158 |
| - "Note also the *separatrices* for the equilibrium point, which gives insighs into the regions of attraction (the red dashed line separates the two regions of attraction)." |
| 158 | + "Note also the *separatrices* for the equilibrium point, which gives insights into the regions of attraction (the red dashed line separates the two regions of attraction)." |
159 | 159 | ]
|
160 | 160 | },
|
161 | 161 | {
|
|
210 | 210 | "id": "AvU35WoBMFjt"
|
211 | 211 | },
|
212 | 212 | "source": [
|
213 |
| - "Note that the input to the controller is the reference value $r$ (which will will always take to be zero), the measured output $y$, which is the angle $\\theta$ for our system. The output of the controller is the system input $u$, corresponding to the force applied to the wheels.\n", |
| 213 | + "Note that the input to the controller is the reference value $r$ (which we will always take to be zero), the measured output $y$, which is the angle $\\theta$ for our system. The output of the controller is the system input $u$, corresponding to the force applied to the wheels.\n", |
214 | 214 | "\n",
|
215 | 215 | "To connect the controller to the system, we use the [`interconnect`](https://python-control.readthedocs.io/en/latest/generated/control.interconnect.html) function, which will connect all signals that have the same names:"
|
216 | 216 | ]
|
|
297 | 297 | "source": [
|
298 | 298 | "### Phase portrait\n",
|
299 | 299 | "\n",
|
300 |
| - "To study the resuling dynamics, we try plotting a phase plot using the same commands as before, but now for the closed loop system (with appropriate proportional gain):" |
| 300 | + "To study the resulting dynamics, we try plotting a phase plot using the same commands as before, but now for the closed loop system (with appropriate proportional gain):" |
301 | 301 | ]
|
302 | 302 | },
|
303 | 303 | {
|
|
574 | 574 | "\n",
|
575 | 575 | "Here are some things to try with the above code:\n",
|
576 | 576 | "* Try changing the locations of the closed loop eigenvalues in the `place` command\n",
|
577 |
| - "* Try reseting the limits of the control action (`umax`)\n", |
| 577 | + "* Try resetting the limits of the control action (`umax`)\n", |
578 | 578 | "* Try leaving the state space controller fixed but changing the parameters of the system dynamics ($m$, $l$, $b$). Does the controller still stabilize the system?"
|
579 | 579 | ]
|
580 | 580 | },
|
|
0 commit comments