Zatrzaskiwanie wartości chwilowej

Wycięcie wartości chwilowej jest bardzo proste. Wystarczy zrobić układ, do którego

doprowadzony będzie sygnał wejściowy (np. wynik całki) oraz sygnał taktujący (np. sygnał

resetujący całkę).

Układ powinien działać w ten sposób, że gdy na wejście sygnału taktującego zostanie

doprowadzony impuls to pobierze sygnał wejściowy i poda go na swoje wyjście. Układ

będzie utrzymywał na swoim wyjściu ten sygnał do czasu nadejścia kolejnego impulsu

wyzwalającego. Wówczas pobierze nową wartość.

Opisany sposób działania jest typowy dla dobrze znanego z techniki cyfrowej

przerzutnika typu D – zatrzask. Być może w DASY Lab jest gotowy bloczek ale ja wolałem

zrobić swój własny. Poniżej moja propozycja implementacji przerzutnika D.

Najpierw ogólna budowa układu. Układ musi mieć dwa wejścia – na sygnał

wejściowy oraz na sygnał taktujący – to już wiemy. Układ musi mieć jedno wyjście.

To elementy niezbędne. Ale układ musi też mieć możliwość pamiętania. Dlatego dodajemy

mi jeszcze jedno wejście. Na to wejście podamy sygnał z wyjścia układu przez opóźnienie.

Umożliwi to zbudowanie pamięci.

Rys. 1 Widok układu

Następnie pora nadać układowi porządną funkcjonalność.

Zacznijmy od opóźnienia – jego celem jest podawać na jedno z wejść układu sygnał z jego

wyjścia. Mimo, że do tego celu używamy bloczka opóźniającego nie znaczy to wcale, że

zależy nam na opóźnieniu. Jest on konieczny by w DASY Lab zrobić sprzężenie zwrotne.

Opóźnienie ustawiamy na minimum – 1 sampl. Należy też umożliwić sprzężnie zwrotne.

motorniczy

Następnie należy tak oprogramować blok formuły (Zatrzask) aby, w momencie gdy

sygnał podawany na wejście taktujące (wejście nr 1) jest zerem, przepisywała na swoje

wyjście stan z wejścia nr 2, wejście nr 0 (sygnał wejściowy) nie ma wtedy żadnego znaczenia.

Wówczas mamy swoistą pamięć.

Wpisujemy więc: NOT(IN(1) >0)*IN(2)

Formuła NOT(IN(1) >0) będzie nam zwracać jedynkę wtedy i tylko wtedy gdy na wejściu

zegarowym ( taktującym) jest stan niski – zero. Wówczas ta jedynka pomnożona przez

wejście nr 2 da nam jego stan, który zostanie przepisany na wyjście układu. Otrzymaliśmy już układ, który przy niskim stanie wejścia zegarowego pamięta wartość wyjściową.

Co się stanie gdy do wejścia zegarowego doprowadzimy stan wysoki. Wówczas

wyrażenie NOT(IN(1) >0) zwróci zero. To zero przemnożone przez wejście nr 2 da w

rezultacie zero.

Układ więc zostanie wyzerowany w momencie podania impulsu na wejście taktujące.

Należy teraz opracować część, która będzie odpowiedzialna za pobieranie sygnału

wejściowego jeśli wejście zegarowe jest w stanie wysokim.

Formuła (IN(0) )*(IN(1) >0) będzie zwracała wartość wejścia nr 0 (wejścia

sygnałowego) wtedy i tylko wtedy gdy wejście zegarowe będzie w stanie wysokim.

Mamy zatem dwie formuły:

(1)

NOT(IN(1) >0)*IN(2)

(2)

IN(0) )*(IN(1) >0)

Pierwsza zwraca wartość różną od zera tylko wtedy gdy wejście zegarowe widzi stan niski.

Druga z nich zwraca wartość różną od zera tylko wtedy gdy na wejście zegarowe wchodzi

stan wysoki.

Aby uzyskać żądaną logikę działania układu obie te formuły wystarczy zsumować.

Wpisujemy więc: NOT(IN(1) >0)*IN(2) + (IN(0) )*(IN(1) >0)

Pierwsza część formuły odpowiada za pamięć – przepisywanie wyjścia na wejście układu gdy

wejście zegarowe jest w stanie niskim.

Druga z nich odpowiada za pobieranie sygnału wejściowego w chwili podania impulsu na

wejście zegarowe.

motorniczy

Otrzymaliśmy już przerzutnik typu D – tzw. zatrzask.

Ma on pewną wadę. Mianowicie, jeśli chcemy zatrzaskiwać wartość całki tuż przed jej

zresetowaniem to gdybyśmy przerzutnik wyzwalali tym samym sygnałem, który zeruje całkę

układ zawsze zatrzaskiwał by wartość wyzerowanej całki.

Nas interesuje wartość całki tuż przed jej wyzerowaniem. Wystarczy jeśli sygnał wchodzący

na wejście przerzutnika zostanie nieznacznie opóźniony – np. o jeden sampl.

Ostatecznie otrzymujemy układ

motorniczy

Sprawdźmy działanie układu

Oczywiście widzimy, że gdy wejście zegarowe jest w stanie wysokim przerzutnik

przesyła na wyjście sygnał wejściowy.

Nie będzie to żadnym problemem gdy impulsy wyzwalające będą bardzo krótkie np. trwające

jeden sampl.

motorniczy