13 / 13 / 1
Регистрация: 08.06.2011
Сообщений: 52
|
|
1 | |
Векторы индукции неоднородного магнитного и электрического полей09.06.2011, 19:31. Показов 3514. Ответов 24
Метки нет (Все метки)
Помогите пожалуйста найти вектор магнитной индукции, действующий на электрон.. я моделирую движение заряженных частиц в неоднородном магнитном поле по средствам C#, вот тема об программной составляющей моего проекта: C# моделирование движения заряженных частиц
повторю часть того, что там написано.. есть у нас вектор магнитной индукции (bx,by,bz) (пока неизменный) и вектор электрического поля (ex,ey,ez), координаты электрона (x,y,z), координаты магнита(ов) (xm,ym,zm), и/или координаты отклоняющих пластинок (xp1,yp1,zp1), (xp2,yp2,zp2) нужно: найти вектор (bx,by,bz) имея параметры магнита(ов), его координаты (xm,ym,zm) и координаты электрона i (x,y,z) найти вектор (ex,ey,ez) имея параметры пластинок, их координаты (xp,yp,zp) и координаты электрона (x,y,z) подставить это все в: dx/dt=dVx dy/dt=dVy dz/dt=dVz dVx/dt=e*(Ex+(Vy*Bz+Vz*By))/m dVy/dt=e*(Ey+(Vx*Bz+Vz*Bx))/m dVz/dt=e*(Ez+(Vy*Bx+Vx*By))/m e - заряд электрона m - масса электрона чтоб єлектрон летел правильно) пысы сори что беспокою вас по такому поводу, но физику я изучал исключительно в школе много-много лет назад.. Добавлено через 3 часа 29 минут по сути нужно найти dbx/dt, dby/dt, dbz/dt....
0
|
09.06.2011, 19:31 | |
Ответы с готовыми решениями:
24
Определить наибольшее значение энергии магнитного и электрического полей контура Граничные условия для касательных и нормальных составляющих векторов электрического и магнитного полей Определить емкость контура и максимальное значение энергий электрического и магнитного полей Каким должен быть радиус контура, чтобы индукция магнитного поля в его центре была равна индукции магнитного поля Земли |
13 / 13 / 1
Регистрация: 08.06.2011
Сообщений: 52
|
|
09.06.2011, 21:56 [ТС] | 3 |
http://img.leprosorium.com/1156765 эт скрин моей проги.. по нем и рисовал.. там тучка электронов.. они движутся со стартовой скоростью, на них действует сила лоренца.. в ней есть вектор магнитной индукции...
собака зарыта в уравнениях максвела.. но поскольку я не физик - розобратся что там мну нужно и вообще что там к чему не смог.. нет там ничего конкретно для индукции.. пысы.. там нарисовано как должно быть.. а на данный момент все движется по векторах, описаных в легенде Добавлено через 6 минут пыпысы уравнение в общем виде мне и нужно) есле таково есть для вектора магнитной индукции во внешнем магнитном поле..
0
|
1563 / 1041 / 94
Регистрация: 17.04.2009
Сообщений: 2,995
|
|
09.06.2011, 22:39 | 4 |
Электрическое поле, если будут проблемы с вычислениями - пишите. Меня тоже можно перепроверить, уж больно часто в матане путаюсь )
Считаете интеграл и получаете функцию напряженности от Xo и Yo(положения электрона). Для верхней пластины: Координаты тут в моей система отсчета, не забудьте перевести куда надо, когда посчитаете интеграл. L - длина пластины. Xo, Yo - координаты электрона. d - расстояние между пластинами. k = 9*10^9 насколько помню ... , p - линейная плотность заряда. Для нижней: Ща спать, завтра с работы или вечером напишу - уж больно тут с оформлением геморройно, что там с магнитным, если никто не опередит)).
1
|
13 / 13 / 1
Регистрация: 08.06.2011
Сообщений: 52
|
|
09.06.2011, 23:53 [ТС] | 5 |
у меня модель 3-х мерная =) но всеровно спасибо..
0
|
10.06.2011, 01:36 | 6 |
я делал также задачу нахождения компонент магнитного поля, там подробно расписывалось ур-ние био-савара-лапласа. и был какой-либо ток. а тут эта модель не применима. (тут силовые линии эллипсами приблизить и модуль индукции экспонентой убывающей от расстояния до магнита.как я и говорил.попытайся)
1
|
1563 / 1041 / 94
Регистрация: 17.04.2009
Сообщений: 2,995
|
|
10.06.2011, 08:31 | 7 |
От z ничего не изменится принципиально, станет двойной интегральчик и все. Вечером набросаю. Можете сами, тут не сложно. По сути бьем пластину на много точечных зарядов, пишем напряженность которую создает элементарный зарядик и интегрируем по площади. У магнитов же надо знать намагниченность и форму. По Био-Савару вы считали магнитное поле, которое создает проводник с током. Про применимость спорить не стану, хотя упростило бы вам жизнь сильно.
1
|
13 / 13 / 1
Регистрация: 08.06.2011
Сообщений: 52
|
|
11.06.2011, 12:59 [ТС] | 8 |
мну тут на кафедре физики подсказали что можно заюзать уравнения Био — Савара — Лапласа для нахождения индукции магнитного поля относительно одного витка соленоида.. потом розбить мой магнит на много таких и сумировать..
Добавлено через 16 минут http://ru.wikipedia.org/wiki/%... 1%81%D0%B0 вот это..
0
|
11.06.2011, 13:05 | 9 |
да, поле магнита и соленоида можно считать почти эквивалентными.
только непонятно как твой кусок магнита можно аппроксимировать витками, тогда витки будут наворачиваться на что-то, вопрос в какое число витков да, я решал задачу нахождения индукции по био-с-л от сложного контура с током. только найти надо.
1
|
13 / 13 / 1
Регистрация: 08.06.2011
Сообщений: 52
|
|
11.06.2011, 13:18 [ТС] | 10 |
0
|
11.06.2011, 15:27 | 11 |
чтобы не нарушать авторские права препода как автора))), кинул ссылку в лс.
там решена задача нахождения компонент магнитного поля соленоида. и ещё doc файл полезный тоже кинул. короче говоря, твоя задача решена, а вот перенести с мэпла на c# не так просто получится, численное интегрирование самому писать и т.д.
1
|
13 / 13 / 1
Регистрация: 08.06.2011
Сообщений: 52
|
|
11.06.2011, 15:53 [ТС] | 12 |
недавно на мепле нашел нечто подобное.. там моделирование взаимодействия заряженных частиц..
Код
> restart: #===================================================== move_particle := proc(M,S,T) #===================================================== local num_frames,num_moves_per_frame,n,dt, movements,xmin,xmax,ymin,ymax,qmax, plot_background,plot_legend,plot_stationary,plot_movements; num_frames := 20; num_moves_per_frame := 5; n := num_frames*num_moves_per_frame; dt := T / n; movements := compute_movements(M,S,dt,n); compute_bounds(movements,M[2],S, 'radius','xmin','xmax','ymin','ymax','qmax'); plot_background := draw_background(xmin,xmax,ymin,ymax); plot_legend := draw_legend(xmin,xmax,ymin,ymax,qmax); plot_stationary := draw_stationary(S,radius,qmax); plot_movements := draw_movements(movements,radius,qmax,M[2],num_moves_per_frame); plots[display]([plot_movements,plot_stationary,plot_legend,plot_background], scaling=constrained,axes=none, title=`Movement of a Charged Particle Under an Electric Field`, titlefont=[TIMES,BOLD,12]); end: #===================================================== compute_movements := proc(M,S,dt,n) #===================================================== local m,q,config,movements,i; m := M[1]; q := M[2]; config := M[3..6]; movements := config[1..2]; for i from 1 by 1 to n do config := compute_a_movement(q,m,config,S,dt); movements := movements,config[1..2]; od; return [movements]; end: #===================================================== compute_a_movement := proc(q,m,C,S,dt) #===================================================== local px,py,vx,vy,Enet,Fnetx,Fnety, ax,ay,dpx,dpy,new_px,new_py,new_vx,new_vy; px := C[1]; py := C[2]; vx := C[3]; vy := C[4]; Enet := compute_electric_field(px,py,S); Fnetx := Enet[1]*q; Fnety := Enet[2]*q; ax := Fnetx/m; ay := Fnety/m; dpx := vx*dt + 1/2*ax*dt*dt; dpy := vy*dt + 1/2*ay*dt*dt; new_px := px + dpx; new_py := py + dpy; new_vx := vx + ax*dt; new_vy := vy + ay*dt; return [new_px,new_py,new_vx,new_vy]; end: #===================================================== compute_electric_field := proc(px,py,S) #===================================================== local Enetx,Enety,s,dx,dy,r,c; Enetx := 0.0; Enety := 0.0; for s in S do dx := px-s[2]; dy := py-s[3]; r := sqrt(dx*dx + dy*dy); c := 8.99E9*s[1] / (r*r*r); Enetx := Enetx + c * dx; Enety := Enety + c * dy; od; return [Enetx,Enety]; end: #===================================================== compute_bounds := proc(movements,q,S,radiusp,xminp,xmaxp,yminp,ymaxp,qmaxp) #===================================================== local movement,s,side_length,xcenter,ycenter, radius,xmin,xmax,ymin,ymax,qmax; xmin := movements[1][1]; xmax := movements[1][1]; ymin := movements[1][2]; ymax := movements[1][2]; for movement in movements do xmin := min(xmin,movement[1]); xmax := max(xmax,movement[1]); ymin := min(ymin,movement[2]); ymax := max(ymax,movement[2]); od; for s in S do xmin := min(xmin,s[2]); xmax := max(xmax,s[2]); ymin := min(ymin,s[3]); ymax := max(ymax,s[3]); od; side_length := max(abs(xmax-xmin),abs(ymax-ymin))/(1-4/30); radius := side_length/30; xcenter := (xmin+xmax)/2; ycenter := (ymin+ymax)/2; xmin := xcenter-side_length/2; xmax := xcenter+side_length/2; ymin := ycenter-side_length/2; ymax := ycenter+side_length/2; qmax := abs(q); for s in S do qmax := max(qmax,abs(s[1])); od; radiusp := radius; xminp := xmin; xmaxp := xmax; yminp := ymin; ymaxp := ymax; qmaxp := qmax; return; end: #===================================================== draw_background := proc(xmin,xmax,ymin,ymax) #===================================================== return plottools[rectangle]([xmin,ymax],[xmax,ymin],color=black); end: #===================================================== draw_legend := proc(xmin,xmax,ymin,ymax,qmax) #===================================================== local k,width,plot_legend,i,c; k := 18; width := (xmax-xmin)/k; plot_legend := TEXT([xmin-width,ymin-width],`-`, FONT(COURIER,BOLD,11)), TEXT([xmax+width,ymin-width],`+`, FONT(COURIER,BOLD,11)); for i from 1 to k do c := get_color(qmax,-qmax+2*qmax/(k-1)*(i-1)); plot_legend := plot_legend,plottools[rectangle]([xmin+width*(i-1),ymin-width/2], [xmin+width*i, ymin-width/2*3], color=c); od; return plot_legend; end: #===================================================== draw_stationary := proc(S,radius,qmax) #===================================================== local plot_stationary,s; plot_stationary := []; for s in S do plot_stationary := [op(plot_stationary), plottools[disk]([s[2],s[3]],radius,color=get_color(qmax,s[1]))]; od; return PLOT(op(plot_stationary)); end: #===================================================== draw_movements := proc(movements,radius,qmax,q,num_moves_per_frame) #===================================================== local D,plot_movements,i; D := plottools[disk]([0,0],radius,color=get_color(qmax,q)); plot_movements := []; for i from 1 by num_moves_per_frame to nops(movements) do plot_movements := [op(plot_movements), [shift_disk(D,movements[i][1],movements[i][2])]]; od; return PLOT(ANIMATE(op(plot_movements))); end: #===================================================== shift_disk := proc(D,x,y) #===================================================== return POLYGONS(map(xy -> [xy[1]+x,xy[2]+y],op(1,D)),op(2,D)); end: #===================================================== get_color := proc(qmax,q) #===================================================== local color; if q > 0 then color := COLOR(RGB,1,1-q/qmax,0) else color := COLOR(RGB,0,1-abs(q)/qmax,1) fi; return color; end: Код
> move_particle(M,S,T); M: информация движущейся частицы = [маса, заряд, позиция по x, позиция поy, стартовая скорость по x, стартовая скорость по] S: инфа об стационарных частицах = [[заряд 1 частицы, позиция по x 1 частицы, позиция по y 1 частицы], [заряд 2 частицы, позиция по x 2 частицы, позиция по y 2 частицы], ...] T: время симуляции
0
|
1563 / 1041 / 94
Регистрация: 17.04.2009
Сообщений: 2,995
|
|
11.06.2011, 17:57 | 13 |
Формулу для напрженности от одной пластины. Ось y перпендикулярна пластины и проходит через ее угол, оси x и z в одной плоскости с пластиной и лежит каждай на своей стороне.
Xmax, Zmax - линейные размеры пластины. p - поверхностная плотность заряда. Добавлено через 49 секунд Тогде еще проще, можно взять просто магнитное поле магнитного диполя. Добавлено через 3 минуты Численное интегрирование тут зло, эти формулы находятся аналитически.
1
|
11.06.2011, 18:04 | 14 |
а если у нас магнит - куб с рёбрами 1 метр) (с вырезом, например)
я знаю, что лучше аналитичеки, в примере, который я высылал автору этой темы, там это как раз делается в мэпле. если что, могу выслать. я, кстати, по таким же формулам считал (компоненты E)
1
|
13 / 13 / 1
Регистрация: 08.06.2011
Сообщений: 52
|
|
11.06.2011, 18:08 [ТС] | 15 |
я правильно понял?) єто формулы зависимости вектора напряженности электрического поля в точке (x,y,z) относительно абсолютно плоского конденсатора с длинной zmax и шириной xmax?
0
|
1563 / 1041 / 94
Регистрация: 17.04.2009
Сообщений: 2,995
|
|
11.06.2011, 18:14 | 16 |
У вас нет конденсатора, в конденсаторе поле равномерное, тут далеко нет. Это поле которое создает одна пластина.
Добавлено через 1 минуту А вы знаете как накрутить соленоид чтобы он смог заменить намагниченный куб? И куб будет хоть как диполь.
0
|
1563 / 1041 / 94
Регистрация: 17.04.2009
Сообщений: 2,995
|
|
11.06.2011, 18:28 | 18 |
Обычные магниты, какие там токи и соленоиды - их там нет? А характеризуются они намагниченностью, что и есть диполь. Да и о чем тут говорить, когда вы рассчитываете поле соленоида по формуле Био-Савара, вы формально считаете поле суммарного диполь образуемоего контуром с током.
0
|
1563 / 1041 / 94
Регистрация: 17.04.2009
Сообщений: 2,995
|
|
11.06.2011, 18:38 | 20 |
А что по вашему такое магнит? Это сумма маленьких дипольчиков, образующих один большой. Не замечали в любом магните есть ярко выраженный север и ярко выраженный юг - чем вам не диполь?
0
|
11.06.2011, 18:38 | |
11.06.2011, 18:38 | |
Помогаю со студенческими работами здесь
20
Найти отношение индукции магнитного поля. Определить вектор индукции магнитного поля Записать формулу для индукции магнитного поля Определение индукции и напряженности магнитного поля в точке Теорема о циркуляции векторов магнитной индукции и напряжённости магнитного поля Найти вектор магнитной индукции магнитного поля в центре ромба. Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |