-
Notifications
You must be signed in to change notification settings - Fork 0
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 flux model #156
Comments
The EMF is definitely affected by the loop area, and it's definitely increasing in the scenario that you've described -- you can verify by watching For the scenario that you described above with 2 loops, A is ~9000 at 20%, but only ~20,000 at 100%. That's significantly less than 5x the area, only 2.2x the area. This is a serious problem, and I don't immediately have thoughts on how we're going to address it. /**
* Ported directly from the Java versions, this is a workaround for Unfuddle ticket
* https://phet.unfuddle.com/a#/projects/9404/tickets/by_number/721.
*
* When the magnet is in the center of the coil, increasing the loop size should decrease the EMF. But since we are
* averaging sample points on a vertical line, multiplying by the actual area would (incorrectly) result in an EMF
* increase. The best solution would be to take sample points across the entire coil, but that requires many changes,
* so Mike Dubson came up with this workaround. By fudging the area using a thin vertical rectangle, the results are
* qualitatively (but not quantitatively) correct.
*
* NOTE from the Java version:
* This fix required recalibration of all the scaling factors accessible via developer controls.
*/
private getEffectiveLoopArea(): number {
const width = this.coil.loopRadiusRange.min;
const height = 2 * this.coil.loopRadiusProperty.value;
return width * height;
} |
To understand the origins of the Below is the transcript of https://phet.unfuddle.com/a#/projects/9404/tickets/by_number/721, which was opened 9/23/2008. To see how the Java implementation was changed, the related SVN commits were:
User report: I ran the Faraday’s Electromagnetic Lab. It’s a wonderful pedagogic tool in order to understand the different aspects of Faraday’s Law. Nevertheless, I think there is a bug in the transformer part. The induced tension is maximum when the area of the inductive coil is also maximum. At this point, the coupling between the two coils is minimum and the induced tension should be minimum (a part of the magnetic flux in the induced coil is in the opposite direction). Comment by CM Went over this with Kathy today. To reproduce:
As you increase the loop area, the flux should decrease, but it increases. This is a fundamental problem in the model. We compute flux like this: sum_Bx = sum the B-field x components for all sample points on the coil So the flux increases because we're multiplying by the loop area. I can't solve this, need a new model. Comment by CM Kathy wrote: Mike, To describe the bug and hypothesis of problem with model .... It is most apparent if you put the pickup coil exactly centered vertically and horizontally with the electromagnet in AC mode. My hypothesis: Right now the model adds up all of the test points in the line along the vertical center of the coil, takes their average, and then multiplies by the area. This is the wrong weighting - it is overweighting the center flux - because the center flux is ONLY applying to the center area - the area futher in or out of the page, but at the vertical height of the center, is not experiencing the same flux as the rest of the center coil. This may or may not be clear. I am out tomorrow, but we can talk next week about it. Kathy Comment by CM One more note... We have 2 types of magnets in this sim: dipole and electromagnet. The pickup coil currently does not need to know what type of magnet is involved, its model is generally applicable to both magnet types. There are many advantages to preserving this generality. So whatever the solution is for this problem, it should ideally address both types of magnets, not just electromagnets. Comment by CM Kathy and Mike came up with 2 solutions. (1) Sample the B-field using a grid that covers the entire area of the coil. Only half of the grid would need to be computed, since the grid is symmetrical. This solution requires a 3D version of magnet.getStrength(x,y,z), and would involve many many more computations to sample the B-field. (2) Instead of using the loop area to compute flux, use an "effective area". The effective area is a thin rectangle that surrounds our existing column of sample points. (1) is expensive, so we investigated (2), and it looks qualitatively reasonable. The sim will require re-calibration. I will publish a version with solution (2), and Kathy will re-calibrate. Comment by CM Kathy, A new version of Faraday is here: Our fix for this issue changed the range of the emf, so this version needs to be calibrated. Since you volunteered to do this, here are the approaches to calibrating this sim: (1) calibrate the model The scale value I came up with is 3.51, and here's how I arrived at that value (you should verify):
I did NOT do a detailed comparison of 2.01.02 and 2.01.03 with emf scale=3.51. (2) calibrate the view
(3) combine methods (1) and (2) Let me know which method you use, and what the new default values should be. Then I'll publish another version that we can run by the person who reported this issue. Thanks! Chris PS: As the warning in the developer control panel indicates, the developer controls are not reset by "Reset All". Keep that in mind while calibrating. Comment by KP Used method 1. Pick-up coil tab. EMF scale = 3.0 Kathy |
Sounds like we've got a lot to discuss!
I originally tried to do that, but the values change so fast in Studio that I couldn't determine anything meaningful.
Thanks for digging up the history behind this feature. I haven't had the time to fully digest it, but I think it's extremely problematic to do this for the Bar Magnet. Repeating the steps I outlined in #156 (comment) on the Pickup Coil screen yields similarly terrible results. I literally cannot tell the difference in induced emf for a loop area of 20% and 100%, all else being equal. EDIT: When the pickup coil is large, the magnetic field through the top/bottom of the coils is not orthogonal to the loop area, so the change in flux should not scale linearly. |
@arouinfar - I'll see if Mike D is available to join Thursday meeting to discuss this model aspect. |
4/11/24 design meeting with @arouinfar @kathy-phet @ariel-phet @KatieWoe @Nancy-Salpepi @pixelzoom, Mike Dubson. @ariel-phet suggested dividing a loop's area into a set of thin rectangles, one for each Bx sample point, as shown in the sketch below. Compute Consensus was that this will be a better approximation than the "effective area" approach. I'll implement. |
…approximate area of the loop, #156
Something I'll have to investigate is why the Generator screen uses a difference sample-point strategy for the pickup coil. It uses a fixed number of points, while the other screens use a variable number of points with fixed spacing. So there are fewer chords (see screenshot below), and a fixed number of chords. The area approximation is going to therefore be much less accurate, becoming less accurate as the loop area increases. Why did we do this for the Generator screen? Can we switch to the strategy used in the other screens? Looking at Unfuddle SVN history, I beleive that this strategy was introduced for Unfuddle#248. This comment that I made on 3/28/2008 suggests that it would OK to use the "fixed spacing" approach in the Generator screen:
|
4/18/24 design meeting with @arouinfar @kathy-phet @Nancy-Salpepi @KatieWoe @kathy-phet has brought up a potential problem with the new model. When the magnet is inside the coil, we'll be sampling points inside the magnet. If we do use the entire cross-section rectangles at those points, we will be using too large an area, and exaggerting the EMF. So for sample points inside the magnet, we'll assume that the magnet has some thickness, and use that thickness as the area. The field outside the magnet will be relatively weak, so we will ignore that part of the coil's cross section. We also discuss the fact that the Generator screen is using a different sample-point strategy, as shown in #156 (comment). Consensus was that this is unnecessary, and having so few sample points will result in a much less accurate approximation of the coil's area. So I'm going to consolidate to one strategy to be used for all screens. |
Thinking about this more... This is a performance concern. Currently, sample points only need to be updated when the loop area changes, which is infrequently. Adding dependencies on the magnet position and coil position would result in the sample points updating constantly. So I'll need to carefully consider an efficient way to do this. |
Notes from meeting with @arouinfar and @ariel-phet:
|
@kathy-phet reported #166 on 5/7/24. It was a bit lost inside this long issue, so I moved it to its own issue. |
Status of this issue:
|
Design meeting 5/20/24 @arouinfar @kathy-phet @pixelzoom We'll leave this open and "on hold" until #166 and #164 are fixed. Then play with the sim again to verify that there are no other problems. |
@arouinfar will take one last past through this. |
I reviewed on main, and the flux model looks good. Closing! |
The induced emf in the pickup coil should be proportional to the loop area, as the flux in this case is |B|*A.
Steps to reproduce on the Transformer Screen:
Here's a video.
loop-area.mp4
I realize there's still calibration to do in #66, but it looks like the emf isn't at all affected by the loop area, so over to @pixelzoom to investigate.
The text was updated successfully, but these errors were encountered: