Skip to main content


Showing posts from April, 2018

Defining Ansys Superelement SUB File Manually

Photo by  James Owen  on  Unsplash A surprisingly popular blog-post written here is Exporting Stiffness Matrix from Ansys . A sensible follow up question is what can one do with the exported stiffness matrix? In a recent Xansys Forum post, a question was raised on how we can edit the stiffness matrix of a superelement and use it for our model.  An approach presented below is to first create a superelement that has the same number of DOF and nodal location that will serve as a template. An APDL script can then be written to edit the stiffness matrix entries as desired before exporting to a new superelement *.SUB file for use in future models. The self-contained script below demonstrates this.  /prep7 et ,1, 185 mp , ex, 1, 200e3 mp , prxy, 1, 0.33 w = 0.1 ! single element (note nodal locations) n , 1, w, -w, -w n , 2, w, w, -w n , 3, -w, w, -w n , 4, -w, -w, -w n , 5, w, -w, w n , 6, w, w, w n , 7, -w, w, w n , 8, -w, -w, w e , 1, 2, 3, 4, 5, 6, 7, 8 /solu antype , substr     ! analy

Tension Only LINK180

Figure 1: Von Mises Stress Animation LINK180 is a very interesting element which allows tension but not compression. A snippet in a Beam element does the trick of configuring beams in Workbench into tension only beams. et, matid, 180 *get, area, secp, matid, prop, area sectype, matid, link secdata,  area seccontrol,, 1 ! Tension only The example problem has a thin plate that has a Revolute joint in the middle that rotates \(\pm3^o\). The two chain LINK180 on each sides of the plate will thus take turns being in tension and be relaxed. Figure 2: Displacement Animation The forces plotted using SMISC1 shows forces in tension. Figure 3: Force Animation V18.2 Archived Workbench File: Link

APDL Pseudoinverse Least Square Fit

Curve fitting is a frequently used tool in engineering. I wished my linear algebra teacher taught me pseudoinverse. As used in the previous blog post  script, it computes the least-square curve fit for linear equations. This can come in handy for fitting 2D or even 9D variables. For a simple 2D straight line, the equation is \( y = m \cdot x + c\). Writing it matrix form, we have: \(y = \begin{bmatrix} x & 1 \end{bmatrix} \cdot \begin{bmatrix} m\\c \end{bmatrix}\) With multiple data points in space (e.g. \((x_1,y_1), (x_2,y_2),\dots\) ) the equation looks like this... \( \begin{bmatrix}y_1\\y_2 \\y_3\\ \vdots \end{bmatrix} = \begin{bmatrix} x_1 & 1\\ x_2 & 1 \\ x_3 & 1 \\ \vdots & \vdots \end{bmatrix} \cdot \begin{bmatrix} m\\c \end{bmatrix} \) This matrix looks similar to \(y = A \cdot b\) where our \(A = \begin{bmatrix} x_1 & 1 \\ x_2 & 1 \\ x_3 & 1 \\ \vdots & \vdots \end{bmatrix} \) and \(b = \begin{bmatrix} m\\c \end{bmatrix} \)

Extract Translation & Euler Angle Rotation

Figure 1:  Z-X'-Y '' Rotation of the 'Grip' PADT has a recent post on Extracting Relative Displacements in ANSYS Mechanical. The macro only works for small angles (in the order of 5 degrees). The accompanied PDF file shows: \(u = dR \cdot (x-\overline{x}) + \overline{u}\) Their nomenclature:    \(dR\) : Small rotation matrix    \(x\) : Nodal position vector    \(\overline{x}\) : Center of Gravity (CG) position vector    \(u\) : Nodal displacement vector    \(\overline{u}\) : CG displacement vector To extend their work to account for large deflection, I've added some terms: \(x + u - \overline{x} \approx R \cdot (x - \overline{x}) + \overline{u} \)    \(R\) : Rotation Matrix The left side of the equation is the final deformed body. The right side of the equation is the rigid body rotation and translation. As the rotation is applied at the center of the body, \(\overline{x}\) is accounted for on both sides of the equation. Note that '