Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Problems with 6 dof model #1043

Closed
jguarato opened this issue Apr 3, 2024 · 6 comments · Fixed by #1054
Closed

Problems with 6 dof model #1043

jguarato opened this issue Apr 3, 2024 · 6 comments · Fixed by #1054

Comments

@jguarato
Copy link
Contributor

jguarato commented Apr 3, 2024

Hi @raphaeltimbo,

As I mentioned in Issue #1034, I decided to conduct the same analyses performed in the ROSS tutorial part 2 🔗 for the 6 dof model. The objective was to identify where errors could arise within the code. As some problems were indeed found, I opened this new issue to report them.

@jguarato
Copy link
Contributor Author

jguarato commented Apr 3, 2024

Upon executing part 2 of the tutorial, I encountered the same error when invoking run_static() and run_ucs():

in Rotor.__init__(self, shaft_elements, disk_elements, bearing_elements, point_mass_elements, min_w, max_w, rated_w, tag)
    209 if len(tags_list) != len(set(tags_list)):
    210     raise ValueError("Tags should be unique.")
--> 212 self.number_dof = self._check_number_dof()
    214 ####################################################
    215 # Rotor summary
    216 ####################################################
    217 columns = [
    218     "type",
    219     "n",
   (...)
    237     "tag",
    238 ]
...
    562         "The number of degrees o freedom of all elements must be the same! There are BEARING elements with discrepant DoFs."
    563     )
    565 return int(number_dof)

Exception: The number of degrees o freedom of all elements must be the same! There are BEARING elements with discrepant DoFs.

which can be fixed by replacing the call of BearingElement()class with elm.__class__(). After fixing that, I compared the results obtained from the 4 dof model with the 6 dof model, and observed the following disparities:

  • Running modal analysis:
    compare_1
    compare_2

  • Plotting Campbell diagram:
    compare_3

  • Plotting the deflected shape for the unbalance response:
    compare_4

  • Plotting the deflected shape for the unbalance response:
    compare_5

@jguarato
Copy link
Contributor Author

jguarato commented Apr 3, 2024

So, I started debugging the result classes in results.py to check if there was any coding that fixed the dof number to 4. Therefore, I needed to make some changes mainly in Shape and ForcedResponseResults. After that, I got the following results for the 6 dof model:
newplot(1)
newplot
newplot(2)
newplot(3)
newplot(4)

@jguarato
Copy link
Contributor Author

jguarato commented Apr 3, 2024

Investigating the code I realized that there was still a problem related to the 6 dof model. I started debugging the matrices of the shaft elements by comparing them with the matrices of the 4 dof model. Consequently, I noticed that some signs in K matrix and M matrix did not coincide:
K matrix

After correcting the corresponding signs, the following results were obtained:
newplot
newplot(1)
newplot(2)
newplot(3)
newplot(4)

@jguarato
Copy link
Contributor Author

jguarato commented Apr 3, 2024

Finally, I would like to highlight two points:

  • Apparently, most of the identified issues have been fixed. However, there is still an issue related to the UCS map. When running the UCS map for the 6 dof model passing different numbers of modes to the run_ucs function, the curves that appear on the map are not always smooth as for the 4 dof model. I will continue to investigate this.
    newplot

  • When I compared the M matrix of the shaft element of both models, I noticed another difference between them. In the 4 dof model, the shear effect is taken into account with the consideration of phi variable, however, in the 6 dof model, this effect is considered only in the K matrix but not in M matrix.

This was referenced Apr 4, 2024
@jguarato
Copy link
Contributor Author

Apparently, the problem in the UCS map has already been resolved with the correction applied in PR #931.

ucs_6dof_24modes_fixed

@jguarato
Copy link
Contributor Author

jguarato commented May 8, 2024

n_links still have to be implemented in bearing element matrices for the 6 dof model. When running some analyses, I got errors related to singular matrices.

I was running the following example of the 4 dof model, but which I converted to the 6 dof model:

n = 6

shaft_elem = [
    rs.ShaftElement(
        L=0.25,
        idl=0.0,
        odl=0.05,
        material=steel,
        shear_effects=True,
        rotary_inertia=True,
        gyroscopic=True,
    )
    for _ in range(n)
]

disk0 = rs.DiskElement.from_geometry(
    n=2, material=steel, width=0.07, i_d=0.05, o_d=0.28
)
disk1 = rs.DiskElement.from_geometry(
    n=4, material=steel, width=0.07, i_d=0.05, o_d=0.28
)
disks = [disk0, disk1]

stfx = 1e6
stfy = 0.8e6
bearing0 = rs.BearingElement(0, kxx=stfx, kyy=stfy, cxx=0, n_link=7)
bearing1 = rs.BearingElement(6, kxx=stfx, kyy=stfy, cxx=0)
bearing2 = rs.BearingElement(7, kxx=stfx, kyy=stfy, cxx=0)

bearings = [bearing0, bearing1, bearing2]

pm0 = rs.PointMass(n=7, m=30)
pointmass = [pm0]

rotor1 = rs.Rotor(shaft_elem, disks, bearings, pointmass)

First I tried the analyses: run_static(), and run_modal(). In both cases, the singular matrix error appeared, because the K matrix of the rotor for 6dof model is singular.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant