Discussion Closed This discussion was created more than 6 months ago and has been closed. To start a new discussion with a link back to this one, click here.

Rigid connector as rotation sensor

Please login with a confirmed email address before reporting spam

Hello,

I'm trying to use the rigid connector as an angle sensor, but I'm having troubles interpreting the values.

In my case I have a 3D solid mechanics simulation of an object, and I apply a rigid connector constraint to one surface. The "rigidization" of the surface is not a problem for me, since that face is indeed mostly rigid. Additionally, I constraint the rotations around 2 axes (x and z), so that the surface is now only allowed to rotate around y axis. Since my case only allows rotation around Y axis, what I'm hoping to obtain is a number representing the angle I'm rotating around that axis (I know that rotations around more axes become quite complex to understand, but my case should be simpler since is only around Y). And my problem is that I'm unable to extract that number from the simulation.

I run an eigenfrequency analysis, and I can see in the global evaluation that it is possible to access both the "rotation vector" and the "rotation matrix". I also notice that the displacements for each mode are quite large relative to the size of the structure (I'm using mass normalization and it is a light structure), and therefore the angle that I'm looking for is near 90 degrees (I can see that in a deformed shape with scale factor 1).
In the rotation vector, I only have non-zero values on direction Y, but they are complex numbers. for instance:
Eigenfrequency Rotation vector, y component (rad)
11.26198 -6.28319+44.13022i

I also tried looking into the terms of the rotation matrix. According to wikipedia, the rotation matrix of a elementary rotation around Y should look like: upload.wikimedia.org/math/2/8/5/2851c9dc2031127e6dacfb84b96446d8.png. I do see the inner cross of 1 and zeros, but the corner positions are not clear. The (x,x) and (z,z) positions are always 1, which is strange since that position is supposed to be cos(tetha), and tetha is almost 90 (I evaluated those with solid.rotzZ_rig1 and equivalents for other DOFs). Also, I checked (x,z) and (z,x) positions and they have large values (like 1.2e5), which is estrange since those are supposed to be sines of an angle.

So, all in all, I don't know how to extract the angle out of the global evaluations.
Any idea?

1 Reply Last Post 4 févr. 2014, 11:23 UTC−5
Henrik Sönnerlind COMSOL Employee

Please login with a confirmed email address before reporting spam

Posted: 1 decade ago 4 févr. 2014, 11:23 UTC−5
Hi,

In principle you can use the rigid connector as a rotation sensor, but not in an eigenfrequency analysis.

The size of the deformations in an eigenmode are only defined up to arbitrary scaling factor. The eigenvalue problem as such is a however linear problem, so its results are valid only at small perturbations from the original geometry. Since everything is supposed to be linear, the rigid connector will also only contain a linearization of the full formulation. This assumption will be violated when you try to evaluate a rotation from the (arbitrarily scaled) large deformations. Essentially, cos(theta) = 1 and sin(theta) = theta in the linearized formulation. The degrees of freedom of the rigid connector (called a, b, c, d) will be scaled in the same way as the displacement, and will not fulfill the nonlinear constraint a^2+b^2+c^+d^2=1, since it is not enforced.

This does not mean that there is anything wrong with using rigid connectors in an eigenvalue analysis, only that the values of the rotations cannot be evaluated in the postprocessing.

This should seldom be problem in practice, since you do not want to measure an angle which is arbitrary anyway. If you want to compare the ratio of two angles in the eigenmode, the operations would of course make sense, since the whole eigenmode is scaled by the same factor. This can be done by taking the ratio of the rigid connector degrees of freedom. As an example, the ratio between the rotation around the x-axis in two rigid connectors can be computed as comp1.solid.b_rig1/comp1.solid.b_rig2.

Regards,
Henrik
Hi, In principle you can use the rigid connector as a rotation sensor, but not in an eigenfrequency analysis. The size of the deformations in an eigenmode are only defined up to arbitrary scaling factor. The eigenvalue problem as such is a however linear problem, so its results are valid only at small perturbations from the original geometry. Since everything is supposed to be linear, the rigid connector will also only contain a linearization of the full formulation. This assumption will be violated when you try to evaluate a rotation from the (arbitrarily scaled) large deformations. Essentially, cos(theta) = 1 and sin(theta) = theta in the linearized formulation. The degrees of freedom of the rigid connector (called a, b, c, d) will be scaled in the same way as the displacement, and will not fulfill the nonlinear constraint a^2+b^2+c^+d^2=1, since it is not enforced. This does not mean that there is anything wrong with using rigid connectors in an eigenvalue analysis, only that the values of the rotations cannot be evaluated in the postprocessing. This should seldom be problem in practice, since you do not want to measure an angle which is arbitrary anyway. If you want to compare the ratio of two angles in the eigenmode, the operations would of course make sense, since the whole eigenmode is scaled by the same factor. This can be done by taking the ratio of the rigid connector degrees of freedom. As an example, the ratio between the rotation around the x-axis in two rigid connectors can be computed as comp1.solid.b_rig1/comp1.solid.b_rig2. Regards, Henrik

Note that while COMSOL employees may participate in the discussion forum, COMSOL® software users who are on-subscription should submit their questions via the Support Center for a more comprehensive response from the Technical Support team.