Hallo K2000,
Zitat:Ich habe einige Polynome von Temperatursensoren oder anderen Messfühlern. Des weiteren wird es Benutzereingaben auf dem Frontpanel geben, mit denen ebenfalls bestimmte Größen berechnet werden sollen. Bin dabei alles in einen Formelknoten reinzupacken. Mein Frage ist, wie verfährt man denn mit Sinus, Cosinus, Exponenten usw...? Und in wie weit ist es wichtig Klammern zu setzten? Könnte ihr mir vielleicht ein paar Beispielformeln schreiben, die man genau so in Labview eingeben könnte?
Wozu genau benötigst du einen Formelknoten? (Außerdem gibt es dazu (mehr als) einen Eintrag in der LabVIEW-Hilfe!)
LabVIEW bietet so viele Funktionen:
[
attachment=61074]
Hier die Polynomentwicklung…
(23.07.2020 08:30 )Keithley2000 schrieb: [ -> ]also das mit dem Daten lesen klappt jetzt alles wie es sein soll.
Poste doch bitte noch einen Screenshot oder ein kleines VI, wie das jetzt bei dir funktioniert. Danke.
Hallo, ihr zwei
ich schick mal da fertige VI um Daten zu lesen und das angefangene VI in dem ich Daten berechnen will. Vielleicht könnt ihr mir ja bei dem VI zur Berechnung Rückmeldung geben (also das VI ist wirklich erst am Anfang)
[
attachment=61076]
[
attachment=61077]
Hallo K2000,
Zitat:das angefangene VI in dem ich Daten berechnen will. Vielleicht könnt ihr mir ja bei dem VI zur Berechnung Rückmeldung geben (also das VI ist wirklich erst am Anfang)
Erst redest du von "Polynomen" und dann benutzt du eine simple lineare Skalierung der Spannungswerte.
Beispiel für "einfache LabVIEW-Funktionen":
[
attachment=61078]
Du musst natürlich die Messwerte der Temperatursensoren als Array bereitstellen, ohne "andere Messwerte" zwischendrin.
Siehst du, wieviel einfach als deine riesige Formula-Node eine solche Berechnung ist?
(Und vor allem auch ohne deine Tippfehler in der Formula-Node, wie z.B. gleich in der ersten Zeile!)
Die Umwandlung ArrayToCluster in deinem Trigger-VI ist auch fragwürdig…
Hallo GerdW,
im rechten Formelknoten sind doch Polynome. Dein Ansatz verstehe ich und finde ihn auch gut aber wenn mein Array aus 10 Messwerten besteht und 7 davon mit einer Formel und die restlichen drei mit anderen Formeln berechnet werden, wie soll ich da die Verbindungen setzten?
Die ArraytoCluster Umwandlung hatte ich nur als kleinen Test für mein "Daten speichern" VI gemacht. Musste den Cluster erstellen da die Werte in einer Textdatei gespeichert werden aber ja du hast recht, am Ende wird das nicht mehr so sein.
Hallo K2000,
Zitat:Dein Ansatz verstehe ich und finde ihn auch gut aber wenn mein Array aus 10 Messwerten besteht und 7 davon mit einer Formel und die restlichen drei mit anderen Formeln berechnet werden, wie soll ich da die Verbindungen setzten?
Dann kann man mittels ArraySubset die ersten 7 Samples wie gezeigt weiterverarbeiten und für die anderen 3 nimmt man ArrayIndex ab Index 7 (bis 9), um an die Einzelwerte zu kommen.
Wenn aber die anderen Formeln auch nur lineare Skalierungen mit anderen Parametern sind, dann nimmt man statt der skalaren Konstanten wie in meinem Bild gleich eine Arraykonstante mit den passenden Werte für jeden Messkanal.
Bei mir kommen diese ganzen Skalierungswerte aus diversen Konfigurationsdateien (Sensor-Kalibrierung, Prüfstands-Messstellen-Kalibrierung, user-definierte Skalierung, Messeinheiten-Umrechnung wie g/s zu kg/h, …) und die Skalierungsroutine erhält diese Parameter alle über eine Messkanal-bezogene Datenquelle (eine FGV, in der über den Messkanalnamen auf die zugehörigen Parameter zugegriffen wird)…
Zitat:im rechten Formelknoten sind doch Polynome.
Da machst du einiges an Rechnungen, die bei mir unter "Stoffdaten-Berechnung" im Prüfstand erfolgt. Für die wichtigsten (aka am häufigsten nachgefragten) Rechnungen habe ich mittlerweile eine ganze Bibliothek an subVIs, wie z.B. Dichteberechnungen für unsere Arbeitsmedien oder Luftfeuchte-Rechnungen. Statt einer riesigen FormulaNode gibt es dann eben ein paar subVIs, die mit den richtigen Messgrößen aufgerufen werden. Auch das größtenteils vom User definierbar, und natürlich Messstellennamen-basiert…
Bei Prüfstandsaufbauten solltest du IMMER davon ausgehen, dass sich die ursprünglich vorgesehene Anzahl/Auswahl an Sensoren verändern wird: jetzt braucht man doch mal 2 Temperatursensoren mehr, weil man irgendwo einen Wärmeverlust bestimmen will. Oder jemand auf die Idee kommt, einen Sensor durch einen ähnlichen zu ersetzen: wenn grad kein 4bar-Drucksensor greifbar ist, nimmt man eben einen 6bar-Sensor. Und jedesmal ein Programm dafür neu zu kompilieren, ist auf Dauer wirklich Unsinn. Deshalb der Weg über eine möglichst durch den Prüfstandsfahrer durchführbare Konfiguration!
Zitat:Musste den Cluster erstellen da die Werte in einer Textdatei gespeichert werden
Diese Begründung ist nicht wirklich schlüssig.
Sinnvoll ist sowas eigentlich nur, wenn ein typdefnierter Cluster dabei herauskommt, mit sinnvollen Labels für die Clusterelemente…
Hallo GerdW,
eine wirklich ausführliche und schlüssige Antwort. Häufig nachgefragte Rechnungen in SubVis packen ist auf jeden Fall schon mal eine tolle Idee, die ich auch selbst umsetzten kann. Allerdings muss ich gestehen, dass ich mir wohl aufgrund mangelnder Erfahrung überhaupt nicht vorstellen kann wie ein VI wie du es beschrieben hast aussieht. Das mit dem ArrayIndex, ArraySubset usw... scheint für dich ganz einfach und logisch zu sein aber ich kann damit noch nicht wirklich viel anfangen. Gibt es die Möglichkeit an ein Beispiel-VI zu kommen, welches ich Schritt für Schritt für mich nachvollziehen und an mein System anpassen kann?
Hallo GerdW,
wie wird das jetzt verbunden? Ist nur ein kleines Beispiel, welches ich später vielleicht auf da HauptVi übertragen kann
[
attachment=61080]
Hallo GerdW,
wenn ich die Formeln mit Hilfe der Funktionenpalette realisieren möchte, wie kann ich denn da mehrere Konstanten an ein Icon heften?
Bsp: T2 = T_koll_ein;
b0= 999.85; b1= 6.187*(10**-2); b2= -7.654*(10**-3); b3= 3.974 * (10**-5); b4= -1.110*(10**-7);
rho = b0 + (b1*T2) + (b2*(T2**2) + (b3*(T2**3) + (b4*(T2**4);
Diese Formel hat zum Beispiel 5 Konstanten. Das mit den "**" soll heißen, steht im Exponent. So steht es mal bei NI auf der Hilfe-Seite. Gibt es da keinen eleganteren Weg diese Formel bei LabView einzugeben