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

Stairs Function

 

Pigmy
Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 22.03.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.03.2016, 11:03     Titel: Stairs Function
  Antworten mit Zitat      
Hallo,

ich würde gerne eine Treppenfunktion in Matlab programmieren.
Diese soll vier Eingangsparameter haben.
T1: Anfangstemperatur
T2: Solltemperatur
t_vst: Zeit bis T1 = T2 in Sekunden
n: Anzahl der Stufen

Als Ausgangsparamter soll eine Matrix mit erster Spalte Zeitvektor und
zweiter Spalte die dazugehörende Temperatur.
Um zu schauen ob das so geklappt hat wie ich mir das wünsche benutze ich einfach die Funktion stairs(t_vst,T).

Mein Problem besteht jetzt darin für variable n den Temperaturvektor T zu erstellen.
Weil er muss ja z.b. wenn n = 3, t_vst = 1200, T1 = 25, T2 = 250,
die ersten 400 s T1 beinhalten, die zweiten 400 s T1 + dT etc.
Das heißt die ersten 400 Einträge sind die selben die zweiten 400 auch usw. Und diese Anzahl an gleichen Einträgen hängt natürlich von n und T2 und T1 ab.
Dass ist mein Problem.

Code:

function Msoll = test(n,T1,T2,t_vst)

dT = (T2 - T1) / n;   % Stufenhöhe
dt = t_vst / n;   % Stufenlänge

t = 0:t_vst;   % Zeitvektor

T = zeros(n,1);
for k = 2:n+1
    T(k) = T1 + dT*(k-1);
end
T(1) = T1;

stairs(t,T);

Msoll = [t,T];
 


Das wäre der Temperaturvektor, indem jedoch nur die Temperaturen der einzelnen Stufen stehen.

Es sollte nicht so schwierig sein, aber ich seh den Wald vor lauter Bäumen nicht mehr Wink

Danke.
Gruß
Private Nachricht senden Benutzer-Profile anzeigen


Winkow
Moderator

Moderator



Beiträge: 3.842
Anmeldedatum: 04.11.11
Wohnort: Dresden
Version: R2014a 2015a
     Beitrag Verfasst am: 22.03.2016, 11:18     Titel:
  Antworten mit Zitat      
dein code ist so nicht lauffähig.
meinst du sowas?
Code:
n=3;
t_vst=1200;
T1=25;
T2=250;
t=0:t_vst;
T=zeros(size(t));
dt=round(t_vst/n);
dT=(T2-T1)/n;
T(dt:dt:end)=dT; % auflösung 1 sekunde sonst muss man das ändern
T=T1+cumsum(T);
plot(t,T)
 

_________________

richtig Fragen
Private Nachricht senden Benutzer-Profile anzeigen
 
Pigmy
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 10
Anmeldedatum: 22.03.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.03.2016, 11:39     Titel:
  Antworten mit Zitat      
Ja sowas meine ich. Aber ich kann ihn nicht ganz nachvollziehen.
Was macht
Code:

T(dt:dt:end)=dT;
 
?

Ah ok, ich habs.
Das ist geschickt Wink
Herzlichen Dank Smile))
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 - 2025 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.