Daybreak Control Arm Sim Tutorial
Assembly: Using from bild: Control Arm Assembly “22-DYN-1100 (Control Arm Assembly)”
Note: This setup was used by Philip to learn how to simulate Daybreak’s control arm. The assembly used here was not the final manufactured version and that was put on the car for comp, but the simulation setup applies regardless and is the same for nextgen ---for all double wishbone suspensions.
This is the same way the EV team sims their control arms (pretty accurate)
Control Arm Assembly in SolidWorks
1. Prepping the Geometry
Had to make our own pushrod and tierod
Insert parts into the assembly and save as a parasolid
Dimensions (somewhat arbitrary for practice/this tutorial):
Pushrod: 10 in long
Tierod: 5 in long
Both: 0.625 OD, 0.5 ID
When saving the assembly as a parasolid; there might be a popup prompted: click "No" if asked to resolve suppressed features
2. Opening and Setting Up in ANSYS
Open ANSYS (make sure VPN is ON)
Import engineering data (“Min Materials”)
Import parasolid file into Geometry
No need to do anything in SpaceClaim (for now)
Material: 6061 Aluminum
Sidenote:
In Engineering Data:
Either favorite minimal set of materials, or
Import full list and delete what you don’t need (see this same setup section of the trailing arm tutorial that I wrote for what I mean)
→ Your choice — both work fine
3. Static Structural Setup
Connecting Pushrod to Lower Control Arm (LCA)
Now double-click on Model to open Static Structural
1st you want to connect pushrod to lower CA
Insert a joint:
Right-click Connections → Insert Joint
Connection type: Body to Body
Type: Revolute
NOTE: In the video, mistakenly set as revolute (this is fixed later in the video to be a spherical joint)
These photos show a revolute joint selected; will be fixed later down in the tutorial…yes I know kinda lazy on my part for not fixing it rn…but dw it works lol
for the first scope; click the orange box, cntrl click the two faced shown of the pushrod tab and select apply
Scope 1: CTRL + click two faces on pushrod tab → Apply
then scroll down under mobile scope (in the feature tree); now orange box, select the outer face shown of the pushrod and apply
Scope 2 (Mobile): Select outer face of pushrod → Apply
now there is a revolute joint defined by these two bodies
- Joint fully definedSetting the Joint as Revolute (corrected to spherical joint later)Applying the selected facesOuter face of Pushrod Selected
Beam Approximation for Upright (Robert’s Method)
NOTE: This is “Robert” from EVs method as its essentially just approximating the upright as a stiff beam – the sim result is very accurate and quicker to solve then simming with the upright in the assembly. A bit of explanation of how to sim with the upright is given later below
Right click joints folder again; Insert another joint → Select Beam
First Scope:
CTRL + click bore on LCA spherical bearing → Apply
- Lower Control Arm Bore Selected
Mobile Scope:
Select opposite bore on the UCA → Apply
now should have a beam that looks something like this:
- Beam representing our Upright
Radius: 0.0127 m (0.5 in)
a bit random – "want to make the upright approximation to be stiff basically" – (Robert)
Material: Steel beam approximation — should be stiff
its approximated as a steel beam; so should be pretty stiff; (see material in the feature tree)
Steel Beam w/ updated radius representing our upright
Connect Upper CA Pickup (Bore) to Tierod
Insert another beam joint (define another beam and do the same thing)
Scope: UCA bore
- Selecting UCA Bore as our Scope under “Reference” in the Feature Tree
Mobile Scope: Tierod face (as shown selected in the picture):
Radius: 0.0127 m again (this is while keeping units in metric or m,kg, ...)
Lower Wishbone (Bore) to Tierod
Insert one more beam (this will be from lower wishbone to tierod):
Use Face Select btw and reference body view to easily select bore (top right view)
Scope: Lower Wishbone bore
- Selecting LCA Bore as Reference Scope
Mobile Scope: Tierod face (same as before)
Radius: 0.0127 m
Result: Now we have a “fake upright” just for transmitting forces
SIDENOTE: Does it matter if tierod is connected to the top of the upright and not lower where it actually is?
Na b/c it only matters if modeling the internal forces of the upright; it's like in 3D statics; 3 reaction forces at this pt here; only those reactions points can react forces
for simming the upright; apply the remote loads at the contact patch (just a side note); the only thing we truly know is the load at the tire and then that force is somehow propogated thru the rest of the assembly/car thru FEA
This is essentially along the lines of what Robert said
this is all for the physical setup; now can start adding the constraints
4. Adding Joints to Inboard Pickup Points
NOTE: yeah so it was at this point in the video that Philip realized the UCA does not have bot rodend bores; nice; but Robert says it should be fine; we'll just how asymmetric the final sim result is lol (won’t be significantly inaccurate so no real worries for this tutorial)
Target Points (Total: 6)
2 Upper Control Arm (UCA)
2 Lower Control Arm (LCA)
1 Pushrod
1 Tierod
For Each Inboard Pickup:
Insert Joint under Connections
Type:
Connection: Body to Ground
Joint: Spherical
Behavior:
Reference: Deformable
Mobile: Deformable
Scope: Flat face of pickup point
Repeat this for all 6 joints
Note:
"Ground" is just an infinitely stiff reference
Spherical joints allow free rotation in XYZ, but fixed translation
Revolute joints = rotation around one axis only (not what we want here)
VERY IMPORTANT: go back to the very 1st revolute joint (the pushrod one) and change it to spherical --- it was at this point in the video where the mistake was realized so make sure to fix it here too lol)
SIDENOTE/TIPS: for more Ansys learning; Robert mentions can use Ansys learning hub license if you have it or chatgpt it pretty good lol
for knowing what each joint is: see this menu on the upper left; if the box is colored in then its free; no color means its fixed; e.g. for this spherical joint, its free in rotation around x y and z but fixed is translation for x y and z
5. Applying Loads
now can insert under static structural a remote load
Geometry Selection:
for geometry: selected UCA, LCA, and tierod outboard pickup pts (the spherical bearing bores and the tierod outer face)
need to include basically anywhere where the unsprung assembly touches
Outboard pickup points:
UCA spherical bearing bore
LCA spherical bearing bore
Tierod outer face
CTRL + click to select all
- Selecting all outboard faces for remote loadApplying selected faces (red point is where force is currently applied; will need to update coordinate points-> explained own below)
Coordinate Setup:
In CAD, find the contact patch coordinate point
Measure from contact patch to global origin
→ For Daybreak, origin = center of chassisANSYS uses the same origin as the parasolid file
btw ansys pulls the same global origin from the CAD/parasolid file so that's why you just pull the coords from CAD
Remote Load Definition:
- Example of remote forces AND Coordinate Points
the remote load forces here are arbitrary: I will choose to go with 1.5g steer, 1.5g brake and 3g bump for this tutorial (similar to next gen except for next gen we do 4g bump for extra safety)
Change “Define by:” → Components
Force direction:
Y = Bump
Z = Brake
X = Steer
Example Load Case:
Daybreak weight = 911 lbs ≈ 413.2 kg
Forces:
1.5g Steer
1.5g Brake
3g Bump
Use F=ma
See image below for exact Coord Points for DayBreak Contact Patch!
- Coord Points of Remote Load applied at the contact patch
NOTE: Make sure the coord system you use in Ansys is the same as the one in CAD (e.g. both have z axis as being longitudinal, or our brake/acceleration force)
Again: (x = steer, y=bump, z=brake) here, but double check always (make sure location of remote force which should be at the contact patch makes sense – see above images
6. Mesh and Contact
Mesh Settings:
Element size → Enough for 3 elements thick
Example: 0.001 m for quick sims ((doesn't have to be that fine if you want a quick practice sim)
- .001m mesh example
Under Connections > Contacts:
ANSYS should auto-detect contact between pushrod tab and LCA
In other words, under connections > contacts; Ansys already defined the contact between the pushrod tab and the LCA; this should be accurate enough
Don’t forget to:
Assign 6061 Aluminum to all parts
NOTE: For nextgen, or Solar McQueen the material for the control arms is currently designed to be 4130 steel (so make sure to assign it properly in that case)
Joshua from the future here - bro in hindsight this emoji is so corny…what is wrong with me …. but eh whatever lmao
7. Postprocessing and Simulation Results
Add Probes:
Right-click Solution:
Insert → Stress → Equivalent (von Mises)
Insert → Stress Tool → Max Equivalent Stress
Then click Solve
Notes:
You’ll likely should expect high stress inboard due to no upright deflection
this is kinda of like an intuitive check (should always do this) to make sure “do these sim results make sense?” and if not, check your setup and see what you can change to make it more accurate (rule of thumb for simming in general)
According to the results:
Technically failing at the groove under this load case
We didn’t go with this specific CA CAD design in the end (went with Cesar’s rather than Philip’s) so no worries lol.
8. Force Probes (Validation & Analysis)
now Robert goes into joint probes (do this especially for CF pushrod sim on next gen)
with joint probes, you can see the reaction force of each joint and can then compare to the values given by the hand calc/truss solver → hence how you can cross check if your sim setup makes sense for nextgen/Solar McQueen
Insert 6 Joint Probes:
One for each inboard pickup point
Useful for comparing against hand calcs or truss solver
Again/in other words: can then use this to validate hand calcs, truss solver, and use for buckling of the pushrod and tierod)
Insert 3 Beam Probes:
For the 3 circular beam joints (2 spherical bearings of UCA and LCA and 1 of the tierod pickup point)
9. Beam Stiffness Accuracy (OPTIONAL)
now in the video; Robert shows how to do accurate represent the beam's stiffness which ends up being the equivalent of a stee beam of this radius (very chunky)
Represent upright stiffness via equivalent beam:
Use k=EA/L
Match beam vertical stiffness to upright
Notes:
Original sim had very conservative beam stiffness
Proper match gives much more accurate results
This method = quickest way to get realistic behavior
The general idea is you get your upright from CAD, get the Parasolid geometry into Ansys, find beam stiffness w/ the equation EA/L and solve for stiffness (k)
- Solving for stiffness of upright in Desmos Calculator + Upright in Ansys; x-coord of intersection is the radius of the chunky beam (to get an accurate representative stiffness of our actual upright)
MORE SIDENOTES: Again, we were actually very conservative with our beam stiffness in our original sim
basically just want the vertical stiffness of your upright, and make a beam of the same stiffness and the results should be the same
this is prob the quickest way to sim the control arms pretty accurately
10. Final Fixes and Notes
Make sure ALL joints have:
Reference Behavior = Deformable
Mobile Behavior = Deformable
Go back and fix any still marked rigid
TIP: Hotkey:
Press H to zoom out to the full body in ANSYS
basically Philip realizes in this point of the video that for all the mobile scopes they should be deformable
if you leave them rigid, you'll see zero stress there
DOUBLE CHECK that all reference AND mobile scopes deformable for BOTH circular and spherical joints (go back to all the joints and fix this lol)
Final Sim Results & Key Takeaways - THE END
Ran the sim again
→ Still fails lol (see pictures) BUT:This is the general process for simming double wishbones
You can use this exact same sim set up for simming the control arms on Solar McQueen (next gen)
Summary results of this example Sim:
Min FOS: 0.35
Max Stress: 735 MPa
Critical Components: LCA, pushrod tab bolts, and the LCA groove for the spherical bearing (failure points) → these all make intuitive sense as being your failure points (another way to check if your sim setup/results make sense)
LCA/entire CA assembly min FOS location- UCA Stress Distribution
- UCA FOS
LAST THING: Save the Project
Don’t forget to click Save in ANSYS Workbench (this saves everything including your sim setup and final sim result)
File name of the tutorial file (will probably put this in SharePoint soon or pin on slack or somethin - or remind me/ask me for the file if I forget/you want it lol):
Daybreak CA Sim Practice - v1
Thank you - from Joshua Palacios; here’s a cookie if you actually read all this