Mnożenie na podstawie tablicy
Mnożenie na podstawie tablicy
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ść?
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ść?
Mnożenie na podstawie tablicy
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?
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
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ć?
Jeżeli chciałbym użyć funkcji y=ax+b to, w którym miejscu powinienem to wstawić?
Mnożenie na podstawie tablicy
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
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?
LabVIEW 13: 1.636896
LabVIEW 15: 0.000163
Czy jest jakaś możliwość zapisania pełnej wartości pomiaru?
Mnożenie na podstawie tablicy
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
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
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
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.
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
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 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
Ale jeśli koniecznie chcesz robić zakresami, to wymyśliłem na szybko taki sposób: 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
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/
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
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?
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?
- Załączniki
-
- 1x.png (8.39 KiB) Przejrzano 11638 razy
u
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ą
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
Już nie istotne. Wszystko działa.
Dziękuje za pomoc.
Dziękuje za pomoc.