User Tools

Site Tools


parallel_flexure_guide

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
parallel_flexure_guide [2017/10/12 13:40]
mark.naves
parallel_flexure_guide [2023/06/01 20:50] (current)
marijn.nijenhuis [Example: Compute motion/deformations of a parallel flexure guide]
Line 1: Line 1:
-====== simulation of parallel flexure guide ======+====== SPACAR Light ======
  
-This example shows the static simulation of a parallel flexure guide which moves from -20mm deflection up to 20mm deflection in x-direction (the degree of freedom of the parallel flexure guide). Goal is to evaluate the translational stiffness in the supporting directions (y- and z-direction) of the end-effector over the range of motion.+===== Example: Compute motion/deformations of a parallel flexure guide =====
  
-{{ :parallel_guide.gif?direct |}}+This example shows the static simulation of a parallel flexure guide which moves from -20 mm deflection up to 20 mm deflection in x-direction (the degree of freedom of the parallel flexure guide). Goal is to evaluate the translational stiffness in the supporting directions (y- and z-direction) of the end-effector over the range of motion.
  
 +{{::parallel-guide.gif?direct|}}
  
 +After a successful simulation, SPACAR Light returns the compliance matrix of each node (per loadstep) - see the [[full_syntax|Full Syntax List]]. For a compliance matrix ''C'', it holds that ''u = C*f''. Vector ''u = [ux;uy;uz;rx;ry;rz]'' consists of displacement components ''ux'', ''uy'', ''uz'' (in the ''x''-,''y''- and ''z''-direction, resp.) and rotation components ''rx'', ''ry'', ''rz'' (about the ''x''-,''y''- and ''z''-axis, resp.). Vector ''f = [fx;fy;fz;mx;my;mz]'' consists of force components ''fx'', ''fy'', ''fz'' (in the ''x''-,''y''- and ''z''-direction, resp.) and moment components ''mx'', ''my'', ''mz'' (about the ''x''-,''y''- and ''z''-axis, resp.). For the 'global' compliance matrix ''CMglob'', the components are resolved in the global coordinate frame. This is the fixed (inertial) frame (which is also the axes frame indicated in SpaVisual with labels ''x'', ''y'' and ''z''). For the 'local' compliance matrix ''CMloc'', the components are resolved in the local frame of the node (meaning that the coordinate frame rotates with the node). The stiffness matrix ''K'', for which ''f = K*u'', is the inverse of the compliance matrix ''C''.
  
  
Line 13: Line 15:
  
  
- +An example file for providing the input for SPACAR Light is provided below.
-An example file for providing the input for Spacar Light and the dat-file is provided bellow for download.+
 <code matlab pfg_example.m> <code matlab pfg_example.m>
 clear clear
 clc clc
 +  
 +% addpath('spacar') %point this to the spacar folder
  
 %% NODE POSITIONS %% NODE POSITIONS
-nodes = [-50E-3 0.0 0;      %node 1+nodes = [-50e-3 0.0 0       %node 1
          -50e-3 100e-3 0    %node 2          -50e-3 100e-3 0    %node 2
          0 100e-3 0         %node 3          0 100e-3 0         %node 3
          50e-3 100e-3 0     %node 4          50e-3 100e-3 0     %node 4
-         50e-3 0 0];        %node 2+         50e-3 0 0];        %node 
 +  
 +%node 3 is only added so that the system properties can be evaluated right there
  
-      
 %% ELEMENT CONNECTIVITY %% ELEMENT CONNECTIVITY
 elements = [1 2             %element 1: 1st leafspring elements = [1 2             %element 1: 1st leafspring
Line 33: Line 36:
             3 4             %element 3: 2nd half of rigid body             3 4             %element 3: 2nd half of rigid body
             4 5];           %element 4: 2nd leafspring             4 5];           %element 4: 2nd leafspring
- +  
-        + 
 %% NODE PROPERTIES %% NODE PROPERTIES
 nprops(1).fix = true;       %fix begin 1st leafspring nprops(1).fix = true;       %fix begin 1st leafspring
 nprops(5).fix = true;       %fix end 2nd leafspring nprops(5).fix = true;       %fix end 2nd leafspring
- +  
-nprops(3).force = [0 -10 0]; %load of 10N on node 3 y-direction+nprops(3).force = [0 -10 0];%load of 10N on node 3 y-direction
 nprops(3).mass = 1;         %1kg mass at node 3 nprops(3).mass = 1;         %1kg mass at node 3
 nprops(3).displ_initial_x = -20e-3; %initial displacement, node 3 -20mm moved in x  nprops(3).displ_initial_x = -20e-3; %initial displacement, node 3 -20mm moved in x 
 nprops(3).displ_x = 40e-3;  %additional displacement, node 3 40mm moved in x  nprops(3).displ_x = 40e-3;  %additional displacement, node 3 40mm moved in x 
- +  
 + 
 %% ELEMENT PROPERTIES %% ELEMENT PROPERTIES
 eprops(1).elems = [1 4];    %both leafsprings eprops(1).elems = [1 4];    %both leafsprings
-eprops(1).emod = 210e9;     %E-mod steel +eprops(1).emod = 210e9;     %steel 
-eprops(1).smod = 70e9;      %G-mod steel +eprops(1).smod = 70e9;      %steel 
-eprops(1).dens = 7800;      %rho steel+eprops(1).dens = 7800;      %steel
 eprops(1).dim = [30e-3 0.5e-3]; eprops(1).dim = [30e-3 0.5e-3];
 eprops(1).cshape = 'rect'; eprops(1).cshape = 'rect';
-eprops(1).flex = [2 3 4]  %bending and torsion flexible+eprops(1).flex = 1:6
 eprops(1).orien = [0 0 1]; eprops(1).orien = [0 0 1];
-eprops(1).nbeams = 2;       %2 beams for simulation +eprops(1).nbeams = 2;       %2 beams per element 
- +eprops(1).color = [0.8549    0.8588    0.8667]; 
-eprops(2).elems = [2 3];    %end-effector +  
-eprops(2).dens = 2700;      %rho alluminium+eprops(2).elems = [2 3];    %rigid body 
 +eprops(2).dens = 2700;      %aluminium
 eprops(2).dim = [30e-3 10e-3]; eprops(2).dim = [30e-3 10e-3];
 eprops(2).cshape = 'rect'; eprops(2).cshape = 'rect';
 eprops(2).orien = [0 0 1]; eprops(2).orien = [0 0 1];
-eprops(2).color = [0 0];  %red color +eprops(2).color = [0.1686    0.3922    0.6627]; 
- +  
- + 
-%% RELEASES +
-rls(1).def = [2 3 4 5 6]; +
-rls(4).def = [3 4]; +
 %% OPTIONAL %% OPTIONAL
 opt.gravity = [0 0 -9.81];  %gravity in z-direction opt.gravity = [0 0 -9.81];  %gravity in z-direction
-opt.loadsteps = 50;+opt.loadsteps = 50;         %additional load steps (default 10) to get  
 +                            %higher resolution plots 
 + 
  
 %% DO SIMULATION %% DO SIMULATION
-out = spacarlight(nodes,elements,nprops,eprops,rls,opt); +out = spacarlight(nodes,elements,nprops,eprops,opt); 
- + 
-%Plot stiffness values over the range of motion +
-Ky(:) = 1./out.node(3).CMglob(2,2,:); %Y stiffness evaluated at node 3 +
-Kz(:) = 1./out.node(3).CMglob(3,3,:); %Z stiffness evaluated at node 3 +
-x = out.node(3).p(1,:).*1000;         %Position of the end-effector in mm (.*1000)+
  
 +%% POST PROCESS RESULTS
 +%plot stiffness values over the range of motion
 +Ky(:) = 1./out.node(3).CMglob(2,2,:); %y stiffness evaluated at node 3
 +Kz(:) = 1./out.node(3).CMglob(3,3,:); %z stiffness evaluated at node 3
 +x = out.node(3).p(1,:).*1000;         %position of the end-effector in mm (.*1000)
 + 
 fig1 = figure; fig1 = figure;
 hold on hold on
Line 87: Line 91:
 xlabel('x-position [mm]') xlabel('x-position [mm]')
 ylabel('y-stiffness [N/m]') ylabel('y-stiffness [N/m]')
-fig1.Children.YScale = 'log'        %plot with log yscale +fig1.Children.YScale = 'log'       %plot with log yscale 
-fig1.Children.YLim = [1e4 1e10] +fig1.Children.YLim = [1e4 1e10];
-</code> +
- +
-<code dat pfg_example.dat> +
-#Dat-file generated with Spacar light version 0.73 +
-#Date: 12-Oct-2017 13:33:42 +
- +
- +
- +
-#NODES Nn X Y Z +
-X   1 -0.050000 0.000000 0.000000 #node 1 +
-X   3 -0.050000 0.100000 0.000000 #node 2 +
-X   5 0.000000 0.100000 0.000000 #node 3 +
-X   7 0.050000 0.100000 0.000000 #node 4 +
-X   9 0.050000 0.000000 0.000000 #node 5 +
-X 11 -0.050000 0.050000 0.000000 #intermediate node +
-X 19 0.050000 0.050000 0.000000 #intermediate node +
- +
- +
- +
-#ELEMENTS Ne Xp Rp Xq Rq Ox Oy Oz +
-#element 1 +
-BEAM   1   1   2 11 12 0.000000 0.000000 1.000000 #beam 1 +
-BEAM   2 11 12   3   4 0.000000 0.000000 1.000000 #beam 2 +
-#element 2 +
-BEAM   3   3   4   5   6 0.000000 0.000000 1.000000 #beam  +
-#element 3 +
-BEAM   4   5   6   7   8 0.000000 0.000000 1.000000 #beam  +
-#element 4 +
-BEAM   5   7   8 19 20 0.000000 0.000000 1.000000 #beam 1 +
-BEAM   6 19 20   9 10 0.000000 0.000000 1.000000 #beam 2 +
- +
- +
- +
-#DEF# Ne d1 d2 d3 d4 d5 d6 +
-DYNE   1   2   3   4 +
-RLSE   2   2   3   4   5   6 +
-DYNE   5   2   3   4 +
-DYNE   6   2 +
-RLSE   6   3   4 +
- +
- +
- +
-#FIXES Nn +
-FIX   1   +
-FIX   2 +
-FIX   9   +
-FIX 10 +
- +
- +
- +
-#INPUT Nn dir +
-INPUTX   5 1 +
- +
- +
- +
-END +
-HALT +
- +
- +
-#STIFFNESS Ne EA GJt EIy EIz Shear Y Shear Z +
-ESTIFF   1       3150000.000000        0.086798        0.065625      236.250000        0.000000        0.000262 +
-ESTIFF   2       3150000.000000        0.086798        0.065625      236.250000        0.000000        0.000262 +
-ESTIFF   5       3150000.000000        0.086798        0.065625      236.250000        0.000000        0.000262 +
-ESTIFF   6       3150000.000000        0.086798        0.065625      236.250000        0.000000        0.000262 +
- +
- +
- +
-#MASS Ne M/L Jxx/L Jyy/L Jzz/L Jyz/+
-EM   1    0.1170000000    0.0000087774    0.0000000024    0.0000087750    0.0000000000 +
-EM   2    0.1170000000    0.0000087774    0.0000000024    0.0000087750    0.0000000000 +
-EM   5    0.1170000000    0.0000087774    0.0000000024    0.0000087750    0.0000000000 +
-EM   6    0.1170000000    0.0000087774    0.0000000024    0.0000087750    0.0000000000 +
- +
- +
- +
-#FORCES Nn Fx Fy Fz +
-DELXF   5 0.000000 -10.000000 0.000000 +
- +
- +
- +
-#INPUTX Nn dir dx +
-DELINPX   5 1 0.040000 +
-INPUTX   5 1 -0.020000 +
- +
- +
- +
-#MASS   Nn M,Ixx Ixy Ixz Iyy Iyz Izz +
-XM   5 1.000000 +
- +
- +
- +
-#ADDITIONAL PROPERTIES +
-# Gx Gy Gz +
-GRAVITY 0.000000 0.000000 -9.810000 +
- +
-ITERSTEP 10 49 0.0000005 1 3 49 +
- +
- +
- +
-END +
-END +
- +
- +
- +
-VISUALIZATION +
- +
-BEAMPROPS   1   2   5   6 +
-CROSSTYPE   RECT +
-CROSSDIM   0.030000 0.000500 +
- +
-BEAMPROPS   3   4 +
-CROSSTYPE   RECT +
-CROSSDIM   0.030000 0.010000 +
- +
-GRAPHICS   3   4 +
-FACECOLOR   1.000000 0.000000 0.000000+
 </code> </code>
parallel_flexure_guide.1507808424.txt.gz · Last modified: 2017/10/12 13:40 by mark.naves