|
|
Stationären Zustandswert und dessen Zeit ausgeben |
|
Sebii2 |

Forum-Newbie
|
 |
Beiträge: 3
|
 |
|
 |
Anmeldedatum: 22.05.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 22.05.2009, 00:40
Titel: Stationären Zustandswert und dessen Zeit ausgeben
|
 |
Hallo Zusammen
Ich habe eine Simulation für den Temperaturverlauf in einem Haus aufgebaut und soweit funktioniert auch alles. Im Anhang befindet sich der geplottete Temperaturverlauf im Haus.
Nun zu meinem Problem: Ich wollte mittels einer Schleife den stationären Zustand der Temperatur ermitteln und wann (Zeit) dieser eintritt. Leider ist die einzige Ausgabe die Startwerte, also 273 K bei 0 sekunden.
Wo liegt mein Fehler??
Hier die Schleife:
Hoffe mir kann jemand helfen.
edit by steve: Willkommen im Forum. Verwende bitte in Zukunft die Code-Umgebung für die Codeschnipsel über den Butten oben in der Mitte.
Beschreibung: |
|
 Download |
Dateiname: |
Temperaturverlauf.jpg |
Dateigröße: |
22.84 KB |
Heruntergeladen: |
702 mal |
|
|
|
|
|
derOli |

Forum-Meister
|
 |
Beiträge: 579
|
 |
|
 |
Anmeldedatum: 19.03.08
|
 |
|
 |
Wohnort: Leipzig
|
 |
|
 |
Version: 2010a
|
 |
|
|
 |
|
Verfasst am: 22.05.2009, 10:31
Titel:
|
 |
Hi, macht doch eigentlich Sinn, die Änderung scheint am Anfang doch sehr stark zu sein, dadurch wird halt gleich der erste Wert genommen und die Schleife bricht ab.
Besser wäre folgendes:
Damit löst du das Problem schnell und ohne Schleife. Und du kannst dir den Verlauf angucken und gegenbenenfalls einen Schwellenwert (z.B. 0.995) berechnen. Aber wäre nicht eigentlich der Absolutwert der Differenz sinnvoller?
Viele Grüße,
der Oli
|
|
|
Sebii2 |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 3
|
 |
|
 |
Anmeldedatum: 22.05.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 22.05.2009, 12:20
Titel:
|
 |
Danke für deine Antwort.
Ich kenne mich in matlab und simulink leider noch nicht so gut aus.
Was ich vergessen hab zu sagen war das ich die Simulation in simulink aufgebaut habe und die Temperatur TR3 als Array an matlab übergebe.
Ebenso die Zeit t
meine Schleife mit If Anweisung soll also den ersten mit dem nächsten arraywert vergleichen und wenn sich dieser (so gut wie) nicht mehr ändert den aktuellen Wert Ausgeben. Deswegen die Schleife.
Ich habe deinen Code probiert, leider kann ich den plot nicht interpretieren (habs mal hochgeladen).
Beschreibung: |
|
 Download |
Dateiname: |
graph2.jpg |
Dateigröße: |
15.81 KB |
Heruntergeladen: |
663 mal |
|
|
|
derOli |

Forum-Meister
|
 |
Beiträge: 579
|
 |
|
 |
Anmeldedatum: 19.03.08
|
 |
|
 |
Wohnort: Leipzig
|
 |
|
 |
Version: 2010a
|
 |
|
|
 |
|
Verfasst am: 22.05.2009, 12:39
Titel:
|
 |
Hi mit Simulink kenne ich mich leider nicht aus.
Die Grafik zeigt dir die Änderung wie du sie berechnen möchtest. Dort siehst du auch, warum es bis jetzt nicht funktioniert hat. Der Wert 0.9995 wird schon am Anfang erreicht. Dann steigt es pro Zeitwert immer weiter an, danach negiert sich die Änderung und dann gibt es keine Änderung mehr. Jetzt kannst du den Vektor interpretieren, zB. rausfinden wann sich die Änderung negiert (max) usw.
Viele Grüße,
der Oli
P.S. versuche in Zukunft nicht mehr i und j als Variablen zu benutzen (komplexe Rechnung).
|
|
|
Sebii2 |
Themenstarter

Forum-Newbie
|
 |
Beiträge: 3
|
 |
|
 |
Anmeldedatum: 22.05.09
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 22.05.2009, 14:19
Titel:
|
 |
Ok ich danke dir.
Weiß zufällig jemand wie ich das Problem des Schwellwerts ändern könnte? Hab schon die Schrittweite meiner Schleife geändert um einen höhere Differenz zu den einzelnen Werten des Arrays zu bekommen. leider auch ohne guten Erfolg (Zeigt mir dann den max (TR3) Wert an)
Wie könnte ich die Schleifenbedingung anpassen damit es funktioniert?
Hab sie schon erweitert, da die Temperatur kurzzeitig fällt und somit meine abbruchbedingung falsch wäre:
|
|
|
derOli |

Forum-Meister
|
 |
Beiträge: 579
|
 |
|
 |
Anmeldedatum: 19.03.08
|
 |
|
 |
Wohnort: Leipzig
|
 |
|
 |
Version: 2010a
|
 |
|
|
 |
|
Verfasst am: 27.05.2009, 10:24
Titel:
|
 |
Hi Sebil,
was ist denn genau deine Abbruchbedingung???
Viele Grüße,
der Oli
|
|
|
derOli |

Forum-Meister
|
 |
Beiträge: 579
|
 |
|
 |
Anmeldedatum: 19.03.08
|
 |
|
 |
Wohnort: Leipzig
|
 |
|
 |
Version: 2010a
|
 |
|
|
 |
|
Verfasst am: 27.05.2009, 10:29
Titel:
|
 |
Achso jetzt seh ich erstmal den Fehler in der if Abfrage,
die Schleife ist an der falschen Stelle, du willst wahrscheinlich das hier schreiben:
Aber wie gesagt, ich würde es einfach nicht mit einer Schleife machen, sondern mit dem Code weiter oben, ohne Schleife. Ich versteh bloß deine Abbruchbedingung nicht.
Grüße,
der Oli
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
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
| 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.
|
|