Preoblikovanje matlab parcelo, ki simulira magnetna polja

R

Radinax

Guest
Pozdravljeni vsi!
Rabim pomoč pri matlab kodo.Ta koda simulira magnetnega polja na z-osi dveh koncentričnih solenoidni superprevodni magneti, ampak rabim, da bi ga preoblikovali v eno, ki simulira visoko prenosnih daljnovodov (dva in štiri), vi moči pomoč mi s to?To je koda

% GKLmagnet2.m: magnetna profil za dva takšna magneta.
% Ta koda simulira magnetnega polja na z-osi
% Dve koncentrični solenoidni superprevodni magneti določenih
% Velikost za uporabo v 140GHz Gyroklystron (GKL) poskus, MIT.
% Z dvema tuljave, je možno, da imajo eno veliko regijo, ki
% Izpolnjuje spec strpnosti, sicer dve področji, ki so bili oblikovani
%, Ne izpolnjuje spec.Če polje ni stalen (eno polje)
% Znotraj spec, je varialbe "zastave", je na enotnosti (sicer 0),
% In se prikaže opozorilo.
%
% Prost GKLmagnet2
%
jasne vsem;
OpenGL autoselect;
% -------------- USER INPUT -------------------------
Bmax = 5,12;% [Telsa] največ magnetnega polja v uniformi regiji
Tol = 0,3;% [%] homogenost odstotkov enotne regije

% Magnet velikosti.Magnet je končno dolžino finite-debelina votlega valja
% Vzoru kot en zavoj pravokotnim prerezom gostoto toka.
% Magnet je središčem v z = 0, podaljšanju 'Dolžina' / 2 zgoraj in spodaj, z = 0.
Radin = 15;% [cm] Notranji polmer tuljave
RadOut = 18;% [cm] zunanji polmer tuljave
Dolžina = 6;% [cm] tuljavo dolžine
Separ = 18,0;% [cm] center za razdaljo> Length
zaxis = 30,% [cm] dolžine nad z = 0, da si ogledate polje profila

% -------------- End USER INPUT ---------------------

% Extra uporabnik konstante:
preglednost = 0,25;% nadzor preglednosti rezine in obližev."= 1,0" je nejasen.
cyl_frac = 0,74;% azimutne del valja do parcele."= 1,0" za polno cil.

%, Preverite, če je dolžina večja od ločitve.
if (Separ <Length),
disp ([ 'Error, Ločitev mora biti večja od Length']);
break;
konec
flag = 0;

Define% z-osi kanal za področje profil.
z = zaxis * [-1:1 / 2e4: 1];
% z = [0 1 2 5 10 15 20 25 30 31]; Tabela% Kreischer's II.

Valjev% Draw
september = Separ / 2;
L = Length;
[Xi, Yi, Zi] = jeklenke (Radin, 100);
[XO, Yo, Zo] = jeklenke (RadOut, 100);
s = nadstropje (cyl_frac * velikost (Xi, 2)) 1;
cylXi = (Zi :), 1: i) -0,5) * L;
cylYi =-Xi :), 1: s);
cylZi =-Yi :), 1: s);
cylXo = (Zo :), 1: i) -0,5) * L;
cylYo =-XO :), 1: s);
cylZo =-Yo :), 1: s);

% Uporaba Biot-Savartov zakon, da končno dolžino končno debelino jeklenke
% S pravokotnim prečnim prerezom enotne gostote toka, dobimo,
%, Z uporabo analitično (natančen) zaradi Maple V8.0:
r1 = Radin;
r2 = RadOut;
BZ = ničle (1, dolžina (z));
za M = 1:2,% zanke izračuna za obe magnete.
r1p = R1 sqrt (r1 ^ 2 (L / 2 (z september)). ^ 2);
r1n = R1 sqrt (r1 ^ 2 (L / 2 - (z september)). ^ 2);
r2p = r2 sqrt (r2 ^ 2 (L / 2 (z september)). ^ 2);
r2n = r2 sqrt (r2 ^ 2 (L / 2 - (z september)). ^ 2);
C0 = (z september) .* log (r1n./r1p .* r2p./r2n);
C1 = L / 2 * log (r2n .* r2p. / R1n. / R1p);
A0 = 1 / (r2 - r1) / L; multiplikativni% vrednosti
Hz = A0 * (C0 C1);
BZ = BZ Hz * bmax / max (Hz);% za normalizacijo želeno vrednost bmax.
september =-september;% nasprotnim predznakom, za druge magnet, reverse spet ob izstopu.
konec
% Renormalize znova, saj poleg polja sel ki gre gor prvi normalizacije.
BZ = BZ * bmax / max (BZ);

% Poišči enotnost območja.
zmid = najti (z == 0);
u = find (abs (BZ (zmid: konec) - bmax) / bmax <= (Tol/100));
UniformLength = 2 * (z (u (konec) zmid)-z (u (1) zmid));
if (u (1) ~ = 1),%, preverite, ali je polje še vedno stalno.
disp ([ 'Opozorilo, je polje razdeljeno na dve regiji']);
flag = 1;
konec

% ---------------- Številke -------------------
slika (1)
CFL (1)
Počakaj;
surf (cylXi-september, cylYi, cylZi);% notranji valj
surf (cylXo-september, cylYo, cylZo);% zunanji cilinder
surf (cylXi september, cylYi, cylZi);% notranji valj
surf (cylXo september, cylYo, cylZo);% zunanji cilinder
colormap jeseni;
senčenje stanovanje;

Dressups% Plot
= 1,2 * RadOut;
b = 1,1 * zaxis;
osi enako;
os ([-bb-aa-aa]);
pogled ([-15 15]);

Define% povečanje spremenljivke za izdelavo področju parceli videti bolje.
scale = nadstropje (/ max (BZ));% vrstica obsega in omrežja z namenom boljšega polje
if (lestvica <= 1)% poskrbite, da boste dont življati scale = 0, 3, 6, 7, 9, itd
scale = 1;
elseif (mod (lestvica, 2) ~ = 0 & mod (lestvica, 5) ~ = 0)
obsega skale = 1;
konec

% Dodaj pregleden rezine.Preglednost nadzorom "alfa"
% Vodoravno ravnino rezina
h = obliž ([-b-bbb], [-aaa-], [0 0 0 0], [0,2 1 0,5]);
alfa (h, preglednost);
set (h, 'EdgeAlpha', 0);
% Navpična ravnina rezina
h = obliž ([-b-bbb], [0 0 0 0], [-aaa-], [0,2 1 0,5]);
alfa (h, preglednost);
set (h, 'EdgeAlpha', 0);
% Z = 0 ravnino rezina
% h = obliž ([0 0 0 0], [-a-aaa], [-aaa-], [0,7 1 0]);
% alfa (h, .3);
% set (h, 'EdgeAlpha', 0);

% Strdi valji
map = colormap;
px = cylXi :), konec) "* [1 0 0 1, 0 1 1 0];
PY = [cylYi :), konec) "cylYo :), end)];
PZ = [cylZi :), konec) "cylZo :), end)];
h = obliž (px-september, py, pz, [0,7 0,8 0,9]);
set (h, 'EdgeAlpha', transparentnost);
h = obliž (px september, 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 = obliž (px-september, py, pz, [0,7 0,8 0,9]);
set (h, 'EdgeAlpha', transparentnost);
h = obliž (px september, py, pz, [0,7 0,8 0,9]);
set (h, 'EdgeAlpha', transparentnost);

% Put mreža na področju line obliž
ytick = priti (GCA, "Ztick ');
ytick = (ytick max (ytick)) / 2;% odpraviti negativne klopi in Interpolirati.
ztick = priti (GCA, "Xtick ');
Ly = dolžina (ytick);
LZ = dolžina (ztick);
Y0 = ničle (1, Ly);
y1 = b * tiste, (1, Ly);
z0 = ničle (1, LZ);
z1 = * tiste, (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="Nasmeh" border="0" />

; Vrstice% vert
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="Nasmeh" border="0" />

; vrstice% HORIZ
% Dodaj osi proge in številke na novo omrežje.
% Navpično:
line (- [bb], [0 0] [0], 'Color', [0 0,3 1]);% vert os vrstica za številke
line (- [1; 1,03] * y1, [Y0, Y0], [1, 1] * ytick, 'Color', [0 0,3 1]);% pripravi označite linije.
h = besedilo (-1,03 * y1 ", Y0 ', ytick', num2str (ytick '/ lestvice)," HorizontalAlignment "," pravica ");
set (h, 'Color', [0 0,3 1]);
PZ = length (dobite (h, 'String')) -3;
h = text (-1,1 * b-pz, 0, srednja (ytick), "Field [T] (modra) ',' HorizontalAlignment ',' Center ');
set (h, 'Color', [0 0,3 1], "Rotation", 90);
% Vodoravno:
line (- [zaxis b], [0 0], [0 0], 'Color', [0 0,3 1]);% HORIZ os vrstica za številke
line ([zaxis b], [0 0], [0 0], 'Color', [0 0,3 1]);% HORIZ os vrstica za številke
line ([1, 1] * ztick, [z0, z0], - [0; 0,03] * z1, 'Color', [0 0,3 1]);% pripravi označite linije.
h = text (ztick ', z0', -0,055 * z1 ", num2str (ztick '),' center HorizontalAlignment ',' ');
set (h, 'Color', [0 0,3 1]);
h = line ([-zaxis zaxis], [0,0], [0,0]);% z os-line.
set (h, 'Color', 'rdeče', 'LineWidth', 2.5);

Dodajte% ploskev na terenu line
h = plot3 (z, ničle (1, dolžina (BZ)), obsega * BZ, 'b');
set (h, 'Color', 'modri', 'Linewidth', 2);
h = besedilo (0,0,0.1 * bmax, "Enotni Region ');
set (h, "Rotation", 90, 'Color', [0 0,4 0,4])

% Dodaj obliž, ki prikazuje enotno regijo v "Tol odstotkov".
uz0 = u (1) zmid;
uz1 = u (konec) zmid;
px = [z (uz0) z (uz1) z (uz1) z (uz0)];
PY = [0 0 0 0];
PZ = lestvici * [0 0 BZ (u (1) zmid) BZ (u (konec) zmid)];
h = obliž (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 = obliž (px, py, pz, [1 0,2 0,5]);
alfa (h, 1,5 * transparentnost);
set (h, 'EdgeAlpha', 0);
% h = plot3 (z (u), ničle (1, dolžina (u)), max (BZ) * tiste, (1, dolžina (u)), 'm');
% set (h, 'LineWidth', 2 ');
h = besedilo (0,0,0.1 * bmax, "Enotni Region ');
set (h, "Rotation", 90, 'Color', [0 0,4 0,3])

% Naslov in nalepke
title ([ 'magnet strucure w / Field: "num2str (bmax)" T max; R1 =' num2str (r1) ...
"Cm; R2 = 'num2str (r2)" cm, L =' num2str (L) "cm, S = 'num2str (Separ) ...
"Cm," num2str (Tol) '% Enotna dolžina: "num2str (UniformLength)' cm ']);
xlabel ( 'Z-osi [cm]');
ylabel ( 'X-osi [cm]');
zlabel ( 'Y-osi [cm]');

Odvreči;

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

Rabim pomoč pri tem enim kakšen morem spremeniti?jaz dont znanje veliko približno programing ..

 

Welcome to EDABoard.com

Sponsor

Back
Top