====== SPACAR Light walkthrough example ====== This walkthrough given an example of the simulation of a parallel flexure guide. ====== Problem description ====== Let's consider a parallel flexure guide consisting of two parallel leafsprings and an intermediate rigid body. For this problem, we consider L=100mm and W=50mm. Furthermore, we consider steel leafsprings with a width of 50mm and a thickness of 0.5mm. The rigid intermediate body is made from aluminium and has a cross-section of 50x25mm. A schematic overview is given in the figure below. {{:parallel_flexure_guide.jpg?direct&350 |}} ---- //Figure: Parallel flexure guide (from janssenprecisionengineering.com)// ====== Set up simulation ====== To set up the simulation, we first need to define the //Node postions//, //Element connectivity//, //Node properties// and the //Element properties//. ===== Node positions ===== We start by defining the positions of the nodes where we place the origin at node 1. ''nodes'' is an nn×3 matrix for //defining the positions of the nodes//. Each row represents a node (there are nn nodes). The row number determines the number a node gets. The first column contains the ''x''-coordinate of the node position, the second column the ''y''-coordinate, and the third column the ''z''-coordinate. clear %clear workspace clc %clear command window % addpath('spacar') %have this point to the folder where spacar is located %some dimensions L = 0.1; %[m] W = 0.05; %[m] %% NODE POSITIONS nodes = [0 0 0; %node 1 0 L 0; %node 2 W L 0; %node 3 W 0 0]; %node 4 ===== Element connectivity ===== Next the connectivity between elements is defined. Element connectivity is defined by an ne×2 matrix for //defining elements//. Each row represents an element (there are ne elements). The row number determines the number an element gets. Each element connects two nodes. The first column contains the number of the node that the element is connected to on //one// side, the second column the node number that the element is connected to on the //other// side. %% ELEMENT CONNECTIVITY elements= [1 2; %leafspring between node 1 and 2 2 3; %intermediate body 3 4]; %leafspring between node 3 and 4 ===== Node properties ===== Node properties are defined by a structure array to assign properties to nodes, such as boundary conditions, applied loads, and inertia. The usage is ''nprops(i).field = value;'' to assign property ''field'' with value ''value'' to node ''i''. For a full syntax list with all possible inputs, see [[full_syntax#3. Node properties|SPACAR Light syntax]]. First of all, node 1 and 4 are fixed: %% NODE PROPERTIES nprops(1).fix = true; %fix node 1 nprops(4).fix = true; %fix node 4 Furthermore, we would like for the parallel flexure guide to start 10mm deflected to the left and let it move 20mm to the right. For this purpose, we pre-describe the position of node 2 in x-direction: nprops(2).displ_initial_x =-0.01; %start with node 2 displaced 10 mm to the left nprops(2).displ_x = 0.02; %displace node 2 20 mm to the right At last we apply a load of 5N in Z-direction on node 2 and 3 nprops(2).force_initial = [0 0 5]; %initial load of 5N in z-direction on node 2 nprops(3).force_initial = [0 0 5]; %initial load of 5N in z-direction on node 3 ===== Element properties ===== Element properties are defined by a structure array for assigning properties to elements, such as dimensions, material constants, flexibility, and visual appearance. Properties are created in sets, such that the same set of properties can be assigned to multiple elements. The usage is ''eprops(i).field = value;'' to assign property ''field'' with value ''value'' to set ''i''. For a full syntax list with all possible inputs, see [[full_syntax#3. Element properties|SPACAR Light syntax]]. The first element property set is assigned to both leafsprings (element 1 and 3), selected material is steel, width = 50mm, thickness 0.5mm and torsional and out-of-plane bending deformations are considered flexible. Furthermore, two spacar-beams are used to model flexibility of the leafsprings. %% ELEMENT PROPERTIES %first element property set eprops(1).elems = [1 3]; %assing property set 1 to elements 1 and 3 eprops(1).emod = 210e9; %E-modulus [Pa] eprops(1).smod = 70e9; %shear modulus [Pa] eprops(1).dens = 7800; %density [kg/m^3] eprops(1).dim = [0.05 0.0005]; %cross-sectional dimension (width and thickness, resp.) [m] eprops(1).cshape = 'rect'; %rectangular cross-sectional shape eprops(1).flex = [2 3 4]; %flexible deformations: torsion (2) and out-of-plane bending (3,4) eprops(1).orien = [0 0 1]; %width-direction of leafspring oriented in z-direction eprops(1).color = [0.8549 0.8588 0.8667]; %color in rgb values between 0 and 1 The second element property set is assigned to the intermediate body (element 1 and 3), selected material is aluminium, width = 50mm and thickness = 50mm. %second element property set eprops(2).elems = [2]; %assing property set 2 to element 2 eprops(2).dens = 2700; %density [kg/m^3] eprops(2).dim = [0.05 0.025]; %cross-sectional dimension (width and thickness, resp.) [m] eprops(2).cshape = 'rect'; %rectangular cross-sectional shape eprops(2).orien = [0 0 1]; %width-direction of leafspring oriented in z-direction eprops(2).color = [0.1686 0.3922 0.6627]; %color in rgb values between 0 and 1 ====== Run simulation ====== When all input seems complete, a call to ''spacarlight'' can be invoked: out = spacarlight(nodes,elements,nprops,eprops); If the model works, ''spacarlight'' automatically runs the static simulation and produces a visualization of the model. Also, simulation results are stored in the MATLAB workspace in the structure ''out''. ====== Example script ====== clear clc % addpath('spacar') %have this point to the folder where spacar is located %some dimensions L = 0.1; %[m] W = 0.05; %[m] %% NODE POSITIONS nodes = [0 0 0; %node 1 0 L 0; %node 2 W L 0; %node 3 W 0 0]; %node 4 %% ELEMENT CONNECTIVITY elements= [1 2; %leafspring between node 1 and 2 2 3; %intermediate body 3 4]; %leafspring between node 3 and 4 %% NODE PROPERTIES nprops(1).fix = true; %fix node 1 nprops(4).fix = true; %fix node 4 nprops(2).displ_initial_x =-0.01; %start with node 2 displaced 10 mm to the left nprops(2).displ_x = 0.02; %displace node 2 20 mm to the right nprops(2).force_initial = [0 0 5]; %initial load of 5N in z-direction on node 2 nprops(3).force_initial = [0 0 5]; %initial load of 5N in z-direction on node 3 %% ELEMENT PROPERTIES %first element property set eprops(1).elems = [1 3]; %assing property set 1 to elements 1 and 3 eprops(1).emod = 210e9; %E-modulus [Pa] eprops(1).smod = 70e9; %shear modulus [Pa] eprops(1).dens = 7800; %density [kg/m^3] eprops(1).dim = [0.05 0.0005]; %cross-sectional dimension (width and thickness, resp.) [m] eprops(1).cshape = 'rect'; %rectangular cross-sectional shape eprops(1).flex = [2 3 4]; %flexible deformations: torsion (2) and out-of-plane bending (3,4) eprops(1).orien = [0 0 1]; %width-direction of leafspring oriented in z-direction eprops(1).color = [0.8549 0.8588 0.8667]; %color in rgb values between 0 and 1 %second element property set eprops(2).elems = [2]; %assing property set 2 to element 2 eprops(2).dens = 2700; %density [kg/m^3] eprops(2).dim = [0.05 0.025]; %cross-sectional dimension (width and thickness, resp.) [m] eprops(2).cshape = 'rect'; %rectangular cross-sectional shape eprops(2).orien = [0 0 1]; %width-direction of leafspring oriented in z-direction eprops(2).color = [0.1686 0.3922 0.6627]; %color in rgb values between 0 and 1 %% DO SIMULATION out = spacarlight(nodes,elements,nprops,eprops);