Steigung eines Signales ermitteln - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +---- Forum: Datenerfassung (DAQ) (/Forum-Datenerfassung-DAQ) +---- Thema: Steigung eines Signales ermitteln (/Thread-Steigung-eines-Signales-ermitteln) |
Steigung eines Signales ermitteln - Winnepooh - 05.01.2010 14:33 Bin ein absoluter LabVIEW Neuling und schlage mich gerade mit meinen ersten Gehversuchen durch. Ich benötige für meine Semesterarbeit eine Temperaturregelung welche mir bestimmte Temperaturniveaus einregelt. Hätte mir folgendes vorgestellt: Temperatursensor --> PID-Regler--> Analoges Ausgangssignal 0-10V um die Heizstäbe zu regeln (Oder ist ein anderer Regler sinnvoller? Problem ist dass das ganze System relativ träge ist) Jetzt darf die Temperatur aber nur mit einer gewissen Geschwindigkeit ansteigen, zb 10°/min und kurz vor Solltemperatur zb 1°/min. Nun hab ich ein paar Fragen wie ich am besten diese Geschwindigkeit berechne: ((Ist Temperatur)-(Temperatur vor 5s))/5s=Steigung (200°-180°)/5s=4°/s So hätte ich das gemacht, oder gib es da elegantere Möglichkeiten? Aber nun zu meinem Hauptproblem: Ich wollte zu Testzwecken einen Temperaturverlauf simulieren, indem ich einen Zähler hochlaufen lasse. Woran es jetzt aber scheitert: wenn ich die Schleife die den Zähler hochzählt (alle 200ms) schneller laufen lassen möchte wie die Schleife die mir die Steigung errechnet(alle 1000ms), funktioniert das natürlich nicht, da ja das Ganze dem Datenfluss unterlegen ist. Habe es auch schon mit 2 einzelnen Schleifen probiert, habe es allerdings nicht geschafft den aktuellen Wert des Zählers in die andere Schleife zu übernehmen Wie setzt man nun so etwas um? Hab mal meinen Versuch angehängt, um es zu verdeutlichen. Bin für jede Hilfe dankbar! Hans Welche guten Tutorials oder Bücher könnt ihr mir empfehlen? Steigung eines Signales ermitteln - BsaiboT - 05.01.2010 18:01 Also ich würde Queues einsetzen und Du solltest dir angewöhnen mit Schieberegistern zu arbeiten, anstatt die Feedback-Teile (Wie auch immer die heissen mögen - kann die bei mir nichteinmal finden) zu verwenden, dann wird der Code einfacher lesbar. Hier mein Lösungsansatz: [attachment=23433] Ich hatte nur wenig Zeit dafür, also seht mir bitte eine etwaige unsaubere Programmierung nach... ^_^ Tante Edit sagt, ich habe vergessen die Version anzugeben. Leider habe ich gerade nur 2009 installiert, evtl ist jemand anderes so nett und kann das VI auf 8.6 herunterspeicher?! Steigung eines Signales ermitteln - Y-P - 05.01.2010 21:56 Das kannst Du auch selber: "File"->"Save for previous version". Da kannst Du bis LabVIEW 8.0 zurückspeichern, außer Du verwendest eine Event-Struktur, dann geht's nur bis LabVIEW 8.6, weil LabVIEW 2009 einen Bug hat. Hab's mal für Dich erledigt: [attachment=23435] Gruß Markus ' schrieb:Leider habe ich gerade nur 2009 installiert, evtl ist jemand anderes so nett und kann das VI auf 8.6 herunterspeicher?! Steigung eines Signales ermitteln - Winnepooh - 06.01.2010 15:39 Danke, Habe mir soeben mal das VI angesehen. Zuerst hat mir in der mittleren Schleife das Element gefehlt welches die Wert in die Queue einreiht, denke es müsste das "Enqueue Element" sein, zumindest funkionierte es damit. Aber jetzt zu einem Problem das mir aufgefallen ist Wenn ich die Zeit für Temperaturerhöhung auf 500ms stelle und die Temp.erhöhung auf 1° wären es ja 2° pro Sekunde Das Ergebnis was ausgegeben wird beträgt auch 2° pro Sekunde, aber meiner Meinung nach nur weil die 500ms einrechnet, die er aber eigentlich nicht kennt, also falls es reale Werte wären. Ebenso wird die Temperaturerhöhung wieder auf 1° pro Sekunde quasi die Taktfrequenz der 3. Schleife 1000ms abgebremst. Müsste nicht in der unteren Schleife nur durch die Durchschnittszeit für die Messung geteilt werden und mit 1000 multipliziert werden und vom Millisekunden auf Sekunden zu kommen? Schon mal vielen Dank für die Hilfe hab mal meine Modifikation angehängt Steigung eines Signales ermitteln - BsaiboT - 07.01.2010 10:09 Hallo Freund von Tigger und Ferkel! Du hast natürlich recht mit deiner Annahme. In deinem Beispiel funktioniert es richtig. Entschuldige, falls ich Dich verwirrt habe, aber es wurde wie gesagt nur schnell zusammengeschuhstert, da ich nicht viel Zeit hatte... Grüsse, Tobias Steigung eines Signales ermitteln - Winnepooh - 07.01.2010 11:46 Ja kein Problem, bin ja für jede Hilfe dankbar. Aber denke werde noch ein paar mal auf euch zukommen, wenn ich nächste Woche den Datenlogger (34970a agilent) bekomme, und sich dann weitere Fragen auftun. Aber danke bis dahin. Es hat keiner zufällig Vorschläge für ein Temperaturregelungs Beispiel VI das ich verwenden könnte? MFG Hans |