Model sedymentacji w osadniku wsadowym

Tematy związane z tworzeniem dużych aplikacji. Zaganiednia dotyczące architektury oraz zasad tworzenia optymalnych rozwiązań.
Manieg
Posty: 4
Rejestracja: 11 mar 2009 22:41
Wersja środowiska: LabVIEW 2009
Kontakt:

Model sedymentacji w osadniku wsadowym

Post autor: Manieg »

Cześć! :)

Mam za zadanie zbudować model osadnika wsadowego, a dokładnie chodzi o sedemntację (opadanie zawiesiny). Mój osadnik posiada stałe pole przekroju, co ułatwia całą sprawę.

Bardziej łopatologicznie wytłumaczę o co chodzi. Do zbiornika wlewamy pewną objęstość zawiesiny, a następnie czekamy, aż się wyklaruje, czyli zawiesina osiądzie na dnie, a czysta woda pozostanie ponad nią. Czyli nic nie wypływa, nic nie dopływa do zbiornika.

Dla uproszczenia osadnik mogę podzielić np. na 10 warstw. Każda warstwa jest opisana równaniem:

Kod: Zaznacz cały

górna warstwa:
dX1/dt = 10/H [min(v2X2, v1X1)]

warstwy pomiędzy:
dX2/dt = 10/H [ min(v3X3,v2X2) - min(v2X2, v1X1)

dX3/dt = 10/H [ min(v4X4,v3X3) - min(v3X3, v2X2)

(...) 

dolna warstwa:
dX10/dt = 10/H [-min(v10X10, v9X9)]
Gdzie:
v - to prędkość sedymentacji
X - stężenie zawiesiny

Zrobiłem już subVI wyznaczającego prędkość sedymentacji oraz subVI wybierającego dane minimum. Natomiast nie bardzo mam pomysł co dalej. Na pewno należy teraz wykonać jakoś całkowanie w VI, i nie bardzo wiem jak się za to zabrać.

Każde równanie w formula note i to wszystko w maszynie stanów ?
Macie jakieś pomysły ?

Pozdrawiam :)
vugie
Posty: 383
Rejestracja: 17 lis 2006 00:00
Wersja środowiska: LabVIEW 2009
Lokalizacja: Warszawa

Model sedymentacji w osadniku wsadowym

Post autor: vugie »

Dla uproszczenia oznaczę dXn/dt jako Xn'
Prędkość vn to nic innego jak pochodna stężenia, czyli Xn'

W każdej chwili czasu równanie dla warstwy n możesz zapisać w postaci
Xn'=fn(Xn,X(n+1))
ale fn może być dla każdej chwili czasu inne, zależnie od tego co wyjdzie z minimów (są 4 warianty i dla każdego z nich trzeba Twoje równania przekształcić do tej formy).
A dalej to już bułka z masłem: mając początkowe Xn (zapewne równe dla wszystkich warstw) i począdkowe prędkości Xn' (zapewne 0 dla wszystkich warstw) wyznaczasz wszystkie prędkości w następnym kroku czasowym, a następnie nowe wartości Xn: nowe Xn=stare Xn + Xn'*dt (dt - krok czasowy - musi być odpowiednio mały). Tym samym otrzymujesz prędkości stężenia do użycia w kolejnym kroku. Nazywa się to całkowaniem metodą Eulera.
Troszeczkę ten schemat uprościłem - w Twoim przypadku należałoby rozwiązać jeszcze w międzyczasie układ liniowy - ale przy założeniu, że prędkości nie zmieniają się szybko błędy spowodowane pominięciem tego etapu nie powinny być znaczące. W każdym razie będą mniejsze niż te spowodowane podziałem zbiornika na 10 warstw.
ODPOWIEDZ