% Biotsav - Tính từ trường cho một vòng lặp hiện tại
% sử dụng pháp luật Biot-Savart
rõ ràng tất cả; giúp biotsav; % Rõ ràng bộ nhớ; tiêu đề in % @ Khởi tạo các biến (ví dụ, Vòng bán kính, hiện nay, đồ họa) mu0 = 4 * pi * 1e-7; % Thấm không gian miễn phí (T * m / A) I_current = 5,0; % Hiện tại trong vòng lặp (A) Bán kính = input ( 'Nhập bán kính của vòng (m):'); liên tục = mu0 / (4 * pi) * I_current; % Liên tục viết NGrid = 10; % Số lượng lưới điểm cho lô xmax = 5; % Giới hạn cho đồ họa ymax = Xmax; % Giới hạn cho đồ họa fprintf ( 'Dòng vẽ từ x =% gm để x =% gm n', - Xmax, xmax); fprintf ( 'Dòng vẽ từ y =% gm để y =% gm n', - ymax , ymax); for i = 1: NGrid xObs (i) = -xMax + (i-1) / (NGrid-1) * (2 * xmax); % X giá trị cốt truyện yObs (i) = -yMax + (i-1) / (NGrid-1) * (2 * ymax); Giá trị% so với cốt truyện cuối % @ Vòng qua các phân đoạn trong vòng lặp hiện tại trong mặt phẳng yz NSegments = 20; k = 1: NSegments location% @ Tính toán của các thiết bị đầu cuối của một đoạn theta1 = 2 * pi * (k-1) / NSegments; x1 = 0; y1 = Radius * cos (theta1); z1 = Radius * sin (theta1); theta2 = 2 * pi * k / NSegments; x2 = 0; y2 = Radius * cos (theta2); z2 = Bán kính * sin (theta2); % thành phần @ Tính toán của vector phân khúc dl DLX (k) = x2-x1; dly (k) = y2-y1; dlz (k) = z2-z1; % @ Tính toán vị trí của trung điểm của một phân đoạn xc (k) = (x2 + x1) / 2; yc (k) = (y2 + y1) / 2; ZC (k) = (z2 + z1) / 2; cuối % @ Vòng qua tất cả các điểm lưới và đánh giá B (x, y) trên lưới điện cho i = 1: NGrid với j = 1: NGrid Bx = 0; By = 0; Khởi% B zero % @ Vòng qua các phân đoạn trong vòng lặp cho k = 1: NSegments thành phần% @ Tính toán của vector r (vector giữa phân khúc %% vào vòng lặp và điểm quan sát) rx = xObs (j) - xc (k ); ry = yObs (i) - yc (k); rz = -zc (k); Điểm% Quan sát trong xy máy bay % @ Tính r ^ 3 từ vector r r3 = sqrt (rx ^ 2 + ry ^ 2 + rz ^ 2) ^ 3; % @ Tính x và các thành phần y của dl sản phẩm chéo X r dlXr_x = dly (k) * rz - dlz (k) * ry; dlXr_y = dlz (k) * rx - DLX (k) * rz; % @ Tăng tổng của x và các thành phần y của từ trường Bx = Bx + Liên tục * dlXr_x / r3; By = Bằng + Liên tục * dlXr_y / r3; cuối % @ Tính vectơ bình thường của hướng của từ trường BMag = sqrt (Bx ^ 2 + By ^ 2); BDirx (i, j) = Bx / BMag; BDiry (i, j) = By / BMag; cuối fprintf ( 'tính toán% g %% hoàn n', 100 * i / NGrid); cuối % @ lô hướng từ trường là một rung động (mũi tên) âm mưu CLF; con số (GCF); Rõ ràng con số%; mang hình cửa sổ phía trước rung động (xObs, yObs, BDirx, BDiry); % Vẽ mũi tên cho trường B giữ; lô (0, Radius, "bo"); % Đánh dấu vị trí của hiện tại lô (0, -Radius, 'rx'); % Vòng trên cốt truyện tiêu đề ( 'hướng từ trường cho vòng lặp trong mặt phẳng yz'); xlabel ( 'x'); ylabel ( 'y'); tổ chức off;
đang được dịch, vui lòng đợi..
