• Nie Znaleziono Wyników

Celem tego ćwiczenia jest zapoznanie z procedurą pozwalającą określić ile i jakie pasma składają się na pasmo złożone. W wyniku wykonania ćwiczenia otrzymuje się udokła-dniony zbiór pozycji pasm oraz parametry konturów wszystkich pasm składowych, w tym powierzchnie. Wykonany rozkład należy przedstawić na rysunku.

1. Wstęp (czyli, po co to robić?)

Blisko leżące na widmie pasma nakładają się na siebie powodując powstanie pasma o złożonej obwiedni. W sytuacji poszukiwania obecności fazy, której pasma są ukryte pod przykrywającymi je pasmami fazy głównej konieczne jest posiadanie narzędzia pozwalającego rozłożyć obwiednię pasma złożonego na pasma składowe. Podobnie, są sytuacje, w których potrzebna jest też informacja o powierzchniach pod konturami pasm a która to informacja jest zamaskowana przez ich ponakładanie. Powierzchnia może służyć do analizy ilościowej (krzywa kalibracyjna na podstawie intensywności integralnej), wzajemne proporcje powierzchni, mogą nieść informację o proporcji róż-nych składników w próbce. Szerokość może np. nieść informację o stopniu amorficzno-ści lub np. o obecnoamorficzno-ści wiązań wodorowych. Stąd rozkład obwiedni na pasma składowe może być czasem bardzo użyteczny. Narzędziem służącym do tego celu jest iteracyjne sumowanie zadanych pasm składowych z jednoczesnym zmienianiem ich parametrów.

W czasie iteracji program zmienia (zwykle cztery) parametry pasm składowych w celu ich odpasowania do widma eksperymentalnego. Tymi parametrami są: pozycja, inten-sywność, szerokość połówkowa i kształt. Procedura taka poza udokładnieniem pozycji pasm otrzymanych przez analizę pochodnych może wykryć pasma dodatkowe. O obec-ności dodatkowych, ukrytych pasm może świadczyć niska jakość dopasowania przy zadanej liczbie pasm.

2. Zasady postępowania

Rozkład pasma na składowe polega na zdefiniowaniu takich krzywych opisujących pa-sma składowe żeby ich suma dawała krzywą identyczną z rozkładanym widmem. Pa-smom przypisujemy kształt opisany przez sumę funkcji Gaussa i funkcji Lorentza. Ma-nipulując parametrami tych pasm w dopasowującej procedurze iteracyjnej wpływamy na stopień podobieństwa widma teoretycznego do doświadczalnego. Zestaw parame-trów najlepiej oddający widmo oryginalne uznajemy za prawdziwe rozwiązanie, ale

wa-34

łożenie pasma w sensownym zakresie, nieujemna intensywność, szerokość połówkowa z zakresu rzeczywiście obserwowanych i proporcja funkcji Gaussa do funkcji Lorentza z zakresu co najwyżej 0–100% a lepiej z węższego (więcej powinno być Gaussa). Ze względu na tę pożądaną „fizyczność” rozwiązania automatyczna procedura da właściwe rozwiązanie tylko gdy wystartuje z dobrze dobranych parametrów początkowych.

Wydawałoby się, że przy dzisiejszych mocach komputerów wystarczy zbadać wszystkie możliwe kombinacje parametrów i wybrać najlepsze. Jednakże już prosty sza-cunek przeczy temu pomysłowi. Policzmy ile to by trwało dla następującego przykładu:

pasmo złożone składa się z 10 pasm składowych, każde opisane jest przez cztery pa-rametry (pozycję, wysokość, szerokość i kształt). Jedna drobna zmiana jednego z para-metrów tworzy nowy zestaw, który może być szukanym rozwiązaniem, więc trzeba go sprawdzić. Jeśli szukane rozwiązanie ma być osiągnięte z dokładnością do 1% wartości szukanego parametru (a jest to raczej zbyt zgrubne przybliżenie) to znaczy, że każdy z parametrów ma 100 różnych możliwych wartości. Mamy więc 10 (pasm) razy 4 (pa-rametry każdego pasma), czyli razem 40 parametrów. Każdy ma 100 możliwych (i nie-zależnych od pozostałych) wartości. Z kombinatoryki wynika, że mamy 10040 możli-wych kombinacji, czyli jest ich 1080 sztuk. Komputer potrzebuje zwykle wiele cykli procesora na jeden krok, ale gdyby nawet oceniał jedno rozwiązanie w jednym cyklu to współczesny procesor (3 GHz) potrzebowałby na to 1055 miliardów lat. Czyli nigdy.

A i tak ktoś jeszcze wówczas musiałby wybrać najlepszą z bardzo wielu różnych typów rozwiązań o prawie jednakowo dobrym dopasowaniu. Stąd widać, że rozkład obwiedni pasma na składowe nigdy nie będzie się mógł obejść bez intuicji chemika i potrzebujemy jakiejś metody zdecydowanie ograniczającej przestrzeń rozwiązań. Po-nadto, ponieważ istnieje nieskończona ilość możliwych rozkładów dających bardzo do-bre dopasowanie, potrzeba jednak wybrać takie rozwiązanie spośród nich, które ma sens fizyczny.

Przyjęta metoda poszukiwań oparta jest na nieodbieganiu zbyt daleko od parame-trów wstępnie oszacowanych. Wśród wstępnych parameparame-trów najważniejsze są położe-nia pasm, więc podstawą udanego rozkładu jest ich dobre określenie np. za pomocą analizy drugich pochodnych o różnym stopniu wygładzenia. Drugie pochodne oraz kształt widma oryginalnego dostarczają również wskazówki, co do ich intensywności i szerokości połówkowej (a przynajmniej informację o ich wzajemnych proporcjach).

Pozycję pasma zwykle „na oko” widać na widmie, podobnie wysokość pasma nie może być większa niż wartość widma w tym miejscu, więc największą niepewnością obarczo-ny jest szacunek szerokości. Najbezpieczniej jest, więc zacząć poszukiwania od zmie-niania szerokości pasm przy zablokowanych (ustalonych „na sztywno”) położeniach

i wysokościach. Po znalezieniu wstępnych wartości szerokości pasm kolejno nadaje się swobodę wysokościom i położeniom. Programy, za pomocą których dokonuje się tego rozkładu oferują takie możliwości ale to operator decyduje jak i w jakiej kolejności ich użyć. W szczególności, jeżeli nie da się znaleźć dobrego dopasowania dla zestawu po-zycji określonych wstępnie to może to być wskazówka, że należy dołożyć nowe pasmo lub inaczej zrobić korektę linii bazowej lub inaczej wyciąć fragment widma do analizy.

3. Konkretne kroki postępowania

Celem jest by po włączeniu automatycznej optymalizacji z odblokowanymi wszystkimi parametrami otrzymać wiarygodny rozkład z pasmami leżącymi w okolicy miejsc wska-zanych przez drugą pochodną (i/lub dekonwolucję). Uproszczony schemat procedury postępowania przedstawiono na rysunku 3.4.1. Schemat zakłada, że pasma mają usta-loną, niezmienną proporcję funkcji Gaussa do funkcji Lorentza. Schemat ten należy w trakcie postępowania modyfikować w zależności od napotkanych trudności. Typowo np. gdy pasma zbyt się „rozjeżdżają” to nie uwalniać wszystkich szerokości a po jed-nym paśmie lub grupami blisko leżących. Metodą na małe oporne pasma może być pozostawienie ich zablokowanymi a zajęcie się łatwiejszymi. Można też po dopracowa-niu pasm łatwiejszych zablokować je z powrotem a odblokowywać te trudniejsze po jednym.

a. Wczytać fragment widma.

b. Przygotować wnioski z analizy pochodnych (i dołożyć trochę intuicji własnej).

c. Zaprojektować stan startowy (najlepiej ołówkiem na wydruku tego fragmentu wid-ma): ile pasm, które wysokie, które szerokie itd.

d. Ustawić zaprojektowany stan startowy w programie do robienia rozkładu tak, aby pozostałość (różnica pomiędzy widmem oryginalnym a sumą pasm założonych) była jak najbliższa zera. Zapisać stan na dysk (plik .fit).

e. Zafiksować pozycje i wysokości i puścić pierwsze dopasowywanie szerokości (patrz rys. 3.4.1). Może tylko niektóre szerokości uwolnić. Następnie uwalniać więcej pa-rametrów i znów włączać optymalizację a z nieudanych optymalizacji wycofywać się.

f. Przed kolejnymi krokami analizować wyniki, czy nie należy cofnąć się lub dokonać ręcznej modyfikacji parametrów pasm (należy pilnować sensu fizycznego, np. czy nie zniknęło lub nie rozszerzyło się bezsensownie jakieś pasmo, o którym wiemy na pewno, że powinno być). Parametr kształtu uwolnić na końcu (lub nawet nigdy).

g. Zapisać wynik (znalezione pasma i widmo syntetyczne) na dysk.

h. Wykonanie rysunku z widmem, pasmami składowymi i obwiednią syntetyczną. Na rysunku powinny się tez znaleźć pozycje (liczby falowe) i powierzchnie znalezionych

36

Rys. 3.4.1. Uproszczony algorytm rozkładu pasma złożonego na pasma składowe.

4. Wykonanie rozkładu za pomocą programu Fityk.

Przed uruchomieniem Fityka należy przygotować wycięty fragment widma w formacie

ASCII zawierający jedynie pasma przeznaczone do rozkładu. Fragment ten powinien zaczynać się i kończyć blisko zera na skali absorbancji (patrz rys. 3.4.2). Może też być potrzebna ponowna korekta linii bazowej. Wycięcia fragmentu widma można dokonać w programie WinIR (opcja Arithmetic/Zap) lub ręcznie w Gnumericu lub Excelu lub nawet w Notatniku. Należy też mieć spisane położenia pasm wynikłe z analizy pochodnych. Etap początkowy przedstawiono na rys 3.4.3 a końcowy na 3.4.4 i 3.4.5.

Rys. 3.4.2. Optymalnie wycięty fragment widma przeznaczony do rozkładu. (Optymalny bo schodzi do zera z każdej strony a pasmo ma złożoną obwiednię – jest co analizować).

38

Rys. 3.4.3. Stan początkowy pasm utworzony ręcznie. Czerwona krzywa to widmo syntetyczne, nie-bieska to widmo zmierzone, reszta to pasma składowe. Widać, że jeszcze trzeba trochę ręcznych po-prawek bo czerwona zbyt odbiega od niebieskiej.

Rys. 3.4.4. Wynik rozkładu. Oznaczenia takie jak na poprzednim rysunku. Czerwona i niebieska krzywa pokryły się, pojawiły się nowe pasma, mające jednak uzasadnienie na drugiej pochodnej.

Rys. 3.4.5. Fragment ekranu Fityka z gotowym rozkładem i pozostałością. Pozostałość w skali ry-sunku ponad nim jest niewielka.

Ogólna kolejność prac powinna wyglądać następująco:

– Uruchomić Fityka. (Patrz opis programu w rozdziale 4.2.)

– Wczytać plik w formacie ASCII opcją Data->Quick_Load_File. Na panelu po pra-wej stronie można zaznaczyć pole obok napisu „line” żeby widmo wyświetlało się ciągłą linią. Uwaga, być może należy dokonać korekty w pliku ASCII: zamienić krop-ka/przecinek, średnik/spacja, skasować nagłówek, usunąć puste lub uszkodzone linie na końcu lub początku.

– Sprawdzić czy w okienku u góry jest wybrany profil linii jako „Voigt” (to jest kształt pasm które będziemy dodawali): i włącz tryb dodawania pików („ add-peak”): . (Nie pomyl z („auto-add”): .)

– Wymyślić stan startowy na podstawie analizy pochodnych.

– Kliknij w miejscu gdzie powinien być czubek pierwszego dodawanego piku i nie puszczając przycisku myszy przesuń kursor w prawo. Pik się poszerzy. Jeśli się nie udało to w miejscu powstałego kółeczka kliknij prawym klawiszem myszy i wybierz

Delete”.

– Kolejno dodać wszystkie pasma, każdemu ustawiając wysokość i szerokość tak, aby

40

„na oko” a potem będzie można je udokładnić. Przy „celowaniu” można się posiłko-wać wyświetlaną pozycją kursora na dole po prawej stronie (wyświetlana jest gdy kur-sor jest w środkowej sekcji czarnej części ekranu). Po dodaniu pasma w okienku po prawej pojawia się jego pozycja, można „złapać” myszą kółeczko na czubku pasma i go przesuwać. Szerokość pasma modyfikuje się wpisując nową wartość w okienku z prawej („gwidth”).

– Teraz należy udokładnić położenia zdefiniowanych pasm. W tym celu na panelu bocznym z prawej strony u góry należy wybrać zakładkę „functions”. Każda linia to jedno dodane pasmo. Klikając na pierwsze poniżej na dole ekranu pojawią się para-metry tego pasma. Należy każdemu wpisać położenie zapamiętane z analizy pochod-nych (i nacisnąć ENTER bo zapomni). Na koniec sprawdzić każdemu pasmu wysokość klikając na niego na panelu bocznym w celu skasowania omyłkowo dodanych pasm o zerowej wysokości.

– Dobre początkowe dopasowanie (też szerokości!) decyduje o udanym rozkładzie, warto tu kilka chwil poświęcić i doprowadzić zieloną kreskę (na środkowym polu) do niewielkich wysokości (żółta linia pokrywa się z zieloną (górne pole)).

– Kroki postępowania opisano w punkcie 3 powyżej. W pierwszym kroku warto zaka-zać zmieniania pozycji, szerokości i przede wszystkim kształtu. Osiąga się to włącza-jąc blokadę przy odpowiednich parametrach każdego kolejnego piku (ikona na pra-wym panelu: ).

– Tak zdefiniowany stan startowy warto zapisać na dysku żeby móc do niego powrócić:

Sesion->Save_Sesion. (lub ikona ). Wczytuje się to za pomocą:

Sesion->Execute_Script. (lub ikona ).

– Uruchomić dopasowywanie („fitowanie”) za pomocą opcji menu: Fit->Run (lub ikona: ). (Czasem trzeba nacisnąć ją kilka razy. Czasem trzeba zmodyfikować pa-rametry procedury dopasowywującej:

Session->Settings->Fitting->Lev-Mar->Lambda.)

– Jeśli pierwszy krok uznamy za udany można odblokować szerokość i puścić optymali-zację ponownie. Jeśli to pogorszy rozkład to zamiast szerokości spróbować odbloko-wać wysokości. Kontynuoodbloko-wać aż do odblokowania wszystkich parametrów (ostatnie uwolnić pozycje). Dobrym pomysłem jest ręcznie poprawianie jednego wybranego pasma i puszczenie optymalizacji przy odblokowanych jego parametrach a z zablo-kowanymi pozostałymi pasmami. Cały czas należy przyglądać się czy pasma mają sens fizyczny ->pasują do pochodnej i „na oko” do widma.

– Może spróbować inny stan startowy.

– Może zmniejszyć 10x WSSR i zwiększyć 10x ilość kroków (Session->Settings).

– Udany rozkład zapisujemy opcją Functions->Export_Points (lub ikona ). (Za-znaczyć x, y, all i model). Powstanie plik ASCII zawierający widmo, wszystkie pasma i ich sumę. Plik importuje się np. do Excela.

– Parametry pików można zapisać: Functions->Export Peak parameters (Po-wstanie plik z pozycjami, szerokościami i polem powierzchni każdego piku).

5. Typowe błędy:

Błąd i jego objawy Co należy zrobić lepiej

Pozostałość jest za duża

Puścić więcej kroków iteracji, zmniejszyć kryterium dopasowania, zafiksować w inny sposób parametry lub wybrać inny stan początkowy.

Brakuje pasma, bo „uciekło” i się rozszerzyło

Może trzeba dołożyć pasmo a tamto potraktować, jako nową linię bazową. Może pomoże zafiksowanie przejściowo jego pozycji.

Pasmo się odwróciło i jest ujemne Niestety ten rozkład jest bez sensu. Zmienić stan początkowy i powtórzyć ten krok postępowania.

Ciągle jest za mała zgodność, mimo, że wszystkie pasma są na swoim miejscu.

Może na etapie analizy pochodnych przeoczono jakieś pasmo. Typowo przeocza się pasma szerokie.

6. Zadanie domowe (lub na zajęciach, jeśli czas pozwoli)

Wykonać za pomocą własnego „warsztatu” rysunek podobny do rys 3.4.3 i dołożyć nań opis pików i wskaźnik jakości dopasowania. Rysunek ma przedstawiać widmo i znale-zione pasma, obwiednię widma syntetycznego i naniesione pozycje pasm i z boku stro-ny wypisane wszystkie parametry pasm (pozycja, szerokość połówkowa i absorbancja integralna) oraz wskaźnik dopasowania: np. zredukowany „chi-kwadrat” (bieże się go z Fityka („WSSR”) i dzieli przez liczbę punktów widma pomniejszoną o ilość parame-trów swobodnych (ilość pików x 4) lub odczytuje w podanym skrypcie Maximy do ro-bienia rysunku). Wszystkie krzywe muszą być nałożone na siebie we wspólnej skali na osi Y (bez przesuwania i przeskalowywania).

Rysunek najszybciej można zrobić skryptem do Maximy (jest w materiałach pomoc-niczych na stronie WWW). Skrypt czyta wyeksportowany z Fityka plik ASCII zawiera-jący wszystkie krzywe (w kilku kolumnach).

Ten plik jest również czytany przez inne tu polecane pogramy.

42

3.5. Ćwiczenie 5

Powiązane dokumenty