WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Surface Plot erstellen

 

Peter_Janik
Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 21.04.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.04.2018, 14:55     Titel: Surface Plot erstellen
  Antworten mit Zitat      
Guten Tag zusammen,

ich habe das Problem das ich leider keine Grafik erzeugen kann.

Die ersten zwei Achsen sollte so aussehen:

Nt2 = [1:1:25]
Na2 = [1:1:50]

aber die dritte berechne ich mithilfe dieser zwei Parameter aber zusätzlich mit etwa 40 anderen und über 10 Formeln. Kann ich daher den Output der Formeln was "Q2" wäre auf die Z Achse legen? Ich habe dazu Bilder gesehen und würde es gerne auch umsetzen.

Fehlermeldung "Z must be a matrix, not a scalar or vector."
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 22.04.2018, 17:37     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
aber die dritte berechne ich mithilfe dieser zwei Parameter aber zusätzlich mit etwa 40 anderen und über 10 Formeln. Kann ich daher den Output der Formeln was "Q2" wäre auf die Z Achse legen?

Ich verstehe nicht wirklich, was du damit meinst.

Die genannten Befehle erzeugen sicher nicht diese Fehlermeldung. Poste doch bitte die Befehle, die die Fehlermeldung erzeugen.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Peter_Janik
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 21.04.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.04.2018, 17:42     Titel:
  Antworten mit Zitat      
Code:
Nt2 = [1:1:20]; %Turns per Layer driver coil
Na2 = [1:1:20]; %Layers driver coil



... verschiedene Berechnungen um Q zu erhalten

Code:
Q2 = (omega.*Leff2)./(ESR2)



Code:
%%3D-Plot
X=Na2;
Y=Nt2;
[X,Y] = meshgrid (1:0.5:10,1:20);
Z=Q2;
surf(X,Y,Z)
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 22.04.2018, 17:58     Titel:
  Antworten mit Zitat      
Hallo,

da ich nicht weiß, wie omega, Leff2 und ESR2 aussehen, weiß ich über Z jetzt genauso viel wie vorher, nämlich: nichts. Gib doch bitte wenigstens die Dimensionen von Z an.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Peter_Janik
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 21.04.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.04.2018, 18:00     Titel:
  Antworten mit Zitat      
X 20x19
Y 20x19
Z 1x20
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 22.04.2018, 18:07     Titel:
  Antworten mit Zitat      
Hallo,

spätestens in dem Moment, wo du das schreibst, sollte doch klar sein, dass das einfach nicht zusammenpasst?

Du musst die Berechnung von Z basierend auf den Gittermatrizen X und Y durchführen, nicht mit Nt2 und Na2.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Peter_Janik
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 21.04.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.04.2018, 18:08     Titel:
  Antworten mit Zitat      
ok und wie stelle ich das am besten an? Leider habe zuvor noch nie mit 3-D Plots gearbeitet.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 22.04.2018, 19:19     Titel:
  Antworten mit Zitat      
Hallo,

das Problem ist weniger der 3D-Plot als das, was zuvor passiert.

Funktionieren würde z.B.:
Code:
[X,Y] = meshgrid (1:0.5:10,1:20);
Z=X.^2 + Y.^2;
surf(X,Y,Z)


Wie gesagt:
Zitat:
Du musst die Berechnung von Z basierend auf den Gittermatrizen X und Y durchführen


Solange ich nicht sehe, wie du Z genau berechnest (also auch, was omega, Leff2 und ESR2 sind), kann ich dir bei der Anpassung nicht wirklich helfen.

Alternativ kannst du dich erst mal an einem kleineren Beispiel versuchen, das du dann hier zur Verfügung stellen kannst, wenn Probleme auftreten.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Peter_Janik
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 21.04.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.04.2018, 19:56     Titel:
  Antworten mit Zitat      
der komplette Code sieht so aus daher ist es wahrscheinlich nicht direkt möglich..

Code:
%%Primary Coil

mu_0 = 4.*pi.*10.^(-7);   %absolute permeability
mu_r = 0.999994;          %copper relative permeability
f = 1.*10.^(6);           %Frequency
omega = 2.*pi.*f;         %omega
ky = 1.01025.*10.^(-3);     %radii shift per layer
h = 0.33675.*10.^(-3);    %Separation Layer
epsilon_r = 3;            %relative permittivity
epsilon_0 = 8.854189.*10.^(-12);  %permittivity vacuum
sigma = 3.*10.^(-6);      %isolation thickness
OD = 0.6735.*10.^(-3);    %Outer DIameter
R = 0.33675.*10.^(-3);    %Wire radius
FR = 1.60;                %Ac-Factor
p=1.72.*10.^(-8);         %Resistivity copper at 20°
A=pi.*R.^2;               %Wire cross section

Outer_Diameter_Coil = 149.*10.^(-3);
Inner_Diamter_Coil = 52.02.*10.^(-3);
Outer_Loop_Radius = Outer_Diameter_Coil./2;
Inner_Loop_Radius = Inner_Diamter_Coil./2;
Di2 = (Outer_Diameter_Coil-Inner_Diamter_Coil)./2+Inner_Diamter_Coil; %Average Diameter              
Nt2 = 14; %Turns per Layer driver coil
Na2 = 48; %Layers driver coil
N2 = Nt2.*Na2;


%%Parasitic Capacitance
fun2 = @(x2_1) (pi.*Di2.*R)./(sigma+epsilon_r.*R.*(1-cos(x2_1)));
q2 = integral(fun2,0,(pi./4));
Cb2 = epsilon_r.*epsilon_0.*q2;
fun2_2 = @(x2_2) (pi.*Di2.*R)./(sigma+epsilon_r.*R.*(1-cos(x2_2))+0.5.*epsilon_r.*h);
q2_2 = integral(fun2_2,0,(pi./4));
Cm2 = epsilon_r.*epsilon_0.*q2_2;

S2_1=0;
i2 = 1:Nt2;
S2_1 = sum((2.*(i2)-1).^2.*(Na2-1));
Cp2 = (1./(N2.^2)).*(Cb2.*(Nt2-1).*Na2 + Cm2.*S2_1)


%%Self-Inductance
b2 = Na2.*ky;
Length2 = Nt2.*OD; %coil thickness
r2_1 = 26.01.*10.^(-3); %radius inside coil
r2_2= r2_1+b2; %radius outside coil

L2_1 = (31.6.*r2_1.^2.*N2.^2)./(6.*r2_1+9.*Length2+10.*(r2_2-r2_1)); %[uH]
L2 = L2_1.*10.^(-6)

%%Self-Frequency
fself2 = 1./(2.*pi.*sqrt(L2.*Cp2))

%%Resistance
RDC2 = Na2.*p.*Nt2.*pi.*Di2./A
RAC2 = RDC2.*FR

%%Quality Factor
Leff2 = L2./(1-omega.^2.*L2.*Cp2).^2;
ESR2 = RAC2./(1-omega.^2.*L2.*Cp2).^2;
Q2 = (omega.*Leff2)./(ESR2)
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 23.04.2018, 11:23     Titel:
  Antworten mit Zitat      
Hallo,

da die Abhängigkeit der Funktion von Na2 und Nt2 etwas komplexer ist, würde ich Q in zwei geschachtelten for-Schleifen (eine für Na2, eine für Nt2) berechnen.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Peter_Janik
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 21.04.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.04.2018, 14:55     Titel:
  Antworten mit Zitat      
ok danke Harald!
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.