Transformacija matlab zaplet koji simulira magnetska polja

R

Radinax

Guest
Hello all!
Trebam pomoć Matlab koda.Ovaj kod simulira magnetskog polja na z-osi od dva koncentrična solenoidalno supravodljivih magneta, ali trebam pretvoriti u onu koja simulira visokog napona prijenosne linije (dva i četiri) može li mi pomoći s ovim?To je kod

% GKLmagnet2.m: magnetski profil za DVA prstena magneti.
% Ovaj kod simulira magnetskog polja na z-os
% Dva koncentrična solenoidalno supravodljivog magneta od navedenih
% Veličine za korištenje u 140GHz Gyroklystron (GKL) eksperiment, MIT-a.
% S Zavrtnice, moguće je da su jedna velika regija koja
% Zadovoljava tolerancije spec., inače dva polja koja se stvaraju
% Ne svibanj sastati spec..Ako polje nije kontinuirana (jedno polje)
% Unutar spec., varialbe 'zastavu' je postavljeno na jedinstvo (u suprotnom 0),
% I prikazuje se upozorenje.
%
% Trčanje GKLmagnet2
%
sve jasno;
OpenGL autoselect;
% ------------------------- -------------- User input
Bmax = 5,12;% [Telsa] maksimum magnetskog polja u odori regiji
Tol = 0.3;% [%] posto homogenost jedinstvene regije

% Magnet veličine.Magnet za konačne duljine finite-debljina šuplji cilindar
% Modelira kao jedan okret pravokutni presjek gustoća struje.
% Magnet je centriran u z = 0, koja se širi 'Dužina' / 2 iznad i ispod z = 0.
Radin = 15;% [cm] unutrašnji polumjer zavojnice
RadOut = 18;% [cm] vanjskog polumjera namota
Dužina = 6;% [cm] Dužina koluta
Separ = 18,0;% [cm] udaljenost centra odvajanje> Dužina
zaxis = 30;% [cm] duljina iznad z = 0 za prikaz polja profila

% -------------- End user input ---------------------

% Dodatni korisnik konstante:
transparentnost = 0.25;% kontrole transparentnosti kriški i zakrpe.'= 1.0' je neproziran.
cyl_frac = 0,74;% azimutni dio cilindra do parcele.'= 1.0' za puni cil.

% Provjeriti ako je duljina veća od razdvajanja.
if (Separ <dužina),
DISP ([ 'Error, Rastava, mora biti veća nego dužina']);
break;
kraj
flag = 0;

% Define z-osi za vektorsko polje profil.
z = zaxis * [-1:1 / 2e4: 1];
% z = [0 1 2 5 10 15 20 25 30 31];% Kreischer's Table II.

% Draw cilindara
rujan = Separ / 2;
L = dužina;
[Xi, Yi, Zi] = valjak (Radin, 100);
[Xo, Yo, ZO] = valjak (RadOut, 100);
s = floor (cyl_frac * size (Xi, 2)) 1;
cylXi = (Zi :), 1: s) -0.5) * L;
cylYi =-Xi :), 1: s);
cylZi =-Yi :), 1: s);
cylXo = (ZO :), 1: s) -0.5) * L;
cylYo =-Xo :), 1: s);
cylZo =-Yo :), 1: s);

% Primjena Biot-Savart zakon konačne duljine konačnih debljine cilindra
% S pravokutni presjek uniformi gustoća struje, možemo dobiti,
% Koristeći analitičke (točan) rezultat od Maple v8.0:
R1 = Radin;
r2 = RadOut;
Bz = zeros (1, length (z));
za M = 1:2,% petlje izračunava za oba magneta.
r1p = R1 sqrt (r1 ^ 2 (L / 2 (z rujan).) ^ 2);
r1n = R1 sqrt (r1 ^ 2 (L / 2 - (z rujan).) ^ 2);
r2p = r2 sqrt (r2 ^ 2 (L / 2 (z rujan).) ^ 2);
r2n = r2 sqrt (r2 ^ 2 (L / 2 - (z rujan).) ^ 2);
C0 = (z rujan) .* log (r1n./r1p .* r2p./r2n);
C1 = L / 2 * log (r2n .* r2p. / R1n. / R1p);
A0 = 1 / (R2 - R1) / L;% multiplikativni vrijednost
Hz = A0 * (C0 C1);
Bz = Bz Hz * Bmax / max (Hz);% normalizaciju za željenu vrijednost Bmax.
rujan =-Sep;% obrnuti znak za drugim magnetom, reverzni opet na izlaz.
kraj
% Renormalize opet, od toga polja zbrčkan najprije normalizacija.
Bz = Bz * Bmax / max (BZ);

% Find uniformnosti zone.
zmid naći = (z == 0);
u = find (abs (BZ (zmid: kraj) - Bmax) / Bmax <= (Tol/100));
UniformLength = 2 * (z (u (kraj) zmid)-z (u (1) zmid));
ako je (u (1) ~ = 1),% provjerite je li polje je i dalje kontinuirano.
DISP ([ 'Upozorenje, polje podijeljen je na dvije regije']);
flag = 1;
kraj

% ---------------- Figures -------------------
figura (1)
CLF (1)
hold on;
surf (cylXi-ruj, cylYi, cylZi);% unutrašnji cilindar
surf (cylXo-ruj, cylYo, cylZo);% vanjski cilindar
surfati (cylXi ruj, cylYi, cylZi);% unutrašnji cilindar
surfati (cylXo ruj, cylYo, cylZo);% vanjski cilindar
colormap jesen;
sjenčanje stan;

% Zemljište dressups
= 1.2 * RadOut;
b = 1.1 * zaxis;
osi jednake;
axis ([-bb-aa-aa]);
view ([-15 15]);

% Skaliranje definirati varijable za izradu polje zaplet izgledaju bolje.
skala = floor (/ max (BZ));% skala linija i mreže za prikaz polja bolje
if (skala <= 1)% osigurati te dont morati scale = 0, 3, 6, 7, 9, itd.
scale = 1;
elseif (mod (skala, 2) ~ = 0 & mod (skala, 5) ~ = 0)
scale scale-= 1;
kraj

% Dodaj transparentan ploške.Transparentnost pod kontrolom "alfa"
% Horizontalnoj ravnini kriška
h = krpa ([-b-BBB], [-aaa-], [0 0 0 0], [0,2 1 0,5]);
alfa (h, transparentnost);
set (h, 'EdgeAlpha', 0);
% Vertikalna ravnina kriška
h = krpa ([-b-BBB], [0 0 0 0], [-aaa-], [0,2 1 0,5]);
alfa (h, transparentnost);
set (h, 'EdgeAlpha', 0);
Z = 0% avion kriška
% h = krpa ([0 0 0 0], [-a-aaa], [-aaa-], [0,7 1 0]);
% alfa (h, .3);
% set (h, 'EdgeAlpha', 0);

% Očvrsnuti cilindara
map = colormap;
px = cylXi :), kraj) '* [1 0 0 1; 0 1 1 0];
py = [cylYi :), kraj) 'cylYo :), kraj)'];
pz = [cylZi :), kraj) 'cylZo :), kraj)'];
h = krpa (px-ruj, py, pz, [0,7 0,8 0,9]);
set (h, 'EdgeAlpha', transparentnost);
h = krpa (px ruj, py, pz, [0,7 0,8 0,9]);
set (h, 'EdgeAlpha', transparentnost);
px = cylXi :), 1) '* [1 0 0 1; 0 1 1 0];
py = [cylYi :), 1) 'cylYo :), 1)'];
pz = [cylZi :), 1) 'cylZo :), 1)'];
h = krpa (px-ruj, py, pz, [0,7 0,8 0,9]);
set (h, 'EdgeAlpha', transparentnost);
h = krpa (px ruj, py, pz, [0,7 0,8 0,9]);
set (h, 'EdgeAlpha', transparentnost);

% Put grid na terenu line patch
ytick dobiti = (GCA, 'Ztick');
ytick = (ytick max (ytick)) / 2;% ukloniti negativne krpelja i interpolirati.
ztick dobiti = (GCA, 'Xtick');
Ly = length (ytick);
Lz = length (ztick);
Y0 = zeros (1, Ly);
y1 = b * one (1, Ly);
z0 = zeros (1, LZ);
z1 = * one (1, LZ);
line ([1, 1] * ztick, [z0; z0], [z0; z1], 'Color', 0.4 * [1 1 1], 'LineStyle',

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Osmjeh" border="0" />

;% Vert linije
line ([-y1, y1], [Y0; Y0], [1, 1] * ytick, 'Color', 0.4 * [1 1 1], 'LineStyle',

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Osmjeh" border="0" />

;% Horiz linije
% Dodaj os linija i brojeva na novim rešetki.
% Okomito:
linija (- [bb], [0 0], [0], 'Color', [0 0,3 1]);% vert os linija za brojeve
linija (- [1; 1,03] * y1 [Y0; Y0], [1, 1] * ytick, 'Color', [0 0,3 1]);% nacrtati krpelj linije.
h = tekst (-1,03 * y1 ', Y0', ytick ', num2str (ytick' / scale), 'HorizontalAlignment', 'pravo');
set (h, 'Color', [0 0,3 1]);
pz = duljina (get (h, 'String')) -3;
h = tekst (-1,1 * b-pz, 0, mean (ytick), 'Field [T] (plavo)', 'HorizontalAlignment', 'centar');
set (h, 'Color', [0 0,3 1], 'Rotacija', 90);
% Vodoravno:
linija (- [b zaxis], [0 0], [0 0], 'Color', [0 0,3 1]);% Horiz os linija za brojeve
line ([zaxis b], [0 0], [0 0], 'Color', [0 0,3 1]);% Horiz os linija za brojeve
line ([1, 1] * ztick, [z0; z0], - [0; 0,03] * z1, 'Color', [0 0,3 1]);% nacrtati krpelj linije.
h = tekst (ztick ', z0', -0,055 * z1 ', num2str (ztick'), 'HorizontalAlignment', 'centar');
set (h, 'Color', [0 0,3 1]);
h = line ([-zaxis zaxis], [0,0], [0,0]);% z-osi linije.
set (h, 'Color', 'crvenoj', 'LineWidth', 2.5);

% Dodaj komad polja linije
h = plot3 (z, zeros (1, length (BZ)), skala * Bz, 'b');
set (h, 'Color', 'plavo', 'LineWidth', 2);
h = tekst (0,0,0.1 * Bmax, 'Uniform regija');
set (h, 'Rotacija', 90, 'Color', [0 0,4 0,4])

% Dodaj patch prikazuje odori regiju unutar 'Tol' posto.
uz0 = U (1) zmid;
uz1 = u (kraj) zmid;
px = [z (uz0) Z (uz1) Z (uz1) Z (uz0)];
py = [0 0 0 0];
pz = skala * [0 0 Bz (U (1) zmid) Bz (u (kraj) zmid)];
h = krpa (px, py, pz, [1 0,2 0,5]);
alfa (h, 1.5 * transparentnost);
set (h, 'EdgeAlpha', 0);
px = - [z (uz0) Z (uz1) Z (uz1) Z (uz0)];
h = krpa (px, py, pz, [1 0,2 0,5]);
alfa (h, 1.5 * transparentnost);
set (h, 'EdgeAlpha', 0);
% h = plot3 (z (u), zeros (1, length (u)), max (BZ) * one (1, length (u)), 'm');
% set (h, 'LineWidth', 2 ');
h = tekst (0,0,0.1 * Bmax, 'Uniform regija');
set (h, 'Rotacija', 90, 'Color', [0 0,4 0,3])

% Naslov i naljepnice
naslov ([ 'Magnet strucure w / Područje:' num2str (Bmax) 'T max; R1 =' num2str (R1) ...
'Cm; R2 =' num2str (R2) 'cm, L =' num2str (L) 'cm; S =' num2str (Separ) ...
'Cm;' num2str (Tol) '% Uniform duljina:' num2str (UniformLength) 'cm']);
xlabel ( 'Z-osi [cm]');
ylabel ( 'X-osa [cm]');
zlabel ( 'Y-osa [cm]');

odlagati;

% ------------- END GKLmagnet2.m ---------------------------

Trebam pomoć sa ovaj neki što mogu promijeniti?ja dont znati puno o programiranje ..

 

Welcome to EDABoard.com

Sponsor

Back
Top