(01-01-2012 20:48)SP3SWJ napisał(a): i właśnie o to chodzi że nie ma jednego dołka twoja funkcja... bo jest kilka dołków...
dla wspomnianego wcześniej przypadku podobny SWR można uzysjać dla dwóch nastaw L i C...
Naprawdę ten etap dyskusji trzeba zakończyć na testach praktycznych... byś uwierzył i namacalnie sprawdził to zachowanie.
OK - w takim razie algorytm będzie musiał sobie jakoś z tym radzić. W najgorszym razie wybierze rozwiązanie nie najbardziej optymalne, ale akurat w sytuacji gdzie chodzi o minimalne odstrojenie anteny będzie ono i tak akceptowalne dla nadajnika.
(01-01-2012 20:48)SP3SWJ napisał(a): Jeszcze jedna sprawad o ZAŁOŻEŃ POCZĄTKOWYCH ... czy algorytm ma być dla TUNERA KABLA z ANTENĄ .... czy dla TUNERA ANTENY
Możesz proszę rozwinąć? wg mnie to bez znaczenia, czy jest to impedancja anteny, impedancja anteny przetransformowana kablem, czy impedancja jakiegokolwiek innego dwójnika RLC - w kazdym przypadku oczywiście będzie inna, ale jednak dalej to tylko _impedancja_ (jakies R +/- jakieś jX) do przetransformowania do 50+j0.
Co do rozdzielczości regulacji L/C - jest to kwestia kompromisu - jak wystarczy rozdzielczości dla górnych pasm to zabraknie wartości L/C na dolnych pasmach dla trudnych transformacji i odwrotnie (przy stałej liczbie bitów regulacji L/C)... Dla samego algorytmu to wg mnie nieistotne - po prostu dla niektórych kombinacji impedancji/częstotliwości skrzynka sobie nie poradzi... Nie upieram się, że ma to być koniecznie 100nH/10pF (tak jak w Z11 i HMG-easyATU), czy 25nH/10pF jak w FC-40 czy też proponowane przez Ciebie 10nH/5pF - nie wpływa to na algorytm jako taki. Nawiasem mówiąc W L_NetTesterze można to ustawiać i sprawdzić gdzie skrzynka sobie poradzi, a gdzie się podda (dla testowanego algorytmu) zmieniając wartości ziarna L i C, odpowiednio przełącznikami -l i -c. Problem tylko w tym, że musi powstać najpierw algorytm...
(01-01-2012 20:48)SP3SWJ napisał(a): nie wiem co miałes na myśli pisząc... " To co proponujesz to w tym momencie (wg mnie) science-fiction."
Chodziło mi o swap wokół częstotliwości docelowej - oczywiście możliwy do wykonania sterując TRXem po CAT, ale uważam, że na tym etapie nie będziemy potrafili objąć i zinterpretować wyników takich pomiarów algorytmem, ale mogę się mylić...
(01-01-2012 20:48)SP3SWJ napisał(a): ... jest jeszce jeden problem.... ALC w TRXach które potrafi "fałszować" pomiary
(...)
algorytm powinien wykrywać działanie ALC ... czyli stałość odpowiwedzi SWR w funkcji czasu... bo nawet dobry algorytm może "zgłupieć" jeśli będzie za szybko chciał kręcić L C ... a ALC nadajnika będzie zmieniało moc. Oczywiście z sygnału FORWARD można to wykryć też... niestety finalny algorytm musi uwzględniać fizykę także..
To prawda, to poważny problem. Dlatego wejściem algorytmu powinno być odbicie jako procent mocy padającej sprowadzona do zakresu 0..MAX_ADC (to jest niezależne od wartości mocy padającej), a nie wartość bezwzględna mocy odbitej. Oczywiście nawet w takim przypadku będzie się zmieniać dynamika i co za tym idzie rozdzielczość każdego kolejnego pomiaru... Trudno to będzie zasymulować;
Częściowym rozwiązaniem problemu może być użycie mostka rezystancyjnego do pomiaru (jak w FC-40) - nadajnik "widzi" wtedy SWR max == 2 i nie powinien zbytnio "przeszkadzać" regulując ALC. To co trzeba by dorobić w tym rozwiązaniu to pomiar mocy padającej (FC-40 prawdopodobnie pobiera tę informacje po CAT lub podczas strojenia radio wystawia zawsze tą samą z góry ustaloną moc).
SQ8MHI napisał(a):(...)
W L_NetSim, z tego co widzę, dla SWR>1024 jest 255, a np. 253 zaczyna się około SWR=330, przez co w znacznej liczbie przypadków dla 90% powierzchni wykresu dostajemy informację zwrotną "jest źle" i tylko tyle - płasko, żadnego gradientu w bliskim otoczeniu, który byłby wskazówką w którą stronę iść
To prawda, ale taka jest (będzie) rzeczywistość w niektórych przypadkach (im większa częstotliwość tym gorzej). SWR jest dość kłopotliwy do wyrażenia go stałoprzecinkowo i to w dodatku na dość małej liczbie bitów (zmienia się w zakresie 1..nieskończoność). Dlatego wolę używać odbicia, które zmienia się w zakresie 0..1 i łatwo przyjąć w naszym przypadku zakres 0..MAX_ADC (gdzie zero to zero odbicia (SWR==1), a MAX_ADC to 1, czyli pełne odbicie lub jak kto woli SWR==nieskończoność).
Matematyka w programie jest robiona zmiennoprzecinkowo więc jestem w stanie podać tak duże wartości SWR (precyzyjne odbicie w pobliżu jedynki). Jednak po sprowadzeniu tego do zakresu ADC tracimy rozdzielczość no i znika gradient...
adc_reflection = round(((1 << adc_bits) - 1) * reflection * full_reflection_percentage / 100; gdzie reflection jest float.
Co do dynamiki można to testować ustawiając jej wartość za pomocą przełącznika -p (w L_NetTeter.exe) - ustawiając ten parametr na poziomie 50% będziesz dostawał odbicie ADC == 127(128?) pomimo SWR==nieskończoność; lub ustawiając 200% będziesz dostawał wartość MAX_ADC dla SWRów od 3 wzwyż... Ot taka rzeczywistość i trzeba brać to pod uwagę.
Celowo używam w powyższym opisie MAX_ADC ponieważ za pomocą -a możesz ustawić sobie ilość bitów ADC (max 24 bity) - domyślnie jest 8. W atmelowskim mega8 przetwornik jest 10-bitowy i trzeba jakoś z tym żyć... Uważam że po zmierzeniu poziomów mocy padającej oraz odbitej z taką (10-cio bitową) rozdzielczością można to sprowadzić do ośmiobitowej wartości (ze względu na dynamikę), która będzie głównym (jedynym?) wejściem naszego algorytmu.
Postaram się dorzucić tę listę przełączników do L_NetSim tak aby można to było sobie pooglądać.
Co do doprecyzowania założeń - nie wychylał bym się powyżej ośmiu bitów na L i C - trzeba by operować na 16-bitowych zmiennych, a z ilością RAMu w megach "szału nie ma".
Główne założenie algorytmu wg mnie się nie zmienia - szukamy minimum odbicia w zbiorze możliwych kombinacji.
Pozdrawiam,