User Tools

Site Tools


parallel_flexure_guide_transfer

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_transfer [2018/05/16 13:51]
marijn.nijenhuis
parallel_flexure_guide_transfer [2021/05/05 14:17] (current)
marijn.nijenhuis
Line 3: Line 3:
 ===== Example: Compute transfer function of a parallel flexure guide ===== ===== Example: Compute transfer function of a parallel flexure guide =====
  
-This example shows the computation of the transfer function from input actuator force (force in x-direction on the end-effector) to output stage displacement (motion in x-direction of the end-effector) of a parallel flexure guide. +This example shows the computation of the transfer function from input actuator force (force in x-direction on the end-effector) to output stage displacement and velocity (motion in x-direction of the end-effector) of a parallel flexure guide. 
 {{::parallel flexure guide.png?direct|}} {{::parallel flexure guide.png?direct|}}
  
-The state-space equations (from which the transfer function follows) can be computed by specifying the input and output for the transfer function. For this example, actuation force in x-direction on node 3 (a node on the end-effector) is used for input, and displacement in x-direction of node 3 is used for the outputThis can be specified with the ''nprops(i).transfer_in'' and ''nprops(i).transfer_out'' arguments. Furthermore, to enable the computation of the state-space equations, the optional field ''opt.transfer'' has to be set to ''true''. For details, see the [[full_syntax|SPACAR Light full syntax]]. For this case, the MATLAB file that defines the flexure mechanism is supplemented with+The state-space equations (from which the transfer function follows) can be computed by specifying the input and output for the transfer function. For this example, actuation force in x-direction on node 3 (a node on the end-effector) is used for input. Two desired outputs are specified: the first is the displacement in x-direction of node 3; the second is the velocity in x-direction of node 5These can be specified with the ''nprops(i).transfer_in'' and ''nprops(i).transfer_out'' arguments. Furthermore, to enable the computation of the state-space equations, the optional field ''opt.transfer'' has to be set to ''true''. For details, see the [[full_syntax|SPACAR Light full syntax]]. For this case, the MATLAB file that defines the flexure mechanism is supplemented with
 <code matlab> <code matlab>
-nprops(3).transfer_in  = {'force_x'};       %Input for state-space equations +nprops(3).transfer_in  = {'force_x'};       %Input for state-space equations 
-nprops(3).transfer_out = {'displ_x'};       %Output for state-space equations+nprops(3).transfer_out = {'displ_x'};       %Output 1 for state-space equations 
 +nprops(5).transfer_out = {'veloc_x'};       %Output 2 for state-space equations
 ... ...
 opt.transfer = {true 0.01};       %Calculation of state-space equations (with relative damping 0.01) opt.transfer = {true 0.01};       %Calculation of state-space equations (with relative damping 0.01)
Line 20: Line 21:
 For details, see the [[full_syntax|SPACAR Light full syntax]]. For details, see the [[full_syntax|SPACAR Light full syntax]].
  
-The resulting transfer function is plotted in the figure below. The first eigenfrequency is approximately 10 rad/s;  the first parasitic eigenfrequency appears at 360 rad/s.+The resulting transfer function between the input and the first output is plotted in the figure below. The first eigenfrequency is approximately 10 rad/s;  the first parasitic eigenfrequency appears at 360 rad/s.
  
-{{::transfer pfg.png?direct|}}+{{::bode.png?direct|}} 
 + 
 +Note that in case of multiple inputs and/or outputs, the resulting state-space structure in MATLAB will also indicate with named labels what these inputs and outputs are (i.e. node number and displacement, velocity or force).
  
 An example file for providing the input for SPACAR Light and plotting the transfer function is provided below. An example file for providing the input for SPACAR Light and plotting the transfer function is provided below.
Line 55: Line 58:
 %node 3 %node 3
 nprops(3).transfer_in  = {'force_x'};       %Input for state-space equations nprops(3).transfer_in  = {'force_x'};       %Input for state-space equations
-nprops(3).transfer_out = {'displ_x'};       %Output for state-space equations+nprops(3).transfer_out = {'displ_x'};       %Output nr 1 (displ. in x-direction on node 3) for state-space equations 
 +nprops(5).transfer_out = {'veloc_x'};       %Output nr 2 (veloc. in x-direction on node 5) for state-space equations
  
 %node 4 %node 4
Line 65: Line 69:
 eprops(1).elems    = [1 3];            %Add this set of properties to elements 1 and 3 eprops(1).elems    = [1 3];            %Add this set of properties to elements 1 and 3
 eprops(1).emod     = 210e9;            %E-modulus [Pa] eprops(1).emod     = 210e9;            %E-modulus [Pa]
-eprops(1).smod     = 70e9;             %G-modulus [Pa]+eprops(1).smod     = 70e9;             %Shear modulus [Pa]
 eprops(1).dens     = 7800;             %Density [kg/m^3] eprops(1).dens     = 7800;             %Density [kg/m^3]
 eprops(1).cshape   = 'rect';           %Rectangular cross-section eprops(1).cshape   = 'rect';           %Rectangular cross-section
Line 74: Line 78:
 eprops(1).color    = 'grey';           %Color of elements eprops(1).color    = 'grey';           %Color of elements
 eprops(1).opacity  = 0.7;              %Opacity of elements eprops(1).opacity  = 0.7;              %Opacity of elements
-eprops(1).cw       = true;             %Enable (approximate) torsional stiffening due to constraint warping+eprops(1).warping  = true;             %Enable modeling of warping, e.g. for the effect of constrained warping
  
 %Property set 2 %Property set 2
Line 88: Line 92:
 %% OPTIONAL ARGUMENTS %% OPTIONAL ARGUMENTS
 opt.transfer = {true 0.01};       %Calculation of state-space equations (with relative damping 0.01) opt.transfer = {true 0.01};       %Calculation of state-space equations (with relative damping 0.01)
 +opt.filename = 'file';            %Names of files that are produced
  
 %% CALL SPACAR_LIGHT %% CALL SPACAR_LIGHT
Line 93: Line 98:
  
 %% Plot transfer function %% Plot transfer function
-figure +%set some convenient defaults for the plot. Not necessary, but they can improve the plots 
-bode(out.statespace,{1,10000}) +bodeopt = bodeoptions; 
-grid minor+bodeopt.Title.String = 'Title for this plot'; 
 +bodeopt.FreqUnits = 'Hz'; %default frequency units 
 +bodeopt.Xlim = [1,4000]; %frequency axis limits 
 +bodeopt.Grid = 'on'; %show a grid 
 + 
 +bodeopt.Title.FontSize = 14; %font size for title 
 +bodeopt.XLabel.FontSize = 12; %font size for xlabels 
 +bodeopt.YLabel.FontSize = 12; %font size for ylabels 
 +bodeopt.TickLabel.FontSize = 12; %font size for the ticks (numbers on axes) 
 +bodeopt.InputLabels.FontSize = 12; 
 +bodeopt.OutputLabels.FontSize = 12; 
 + 
 +bodeopt.PhaseMatching = 'on'; %phase matching: adding multiples of 360 so that: 
 +bodeopt.PhaseMatchingFreq = 1; %--at this frequency 
 +bodeopt.PhaseMatchingValue = 0; %--the phase is close to this value 
 + 
 +h = bodeplot(out.statespace,bodeopt); %make the plot
 </code> </code>
parallel_flexure_guide_transfer.1526471496.txt.gz · Last modified: 2018/05/16 13:51 by marijn.nijenhuis