Projects Robot Simulation Finite difference simulation of flexible manipulators

Finite difference simulation of flexible manipulators

Flexible manipulator systems (FMSs) offer several advantages in contrast to the traditrional rigid ones. These include faster system response, lower enery consumption, requiring relatively smaller actuators, reduced non-linearity due to elimination of gearing, less overall mass and, in general, less overall cost. However, owing to the distributed nature of the governing equations describing system dynamics, the control of flexible manipulator has traditionally involved complex processes. 

Mechanical model of the flexible manipulator system

For an angular displacement (theta) and an elastic deflection (w), the total (net) displacement y(x,t) of a point along the manipulator at a distance from the hub can be described as a function of  both the rigid-body motion( theta) and elastic deflection w(x,t) mesured from the line OX : 

 y(x,t) = x * theta(t) + w(x,t)

The dynamic equations of motion of the manipulator can be obtained using the Hamilton's extended principle with the associated kinetic, potential and dissipated energies of the system. Ignoring the effects of rotary inertia and shear deformation, a fourth-orther PDE representing the manipulator motion can be obtained as :

To obtain the corresponding boundary conditions , the following must hold:

1. The displacement at the hub must be zero

2. The total forces at the hub must be the same with the applied torque

3. The shear force at the end-point must be equal to Mp.

4. The stress at the end-point must be zero, that is, no force should be present at the free end.

The FD method

In this manner, a solution of the PDE is obtained by generating the central difference formulae for the partial derivative terms of the response y(x,t) of the manipulator at points x = i * delta_x, t = j * delta_t

Finite difference discretisation in time and space varibles

The algorithm simulation 

 

%A flexible link


% Author : 3T


%Parameters of the flexible manipulator system


% Link (Material: Aluminium)


length = 960E-3; % Length l (m)


width = 19.008E-3; % Width b(m)


thichness = 3.2004E-3; %Thickness d (m)


ro = 271; % Density (kg/m^3)


area = 6.08332E-5;  %Cross-sectional area a = b*d (m^2)


mass = 0.158264; %Mass m = a*l*ro (kg)


I = 5.19238E-11; %Second moment of inertia (1/12)b*d^3 (m^4)


E = 71E9; %Young modulus (N/m^2)


EI = 3.6866E-2; % Rigidity E*I (Nm^2)


%EI = 3; % E-2 to E0


Ib = 0.04862; % Moments of inertia (1/3)ml^2 (kgm^2)


%Hub


Ih = 5.86E-11; % Hub Inertia (kgm^2)


%Tipuh


Il = 0.2787; % Moments of inertia (kgm^2)


% Damping


Ds = 100;  % the resistance to strain velocity


Mp = 5; % the shear forces


Tj = 100; % the applied torque at the hub 


a = 2-((6 * EI * delta_t^2)/ (ro * delta_x^4))


b = (4 * EI * delta_t^2) / (ro * delta_x^4)


c = (EI * delta_t^2) / (ro * delta_x^4)


d = (Ds * delta_t) / (ro * delta_x^2)


K1 = (c * delta_t^2 * EI + 2 * c * delta_x * Ih + (a-2*d) * delta_t^2 * EI)/(delta_t^2 * EI + c * delta_x * Ih)


K2 = ((b+d) * delta_t^2 * EI) / (delta_t^2 * EI + c * delta_x * Ih);


K3 = -(c * delta_t^2 * EI) / (delta_t^2 * EI + c * delta_x * Ih);


K4 = -(c * delta_x * Ih + (1 - 2*d) * delta_t^2 * EI)/ (delta_t^2 * EI + c * delta_x * Ih)


K5 = - (d * delta_t^2 * EI) / (delta_t^2 * EI + c * delta_x * Ih)


K6 = (c * delta_x^2 * delta_t^2) / (delta_t^2 * EI + c * delta_x * Ih)


K7 = -c


K8 = b + d


K9 = a + c - (2 * d)


K10 = -(2* c - b - d)


K11 = -d


K12 = -(1 - 2 * d)


K13 = -d


K14 = -(2 * c * delta_t^2 * EI) / (delta_t^2 * EI + 2 * c * delta_x^3 * Mp);


K15 =  (4 * c * delta_t^2 * EI) / (delta_t^2 * EI + 2 * c * delta_x^3 * Mp)


K16 = ((delta_t^2 * EI) / (delta_t^2 * EI + 2 * c * delta_x^3 * Mp))*...


( a + 2 * b - 4 * c + ((4 * c * delta_x^3 * Mp) / (delta_t^2 * EI)))


K17 = -((delta_t^2 * EI) / (delta_t^2 * EI + 2 * c * delta_x^3 * Mp))*...


(((2 * c * delta_x^3 * Mp) / (delta_t^2 * EI)) + 1)



A = [


K1    K2        K3      0       0        0        0       0       0    0;


(b+d)  (a-2*d) (b+d)    -c       0        0        0       0       0    0;


-c     (b+d)   (a-2*d)  (b+d)    -c       0        0       0       0    0;


0     -c      (b+d)   (a-2*d)  (b+d)     -c       0       0       0    0;


0      0        -c     (b+d)  (a-2*d)   (b+d)    -c       0       0    0;


0      0         0       -c     (b+d)   (a-2*d) (b+d)    -c       0    0;


0      0         0        0      -c      (b+d)  (a-2*d) (b+d)    -c    0;


0      0         0        0       0       -c    (b+d)   (a-2*d) (b+d) -c;


0      0         0        0       0        0      K7      K8      K9   K10;


0      0         0        0       0        0       0      K14     K15  K16;


]


B = [


K4    K5        0         0        0        0        0       0       0    0;


-d  (2*d -1)   -d         0        0        0        0       0       0    0;


0     -d     (2*d -1)    -d        0        0        0       0       0    0;


0      0        -d     (2*d - 1)   -d       0        0       0       0    0;


0      0         0       -d      (2*d -1)  -d        0       0       0    0;


0      0         0        0       -d     (2*d - 1)  -d       0       0    0;


0      0         0        0       0        -d     (2*d - 1)  -d      0    0;


0      0         0        0       0         0       -d     (2*d -1) -d    0;


0      0         0        0       0         0        0      K11      K12  K13;


0      0         0        0       0         0        0       0       0    K17;


]


C = Tj;


F = [K6 0 0 0 0 0 0 0 0 0]';


Yi_next =  A * Yi_current + B * Yi_before + C * F