User Tools

Site Tools


rotationaxis

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
rotationaxis [2020/06/05 17:52]
marijn.nijenhuis
rotationaxis [2020/06/05 18:14] (current)
marijn.nijenhuis
Line 7: Line 7:
 When analyzing the eigenmodes of a system, some modes may show significant motion of rigid bodies. Other modes may show mostly flexible deformation, with very little motion of rigid bodies. When analyzing the eigenmodes of a system, some modes may show significant motion of rigid bodies. Other modes may show mostly flexible deformation, with very little motion of rigid bodies.
  
-[{{::rotax_mode1.gif|First eigenmode, with rigid body motion}}] +[{{::rotax_mode1.gif|First eigenmode, with rigid body motion.}}] 
-[{{::rotax_mode2.gif|Second eigenmode, with hardly any rigid body motion}}]+[{{::rotax_mode2.gif|Second eigenmode, with (almost) no rigid body motion.}}]
  
  
-For the interpretation of the rigid body motion in an eigenmode, it can be helpful to visualize the effective axis of rotation. This can be done in a post-processing step, following a SPACAR Light simulation, using standard MATLAB plotting commands and a custom script: {{ :getpoleaxis.m.zip |}}.+For the interpretation of the rigid body motion in an eigenmode, it can be helpful to visualize the effective axis of rotation. This can be done in a post-processing step, following a SPACAR Light simulation, using standard MATLAB plotting commands and a custom script: {{ :getpoleaxis.m.zip |}}. The script getPoleAxis.m (case-sensitive) needs to be placed in the same folder as the main script for the model (or at least be available on the MATLAB path).
  
-In the MATLAB script, after ''out = spacarlight(nodes,elements,nprops,eprops,opt);'', we'll add the following lines:+In the main model script, after ''out = spacarlight(nodes,elements,nprops,eprops,opt);'', we'll add the following lines:
  
 <code matlab> <code matlab>
Line 45: Line 45:
 </code> </code>
  
-Here, we're using the standard MATLAB plotting command ''plot3'' to mark the node ''i_node'', mark the point on the rotation axis, and plot the rotation axis itself.+Here, we're using the standard MATLAB plotting command ''plot3'' to mark the node ''i_node'', to mark the point on the rotation axis, and to plot the rotation axis itself.
  
-The results for two eigenmodes are shown in the figures below. Node 3 was used, which is one of the nodes connected to the dark blue rigid body stage of the cross-hinge mechanism.+The results for two eigenmodes are shown in the figures below. Node 3 was used, which is one of the nodes connected to the dark blue rigid body stage of the cross-hinge mechanism, and indicated by the black dot.
  
 [{{::rotax_mode1res.gif|First eigenmode. Red line shows the effective axis of rotation.}}] [{{::rotax_mode1res.gif|First eigenmode. Red line shows the effective axis of rotation.}}]
Line 54: Line 54:
  
 A few remarks: A few remarks:
-  * This visualization code is rather crude, in the sense that it's a direct overlay on top of the Spavisual window. We're just computing the coordinates of a line and inserting it into an existing figure. There is no interaction with the Spavisual buttons. Make sure that the eigenmode you're viewing in Spavisual is the same as the mode that you plotted the rotation axis for. +  * This visualization code is rather crude, in the sense that it's a direct overlay on top of the Spavisual window. We're just computing the coordinates of a line and inserting it into an existing figure. There is no interaction with the Spavisual buttons. So, make sure that the eigenmode you're viewing in Spavisual is the same as the mode that you plotted the rotation axis for. 
-  * If the specified node does not actually rotate in the specified eigenmode, there is no rotation and there will be no effective axis. Calls to ''getPoleAxis'' in that case may not produce an error and probably just lead to incorrect numbers being returned. +  * If the specified node does not actually rotate in the specified eigenmode, there is no rotation and there will be no effective axis. Calls to ''getPoleAxis'' in that case may //not// produce an //error// and probably just lead to incorrect numbers being returned. The same holds in the case that the rigid body is moving as a pure translation: even though there is no effective rotation axis, the script may not produce an error, and just return erroneous numbers, without a warning
-  * There may be a translation along the rotation axis +  * Simulation results in general may be displayed in various load steps (e.g. if command like ''nprops(i).force'' or ''nprops(i).displ_x'' is used, rather than ''nprops(i).force_initial'' or ''nprops(i).displ_initial_x''). The number of load steps in a simulation result is indicated in the Spavisual window by means of the large horizontal load step slider at the bottom. For each load step, a new set of eigenmodes is shown. The ''getPoleAxis'' script, used in this example, uses the eigenmodes that correspond with the //first load step//. Again, there is no interaction between the Spavisual buttons and this visualization script, so take care to look at the correct eigenmode and the load step. 
-  * Timestep+  * It is possible that the motion of a rigid body consists of //both// a rotation about an effective axis //and// a simultaneous translation along that same axis: the rigid body then makes a screw motion. In this case, the script //will return// the effective axis. 
 + 
  
 <code matlab rotaxis_example.m> <code matlab rotaxis_example.m>
rotationaxis.1591372348.txt.gz · Last modified: 2020/06/05 17:52 by marijn.nijenhuis