Rodzaj regulacji przez bisekcje

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ą.

Reply to
Sebastian Bialy
Loading thread data ...

No coz - dla 12 bitow moze byc to najlepsze rozwiazanie.

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.

Reply to
J.F.

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.

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?

Reply to
Sebastian Bialy

Tak czy inaczej to tylko 4 bity roznicy, pisales ze pomiar jest "srednio kosztowny", ale moze warto je poniesc.

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.

Reply to
J.F.

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.

Owszem, ale bez problemów "analogowych".

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.

Czas pomiaru.

Reply to
Sebastian Bialy

Ale miedzy 8 a 12 nie ma juz takiej wielkiej roznicy :-) A tak to wyjdzie przy przesukiwaniu binarnym.

A to ma byc regulator ? To owszem, zaraz po wlaczeniu przeszukiwanie binarne moze i bedzie akceptowalne, a w pozniejszej pracy na pewno nie. Zostanie ci zwykle nadazne, PID itp.

J.

Reply to
J.F.

Dla mnie nie, pewno 4 bity będą zawierały szum okolicznych kuchenek mikrofalowych :/

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.

Reply to
Sebastian Bialy

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.

Reply to
J.F.

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.