-
Notifications
You must be signed in to change notification settings - Fork 5
EXAMPLE: busbar joule heating #511
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
base: main
Are you sure you want to change the base?
Conversation
| # | ||
| # This example demonstrates how to set up and solve a busbar Joule heating analysis using PyAEDT. | ||
| # The analysis captures frequency-dependent phenomena including skin effect, current redistribution, | ||
| # and AC losses in power electronics systems. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not only in electronic systems, but all bus bar applications.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sure I will update it
| # Get faces at left and right ends | ||
| left_faces = [f for f in faces_sorted if abs(f.center[0] - left_x) < 1e-3] | ||
| right_faces = [f for f in faces_sorted if abs(f.center[0] - right_x) < 1e-3] | ||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How about adding a comment explaining that the faces' IDs can be retrieved from the UI and entered here as well?
| assignment=conductor.name, | ||
| maximum_length=3.0, # 3mm elements for skin effect resolution | ||
| name="ConductorMesh", | ||
| ) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why not a skin depth mesh operation?
|
|
||
| # Loss density | ||
| loss_density = (total_loss / busbar_volume) if busbar_volume else 0.0 | ||
| print(f"Loss density: {loss_density:.8f} W/mm³") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is the volume returning mm3? or m3?
| omega = 2 * math.pi * FREQ | ||
| skin_depth_m = math.sqrt(2 / (omega * mu0 * sigma_cu)) | ||
| skin_depth_mm = skin_depth_m * 1000 | ||
| print(f"Skin depth at {FREQ} Hz: {skin_depth_mm:.3f} mm") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why here?
Add the Skin depth calculation before the mesh operation.
| print(f"Power per A²: {power_per_amp_squared*1e6:.2f} µW/A²") | ||
|
|
||
| # Comparison with conductor thickness | ||
| if BUSBAR_H < 2 * skin_depth_mm: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This comparison may not be accurate. How about cases when the bar dimension is marginally bigger or smaller than 2 * skin_depth_mm?
You can also move it to the beginning and create a section for the skin depth analysis.
Description
Created a multi terminal busbar joule heating example under eddy current solution type.
Checklist
Please complete the following checklist before submitting your pull request: