Strona 1 z 1

Dziwny problem z formula node

: 19 lip 2011 09:48
autor: komaro
Witam mam pewien probem z formula node. styworzyłem formula node o nastepującej zawartości:
Cs=xm/(xs+xm);
kd=(Ur/(Cs*Us));
xk=(xr+xs*Cs);
Tb=(3*p*Cs*Cs*Us*Us)/(2*omega*xk);
sb=Rr/xk;
Te=(2*Tb*(s*sb-kd*(sb*cos(alfa)+s*sin(alfa))))/(sb*sb+s*s);


wejscia to:
Us
Ur
xs
xr
xm
Rr
s
p
omega
alfa

wyjście to
Te
gdy prubuje uruchomić vi pojawia się komnikat:
Error on line 3 is marked by a '#' character: "Cs#=xm/(xs+xm); kd=(Ur/(Cs*Us)); xk=(xr+"

o co chodzi?
mam już to któryś raz i nie mam pojęcia o co to chodzi
Spotkaliście się może z tym?

Dziwny problem z formula node

: 19 lip 2011 10:07
autor: Pitol
Spróbuj: Cs=(xm/(xs+xm));

Powinno zadziałać

Re: Dziwny problem z formula node

: 19 lip 2011 10:43
autor: komaro
Niestety tak też już próbowałem:(

Re: Dziwny problem z formula node

: 19 lip 2011 10:49
autor: Pitol
... (tu były moje bzdury i herezje)...

EDIT 1: w oknie Error List oprócz komunikatu: "Error on line 1 is marked by a '#' character: "Cs#=(xm/(xs xm)); kd=(Ur/(Cs*Us)); xk=(x"" wyświetla się również, co jest powodem błędu. W okienku wyżej jest tekst w stylu: Formula Node: Undefined variable" albo coś podobnego. Napisz co Ci się tam wyświetla.

EDIT 2: wychodzi na to, że wszystkie elementy typu kd, xk, Tb, sb, itp., które dla Ciebie chyba są tylko pośrednimi wartościami, służącymi do obliczenia ostatecznej wartości Te, muszą być zdefiniowane jako input lub output. W formula node każda zmienna musi być zdefiniowana.

Najlepiej jest czytać uważnie komunikat błędu (wyświetla się jak byk: Undefined variable).

Dziwny problem z formula node

: 19 lip 2011 11:15
autor: Nowszy
Witaj

Twój problem polega na tym, że Cs nie jest zainicjalizowana. Dopisz na początku np. float Cs albo int Cs (zależnie od typu) i będzie ok. Zainicjalizować musisz każdą zmienną, która nie jest wyjściem z Formula Node. Wyjścia są inicjalizowane przez LabVIEW. Daj znać czy działa

Re: Dziwny problem z formula node

: 19 lip 2011 19:39
autor: komaro
hej
użycie float przy każdej zmiennej pośredniczącej okazało się owocne
Dziękuje

Re: Dziwny problem z formula node

: 21 lip 2011 19:21
autor: komaro
znowu mam problem z formula node :
zawartosc
float L;
float lambda;
float omegat;
float cp;
omegat=omegap/prze;
lambda=(omegat*R)/V0;
L=1/(lambda+(0,08*teta))-0,035/(1+teta*teta*teta);
cp=c1*(c2*L-(c3*teta)-c5)*exp(-c6*L);
P=(ro*A*V0*V0*V0*Cp)/(omegat*2);



input:
c1, c2, c3, c5, c6, V0, teta, prze, omegap, R, A, ro
output :
P


error:
missing right parenthesis

wygląda że brak prawego nawiasu ale gdzie ? w miejscu Hasza? nie rozumiem dlaczego tak mi wyswietla

Error on line 7 is marked by a '#' character: "...0; L=1/(lambda+(0,08#*teta))-0,035/(1+te"

Dziwny problem z formula node

: 21 lip 2011 19:26
autor: Pitol
A próbowałeś zamienić przecinki na kropki? Bo czuję, że tu jest problem.

Re: Dziwny problem z formula node

: 22 lip 2011 10:21
autor: komaro
HEJ
tak wystarczyło zmienić przecinki na kropki. Swoją drogą to ciekawe, gdyż w numeric controls jak zapisuje liczbę uzywam przecinka a tu w formula node używa się kropki. spotkałem się już że różne profgramy wymagały różnego zapisu ułamków dziesiętnych ale żeby dewa sposoby w jednym programie to jeszcze nie.

dziękuje za pomoc

Re: Dziwny problem z formula node

: 22 lip 2011 10:45
autor: Pitol
To w jaki sposób interpretowany jest przecinek w LabVIEW ustawiane jest w opcjach (Tools -> Options -> Front Panel -> Use localized decimal point). Natomiast jeśli chodzi o Formula Node to zapewne jest tam na sztywno ustawione, co znaczy przecinek, a co kropka.

Re: Dziwny problem z formula node

: 22 lip 2011 14:36
autor: PiDi
Zgadza się:
Note The Formula Node accepts only the period (.) as a decimal separator. The node does not recognize localized decimal separators.
Cóż, takie uroki środowiska, ale do dokumentacji warto przynajmniej zerknąć jak coś nie działa ;)