Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
stehe gerade wieder vor einem Problem welches ich nicht zu lösen bekomme.
Es geht sich um folgendes und zwar habe ich einen Eingabearray mit einer elektrischen Leistung die von einem Dieselgenerator erzeugt wurde. Nun sind feste werte einer Elektrischen Leistung und mechanischen Leistung gegeben im Form von zwei arrays, die eine Kennlinie bilden. Diese Werte soll ich mir zuerst einmal ausdenken, werden später durch Herstellerangaben ergänzt.
Der Dieselgenerator gibt also jetzt eine Elektrische Leistung ab und dieser Wert muss im array P elektrische gefunden werden und dann die zugehörige mechanische Leistung ermittelet werden. Liegt der Wert aber zwischen den gegeben Werten, muss eine Lineare Interpolation passsieren.
Mein Program ermittel diese Werte auch und die Schleife läuft weiter, wenn der Wert nicht im Intervall des Index 0 und 1 im array P elektrisch zu finden ist und schreibt dann im false Fall eine Null (großer Case) in den Ausgabearray (array 3) , da ich im False Fall den Standartwert verwende. Sobald ein Wert gefunden wurde, beginnt er mit dem nächsten wert vom Dieselgenerator usw.. Jetzt weiss ich nicht wie lang die Forschleife im Vorfeld laufen muss bzw. mein N indiziert werden muss, da immer unterschiedlich viel Nullen in den Array geschrieben werden. Die Lösung wäre soald er in den False Fall geht und eine Null in den Ausgabearray (array 3) schreibt, muss die Forschleife einen Werte längert laufen.
(22.02.2014 21:36 )David_Lab schrieb: ... Liegt der Wert aber zwischen den gegeben Werten, muss eine Lineare Interpolation passsieren...
Hallo David,
ich kann dein VI zwar nicht öffnen (die Höhe der LV-Versionsnummer, in der ein VI programmiert ist, verhält sich umgekehrt proportional zur Anzahl der Menschen, die es öffnen können), glaube aber, dass dir die Funktion "interpolate 1D-Array" helfen könnte.
Gruß, Marko
23.02.2014, 09:25 (Dieser Beitrag wurde zuletzt bearbeitet: 23.02.2014 09:26 von Lucki.)
ich habe bei deinem VI mal die unnötigen lokalen Variablen entfernt.
Leider erschließt sich mir deine Programmlogik mit den 11 Schieberegistern überhaupt nicht. Und mangels sinnvoller Eingangsdaten kann man dein VI auch nicht hinreichend testen…
SubVI Einlesen von Graphen für Dieselgenerator.vi (Größe: 19,6 KB / Downloads: 243)
Hallo
Ja hatte drei überflüssige Schieberegister drin, die ich jetzt gelöscht habe. Die anderen Schieberegister sind für die Durchläufe der Werte vom Dieselgenerator nötig. Es wird halt solange der gleiche Wert vom Dieselgenerator genommen bis er in einem Intervall von P elektrisch zu finden ist. Wenn einer gefunden wurde, wird der zweite Wert vom Dieselgenerator genommen und durchläuft den Array P elektrisch von vorne.
Hoffe es wurde jetzt klarer…
Habe jetzt auch beispielwerte hinterlegt, sodass man es direkt Testen kann.
und meine Kommentare zu den lokalen Variablen missachtest du einfach so?
Ich habe keinen Bock, erneut die gleichen Anpassungsarbeiten vorzunehmen…
Was soll der ganze Scheiß?
P.S.: Wie du in meinem gestrigen VI auch sehen konntest, kann man IndexArray aufziehen, um gleich zwei aufeinander folgenden Elemente abzufragen. Hast du dir mein VI überhaupt mal angeschaut?