Sebastian Bialy
Guest
Sun Apr 13, 2008 4:26 pm
Witam.
Mam następujący problem:
a) jest obiekt o nieznanej funkcji wynik = o(x).
b) jest układ zadający x = z( wejscie );
c) jest układ pomiarowy pomiar = p( wynik );
co do funkcji o,z,p wiadomo tylko że są monotoniczne i to w dodatku w
jedną stronę (rosnące). z i p można "zdjąć" doświadczalnie, ale chyba
jesli nie znamy "o" to nie ma do wielkiego sensu.
Całość problemu wygląda więc tak:
pomiar = p ( o ( z ( wejscie ) ) )
pomiar i wejscie są zadawane z A/C i C/A (pwm) - 10-12bit. Reakcja
układu jest "natychmiastowa", tzn nie ma sensu przejmować się
opóźnieniami. Wszystkie funkacje nie zależą od czasu ani od historii.
Nie zależą (albo zależą w bardzo małym stopniu) od "kierunku pomiaru".
Pomiar jest średnio drogi - wolałbym możliwie zminimalizować ilość
pomiarów. Przypadek więc prosty (mam nadzieję).
Chce aby wartość "pomiar" była równa zadanej z zewnątrz. Muszę więc
zgadnąć jaką wartość "wejście".
Pytanie brzmi jak to zrobić w spoób w miarę szybki. Zaznaczam, że
funkcja o zmienia się co chwile (różne obiekty mierzone) i nie mam co do
jej kształtu zbyt wielu danych, w szczególności ciężko ją
aproksymować. Wygląda więc na to że szukam algorytmu "w ciemno". Jedyne
co wiadomo to to, że jest rosnąca i niezmienna na pomiary.
Przyszło mi do głowy żeby zrobić wyszukiwanie binarne (bisekcję).
Algorytm byłby taki że zadaje wartość w połowie zakresu na wejście i
dostaje pomiar. Sprawdzam w której z połówek jestem zględem zadanej i
biorę połowę przedziału. Powinienem odszukać dość szybko prawidłową
wartość na wejście układu która generuje mi szukany pomiar.
Pytanie: czy ktoś zna lepszą metodę szukania ?
Jestem w stanie próbować aproksymować wartość o, ale aproksymacja będzie
tak naprawdę zbiorem 3-4 funkcji co do których nigdy nie wiadomo jaką
wziąść (tyle "typów" obiektów mam). Pytanie zatem czy opłaca się bawić w
aproksymacje jeśli mogę w paru ruchach znaleźć własciwą wartość zwykłym
podziałem na pół. Zastanawiam się dodatkowo czy nie warto by uśrednić
tych fukcji aproksymujących uzyskując coś w rodzaju ślepego zakresu
"min/max" w którym dopiero szukać bisekcją.
J.F.
Guest
Sun Apr 13, 2008 5:45 pm
On Sun, 13 Apr 2008 17:26:00 +0200, Sebastian Bialy wrote:
Quote:
Całość problemu wygląda więc tak:
pomiar = p ( o ( z ( wejscie ) ) )
Chce aby wartość "pomiar" była równa zadanej z zewnątrz. Muszę więc
zgadnąć jaką wartość "wejście".
Przyszło mi do głowy żeby zrobić wyszukiwanie binarne (bisekcję).
No coz - dla 12 bitow moze byc to najlepsze rozwiazanie.
Quote:
Pytanie: czy ktoś zna lepszą metodę szukania ?
Metody numeryczne - caly gruby dzial jest poswiecony znajdowaniu
miejsc zerowych.
Dla Ciebie na poczatek - metoda siecznych.
Uprzedzam ze dla niektorych funkcji sie zle zachowuje,
i binarne moze sie okazac lepsze.
J.
Sebastian Bialy
Guest
Sun Apr 13, 2008 6:42 pm
J.F. wrote:
Quote:
No coz - dla 12 bitow moze byc to najlepsze rozwiazanie.
Hmmm w sumie nie potrzebuje dokładności większej niż 8bit, to 10-12 jest
troche na wyrost - bo mam akurat taką możliwość. Może się uśredni wynik
i dostane przynajmniej pewne 8 bit.
Quote:
Pytanie: czy ktoś zna lepszą metodę szukania ?
Metody numeryczne - caly gruby dzial jest poswiecony znajdowaniu
miejsc zerowych.
Dla Ciebie na poczatek - metoda siecznych.
OK, to ja wiem, zdążyłem sobie dzisiaj przejrzeć większość algorytmów
Pytam czy z praktyki automatyki są jakieś sprytne rozwiązania tego typu
zagadnień. Np. mógłbym całkowicie pozbyć się częsci cyfrowej robiąc
całość na sprzężeniu zwrotnym analogowym. Z drugiej strony czy
sprzężenie zwrotne ma sens dla nieznanych, acz monotnicznych, funkcji?
J.F.
Guest
Mon Apr 14, 2008 8:29 am
On Sun, 13 Apr 2008 19:42:44 +0200, Sebastian Bialy wrote:
Quote:
J.F. wrote:
No coz - dla 12 bitow moze byc to najlepsze rozwiazanie.
Hmmm w sumie nie potrzebuje dokładności większej niż 8bit, to 10-12 jest
troche na wyrost - bo mam akurat taką możliwość. Może się uśredni wynik
i dostane przynajmniej pewne 8 bit.
Tak czy inaczej to tylko 4 bity roznicy, pisales ze
pomiar jest "srednio kosztowny", ale moze warto
je poniesc.
Quote:
Pytam czy z praktyki automatyki są jakieś sprytne rozwiązania tego typu
zagadnień. Np. mógłbym całkowicie pozbyć się częsci cyfrowej robiąc
całość na sprzężeniu zwrotnym analogowym. Z drugiej strony czy
sprzężenie zwrotne ma sens dla nieznanych, acz monotnicznych, funkcji?
Wszak to co chcesz zrobic to swoiste "sprzezenie zwrotne".
A analogowo .. sie da, ale wtedy sie okaze ze wynik nie jest
natychmiast i sie regulator wzbudza

.
No i jak te "kosztowne" rozumiec, bo analogowy co chwila bedzie
"obliczal".
J.
Sebastian Bialy
Guest
Mon Apr 14, 2008 9:06 am
J.F. wrote:
Quote:
Tak czy inaczej to tylko 4 bity roznicy, pisales ze
pomiar jest "srednio kosztowny", ale moze warto
je poniesc.
Nie w tym rzecz: pomiar trwa paredziesiąt milisekund. Układ się wtedy
stabilizuje. Dlatego jest dla mnie różnicą czy wykonam 100 czy 10 czy 3
pomiary. Natomiast rozdzielczość A/C w zasadzie może być taka jaką dała
fabryka, nie zależy mi specjalnie. 8 bitów może wystarczyć do dalszej
obróbki.
Quote:
Wszak to co chcesz zrobic to swoiste "sprzezenie zwrotne".
Owszem, ale bez problemów "analogowych".
Quote:
A analogowo .. sie da, ale wtedy sie okaze ze wynik nie jest
natychmiast i sie regulator wzbudza

.
No i tego się obawiam, dlatego nie chce robić tego analogowo bo mam
bardzo małe doświadczenia w regulatorach a odkrywanie tego tematu na
nowo chyba nie wchodzi w grę, ponadtyo jest tam dużo suchej teorii -
zanim się przegryzę zastanie mnie emerytura.
Quote:
No i jak te "kosztowne" rozumiec, bo analogowy co chwila bedzie
"obliczal".
Czas pomiaru.
J.F.
Guest
Mon Apr 14, 2008 9:43 am
Sebastian Bialy
Guest
Mon Apr 14, 2008 9:56 am
J.F. wrote:
Quote:
Ale miedzy 8 a 12 nie ma juz takiej wielkiej roznicy
Dla mnie nie, pewno 4 bity będą zawierały szum okolicznych kuchenek
mikrofalowych :/
Quote:
A to ma byc regulator ?
No właśnie niezupełnie. Taki raczej układ pomiarowy. Dlatego w temacie
jest "rodzaj regulacji" a nie regulator. Porzebuej znaleźć wartość
szukaną i koniec - nastepny do pomiaru.
J.F.
Guest
Mon Apr 14, 2008 12:41 pm
On Mon, 14 Apr 2008 10:56:10 +0200, Sebastian Bialy wrote:
Quote:
J.F. wrote:
Ale miedzy 8 a 12 nie ma juz takiej wielkiej roznicy :-)
Dla mnie nie, pewno 4 bity będą zawierały szum okolicznych kuchenek
mikrofalowych :/
A to ma byc regulator ?
No właśnie niezupełnie. Taki raczej układ pomiarowy. Dlatego w temacie
jest "rodzaj regulacji" a nie regulator. Porzebuej znaleźć wartość
szukaną i koniec - nastepny do pomiaru.
No coz, niewykluczone ze najlepiej byloby znalezc binarnie zakres,
a potem kolejno sprawdzic wszystkie 16..32 wartosci, w dodatku
w dwie strony - dla usrednienie szumow i histerezy.
J.