Wykład 11 - Podstawy matematyczne automatyki procesów dyskretnych
dr inż. Jakub Możaryn
Instytut Automatyki i Robotyki
Warszawa, 2017
dr inż. Jakub Możaryn Podstawy Automatyki
Kody liczbowe dzielimy na analityczne
nieanalityczne (symboliczne)
Kody analityczne są umownym zapisem algebraicznego wyrażenia reprezentującego dana liczbę.
Każdą liczbę całkowitą można wyrazić w postaci
0
X
i =n
ai10i = an10n+ an−110n−1+ ... + a0100 (1)
przykładowo
1989 = 1 · 103+ 9 · 102+ 8 · 101+ 9 · 100 (2)
dr inż. Jakub Możaryn Podstawy Automatyki
Mówi się, że zapis ’1989’ jest zapisem w kodzie dziesiętnym liczby 1 · 103+ 9 · 102+ 8 · 101+ 9 · 100 (3) A więc, umownym zapisem liczby
L =
0
X
i =n
ai10i = an10n+ an−110n−1+ ... + a0100 (4)
w kodzie dziesiętnym jest L10= anan−1...a1a0
Współczynniki an, ..., a0(zwane także zmiennymi kodowymi) mogą przybierać wartości od 0 do 9.
Znaczenie poszczególnych zmiennych zależy od zajmowanej pozycji w zapisie kodowym; mówi się, że kod dziesiętny jest kodem
pozycyjnym. Stosuje się następujące oznaczenia:
i – numer pozycji, 10i – waga pozycji i ,
10 – podstawa kodu pozycyjnego (podstawa rozwinięcia).
dr inż. Jakub Możaryn Podstawy Automatyki
Analogicznie można tworzyć kody analityczne o innych podstawach
L =
0
X
i =n
aiPi = anPn+ an−1Pn−1+ ... + a0P0 (5)
Jeżeli podstawą kodu analitycznego jest liczba P (może to być liczba całkowita 2), to zmienne kodowe ai mogą przyjmować wartości od 0 do P–1.
Szczególnie ważnym kodem jest tzw. naturalny kod dwójkowy o podstawie P = 2, w którym zmienne kodowe mogą przyjmować tylko dwie wartości: 0 i 1.
Wyrażona w naturalnym kodzie dwójkowym liczba L2= anan−1...a1a0
jest umownym zapisem liczby
L2=
0
X
i =n
ai2i= an2n+ an−12n−1+ ... + a020 (6)
dr inż. Jakub Możaryn Podstawy Automatyki
L10 a3 a2 a1 a0
0 0 0 0 0
1 0 0 0 1
2 0 0 1 0
3 0 0 1 1
4 0 1 0 0
5 0 1 0 1
6 0 1 1 0
7 0 1 1 1
8 1 0 0 0
9 1 0 0 1
10 1 0 1 0
11 1 0 1 1
12 1 1 0 0
13 1 1 0 1
14 1 1 1 0
15 1 1 1 1
Tablica:Liczby od 0 do 15 w naturalnym kodzie dwójkowym
Wadą naturalnego kodu dwójkowego jest występowanie zmian kilku zmiennych kodowych (mówi się: kilku bitów) przy przechodzeniu do sąsiedniej wartości liczbowej, np. przy przejściu od liczby 7 do 8 zmieniają się wszystkie zmienne.
dr inż. Jakub Możaryn Podstawy Automatyki
W urządzeniach technicznych informacje o wartościach poszczególnych zmiennych kodowych przekazywane są za pomocą sygnałów binarnych.
Ponieważ nie jest możliwe wymuszenie dokładnie jednoczesnej zmiany kilku sygnałów, podczas zmian przekazywanych wartości liczbowych pojawiają się błędne informacje.
Rysunek:Ilustracja tzw. niejednoznaczności odczytu
dr inż. Jakub Możaryn Podstawy Automatyki
Niejednoznaczność odczytu nie występuje w przypadku tzw. kodów ze stałym odstępem, w których zawsze zmiana wartości liczbowej o 1 jest związana ze zmiana wartości jednego tylko bitu.
Podstawowymi kodami ze stałym odstępem są:
kod Graya, kod Graya +3,
kody pseudopierścieniowe (Johnsona).
Kody ze stałym odstępem są kodami nieanalitycznymi (symbolicznymi) - zapis liczby w takim kodzie nie jest umownym zapisem jednej formuły matematycznej wyrażającej zakodowaną liczbę.
Do odczytania liczby zakodowanej w kodzie nieanalitycznym służy tablica kodowa lub określona reguła.
dr inż. Jakub Możaryn Podstawy Automatyki
Liczby od 0 do 15 w kodzie Graya W tablicy kodowej kodu Graya występują charakterystyczne osie symetrii (linie niebieskie); stąd nazwy kodów mających tę właściwość – kody refleksyjne, kody lustrzane
dr inż. Jakub Możaryn Podstawy Automatyki
Liczby od 0 do 15 w kodzie Graya i kodzie Graya+3
A) Tablica kodu Graya B) Tablica kodu Graya+3
dr inż. Jakub Możaryn Podstawy Automatyki
Alternatywna postać tablicy kodu Graya Kod Graya a1, a0
a3, a2 00 01 11 10
00 0 1 2 3
01 7 6 5 4
11 8 9 10 11
10 15 14 13 12
Rysunek:Graficzne przedstawienie kodu Graya
dr inż. Jakub Możaryn Podstawy Automatyki
Dekodowanie kodu Graya
Do wyznaczania liczby zakodowanej w kodzie Gray a można posłużyć się wzorem określającym wartość bezwzględną wagi Wk k-tej pozycji:
|Wk| =
k
X
i =0
2i = 2k+1− 1 (7)
W liczbie zapisanej w kodzie Graya wagi jedynek nieparzystych, licząc od lewej strony, są dodatnie, wagi jedynek parzystych są ujemne.
Przykładowo:
(1101)g= (24–1)–(23–1) − (21–1) = 15–7 + 1 = 9 (8) Przekształcanie naturalnego kodu dwójkowego w kod Graya: należy zmienić na przeciwne wartości tych pozycji, dla których pozycja wyższa (w kodzie dwójkowym) ma wartość 1.
np.:
(1000110)2= (1100101)g (9)
dr inż. Jakub Możaryn Podstawy Automatyki
Kody pseudopierścieniowe umożliwiają kodowanie parzystych zbiorów liczbowych. Do zakodowania zbioru zawierającego n liczb potrzeba n/2 bitów.
np.:
L.dzi. Kod
- a3 a2 a1 a0
0 0 0 0 0
1 0 0 0 1
2 0 0 1 1
3 0 1 1 1
4 1 1 1 1
5 1 1 1 0
6 1 1 0 0
7 1 0 0 0
dr inż. Jakub Możaryn Podstawy Automatyki
Kody typu ’1 z n’ umożliwiają kodowanie dowolnego zbioru liczb (n – oznacza liczbę kodowanych elementów). Do zakodowania n elementów wykorzystuje się n zmiennych binarnych. W każdym zapisie liczby jedna zmienna ma wartość 1.
L.dzi. Kod
- a5 a4 a3 a2 a1 a0
0 0 0 0 0 0 1
1 0 0 0 0 1 0
2 0 0 0 1 0 0
3 0 0 1 0 0 0
4 0 1 0 0 0 0
5 1 0 0 0 0 0
Kody pseudopierścieniowy i kody ’1 z n’ są kodami nieminimalnymi – wymagają użycia większej liczby zmiennych (bitów) niż naturalny kod dwójkowy lub kod Graya.
dr inż. Jakub Możaryn Podstawy Automatyki
Funkcje logiczne
Logicznymi nazywają się funkcje, których zmienne niezależne i zmienna zależna mogą przyjmować skończoną liczbę wartości.
Funkcje logiczne dwuwartościowe
Funkcje logiczne, których zmienne niezależne i zmienna zależna mogą przyjmować tylko dwie wartości nazywają się funkcjami logicznymi dwuwartościowymi.
Do opisu działania dyskretnych układów sterowania wykorzystuje się funkcje logiczne dwuwartościowe.
Różnych dwuwartościowych funkcji logicznych o liczbie argumentów n jest 22n. Zatem istnieją 4 tylko dwuwartościowe funkcje logiczne jednoargumentowe, 16 funkcji dwuargumentowych, 256 funkcji trójargumentowych, itd.
dr inż. Jakub Możaryn Podstawy Automatyki
Podstawowymi formami zapisu funkcji logicznych są:
postacie tabelaryczne, zapis algebraiczny.
Funkcje logiczne jednoargumentowe y = f (x )
x y
0 0
1 0
Funkcja stała zerowa
y = 0 (10)
x y
0 0
1 1
Funkcja potwórzenie
y = x (11)
x y
0 1
1 0
Funkcja negacja
y = x (12)
x y
0 1
1 1
Funkcja stała jedynka
y = 1 (13)
dr inż. Jakub Możaryn Podstawy Automatyki
Funkcje logiczne dwuargumentowe y = f (x1, x2) x1 x2 y0 y1 y2 y3 y4 y5
0 0 0 0 0 0 0 0
0 1 0 0 0 0 1 1
1 0 0 0 1 1 0 0
1 1 0 1 0 1 0 1
Funkcja stała zerowa: y0= 0
Koniunkcja, iloczyn logiczny, mnożenie logiczne : y1= x1· x2
Zakaz przez x2, negacja implikacji : y2= x1∆x2= x1→ x2= x1· x2
Powtórzenie x1: y3= x1
Zakaz przez x1, negacja implikacji odwrotnej:
y4= x2∆x1= x2→ x1= x1· x2
Powtórzenie x2: y5= x2
dr inż. Jakub Możaryn Podstawy Automatyki
Funkcje logiczne dwuargumentowe y = f (x1, x2) x1 x2 y6 y7 y8 y9 y10
0 0 0 0 1 1 1
0 1 1 1 0 0 0
1 0 1 1 0 0 1
1 1 0 1 0 1 0
Alternatywa wyłączająca, dodawanie modulo dwa, nierównoważność : y6= x1⊕ x2= x1x2+ x1x2
Alternatywa, dodawanie logiczne, suma logiczna : y7= x1+ x2 Funkcja Peirce’a, nagacja alternatywy, funkcja NOR :
y8= x1↓ x2= x1+ x2= x1· x2
Równoważność: y9= x1≡ x2= x1· x2+ x1· x2 Negacja x2: y10= x2
dr inż. Jakub Możaryn Podstawy Automatyki
Funkcje logiczne dwuargumentowe y = f (x1, x2) x1 x2 y11 y12 y13 y14 y15
0 0 1 1 1 1 1
0 1 0 1 1 1 1
1 0 1 0 0 1 1
1 1 1 0 1 0 1
Implikacja odwrotna: y11= x2→ x2= x1+ x2
Negacja x1: y12= x1
Implikacja: y13= x1→ x2= x1+ x2
Funkcja Sheffera, negacja koniunkcji, funkcja NAND:
y14= x1/x2= x1· x2= x1+ x2 Funkcja stała jedynkowa: y15= 1
dr inż. Jakub Możaryn Podstawy Automatyki
Algebra Boole’a zajmuje się zależnościami zachodzącymi pomiędzy funkcjami: alternatywą, koniunkcją i negacją.
Funkcje alternatywa, koniunkcja i negacja tworzą tzw. podstawowy system funkcjonalnie pełny.
System funkcjonalnie pełny
System funkcjonalnie pełny jest to zbiór (zestaw) funkcji logicznych umożliwiający tworzenie zapisów algebraicznych dowolnie złożonych funkcji logicznych.
Tworzenie zapisu algebraicznego funkcji logicznej zdefiniowanej np. w postaci opisu słownego, w postaci tabelarycznej lub w inny sposób, nazywa się syntezą tej funkcji, do czego niezbędna jest znajomość algebry Boole’a.
Zależności zachodzące pomiędzy funkcjami: alternatywą, koniunkcją i negacją wyraża zestaw twierdzeń (praw) zwanych aksjomatami algebry Boole’a.
dr inż. Jakub Możaryn Podstawy Automatyki
Aksjomaty algebry Boole’a koniunkcja
0 = 1 (14)
x · 0 = 0 (15) x · 1 = x (16) x · x = x (17) x · x = 0 (18)
alternatywa
1 = 0 (19)
x + 0 = x (20) x + 1 = 1 (21)
x + x = x (22)
x + x = 1 (23) Prawo przemienności
x1· x2= x2· x1 (24) x1+ x2= x2+ x1 (25) Prawo łączności
x1· (x2· x3) = (x2· x1) · x3 (26) x1+ (x2+ x3) = (x2+ x1) + x3 (27)
dr inż. Jakub Możaryn Podstawy Automatyki
Prawo rozdzielności mnożenia logicznego względem dodawania logicznego
(x1+ x2) · x3= x1· x3+ x2· x3 (28) Prawo rozdzielności dodawania logicznego względem mnożenia logicznego
(x1· x2) + x3= (x1+ x3) · (x2+ x3) (29) Prawa de Morgana
x1· x2= x1+ x2 (30) x1+ x2= x1· x2 (31) Prawo podwójnej negacji (podwójnego przeczenia)
x = x (32)
Na podstawie powyższych twierdzeń można tworzyć szereg innych zależności przydatnych przy przekształcaniu funkcji logicznych. Symbole x0, x1, x2, x3 w tych twierdzeniach mogą reprezentować zarówno pojedynczy argument jak i dowolnie złożoną funkcję logiczną.
dr inż. Jakub Możaryn Podstawy Automatyki
Wykład 11 - Podstawy matematyczne automatyki procesów dyskretnych
dr inż. Jakub Możaryn
Instytut Automatyki i Robotyki
Warszawa, 2017
dr inż. Jakub Możaryn Podstawy Automatyki