Strona 1 z 1

Mnożenie na podstawie tablicy

: 22 sie 2016 12:00
autor: v93
Witam,
Korzystam z LabVIEW do pobierania napięcia z miernika, jednak docelową wartością powinna być temperatura. Czy jest możliwość wprowadzenia tablicy na podstawie której program sam będzie mnożył napięcie przez odpowiednią wartość?

Obrazek

Mnożenie na podstawie tablicy

: 22 sie 2016 13:03
autor: aaddaas
Czyli chcesz przeprowadzać zwykle skalowanie?
Czy współczynnik skalowania zmienia się w zależności od przedziału napięcia? Bo jeśli jest stały, to wystarczy pomnożyć zmierzone napięcie przez współczynnik skalowania.
Jak jest w Twoim przypadku?

Re: Mnożenie na podstawie tablicy

: 22 sie 2016 15:04
autor: v93
Jest zmienny, w zasadzie zmienia się liniowo i mógłbym opisać go jedną funkcją, ale nie wiem czy byłoby to wystarczająco precyzyjne.

Jeżeli chciałbym użyć funkcji y=ax+b to, w którym miejscu powinienem to wstawić?

Mnożenie na podstawie tablicy

: 22 sie 2016 15:47
autor: aaddaas
Skoro możesz opisać go funkcją y=ax+b (T=aU+b), to te dane które odczytujesz (i wpisujesz do Data Chart) po prostu mnożysz przez a, oraz dodajesz b (zwykłymi działaniami z podstawowej palety - działają też na tablice)

Re: Mnożenie na podstawie tablicy

: 22 sie 2016 16:04
autor: v93
Jeszcze mam taki problem, że bloczek "Spreadsheet To Array" skraca wynik do 6 cyfr po przecinku (w zależności od wersji programu), przykładowo: wartość 1.63689622e-04 zapisuje mi jako:

LabVIEW 13: 1.636896
LabVIEW 15: 0.000163

Czy jest jakaś możliwość zapisania pełnej wartości pomiaru?

Mnożenie na podstawie tablicy

: 22 sie 2016 16:27
autor: aaddaas
Do tego bloczku wprowadzasz format danych %f
Jeśli chcesz określić dokładność to zastosuj zapis wzorując się na tym %5.1f (The 5 in the Format String section specifies a width of 5, and the 1 specifies the number of digits to the right of the decimal, or precision.) - więcej informacji możesz znaleźć w helpie
W twoim przypadku, jeśli byś chciał mieć wynik z dokładnością do np 10 miejsca po przecinku, to zapisujesz %.10f

Re: Mnożenie na podstawie tablicy

: 22 sie 2016 16:47
autor: v93
Ok, dziękuję. Próbowałem tego sposobu ale wpisywałem %10f bez kropki. Jutro zobaczę czy działa.

Re: Mnożenie na podstawie tablicy

: 23 sie 2016 12:12
autor: v93
Problem z ograniczoną ilością cyfr po przecinku dotyczył jednak już samego zapisu, pozbyłem się go mnożąc wynik przez 1000. Ale jeżeli chodzi o główny problem, którym rozpocząłem temat. Nie jestem pewien czy jedna funkcja to dobry pomysł. Czy da się w jakiś sposób tworzyć warunki w stylu:
Jeżeli wynik mieści się w przedziale od X do Y to pomnóż przez Z, jeżeli wynik mieści się przedziale od A do B pomnóż przez C.

Re: Mnożenie na podstawie tablicy

: 23 sie 2016 12:51
autor: aaddaas
Wydaje mi się, że jeśli jest dostępna funkcja liniowa, to lepiej jej użyć.
Ale jeśli koniecznie chcesz robić zakresami, to wymyśliłem na szybko taki sposób:
Zakresy.png
Zakresy definiujesz w tej dolnej tabeli, zaś mnożnik w górnej.
Bloczek "In range and coerce" należy kliknąć PPM i zaznaczyć by zawierało górny/dolny zakres, jeśli nas to interesuje.
Wyjście z wewnętrznej pętli jest wyjściem "Last Value" z opcją "Conditional terminal"
W razie pytań jestem do dyspozycji

Re: Mnożenie na podstawie tablicy

: 24 sie 2016 01:07
autor: micard
Tutaj nie ma co kombinować, tylko użyć istniejącego bloczka: interpolate 1D.vi
Dzięki niemu można stworzyć charakterystykę liniową na przedziałach pomiędzy zadanymi punktami.

dokładny opis jest dostępny tutaj:
https://zone.ni.com/reference/en-XX/hel ... polate_1d/

Re: Mnożenie na podstawie tablicy

: 24 sie 2016 17:17
autor: v93
Czy wykonanie z załącznika jest poprawnie zrealizowane? Czyli w tym przypadku dla xi=1,5 yi będzie równało się 15?

Jeszcze mam takie pytanie. Jeżeli chcę dla każdego z 5 wierszy użyć takich samych przedziałów, to czy da się jakoś skopiować pierwszy, czy trzeba wpisywać każdy na nowo?

u

: 25 sie 2016 11:06
autor: micard
Na oko powinno zadziałać dokładnie jak piszesz - wyjście powinno wynosić 15.
Nie do końca rozumiem co masz na myśli pisząc "każdego z 5 wierszy" wierszami są kolejne stringi z których odczytujesz dane?
Interesują Cię, te same przedziały ale inne wartości charakterystyki, czy dokładnie ta sama charakterystyka?
Poza tym - takie pytanko - jakiego przetwornika używasz? Może łatwiej/lepiej będzie użyć właściwego równania (np dla NTC lub Termopary) a odpowiednimi parametrami, zamiast aproksymować przedziałami liniową funkcją

Re: Mnożenie na podstawie tablicy

: 25 sie 2016 14:53
autor: v93
Już nie istotne. Wszystko działa.
Dziękuje za pomoc.