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

Plot funktioniert nicht :(

 

AnnemarieH93
Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 07.04.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.04.2017, 11:36     Titel: Plot funktioniert nicht :(
  Antworten mit Zitat      
Hallo, habe folgendes Skript für einen 3D-surface-plot erstellt:

Code:

% Koeffizienten
h = 12.2;

% copper conductivity
kf = 400; % Monier-Vinard
% dielectric material conductivity
km = 0.3; % Monier-Vinard
% copper fill factor
fillfactor = 0:0.01:1;

% Transistorfläche: 8*8 mm² = 64 mm²
% Induktorfläche: 23.5 mm * 24 mm = 564 mm²
% Ac = 23.5 * 24;
Ac = 8*8;
r1 = sqrt(Ac/pi);

% Kupferfläche (heat sink) von 64 mm² bis 9754 mm² (9750 ist maximale
% Fläche für heat spreading)
As = 64:96.9:9754;
r2 = sqrt(As/pi);
% Dicke von 35 mikrometer bis 1035 mikrometer (also 0.035 mm bis 1.035 mm)
t = 0.035:0.010:1.035;

[tt, r2r2] = meshgrid(t,r2);
[ff] = meshgrid(fillfactor);

tau = tt./r2r2;

% effective axial thermal conductvity of each layer
gamma = (3*ff- 1)*kf + (3*(1-ff)-1)*km; % array
kk = 0.25*(gamma + sqrt(gamma.^2 + 8*kf*km)); %array

epsilon = r1./r2r2;
Bi = h*r2r2./kk;
lambda = pi + 1./(epsilon*sqrt(pi));
Phi = (tanh(lambda.*tau) + (lambda./Bi)) ./ (1 + (lambda .* (tanh(lambda.*tau))./Bi));

Rsp = (1-epsilon)*Phi ./ (pi * kk * r1);
Rcond = tt ./ (pi * kk .* r2r2);
Rconv = 1 ./ (pi * h * r2r2);

Rtot = Rcond + Rsp + Rconv;

surf(tau, ff, Rtot)

zlabel('thermal spreading resistance in K/W')
xlabel('tau = t/r2 (dimensionless)')
ylabel('copper fill factor in decimals')
 


Heraus kommt jetzt leider nru der angehängte Plot, der für viele Variablenkombinationen leer bleibt, obwohl beim betrachten der Variable in matlab Werte angezeigt werden...

Leider ist mir absolut nicht klar, woran das liegen kann bzw was ich falsch gemacht habe. Kann mir jemand helfen?

Viele Grüße und vielen lieben Dank
Annemarie

2017-04-12 10_51_30-Figure 1.png
 Beschreibung:

Download
 Dateiname:  2017-04-12 10_51_30-Figure 1.png
 Dateigröße:  215.07 KB
 Heruntergeladen:  330 mal
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: 12.04.2017, 12:21     Titel:
  Antworten mit Zitat      
Hallo,

das Problem ist tau. Du hast anscheinend keine Daten für großes ff und kleines tau.

Code:
scatter(tau(:), ff(:))


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

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 07.04.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.04.2017, 12:30     Titel:
  Antworten mit Zitat      
Hallo und danke für die schnelle Rückmeldung.
So ganz verstehe ich das noch nicht, denn in meinem workspace wird mir tau also 101x101 Matrix mit sinnvollen Werten angezeigt... Inwiefern habe ich dann keine Werte für tau?

danke!

[EDITED, Jan, Bitte kein Top-Quoting der gesamten vorhergehenden Nachricht - Danke!]

thermal_spreading_resistance.m
 Beschreibung:

Download
 Dateiname:  thermal_spreading_resistance.m
 Dateigröße:  1.24 KB
 Heruntergeladen:  271 mal
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: 12.04.2017, 14:37     Titel:
  Antworten mit Zitat      
Hallo,

du hast schon Werte für tau, aber eben nicht die Kombination aus großem ff und kleinem tau. Wenn du den scatter-Befehl ausführst, siehst du für welche Kombinationen aus ff und tau Daten vorhanden sind.

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

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 07.04.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.04.2017, 15:44     Titel:
  Antworten mit Zitat      
Ok, danke!
Leider ist mir aber jetzt noch nicht klar, wie ich beide kombiniere... tau hat eigentlich schon die Dimension 101x101... wenn ich das dann nochmal in ein meshgrid packe passt ja die dimension nicht mehr, oder?

Sorry für die doofen Fragen!

[EDITED, Jan, Bitte kein Top-Quoting der gesamten vorhergehenden Nachricht - Danke!]

Zuletzt bearbeitet von AnnemarieH93 am 12.04.2017, 16:40, insgesamt einmal bearbeitet
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: 12.04.2017, 16:27     Titel:
  Antworten mit Zitat      
Hallo,

üblicherweise schreibt man
Code:
[X, Y] = meshgrid(x,y)
Z = f(X, Y);
surf(X, Y, Z)


Mir ist die Absicht hinter den beiden meshgrid-Befehlen und der anschließenden Division nicht klar.

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

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 07.04.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.04.2017, 16:42     Titel:
  Antworten mit Zitat      
Hallo,

die Absicht dahinter ist das ich eben nicht X und Y (also t und r2) plotten möchte, sondern tau und ff, wobei tau aber eben t/r2 ist...

Mit dieser Funktion plotte ich ja tau über r2 und t, ich möchte aber Rtot über tau und ff plotten...

Vielen vielen Dank!
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: 12.04.2017, 16:47     Titel:
  Antworten mit Zitat      
Hallo,

dann würde ich sagen:
Code:
tt = t ./ r2;
[tau, ff] = meshgrid(tt,fillfactor);


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

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 07.04.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 12.04.2017, 16:52     Titel:
  Antworten mit Zitat      
Genau, dabei war ich auch schon, das führt aber zu dem Problem dass dann nur der erste Wert des Vektors t durch den ersten Wert des Vektors r2 geteilt wird, der zweite durch den zweiten usw.
tau sollte aber eigtl eine Matrix sein, bei dem jeder Wert von t durch jeden Wert von r2 geteilt werden soll...

Nun war mir nicht klar wie ich tau als Matrix hinbekomme aus der Division...
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: 12.04.2017, 17:16     Titel:
  Antworten mit Zitat      
Hallo,

dann hängt Rtot also von drei Größen ab: t, r2 und ff.

Funktionen zur Visualisierung solcher Daten findest du hier:
https://www.mathworks.com/help/matl.....volume-visualization.html

Grüße,
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.