Week 1

Objective

The objectives of this laboratory experiment are as follows:

  1. Obtain the linear state-space representation of the rotary pendulum plant.

  2. Design a state-feedback control system that balances the pendulum in its upright position using Pole Placement.

  3. Simulate the closed-loop system to ensure the given specifications are met.

Equipment

Week 1

A. Modeling

This experiment involves modeling of the rotary inverted pendulum.

Rotary Inverted Pendulum Model

Table 1 Rotary Pendulum components (Figure 1)

ID#
Component

1

Rotary Servo

2

Thumbscrews

3

Rotary Arm

4

Shaft Housing

5

Shaft

6

Pendulum T-Fitting

7

Pendulum Link

8

Pendulum Encoder Connector

9

Pendulum Encoder

Table 2 Main Parameters associated with the Rotary Pendulum module

Symbol
Description
Value
Unit

Mass of pendulum

0.127

Total length of pendulum

0.337

Distance from pivot to center of mass

0.156

Pendulum moment of intertia about center of mass

0.0012

Pendulum viscous damping coeffi­cient as seen at the pivot axis

0.0024

Mass of rotary arm with two thumb screws

0.257

Rotary arm length from pivot to tip

0.216

Rotary arm length from pivot to center of mass

0.0619

Rotary arm moment of inertia about its center of mass

9.98 x 10^-4

Rotary arm viscous damping coeffi­cient as seen at the pivot axis

0.0024

Rotary arm moment of inertia about pivot

0.0020

Pendulum encoder resolution

4096

Model Convention

Nonlinear Equations of Motion

Instead of using classical (Newtonian) mechanics, the Lagrange method is used to find the equations of motion of the system. This systematic method is often used for more complicated systems such as robot manipulators with multiple joints.

Specifically, the equations that describe the motions of the rotary arm and the pendulum with respect to the servo motor voltage, i.e., the dynamics, will be obtained using the Euler-Lagrange equation:

\frac{d}{dt}\frac{\partial L}{\partial \dot{q_i}} - \frac{\partial L}{\partial q_i} = Q_i \qquad \qquad \tag{1}

q(t) =\begin{bmatrix} \theta(t) & \alpha(t) \end{bmatrix}^T \tag{2}

\dot{q}(t)=\begin{bmatrix} \displaystyle \frac{d\theta(t)}{dt} & \displaystyle\frac{d\alpha(t)}{dt} \end{bmatrix} ^T\tag{3}

With the generalized coordinates defined, the Euler-Lagrange equations for the rotary pendulum system are\frac{d}{dt} \frac{\partial L}{\partial \dot{\theta}} - \frac{\partial L}{\partial \theta} = Q_1 \tag{4a}

\frac{d}{dt}\frac{\partial L}{\partial \dot{\alpha}} - \frac{\partial L}{\partial \alpha} = Q_2 \tag{4b}

The Lagrangian of the system is described byL = T - V \tag{5}

and acting on the pendulum isQ_2 = -B_\rm{p}\dot{\alpha} \tag{6b}

​See Table A in the Appendix for a description of the corresponding Rotary Servo parameters (e.g., such as the back-emf constant, k_\rm{m}). Our control variable is the input servo motor voltage, V_\rm{m}. Opposing the applied torque is the viscous friction torque, or viscous damping, corresponding to the term B_\rm{r}. Since the pendulum is not actuated, the only force acting on the link is the damping. The viscous damping coefficient of the pendulum is denoted by B_\rm{p}.

Once the kinetic and potential energy are obtained and the Lagrangian is found, then the task is to compute various derivatives to get the EOMs. After going through this process, the nonlinear equations of motion for the Rotary Pendulum are:

\displaystyle\left (m_pL_r^2 + \frac{1}{4}m_pL_p^2 - \frac{1}{4}m_pL_p^2 \cos^2(\alpha)+J_r \right )\ddot{\theta} - \left (\frac{1}{2}m_pL_pL_r\cos(\alpha) \right)\ddot{\alpha} \\+ \displaystyle\left(\frac{1}{2}m_pL_p^2\sin(\alpha)\cos(\alpha)\right)\dot{\theta}\dot{\alpha} + \left( \frac{1}{2}m_pL_pL_r\sin(\alpha)\right)\dot{\alpha}^2 = \tau - B_r\dot{\theta} \tag{7}

\displaystyle{\left(-\frac{1}{2}m_pL_pL_r\cos(\alpha) \right)\ddot{\theta} + \left(J_p + \frac{1}{4}m_pL_p^2 \right) \ddot{\alpha} - \left(\frac{1}{4} m_pL_p^2\cos(\alpha)\sin(\alpha)\right)\dot{\theta}^2 \\-\frac{1}{2} m_pL_pg\sin(\alpha) = -B_p\dot{\alpha}} \tag{8}

The torque applied at the base of the rotary arm (i.e. at the load gear) is generated by the servo motor as described by the equation 7. Refer to Table A in the Appendix for the Rotary Servo parameters.

\tau = \displaystyle\frac{\eta_gK_g\eta_mk_t(V_m - K_gk_m\dot{\theta})}{R_m} \tag{9}

Linearization

Linearization of a nonlinear function about a selected point is obtained by retaining upto first order term in the Taylor Series expansion of the function about the selected point. For example, linearization of a two variable nonlinear function f(z) where

about the point

can be written as

Linearization of Inverted Pendulum Equations

The nonlinear equations of the inverted pendulum system obtained as Equations (7) and (8) are linearized about the equilibrium point with the pendulum in the upright position, i.e.,

Linearization of Equation (7) about the above equilibrium state gives

Likewise, linearization of Equation (8) about the equilibrium point with the pendulum in the upright position gives

Equation (10) and (11) can be arranged in the matrix form as

Equation (12) can be rewritten in state space form as

Analysis: Modeling

  1. Download the above zip file and extract it.

  2. Open rotpen_week1_student.mlx live script and run the Modelling section. It will automatically load the parameters required for the state-space representation, and subsequently generate the A, B, C and D matrices required for the upcoming analysis. Please refer to Table 2 and Table A for additional information regarding the parameters. Note: The representative C and D matrices have already been included. The actuator dynamics have been added to convert your state-space matrices to be in terms of voltage. Recall that the input of the state-space model is the torque acting at the servo load gear (i.e. the pivot of the pendulum). However, we control the servo input voltage instead of control torque directly. The script uses the voltage torque relationship given in Equation 9 to transform torque to voltage.

  3. Note down your state-space matrices for your report. Note: You may want to cross-check the state-space matrix with TAs before proceeding to balance control.

  4. Find the open-loop poles of the system. Hint: Use eig(A).

B. Balance Control

Specification

Stability

The stability of a system can be determined from its poles ([2]):

  • Stable systems have poles only in the left-hand plane.

  • Unstable systems have at least one pole in the righthand plane and/or poles of multiplicity greater than 1 on the imaginary axis.

  • Marginally stable systems have one pole on the imaginary axis and the other poles in the left-hand plane.

Controllability

Rank Test The system is controllable if the rank of its controllability matrix

T = [B \ AB \ A^2B \ ... \ A^{n-1}B] \tag{16} equals the number of states in the system, \mathrm{rank}(T) = n \tag{17}

Companion Matrix

If (A,B) are controllable and B is n×1, then A is similar to a companion matrix ([1]). Let the characteristic equation of A be s^n + a_ns^{n-1}+\dots +a_1 \tag{18} Then the companion matrices of A and B are \tilde{A} = \begin{bmatrix} 0 & 1 & \dots & 0& 0 \\ 0 & 0 & \dots & 0& 0 \\ \vdots & \vdots & \ddots & \vdots& \vdots \\ 0 & 0 & \dots & 0& 1 \\ -a_1 & -a_2 & \dots & -a_{n-1}& -a_n \end{bmatrix} \tag{19}

and\tilde{B} = \begin{bmatrix} 0\\\vdots\\ \\1 \end{bmatrix} \tag{20}

Pole Placement Theory

>> K = acker(A,B,DP);

Desired Poles

Simulation Model with Feedback

B.1 Experiment: Designing the Balance Control

  1. In the same rotpen_week1_student.mlx live script, go to the Balance Control section. Enter the chosen zeta and omega_n values.

  2. Find gain K using a predefined Compensator Design MATLAB command K = acker(A,B,DP), which is based on pole-placement design. Note: DP is a row vector of the desired poles found in Step 3.

For sanity check, if you use damping ratio of 0.7 and natural frequency of 4 rad/s, you should get around K = [-12 63 -5.5 7].

B.2 Experiment: Simulating the Balance Control

The s_rotpen_bal SIMULINK diagram shown in Figure 5 is used to simulate the closed-loop response of the Rotary Pendulum using the state-feedback control described in Balance Control with the control gain K found above. The Signal Generator block generates a 0.1 Hz square wave (with an amplitude of 1). The Amplitude (deg) gain block is used to change the desired rotary arm position. The state-feedback gain K is set in the Control Gain gain block and is read from the MATLAB workspace. The SIMULINK State-Space block reads the A, B, C, and D state-space matrices that are loaded in the MATLAB workspace. The Find State X block contains high-pass filters to find the velocity of the rotary arm and pendulum.

  1. Run rotpen_week1_student.mlx live script. Ensure the gain K you found is loaded in the workspace (type K matrix in the command window).

  2. Open and run the s_rotpen_bal.mdl for 10 seconds. The responses in the scopes shown in Figure 6 were generated using an arbitrary feedback control gain. Note: When the simulation stops, the last 10 seconds of data is automatically saved in the MATLAB workspace to the variables data_theta, data_alpha, and data_Vm.

  3. Save the data corresponding to the simulated response of the rotary arm, pendulum, and motor input voltage obtained using your obtained gain K. Note: The time is stored in the data_theta(:,1) vector, the desired and measured rotary arm angles are saved in the data_theta(:,2) and data_theta(:,3) arrays. Similarly, the pendulum angle is stored in the data_alpha(:,2) vector, and the control input is in the data_Vm(:,2) structure.

  4. Measure the pendulum deflection and voltage used. Are the specifications given satisfied?

Results for Report

A) Modeling

  1. Open-loop poles of the system.

B.1) Balance Control Design

B.2) Balance Control Simulation

  1. Are Design Specifications 3 and 4 satisfied? Justify using the measured maximum pendulum deflection and motor input voltage values.

Questions for Report

B.1) Balance Control Design

  1. Based on your open-loop poles found in Result A.2, is the system stable, marginally stable, or unstable? Did you expect the stability of the inverted pendulum to be as what was determined?

Appendix

Table A Main Rotary Servo Base Unit Specifications

Motor nominal input voltage

6.0 V

Motor armature resistance

2.6 Ω ± 12%

Motor armature inductance

0.18 mH

Motor current-torque constant

7.68 × 10−3 N-m/A ± 12%

Motor back-emf constant

7.68 × 10−3 V/(rad/s) ± 12%

High-gear total gear ratio

70

Motor efficiency

0.69 ± 5%

Gearbox efficiency

0.90 ± 10%

rotor Rotor moment of inertia

3.90 × 10−7 kg-m2 ± 10%

High-gear equivalent moment of inertia without external load

1.823 × 10−3 kg-m2

High-gear Equivalent viscous damping coefficient

0.015 N-m/(rad/s)

Mass of bar load

0.038 kg

Length of bar load

0.1525 m

Mass of disc load

0.04 kg

Radius of disc load

0.05 m

Maximum load mass

5 kg

Maximum input voltage frequency

50 Hz

Maximum input current

1 A

Maximum motor speed

628.3 rad/s

Reference

[1] Bruce Francis. Ece1619 linear systems, 2001. [2] Norman S. Nise. Control Systems Engineering. John Wiley & Sons, Inc., 2008.

Last updated

Was this helpful?