In a previous post, the Craig-Bampton (CB) substructuring method was used in Ansys to simplify a part for reuse. To learn more about what Ansys does in the background, I did some reading up. Here are some good resources:

**Resources**

Original Paper link

FEMCI general description: link

My Go-to Primer link

Tom Irvine's tutorial papers and Matlab scripts link

**Octave/Matlab Scripts**

Inspired by Tom's Matlab script, I coded a script to condense two 'random' bodies, keep only 10 modes of each body with 3 nodal interface points between them. The 'random' bodies are positive definite matrix that is generated randomly for each run to represent two mass and stiffness matrices. Running the script again would generate a different system and different plots.

Here are the links to the two Octave/Matlab scripts used to create the plots below:

Main Script: Random2PartsCB.m link (run this one)

Minion Script: CraigBampton.m link

A run of the script may yield something like Figure 1 below. As only 10 modes were kept of body #1 and 10 additional modes were kept for body #2 as master nodes, the error exceeding 5% occurs right around the 20th mode. This is worth keeping in mind when selecting the master (M) degree of freedom.

Figure 1 - Natural Frequency Error

Three transfer functions are then computed at the 3 connection points comparing the CB System to the original Full System. The results compares well enough.

Figure 2 - Transfer Function comparison

I'm sure there are quite a few bugs in the script but I'm satisfied with the results for now. Two key caveats: damping was ignored and Load Transformation Matrix (LTM) was not used.

**All posts on Superelement**

Reuse CMS Superelement in Ansys Workbench with Expansion Link

Component Mode Synthesis (CMS) with Results Expansion in Ansys Workbench Link

Craig Bampton Method Overview Link

Component Mode Synthesis(CMS) Substructure in ANSYS Workbench Link

**Addendum**

It was pointed out to me that Hurty (1965) first proposed this ideas before Craig (1968).

Hurty, W. C. (1965). Dynamic analysis of structural systems using component modes. AIAA Journal,3(4), 678–685

Great web site dear Sze Kwan;

ReplyDeleteplz can you guide me to achieve my task wich is about extract mass and stiffness matricess from ansys to matlab and performing craig-bamptom method of different dynamic mode. I modeled a wing strcuture and i extracted the both matrices from ansys. Now, i'm discontinued in craig-bamptom method. I have consulted all the links that you have already applied for on this site but I cannot project my idea. plz guide me i'm a PhD in mechanical engineering and i want to do something about flexible body so i chose performing lumped parametr method and finite element method for my wing structure, for LPM i did it well but currently i'm discontinued with the second method and excatly in craig-bamptom method.

Plz help me

"can you guide me to achieve my task wich is about extract mass and stiffness matricess from ansys to matlab and performing craig-bamptom method of different dynamic mode"

DeleteHi Atef,

Please see https://www.ansystips.com/2017/10/export-stiffness-matrix-from-ansys.html and https://www.ansystips.com/2019/05/matrix-transfer-between-matlab-and-ansys.html

on exporting mass and stiffness matrix to Matlab.

The post here has example scripts needed for an implementation of Craig-Bampton given the mass and stiffness extracted. Tom Irvine's tutorial is an especially useful reference.

Dear Sze Kwan;

ReplyDeleteThank you very much for your answer

Just a quick questions:

1---- I extracted mass and stiffness matrices using commands below (obtained from tutorial video of ansys youtube channel)but i obtained the both of matrices (.matrix) file with capacity of 10 Gega Byte!!! that makes sense?????

! below commands create dense matrix

! Stiffness

*DMAT,MatKD,D,IMPORT,FULL,file.full,STIFF

*PRINT,MatKD,Kdense.matrix

! Mass

*DMAT,MatMD,D,IMPORT,FULL,file.full,MASS

*PRINT,MatMD,Mdense.matrix

! below commands create sparse matrix

*SMAT,MatKS,D,IMPORT,FULL,file.full,STIFF

*PRINT,MatKS,Ksparse.matrix

For Mass

*SMAT,MatMS,D,IMPORT,FULL,file.full,MASS

*PRINT,MatMS,Msparse.matrix

2----- For Tom Irvine's tutorial, i used his code matlab wich is about Craig-bamptom putting my matrices but i did not get valid simulation and results!!!

3---- What means please, this description :

'C-B - 3D EB beam model, 3 interface frames, 100 elements, 18 static modes, 10 dynamic modes'

'C-B - 3D EB beam model, 3 interface frames, 100 elements, 30 static modes, 20 dynamic modes'

thank you very much sir :)

1a. You may try *SMAT instead of *DMAT to make it a sparse matrix.

Delete1b. Use *EXPORT instead of *PRINT to take advantage of Matrix Market Format.

1c. Perhaps try first with a very small simple model with few nodes.

2. It worked for me years ago. Sorry I can't trouble shoot from afar.

3. Sorry, I don't know what that means either.