Control of a Nonlinear Model of a Robotic Arm with a Flexibl

Control of a Nonlinear Model of a Robotic Arm with a Flexible Joint via the Linearization Technique

Consider a single-link robotic manipulator with a flexible joint whose nonlinear mathematical model is given in Chapter 1, Example 1.3 of the textbook. It is desired to control the robot arm to hold any reference (nominal-, operating-, trim-, steady-state- set-point) angle in the entire range [0 2pi]. Design a full-state feedback control law for this system using linearization about a set point. As a controller use the “pole placement” (eigenvalue assignment) controller (regulator). To find the feedback gain F via MATLAB use the function “place” as: F=place(A, B, eigenvalues_desired). The project tasks should be achieved in two steps.

         Step 1. (3 points). Present the results of linearization at steady state points, and find corresponding matrices A and B. Assume that matrix C is identity and matrix D a zero matrix of appropriate dimensions. Use the Simulink state space block and simulate dynamics of the linearized system. The linearized system initial conditions that should be set in the neighborhood of the system initial conditions (note Dx(t0)=x(t0)-xss). The full-state feedback controller Du(t)=-FDx(t) should be obtained using the MATLAB function place. Monitor the system response and choose the desired eigenvalues such a good transient response is obtained (small overshoot, short settling and rise times). At the same time observe the magnitudes of the signals in the closed-loop system.

        Step 2. (7 points). Build the Simulink block diagram of the considered nonlinear robot arm model.

Design a full-state space controller that keeps at steady state theta1ss=pi/3. Simulate the performance of the system response using SIMULINK and plot theta1(t) as a function of time until it settles down to its steady state value. Observe also the linearized and actual values of the input signal. Plot all signals from MATLAB window using the MATLAB plot function ‘plot(t,signal)’. Consider the time interval of several seconds.

Solution

import java.awt.*;
import java.applet.*;

public category Tank extends applications programme
purpose target;
   public int x, y, w, h;
   public int maxX=400,maxY=360,minX=0,minY=0;
   public int maxFire;   // the utmost quantity of shots allowed for the tank to fireside promptly
   public int gamma hydroxybutyrateShells;   // The max range of shells allowed to be pink-slipped
   public Boolean isMoving, isAlive, exploded;
   Graphics g;

   Tank()

   public Tank(int xpos, int ypos, Color c, int speed, int newDirection, int maxFire)

   public void move() else break;
       case EAST:   if( (x+tankWidth()+moveBy)>maxX) else break;
case SOUTH: if( (y+tankHeight()+moveBy)>maxY ) else break;
case WEST: if( (x-moveBy<minX) ) else break;
}
   }

   public void turn(int newDirection)

   public void turnAround()

   void explode()

   public void paint(Graphics gr)

       //polygon canon wheels
       int x11[] = ;
       int y11[] = ;

       int x12[] = ;
       int y12[] = ;

       int x13[] = x11;
       int y13[] = ;

       int x14[] = ;
       int y14[] = y12;

       int x1[][] = ;
       int y1[][] = ;

       //roundrect canon compartment
       int x2[] = ;
       int y2[] = ;

       //rect canon case
       int x3[] = ;
       int y3[] = ;
       int x3w[] = ;
       int y3h[] = ;

       //oval canon cap
       int x4[] = ;
       int y4[] = ;

       //canon
       int x5[] = ;
       int y5[] = ;
       int x5w[] = ;
       int y5h[] = ;

       int d = direction - 1;

       //draw wheels
       g.setColor(Color.black);
       g.fillPolygon(x1[d], y1[d] ,8);

       //draw compartment
       g.setColor(color);
       g.fillRoundRect(x2[d],y2[d],25,25,5,5);

       //draw canon
       g.setColor(Color.black);
       g.fillRect(x5[d],y5[d],x5w[d],y5h[d]);


       //draw canon case
       g.setColor(new Color(47,79,79));
       g.fillRect(x3[d],y3[d],x3w[d],y3h[d]);

       //draw canon cap      
       g.setColor(Color.black);
       g.fillOval(x4[d],y4[d],15,15);

   }

   int tankWidth()direction==3)return 35;
       else {return 40;
   }

   int tankHeight()come 35;
   }

}

Control of a Nonlinear Model of a Robotic Arm with a Flexible Joint via the Linearization Technique Consider a single-link robotic manipulator with a flexible j
Control of a Nonlinear Model of a Robotic Arm with a Flexible Joint via the Linearization Technique Consider a single-link robotic manipulator with a flexible j

Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site