nass-fem/index.org

68 KiB

Finite Element Model with Simscape

Introduction   ignore

In this document, Finite Element Models (FEM) of parts of the Nano-Hexapod are developed and integrated into Simscape for dynamical analysis.

  • Section sec:APA300ML: A super-element of the Amplified Piezoelectric Actuator APA300ML used for the NASS is exported using Ansys and imported in Simscape. The static and dynamical properties of the APA300ML are then estimated using the Simscape model.
  • Section sec:flexor_ID16: A first geometry of a Flexible joint is modelled and its characteristics are identified from the Stiffness matrix as well as from the Simscape model.
  • Section sec:flexor_025: An optimized flexible joint is developed for the Nano-Hexapod and is then imported in a Simscape model.
  • Section sec:strut_encoder: A super element of a complete strut is exported.

APA300ML

<<sec:APA300ML>>

Introduction   ignore

In this section, the Amplified Piezoelectric Actuator APA300ML (doc) is modeled using a Finite Element Software. Then a super element is exported and imported in Simscape where its dynamic is studied.

A 3D view of the Amplified Piezoelectric Actuator (APA300ML) is shown in Figure fig:apa300ml_ansys. The remote point used are also shown in this figure.

/tdehaeze/nass-fem/media/commit/925ac9c3c51676e6eaae5ad1430ca6ea089845a0/figs/apa300ml_ansys.jpg
Ansys FEM of the APA300ML

Import Mass Matrix, Stiffness Matrix, and Interface Nodes Coordinates

We first extract the stiffness and mass matrices.

  K = readmatrix('APA300ML_mat_K.CSV');
  M = readmatrix('APA300ML_mat_M.CSV');
200000000.0 30000.0 -20000.0 -70.0 300000.0 40.0 10000000.0 10000.0 -6000.0 30.0
30000.0 30000000.0 2000.0 -200000.0 60.0 -10.0 4000.0 2000000.0 -500.0 9000.0
-20000.0 2000.0 7000000.0 -10.0 -30.0 10.0 6000.0 900.0 -500000.0 3
-70.0 -200000.0 -10.0 1000.0 -0.1 0.08 -20.0 -9000.0 3 -30.0
300000.0 60.0 -30.0 -0.1 900.0 0.1 30000.0 20.0 -10.0 0.06
40.0 -10.0 10.0 0.08 0.1 10000.0 20.0 9 -5 0.03
10000000.0 4000.0 6000.0 -20.0 30000.0 20.0 200000000.0 10000.0 9000.0 50.0
10000.0 2000000.0 900.0 -9000.0 20.0 9 10000.0 30000000.0 -500.0 200000.0
-6000.0 -500.0 -500000.0 3 -10.0 -5 9000.0 -500.0 7000000.0 -2
30.0 9000.0 3 -30.0 0.06 0.03 50.0 200000.0 -2 1000.0
First 10x10 elements of the Stiffness matrix
0.01 -2e-06 1e-06 6e-09 5e-05 -5e-09 -0.0005 -7e-07 6e-07 -3e-09
-2e-06 0.01 8e-07 -2e-05 -8e-09 2e-09 -9e-07 -0.0002 1e-08 -9e-07
1e-06 8e-07 0.009 5e-10 1e-09 -1e-09 -5e-07 3e-08 6e-05 1e-10
6e-09 -2e-05 5e-10 3e-07 2e-11 -3e-12 3e-09 9e-07 -4e-10 3e-09
5e-05 -8e-09 1e-09 2e-11 6e-07 -4e-11 -1e-06 -2e-09 1e-09 -8e-12
-5e-09 2e-09 -1e-09 -3e-12 -4e-11 1e-07 -2e-09 -1e-09 -4e-10 -5e-12
-0.0005 -9e-07 -5e-07 3e-09 -1e-06 -2e-09 0.01 1e-07 -3e-07 -2e-08
-7e-07 -0.0002 3e-08 9e-07 -2e-09 -1e-09 1e-07 0.01 -4e-07 2e-05
6e-07 1e-08 6e-05 -4e-10 1e-09 -4e-10 -3e-07 -4e-07 0.009 -2e-10
-3e-09 -9e-07 1e-10 3e-09 -8e-12 -5e-12 -2e-08 2e-05 -2e-10 3e-07
First 10x10 elements of the Mass matrix

Then, we extract the coordinates of the interface nodes.

  [int_xyz, int_i, n_xyz, n_i, nodes] = extractNodes('APA300ML_out_nodes_3D.txt');
Node i Node Number x [m] y [m] z [m]
1.0 697783.0 0.0 0.0 -0.015
2.0 697784.0 0.0 0.0 0.015
3.0 697785.0 -0.0325 0.0 0.0
4.0 697786.0 -0.0125 0.0 0.0
5.0 697787.0 -0.0075 0.0 0.0
6.0 697788.0 0.0125 0.0 0.0
7.0 697789.0 0.0325 0.0 0.0
Coordinates of the interface nodes
Total number of Nodes 7
Number of interface Nodes 7
Number of Modes 120
Size of M and K matrices 162
Some extracted parameters of the FEM

Using K, M and int_xyz, we can now use the Reduced Order Flexible Solid simscape block.

Piezoelectric parameters

In order to make the conversion from applied voltage to generated force or from the strain to the generated voltage, we need to defined some parameters corresponding to the piezoelectric material:

  d33 = 300e-12; % Strain constant [m/V]
  n   = 80;      % Number of layers per stack
  eT  = 1.6e-8;  % Permittivity under constant stress [F/m]
  sD  = 1e-11;   % Compliance under constant electric displacement [m2/N]
  ka  = 235e6;   % Stack stiffness [N/m]
  C   = 5e-6;    % Stack capactiance [F]

The ratio of the developed force to applied voltage is:

\begin{equation} F_a = g_a V_a, \quad g_a = d_{33} n k_a \end{equation}

where:

  • $F_a$: developed force in [N]
  • $n$: number of layers of the actuator stack
  • $d_{33}$: strain constant in [m/V]
  • $k_a$: actuator stack stiffness in [N/m]
  • $V_a$: applied voltage in [V]

If we take the numerical values, we obtain:

  d33*n*ka % [N/V]
5.64

From cite:fleming14_desig_model_contr_nanop_system (page 123), the relation between relative displacement of the sensor stack and generated voltage is:

\begin{equation} V_s = \frac{d_{33}}{\epsilon^T s^D n} \Delta h \end{equation}

where:

  • $V_s$: measured voltage in [V]
  • $d_{33}$: strain constant in [m/V]
  • $\epsilon^T$: permittivity under constant stress in [F/m]
  • $s^D$: elastic compliance under constant electric displacement in [m^2/N]
  • $n$: number of layers of the sensor stack
  • $\Delta h$: relative displacement in [m]

If we take the numerical values, we obtain:

  1e-6*d33/(eT*sD*n) % [V/um]
23.438

Simscape Model

The flexible element is imported using the Reduced Order Flexible Solid simscape block.

Let's say we use two stacks as a force sensor and one stack as an actuator:

  • A Relative Motion Sensor block is added between the nodes A and C
  • An Internal Force block is added between the remote points E and B

The interface nodes are shown in Figure fig:apa300ml_ansys.

One mass is fixed at one end of the piezo-electric stack actuator (remove point F), the other end is fixed to the world frame (remote point G).

Identification of the APA Characteristics

Stiffness

The transfer function from vertical external force to the relative vertical displacement is identified.

The inverse of its DC gain is the axial stiffness of the APA:

  1e-6/dcgain(G) % [N/um]
1.753

The specified stiffness in the datasheet is $k = 1.8\, [N/\mu m]$.

Resonance Frequency

The resonance frequency is specified to be between 650Hz and 840Hz. This is also the case for the FEM model (Figure fig:apa300ml_resonance).

/tdehaeze/nass-fem/media/commit/925ac9c3c51676e6eaae5ad1430ca6ea089845a0/figs/apa300ml_resonance.png

First resonance is around 800Hz

Amplification factor

The amplification factor is the ratio of the vertical displacement to the stack displacement.

The ratio of the two displacement is computed from the FEM model.

  abs(dcgain(G(1,1))./dcgain(G(2,1)))
5.0749

This is actually correct and approximately corresponds to the ratio of the piezo height and length:

  75/15
5

Stroke

Estimation of the actuator stroke: \[ \Delta H = A n \Delta L \] with:

  • $\Delta H$ Axial Stroke of the APA
  • $A$ Amplification factor (5 for the APA300ML)
  • $n$ Number of stack used
  • $\Delta L$ Stroke of the stack (0.1% of its length)
  1e6 * 5 * 3 * 20e-3 * 0.1e-2
300

This is exactly the specified stroke in the data-sheet.

Identification of the Dynamics from actuator to replace displacement

We first set the mass to be approximately zero.

The dynamics is identified from the applied force to the measured relative displacement.

The same dynamics is identified for a payload mass of 10Kg.

  m = 10;

/tdehaeze/nass-fem/media/commit/925ac9c3c51676e6eaae5ad1430ca6ea089845a0/figs/apa300ml_plant_dynamics.png

Transfer function from forces applied by the stack to the axial displacement of the APA

The root locus corresponding to Direct Velocity Feedback with a mass of 10kg is shown in Figure fig:apa300ml_dvf_root_locus.

/tdehaeze/nass-fem/media/commit/925ac9c3c51676e6eaae5ad1430ca6ea089845a0/figs/apa300ml_dvf_root_locus.png

Root Locus for Direct Velocity Feedback

Identification of the Dynamics from actuator to force sensor

Let's use 2 stacks as a force sensor and 1 stack as force actuator.

The transfer function from actuator voltage to sensor voltage is identified and shown in Figure fig:apa300ml_iff_plant.

/tdehaeze/nass-fem/media/commit/925ac9c3c51676e6eaae5ad1430ca6ea089845a0/figs/apa300ml_iff_plant.png

Transfer function from actuator to force sensor

For root locus corresponding to IFF is shown in Figure fig:apa300ml_iff_root_locus.

/tdehaeze/nass-fem/media/commit/925ac9c3c51676e6eaae5ad1430ca6ea089845a0/figs/apa300ml_iff_root_locus.png

Root Locus for IFF

Identification for a simpler model

The goal in this section is to identify the parameters of a simple APA model from the FEM. This can be useful is a lower order model is to be used for simulations.

The presented model is based on cite:souleille18_concep_activ_mount_space_applic.

The model represents the Amplified Piezo Actuator (APA) from Cedrat-Technologies (Figure fig:souleille18_model_piezo). The parameters are shown in the table below.

/tdehaeze/nass-fem/media/commit/925ac9c3c51676e6eaae5ad1430ca6ea089845a0/figs/souleille18_model_piezo.png
Picture of an APA100M from Cedrat Technologies. Simplified model of a one DoF payload mounted on such isolator

#+caption:Parameters used for the model of the APA 100M

Meaning
$k_e$ Stiffness used to adjust the pole of the isolator
$k_1$ Stiffness of the metallic suspension when the stack is removed
$k_a$ Stiffness of the actuator
$c_1$ Added viscous damping

The goal is to determine $k_e$, $k_a$ and $k_1$ so that the simplified model fits the FEM model.

\[ \alpha = \frac{x_1}{f}(\omega=0) = \frac{\frac{k_e}{k_e + k_a}}{k_1 + \frac{k_e k_a}{k_e + k_a}} \] \[ \beta = \frac{x_1}{F}(\omega=0) = \frac{1}{k_1 + \frac{k_e k_a}{k_e + k_a}} \]

If we can fix $k_a$, we can determine $k_e$ and $k_1$ with: \[ k_e = \frac{k_a}{\frac{\beta}{\alpha} - 1} \] \[ k_1 = \frac{1}{\beta} - \frac{k_e k_a}{k_e + k_a} \]

From the identified dynamics, compute $\alpha$ and $\beta$

  alpha = abs(dcgain(G('y', 'Fa')));
  beta  = abs(dcgain(G('y', 'Fd')));

$k_a$ is estimated using the following formula:

  ka = 0.8/abs(dcgain(G('y', 'Fa')));

The factor can be adjusted to better match the curves.

Then $k_e$ and $k_1$ are computed.

  ke = ka/(beta/alpha - 1);
  k1 = 1/beta - ke*ka/(ke + ka);
Value [N/um]
ka 40.5
ke 1.5
k1 0.4

The damping in the system is adjusted to match the FEM model if necessary.

  c1 = 1e2;

The analytical model of the simpler system is defined below:

  Ga = 1/(m*s^2 + k1 + c1*s + ke*ka/(ke + ka)) * ...
       [ 1 ,              k1 + c1*s + ke*ka/(ke + ka)  , ke/(ke + ka) ;
        -ke*ka/(ke + ka), ke*ka/(ke + ka)*m*s^2 ,       -ke/(ke + ka)*(m*s^2 + c1*s + k1)];

  Ga.InputName = {'Fd', 'w', 'Fa'};
  Ga.OutputName = {'y', 'Fs'};

And the DC gain is adjusted for the force sensor:

  F_gain = dcgain(G('Fs', 'Fd'))/dcgain(Ga('Fs', 'Fd'));

The dynamics of the FEM model and the simpler model are compared in Figure fig:apa300ml_comp_simpler_model.

/tdehaeze/nass-fem/media/commit/925ac9c3c51676e6eaae5ad1430ca6ea089845a0/figs/apa300ml_comp_simpler_model.png

Comparison of the Dynamics between the FEM model and the simplified one

The simplified model has also been implemented in Simscape.

The dynamics of the Simscape simplified model is identified and compared with the FEM one in Figure fig:apa300ml_comp_simpler_simscape.

/tdehaeze/nass-fem/media/commit/925ac9c3c51676e6eaae5ad1430ca6ea089845a0/figs/apa300ml_comp_simpler_simscape.png

Comparison of the Dynamics between the FEM model and the simplified simscape model

Integral Force Feedback

In this section, Integral Force Feedback control architecture is applied on the APA300ML.

First, the plant (dynamics from voltage actuator to voltage sensor is identified).

The payload mass is set to 10kg.

  m = 10;

The obtained dynamics is shown in Figure fig:piezo_amplified_iff_plant.

/tdehaeze/nass-fem/media/commit/925ac9c3c51676e6eaae5ad1430ca6ea089845a0/figs/piezo_amplified_iff_plant.png

IFF Plant

The controller is defined below and the loop gain is shown in Figure fig:piezo_amplified_iff_loop_gain.

  Kiff = -1e3/s;

/tdehaeze/nass-fem/media/commit/925ac9c3c51676e6eaae5ad1430ca6ea089845a0/figs/piezo_amplified_iff_loop_gain.png

IFF Loop Gain

Now the closed-loop system is identified again and compare with the open loop system in Figure fig:piezo_amplified_iff_comp.

It is the expected behavior as shown in the Figure fig:souleille18_results (from cite:souleille18_concep_activ_mount_space_applic).

/tdehaeze/nass-fem/media/commit/925ac9c3c51676e6eaae5ad1430ca6ea089845a0/figs/piezo_amplified_iff_comp.png

OL and CL transfer functions
/tdehaeze/nass-fem/media/commit/925ac9c3c51676e6eaae5ad1430ca6ea089845a0/figs/souleille18_results.png
Results obtained in cite:souleille18_concep_activ_mount_space_applic

First Flexible Joint Geometry

<<sec:flexor_ID16>>

Introduction   ignore

The studied flexor is shown in Figure fig:flexor_id16_screenshot.

The stiffness and mass matrices representing the dynamics of the flexor are exported from a FEM. It is then imported into Simscape.

A simplified model of the flexor is then developped.

/tdehaeze/nass-fem/media/commit/925ac9c3c51676e6eaae5ad1430ca6ea089845a0/figs/flexor_id16_screenshot.png
Flexor studied

Import Mass Matrix, Stiffness Matrix, and Interface Nodes Coordinates

We first extract the stiffness and mass matrices.

  K = extractMatrix('mat_K_6modes_2MDoF.matrix');
  M = extractMatrix('mat_M_6modes_2MDoF.matrix');
11200000.0 195.0 2220.0 -0.719 -265.0 1.59 -11200000.0 -213.0 -2220.0 0.147
195.0 11400000.0 1290.0 -148.0 -0.188 2.41 -212.0 -11400000.0 -1290.0 148.0
2220.0 1290.0 119000000.0 1.31 1.49 1.79 -2220.0 -1290.0 -119000000.0 -1.31
-0.719 -148.0 1.31 33.0 0.000488 -0.000977 0.141 148.0 -1.31 -33.0
-265.0 -0.188 1.49 0.000488 33.0 0.00293 266.0 0.154 -1.49 0.00026
1.59 2.41 1.79 -0.000977 0.00293 236.0 -1.32 -2.55 -1.79 0.000379
-11200000.0 -212.0 -2220.0 0.141 266.0 -1.32 11400000.0 24600.0 1640.0 120.0
-213.0 -11400000.0 -1290.0 148.0 0.154 -2.55 24600.0 11400000.0 1290.0 -72.0
-2220.0 -1290.0 -119000000.0 -1.31 -1.49 -1.79 1640.0 1290.0 119000000.0 1.32
0.147 148.0 -1.31 -33.0 0.00026 0.000379 120.0 -72.0 1.32 34.7
First 10x10 elements of the Stiffness matrix
0.02 1e-09 -4e-08 -1e-10 0.0002 -3e-11 0.004 5e-08 7e-08 1e-10
1e-09 0.02 -3e-07 -0.0002 -1e-10 -2e-09 2e-08 0.004 3e-07 1e-05
-4e-08 -3e-07 0.02 7e-10 -2e-09 1e-09 3e-07 7e-08 0.003 1e-09
-1e-10 -0.0002 7e-10 4e-06 -1e-12 -6e-13 2e-10 -7e-06 -8e-10 -1e-09
0.0002 -1e-10 -2e-09 -1e-12 3e-06 2e-13 9e-06 4e-11 2e-09 -3e-13
-3e-11 -2e-09 1e-09 -6e-13 2e-13 4e-07 8e-11 9e-10 -1e-09 2e-12
0.004 2e-08 3e-07 2e-10 9e-06 8e-11 0.02 -7e-08 -3e-07 -2e-10
5e-08 0.004 7e-08 -7e-06 4e-11 9e-10 -7e-08 0.01 -4e-08 0.0002
7e-08 3e-07 0.003 -8e-10 2e-09 -1e-09 -3e-07 -4e-08 0.02 -1e-09
1e-10 1e-05 1e-09 -1e-09 -3e-13 2e-12 -2e-10 0.0002 -1e-09 2e-06
First 10x10 elements of the Mass matrix

Then, we extract the coordinates of the interface nodes.

  [int_xyz, int_i, n_xyz, n_i, nodes] = extractNodes('out_nodes_3D.txt');
Node i Node Number x [m] y [m] z [m]
1.0 181278.0 0.0 0.0 0.0
2.0 181279.0 0.0 0.0 -0.0
Coordinates of the interface nodes
Total number of Nodes 2
Number of interface Nodes 2
Number of Modes 6
Size of M and K matrices 18

Using K, M and int_xyz, we can use the Reduced Order Flexible Solid simscape block.

Identification of the parameters using Simscape and looking at the Stiffness Matrix

The flexor is now imported into Simscape and its parameters are estimated using an identification.

The dynamics is identified from the applied force/torque to the measured displacement/rotation of the flexor.

And we find the same parameters as the one estimated from the Stiffness matrix.

Caracteristic Value Identification
Axial Stiffness Dz [N/um] 119 119
Bending Stiffness Rx [Nm/rad] 33 33
Bending Stiffness Ry [Nm/rad] 33 33
Torsion Stiffness Rz [Nm/rad] 236 236

Simpler Model

Let's now model the flexible joint with a "perfect" Bushing joint as shown in Figure fig:flexible_joint_simscape.

/tdehaeze/nass-fem/media/commit/925ac9c3c51676e6eaae5ad1430ca6ea089845a0/figs/flexible_joint_simscape.png
Bushing Joint used to model the flexible joint

The parameters of the Bushing joint (stiffnesses) are estimated from the Stiffness matrix that was computed from the FEM.

  Kx = K(1,1); % [N/m]
  Ky = K(2,2); % [N/m]
  Kz = K(3,3); % [N/m]
  Krx = K(4,4); % [Nm/rad]
  Kry = K(5,5); % [Nm/rad]
  Krz =  K(6,6); % [Nm/rad]

The dynamics from the applied force/torque to the measured displacement/rotation of the flexor is identified again for this simpler model.

The two obtained dynamics are compared in Figure

/tdehaeze/nass-fem/media/commit/925ac9c3c51676e6eaae5ad1430ca6ea089845a0/figs/flexor_ID16_compare_bushing_joint.png

Comparison of the Joint compliance between the FEM model and the simpler model

Optimized Flexible Joint

<<sec:flexor_025>>

Introduction   ignore

The joint geometry has been optimized using Ansys to have lower bending stiffness while keeping a large axial stiffness.

The obtained geometry is shown in Figure fig:optimal_flexor.

/tdehaeze/nass-fem/media/commit/925ac9c3c51676e6eaae5ad1430ca6ea089845a0/figs/flexor_025_MDoF.jpg
Flexor studied

Import Mass Matrix, Stiffness Matrix, and Interface Nodes Coordinates

We first extract the stiffness and mass matrices.

  K = readmatrix('flex025_mat_K.CSV');
  M = readmatrix('flex025_mat_M.CSV');
12700000.0 -18.5 -26.8 0.00162 -4.63 64.0 -12700000.0 18.3 26.7 0.00234
-18.5 12700000.0 -499.0 -132.0 0.00414 -0.495 18.4 -12700000.0 499.0 132.0
-26.8 -499.0 94000000.0 -470.0 0.00771 -0.855 26.8 498.0 -94000000.0 470.0
0.00162 -132.0 -470.0 4.83 2.61e-07 0.000123 -0.00163 132.0 470.0 -4.83
-4.63 0.00414 0.00771 2.61e-07 4.83 4.43e-05 4.63 -0.00413 -0.00772 -4.3e-07
64.0 -0.495 -0.855 0.000123 4.43e-05 260.0 -64.0 0.495 0.855 -0.000124
-12700000.0 18.4 26.8 -0.00163 4.63 -64.0 12700000.0 -18.2 -26.7 -0.00234
18.3 -12700000.0 498.0 132.0 -0.00413 0.495 -18.2 12700000.0 -498.0 -132.0
26.7 499.0 -94000000.0 470.0 -0.00772 0.855 -26.7 -498.0 94000000.0 -470.0
0.00234 132.0 470.0 -4.83 -4.3e-07 -0.000124 -0.00234 -132.0 -470.0 4.83
First 10x10 elements of the Stiffness matrix
0.006 8e-09 -2e-08 -1e-10 3e-05 3e-08 0.003 -3e-09 9e-09 2e-12
8e-09 0.02 1e-07 -3e-05 1e-11 6e-10 1e-08 0.003 -5e-08 3e-09
-2e-08 1e-07 0.01 -6e-08 -6e-11 -8e-12 -1e-07 1e-08 0.003 -1e-08
-1e-10 -3e-05 -6e-08 1e-06 7e-14 6e-13 1e-10 1e-06 -1e-08 3e-10
3e-05 1e-11 -6e-11 7e-14 2e-07 1e-10 3e-08 -7e-12 6e-11 -6e-16
3e-08 6e-10 -8e-12 6e-13 1e-10 5e-07 1e-08 -5e-10 -1e-11 1e-13
0.003 1e-08 -1e-07 1e-10 3e-08 1e-08 0.02 -2e-08 1e-07 -4e-12
-3e-09 0.003 1e-08 1e-06 -7e-12 -5e-10 -2e-08 0.006 -8e-08 3e-05
9e-09 -5e-08 0.003 -1e-08 6e-11 -1e-11 1e-07 -8e-08 0.01 -6e-08
2e-12 3e-09 -1e-08 3e-10 -6e-16 1e-13 -4e-12 3e-05 -6e-08 2e-07
First 10x10 elements of the Mass matrix

Then, we extract the coordinates of the interface nodes.

  [int_xyz, int_i, n_xyz, n_i, nodes] = extractNodes('flex025_out_nodes_3D.txt');
Total number of Nodes 2
Number of interface Nodes 2
Number of Modes 6
Size of M and K matrices 18
Node i Node Number x [m] y [m] z [m]
1.0 528875.0 0.0 0.0 0.0
2.0 528876.0 0.0 0.0 -0.0
Coordinates of the interface nodes

Using K, M and int_xyz, we can use the Reduced Order Flexible Solid simscape block.

Identification of the parameters using Simscape

The flexor is now imported into Simscape and its parameters are estimated using an identification.

The dynamics is identified from the applied force/torque to the measured displacement/rotation of the flexor.

And we find the same parameters as the one estimated from the Stiffness matrix.

Caracteristic Value Identification
Axial Stiffness Dz [N/um] 94.0 93.9
Bending Stiffness Rx [Nm/rad] 4.8 4.8
Bending Stiffness Ry [Nm/rad] 4.8 4.8
Torsion Stiffness Rz [Nm/rad] 260.2 260.2

Simpler Model

Let's now model the flexible joint with a "perfect" Bushing joint as shown in Figure fig:flexible_joint_simscape.

/tdehaeze/nass-fem/media/commit/925ac9c3c51676e6eaae5ad1430ca6ea089845a0/figs/flexible_joint_simscape.png
Bushing Joint used to model the flexible joint

The parameters of the Bushing joint (stiffnesses) are estimated from the Stiffness matrix that was computed from the FEM.

  Kx = K(1,1); % [N/m]
  Ky = K(2,2); % [N/m]
  Kz = K(3,3); % [N/m]
  Krx = K(4,4); % [Nm/rad]
  Kry = K(5,5); % [Nm/rad]
  Krz =  K(6,6); % [Nm/rad]

The dynamics from the applied force/torque to the measured displacement/rotation of the flexor is identified again for this simpler model.

The two obtained dynamics are compared in Figure

/tdehaeze/nass-fem/media/commit/925ac9c3c51676e6eaae5ad1430ca6ea089845a0/figs/flexor_ID16_compare_bushing_joint.png

Comparison of the Joint compliance between the FEM model and the simpler model

Comparison with a stiffer Flexible Joint

The stiffness matrix with the flexible joint with a "hinge" size of 0.50mm is loaded.

  K_050 = readmatrix('flex050_mat_K.CSV');

Its parameters are compared with the Flexible Joint with a size of 0.25mm in the table below.

Caracteristic 0.25 mm 0.50 mm
Axial Stiffness Dz [N/um] 94.0 124.7
Shear Stiffness [N/um] 12.7 25.8
Bending Stiffness Rx [Nm/rad] 4.8 26.0
Bending Stiffness Ry [Nm/rad] 4.8 26.0
Torsion Stiffness Rz [Nm/rad] 260.2 538.0

Complete Strut with Encoder

<<sec:strut_encoder>>

Introduction

Now, the full nano-hexapod strut is modelled using Ansys.

The 3D as well as the interface nodes are shown in Figure fig:strut_encoder_points3.

/tdehaeze/nass-fem/media/commit/925ac9c3c51676e6eaae5ad1430ca6ea089845a0/figs/strut_encoder_nodes.jpg
Interface points

A side view is shown in Figure fig:strut_encoder_nodes_side.

/tdehaeze/nass-fem/media/commit/925ac9c3c51676e6eaae5ad1430ca6ea089845a0/figs/strut_encoder_nodes_side.jpg
Interface points - Side view

The flexible joints used have a 0.25mm width size.

Import Mass Matrix, Stiffness Matrix, and Interface Nodes Coordinates

We first extract the stiffness and mass matrices.

  K = readmatrix('strut_encoder_mat_K.CSV');
  M = readmatrix('strut_encoder_mat_M.CSV');
2000000.0 1000000.0 -3000000.0 -400.0 300.0 200.0 -30.0 2000.0 -10000.0 0.3
1000000.0 4000000.0 -8000000.0 -900.0 400.0 -50.0 -6000.0 10000.0 -20000.0 3
-3000000.0 -8000000.0 20000000.0 2000.0 -900.0 200.0 -10000.0 20000.0 -300000.0 7
-400.0 -900.0 2000.0 5 -0.1 0.05 1 -3 6 -0.0007
300.0 400.0 -900.0 -0.1 5 0.04 -0.1 0.5 -3 0.0001
200.0 -50.0 200.0 0.05 0.04 300.0 4 -0.01 -1 3e-05
-30.0 -6000.0 -10000.0 1 -0.1 4 3000000.0 -1000000.0 -2000000.0 -300.0
2000.0 10000.0 20000.0 -3 0.5 -0.01 -1000000.0 6000000.0 7000000.0 1000.0
-10000.0 -20000.0 -300000.0 6 -3 -1 -2000000.0 7000000.0 20000000.0 2000.0
0.3 3 7 -0.0007 0.0001 3e-05 -300.0 1000.0 2000.0 5
First 10x10 elements of the Stiffness matrix
0.04 -0.005 0.007 2e-06 0.0001 -5e-07 -1e-05 -9e-07 8e-05 -5e-10
-0.005 0.03 0.02 -0.0001 1e-06 -3e-07 3e-05 -0.0001 8e-05 -3e-08
0.007 0.02 0.08 -6e-06 -5e-06 -7e-07 4e-05 -0.0001 0.0005 -3e-08
2e-06 -0.0001 -6e-06 2e-06 -4e-10 2e-11 -8e-09 3e-08 -2e-08 6e-12
0.0001 1e-06 -5e-06 -4e-10 3e-06 2e-10 -3e-09 3e-09 -7e-09 6e-13
-5e-07 -3e-07 -7e-07 2e-11 2e-10 5e-07 -2e-08 5e-09 -5e-09 1e-12
-1e-05 3e-05 4e-05 -8e-09 -3e-09 -2e-08 0.04 0.004 0.003 1e-06
-9e-07 -0.0001 -0.0001 3e-08 3e-09 5e-09 0.004 0.02 -0.02 0.0001
8e-05 8e-05 0.0005 -2e-08 -7e-09 -5e-09 0.003 -0.02 0.08 -5e-06
-5e-10 -3e-08 -3e-08 6e-12 6e-13 1e-12 1e-06 0.0001 -5e-06 2e-06
First 10x10 elements of the Mass matrix

Then, we extract the coordinates of the interface nodes.

  [int_xyz, int_i, n_xyz, n_i, nodes] = extractNodes('strut_encoder_out_nodes_3D.txt');
Total number of Nodes 8
Number of interface Nodes 8
Number of Modes 6
Size of M and K matrices 54
Node i Node Number x [m] y [m] z [m]
1.0 504411.0 0.0 0.0 0.0405
2.0 504412.0 0.0 0.0 -0.0405
3.0 504413.0 -0.0325 0.0 0.0
4.0 504414.0 -0.0125 0.0 0.0
5.0 504415.0 -0.0075 0.0 0.0
6.0 504416.0 0.0325 0.0 0.0
7.0 504417.0 0.004 0.0145 -0.00175
8.0 504418.0 0.004 0.0166 -0.00175
Coordinates of the interface nodes

Using K, M and int_xyz, we can use the Reduced Order Flexible Solid simscape block.

Piezoelectric parameters

Parameters for the APA300ML:

  d33 = 3e-10; % Strain constant [m/V]
  n = 80; % Number of layers per stack
  eT = 1.6e-8; % Permittivity under constant stress [F/m]
  sD = 2e-11; % Elastic compliance under constant electric displacement [m2/N]
  ka = 235e6; % Stack stiffness [N/m]
  C = 5e-6; % Stack capactiance [F]
  na = 2; % Number of stacks used as actuator
  ns = 1; % Number of stacks used as force sensor

Identification of the Dynamics

The dynamics is identified from the applied force to the measured relative displacement.

The same dynamics is identified for a payload mass of 10Kg.

  m = 10;

/tdehaeze/nass-fem/media/commit/925ac9c3c51676e6eaae5ad1430ca6ea089845a0/figs/dynamics_encoder_full_strut.png

Dynamics from the force actuator to the measured motion by the encoder

Bibliography   ignore

bibliographystyle:unsrt bibliography:ref.bib