diff --git a/dist/_/calendars/css/main.css b/dist/_/calendars/css/main.css deleted file mode 100644 index 30b49b9..0000000 --- a/dist/_/calendars/css/main.css +++ /dev/null @@ -1,352 +0,0 @@ -.calendar.theme-dark { - color: #ffffff; - background-color: #000000; } - .calendar.theme-dark .cal-year { - color: #b3b3b3; } - .calendar.theme-dark .cal-month ul li { - color: #ffffff; } - .calendar.theme-dark .cal-month ul li.cal-day-saturday, .calendar.theme-dark .cal-month ul li.cal-day-sunday { - color: #b3b3b3; } - .calendar.theme-dark .cal-month ul.cal-weekday-headings li { - color: #ffffff; } - .calendar.theme-dark .cal-month ul.cal-weekday-headings li.cal-heading-saturday, .calendar.theme-dark .cal-month ul.cal-weekday-headings li.cal-heading-sunday { - color: #b3b3b3; } - .calendar.theme-dark .cal-month-title { - color: #b3b3b3; } - -.calendar.theme-dark_arch { - color: #ffffff; - background-color: #000000; } - .calendar.theme-dark_arch .cal-year { - color: #0000ff; } - .calendar.theme-dark_arch .cal-month ul li { - color: #ffffff; } - .calendar.theme-dark_arch .cal-month ul li.cal-day-saturday, .calendar.theme-dark_arch .cal-month ul li.cal-day-sunday { - color: #ffa500; } - .calendar.theme-dark_arch .cal-month ul.cal-weekday-headings li { - color: #0000ff; } - .calendar.theme-dark_arch .cal-month ul.cal-weekday-headings li.cal-heading-saturday, .calendar.theme-dark_arch .cal-month ul.cal-weekday-headings li.cal-heading-sunday { - color: #ffa500; } - .calendar.theme-dark_arch .cal-month-title { - color: #0000ff; } - -.calendar.theme-light { - color: #000000; - background-color: #ffffff; } - .calendar.theme-light .cal-year { - color: #ffa500; } - .calendar.theme-light .cal-month ul li { - color: #000000; } - .calendar.theme-light .cal-month ul li.cal-day-saturday, .calendar.theme-light .cal-month ul li.cal-day-sunday { - color: #ffa500; } - .calendar.theme-light .cal-month ul.cal-weekday-headings li { - color: #000000; } - .calendar.theme-light .cal-month ul.cal-weekday-headings li.cal-heading-saturday, .calendar.theme-light .cal-month ul.cal-weekday-headings li.cal-heading-sunday { - color: #ffa500; } - .calendar.theme-light .cal-month-title { - color: #ffa500; } - -.calendar.theme-light_arch { - color: #000000; - background-color: #ffffff; } - .calendar.theme-light_arch .cal-year { - color: #0000ff; } - .calendar.theme-light_arch .cal-month ul li { - color: #000000; } - .calendar.theme-light_arch .cal-month ul li.cal-day-saturday, .calendar.theme-light_arch .cal-month ul li.cal-day-sunday { - color: #ffa500; } - .calendar.theme-light_arch .cal-month ul.cal-weekday-headings li { - color: #0000ff; } - .calendar.theme-light_arch .cal-month ul.cal-weekday-headings li.cal-heading-saturday, .calendar.theme-light_arch .cal-month ul.cal-weekday-headings li.cal-heading-sunday { - color: #ffa500; } - .calendar.theme-light_arch .cal-month-title { - color: #0000ff; } - -.calendar.theme-matrix { - color: #ccffcc; - background-color: #000000; } - .calendar.theme-matrix .cal-year { - color: #00ff00; } - .calendar.theme-matrix .cal-month ul li { - color: #ccffcc; } - .calendar.theme-matrix .cal-month ul li.cal-day-saturday, .calendar.theme-matrix .cal-month ul li.cal-day-sunday { - color: #00ff00; } - .calendar.theme-matrix .cal-month ul.cal-weekday-headings li { - color: #ccffcc; } - .calendar.theme-matrix .cal-month ul.cal-weekday-headings li.cal-heading-saturday, .calendar.theme-matrix .cal-month ul.cal-weekday-headings li.cal-heading-sunday { - color: #00ff00; } - .calendar.theme-matrix .cal-month-title { - color: #00ff00; } - -.calendar.theme-minimal { - color: #777777; - background-color: #ffffff; } - .calendar.theme-minimal .cal-year { - color: #999999; } - .calendar.theme-minimal .cal-month ul li { - color: #777777; } - .calendar.theme-minimal .cal-month ul li.cal-day-saturday, .calendar.theme-minimal .cal-month ul li.cal-day-sunday { - color: #000000; } - .calendar.theme-minimal .cal-month ul.cal-weekday-headings li { - color: #777777; } - .calendar.theme-minimal .cal-month ul.cal-weekday-headings li.cal-heading-saturday, .calendar.theme-minimal .cal-month ul.cal-weekday-headings li.cal-heading-sunday { - color: #000000; } - .calendar.theme-minimal .cal-month-title { - color: #999999; } - -/* Fix box-sizing */ -*, *:before, *:after { - box-sizing: inherit; } - -html { - box-sizing: border-box; } - -html, -body { - margin: 0; - padding: 0; - font-size: 14px; } - -body { - color: #000000; - background-color: #eeeeee; } - -.clear:before, -.clear:after { - content: " "; - display: table; } - -.clear:after { - clear: both; } - -.wrapper { - overflow: auto; - display: flex; - padding: 10vh 5vw 5vh; - flex-direction: row; - justify-content: space-between; - align-items: center; - align-content: center; } - -.calendar { - position: relative; - display: flex; - flex-shrink: 0; - flex-wrap: wrap; - flex-direction: row; - justify-content: space-between; - align-items: flex-start; - align-content: space-between; - margin: 0 0 10em 0; - margin: 0 0 10vw 0; - padding: 5mm; - box-shadow: 0 2em 4em rgba(0, 0, 77, 0.2); - overflow-y: auto; - overflow-x: hidden; - background-repeat: no-repeat; - font-family: Hack, monospace; } - .calendar.a1 { - width: 594mm; - height: 841mm; } - .calendar.a2 { - width: 420mm; - height: 594mm; } - .calendar.a3 { - width: 297mm; - height: 420mm; } - .calendar.a4 { - width: 210mm; - height: 297mm; } - .calendar-meta-title { - margin: 0; - font-family: 'Playfair Display', serif; - font-weight: 900; - flex-shrink: 1; - font-size: 6em; - padding-left: 1em; } - .calendar .cal-month { - display: flex; - flex-wrap: nowrap; - flex-direction: column; - justify-content: space-between; - align-items: flex-start; - align-content: center; - flex-basis: 33.333333%; - padding: 0 3em; - font-size: 1em; - line-height: 1em; } - .calendar .cal-month-1 { - order: 1; } - .calendar .cal-month-2 { - order: 2; } - .calendar .cal-month-3 { - order: 3; } - .calendar .cal-month-4 { - order: 4; } - .calendar .cal-month-5 { - order: 5; } - .calendar .cal-month-6 { - order: 6; } - .calendar .cal-month-7 { - order: 7; } - .calendar .cal-month-8 { - order: 8; } - .calendar .cal-month-9 { - order: 9; } - .calendar .cal-month-10 { - order: 10; } - .calendar .cal-month-11 { - order: 11; } - .calendar .cal-month-12 { - order: 12; } - .calendar .cal-month-extra { - display: none; - padding: 0; } - .calendar .cal-month ul { - display: flex; - margin: 0; - padding: 0.2em 0; - width: 100%; - flex-direction: row; - list-style-type: none; - justify-content: space-between; - align-items: flex-start; - align-content: flex-start; } - .calendar .cal-month ul li { - width: 14.28571%; - text-align: right; - font-weight: 400; } - .calendar .cal-month ul.cal-weekday-headings { - margin-bottom: 0.5em; } - .calendar .cal-month ul.cal-weekday-headings li { - font-weight: 700; } - .calendar .cal-month .cal-year { - margin: 0; - width: 100%; - text-align: center; - font-size: 1.5em; - line-height: 1em; } - .calendar .cal-month .cal-month-title { - line-height: 1em; - margin: 0 0 1em 0; - width: 100%; - text-align: center; - font-size: 1.2em; } - .calendar.layout-full { - padding: 40mm 5mm 25mm; - background-position: center center; - background-size: 75%; } - .calendar.layout-full .cal-month-extra-1 { - position: absolute; - top: 15mm; - left: 0; - right: 0; - display: block; - margin: 0 auto; } - .calendar.layout-full .cal-month-extra-1 .cal-year { - display: block; } - .calendar.layout-middle-hole { - padding: 15mm 5mm; - background-position: center 45%; - background-size: 60%; } - .calendar.layout-middle-hole .cal-month-1 { - order: 1; } - .calendar.layout-middle-hole .cal-month-2 { - order: 2; } - .calendar.layout-middle-hole .cal-month-3 { - order: 3; } - .calendar.layout-middle-hole .cal-month-4 { - order: 4; } - .calendar.layout-middle-hole .cal-month-5 { - order: 6; } - .calendar.layout-middle-hole .cal-month-6 { - order: 7; } - .calendar.layout-middle-hole .cal-month-7 { - order: 9; } - .calendar.layout-middle-hole .cal-month-8 { - order: 10; } - .calendar.layout-middle-hole .cal-month-9 { - order: 12; } - .calendar.layout-middle-hole .cal-month-10 { - order: 13; } - .calendar.layout-middle-hole .cal-month-11 { - order: 14; } - .calendar.layout-middle-hole .cal-month-12 { - order: 15; } - .calendar.layout-middle-hole .cal-month-extra { - display: flex; } - .calendar.layout-middle-hole .cal-month-extra .cal-year { - display: none; } - .calendar.layout-middle-hole .cal-month-extra-1 { - order: 5; } - .calendar.layout-middle-hole .cal-month-extra-2 { - order: 8; } - .calendar.layout-middle-hole .cal-month-extra-3 { - order: 11; - justify-content: flex-end; - align-items: center; - align-content: center; } - .calendar.layout-middle-hole .cal-month-extra-3 .cal-year { - display: block; } - .calendar.layout-top { - align-content: flex-start; - padding: 25mm 5mm 0; - background-position: center bottom; - background-size: 30%; } - .calendar.layout-top .cal-month-extra-1 { - position: absolute; - top: 10mm; - left: 0; - right: 0; - display: block; - margin: 0 auto; } - .calendar.layout-top .cal-month-extra-1 .cal-year { - display: block; } - .calendar.layout-bottom { - align-content: flex-end; - padding: 0 5mm 15mm; - background-position: center top; - background-size: 32.5%; } - .calendar.layout-bottom .cal-month-extra-1 { - position: absolute; - top: 15mm; - right: 10mm; - display: block; - margin: 0; } - .calendar.layout-bottom .cal-month-extra-1 .cal-year { - display: block; - transform: rotate(-90deg); } - -.settings { - background-color: #ffffff; - padding: 1em; } - .settings form { - display: flex; - justify-content: space-between; - flex-wrap: wrap; } - .settings form .settings-single { - width: 25%; - padding: 0.5em 1em; } - .settings button { - display: inline-block; - padding: 0.25em 1em; - border: none; - color: #ffffff; - background-color: #000000; } - -@media print { - .settings, - .calendar-meta-title { - display: none; } - .wrapper { - padding: 0; } - .calendar { - position: relative; - top: 0; - left: 0; - right: 0; - margin: 0 !important; - transform: none; - max-width: 100vw; - max-height: 100vh; - box-shadow: none; } } diff --git a/dist/_/calendars/images/blank.png b/dist/_/calendars/images/blank.png deleted file mode 100644 index 427fb75..0000000 Binary files a/dist/_/calendars/images/blank.png and /dev/null differ diff --git a/dist/_/calendars/images/cards/black_on_white/cosmotux.png b/dist/_/calendars/images/cards/black_on_white/cosmotux.png deleted file mode 100644 index 69e6ce6..0000000 Binary files a/dist/_/calendars/images/cards/black_on_white/cosmotux.png and /dev/null differ diff --git a/dist/_/calendars/images/cards/black_on_white/interject.png b/dist/_/calendars/images/cards/black_on_white/interject.png deleted file mode 100644 index 2da667a..0000000 Binary files a/dist/_/calendars/images/cards/black_on_white/interject.png and /dev/null differ diff --git a/dist/_/calendars/images/cards/blue_on_white/arch.png b/dist/_/calendars/images/cards/blue_on_white/arch.png deleted file mode 100644 index aa9b754..0000000 Binary files a/dist/_/calendars/images/cards/blue_on_white/arch.png and /dev/null differ diff --git a/dist/_/calendars/images/cards/orange_on_white/arch.png b/dist/_/calendars/images/cards/orange_on_white/arch.png deleted file mode 100644 index 9351588..0000000 Binary files a/dist/_/calendars/images/cards/orange_on_white/arch.png and /dev/null differ diff --git a/dist/_/calendars/images/cards/orange_on_white/cron.png b/dist/_/calendars/images/cards/orange_on_white/cron.png deleted file mode 100644 index 215665d..0000000 Binary files a/dist/_/calendars/images/cards/orange_on_white/cron.png and /dev/null differ diff --git a/dist/_/calendars/images/cards/orange_on_white/debian.png b/dist/_/calendars/images/cards/orange_on_white/debian.png deleted file mode 100644 index 3bd6c2b..0000000 Binary files a/dist/_/calendars/images/cards/orange_on_white/debian.png and /dev/null differ diff --git a/dist/_/calendars/images/cards/orange_on_white/fedora.png b/dist/_/calendars/images/cards/orange_on_white/fedora.png deleted file mode 100644 index 85576db..0000000 Binary files a/dist/_/calendars/images/cards/orange_on_white/fedora.png and /dev/null differ diff --git a/dist/_/calendars/images/cards/orange_on_white/freebsd.png b/dist/_/calendars/images/cards/orange_on_white/freebsd.png deleted file mode 100644 index f8a8b9b..0000000 Binary files a/dist/_/calendars/images/cards/orange_on_white/freebsd.png and /dev/null differ diff --git a/dist/_/calendars/images/cards/orange_on_white/gcc.png b/dist/_/calendars/images/cards/orange_on_white/gcc.png deleted file mode 100644 index 1add36b..0000000 Binary files a/dist/_/calendars/images/cards/orange_on_white/gcc.png and /dev/null differ diff --git a/dist/_/calendars/images/cards/orange_on_white/gnu-linux.png b/dist/_/calendars/images/cards/orange_on_white/gnu-linux.png deleted file mode 100644 index bf79195..0000000 Binary files a/dist/_/calendars/images/cards/orange_on_white/gnu-linux.png and /dev/null differ diff --git a/dist/_/calendars/images/cards/orange_on_white/gnu.png b/dist/_/calendars/images/cards/orange_on_white/gnu.png deleted file mode 100644 index 1bb15d7..0000000 Binary files a/dist/_/calendars/images/cards/orange_on_white/gnu.png and /dev/null differ diff --git a/dist/_/calendars/images/cards/orange_on_white/golang.png b/dist/_/calendars/images/cards/orange_on_white/golang.png deleted file mode 100644 index 6dabd53..0000000 Binary files a/dist/_/calendars/images/cards/orange_on_white/golang.png and /dev/null differ diff --git a/dist/_/calendars/images/cards/orange_on_white/iptables.png b/dist/_/calendars/images/cards/orange_on_white/iptables.png deleted file mode 100644 index 81a8a59..0000000 Binary files a/dist/_/calendars/images/cards/orange_on_white/iptables.png and /dev/null differ diff --git a/dist/_/calendars/images/cards/orange_on_white/joker-poster.png b/dist/_/calendars/images/cards/orange_on_white/joker-poster.png deleted file mode 100644 index 17be5df..0000000 Binary files a/dist/_/calendars/images/cards/orange_on_white/joker-poster.png and /dev/null differ diff --git a/dist/_/calendars/images/cards/orange_on_white/kali.png b/dist/_/calendars/images/cards/orange_on_white/kali.png deleted file mode 100644 index 3316527..0000000 Binary files a/dist/_/calendars/images/cards/orange_on_white/kali.png and /dev/null differ diff --git a/dist/_/calendars/images/cards/orange_on_white/kill.png b/dist/_/calendars/images/cards/orange_on_white/kill.png deleted file mode 100644 index 7b3bd66..0000000 Binary files a/dist/_/calendars/images/cards/orange_on_white/kill.png and /dev/null differ diff --git a/dist/_/calendars/images/cards/orange_on_white/linuxmasterrace.png b/dist/_/calendars/images/cards/orange_on_white/linuxmasterrace.png deleted file mode 100644 index a4f690f..0000000 Binary files a/dist/_/calendars/images/cards/orange_on_white/linuxmasterrace.png and /dev/null differ diff --git a/dist/_/calendars/images/cards/orange_on_white/manjaro.png b/dist/_/calendars/images/cards/orange_on_white/manjaro.png deleted file mode 100644 index 068e4da..0000000 Binary files a/dist/_/calendars/images/cards/orange_on_white/manjaro.png and /dev/null differ diff --git a/dist/_/calendars/images/cards/orange_on_white/penguin-skull.png b/dist/_/calendars/images/cards/orange_on_white/penguin-skull.png deleted file mode 100644 index 7a0e557..0000000 Binary files a/dist/_/calendars/images/cards/orange_on_white/penguin-skull.png and /dev/null differ diff --git a/dist/_/calendars/images/cards/orange_on_white/php.png b/dist/_/calendars/images/cards/orange_on_white/php.png deleted file mode 100644 index c6f1949..0000000 Binary files a/dist/_/calendars/images/cards/orange_on_white/php.png and /dev/null differ diff --git a/dist/_/calendars/images/cards/orange_on_white/python.png b/dist/_/calendars/images/cards/orange_on_white/python.png deleted file mode 100644 index 8037341..0000000 Binary files a/dist/_/calendars/images/cards/orange_on_white/python.png and /dev/null differ diff --git a/dist/_/calendars/images/cards/orange_on_white/root.png b/dist/_/calendars/images/cards/orange_on_white/root.png deleted file mode 100644 index 449b90c..0000000 Binary files a/dist/_/calendars/images/cards/orange_on_white/root.png and /dev/null differ diff --git a/dist/_/calendars/images/cards/orange_on_white/solus.png b/dist/_/calendars/images/cards/orange_on_white/solus.png deleted file mode 100644 index 347b91c..0000000 Binary files a/dist/_/calendars/images/cards/orange_on_white/solus.png and /dev/null differ diff --git a/dist/_/calendars/images/cards/orange_on_white/su.png b/dist/_/calendars/images/cards/orange_on_white/su.png deleted file mode 100644 index 63c1d3a..0000000 Binary files a/dist/_/calendars/images/cards/orange_on_white/su.png and /dev/null differ diff --git a/dist/_/calendars/images/cards/orange_on_white/sudo.png b/dist/_/calendars/images/cards/orange_on_white/sudo.png deleted file mode 100644 index ca21c9b..0000000 Binary files a/dist/_/calendars/images/cards/orange_on_white/sudo.png and /dev/null differ diff --git a/dist/_/calendars/images/cards/orange_on_white/swift.png b/dist/_/calendars/images/cards/orange_on_white/swift.png deleted file mode 100644 index 4394a55..0000000 Binary files a/dist/_/calendars/images/cards/orange_on_white/swift.png and /dev/null differ diff --git a/dist/_/calendars/images/cards/orange_on_white/tor.png b/dist/_/calendars/images/cards/orange_on_white/tor.png deleted file mode 100644 index 8d3bb56..0000000 Binary files a/dist/_/calendars/images/cards/orange_on_white/tor.png and /dev/null differ diff --git a/dist/_/calendars/images/cards/orange_on_white/ubuntu.png b/dist/_/calendars/images/cards/orange_on_white/ubuntu.png deleted file mode 100644 index 403ced3..0000000 Binary files a/dist/_/calendars/images/cards/orange_on_white/ubuntu.png and /dev/null differ diff --git a/dist/_/calendars/images/cards/orange_on_white/userdel.png b/dist/_/calendars/images/cards/orange_on_white/userdel.png deleted file mode 100644 index 9db0161..0000000 Binary files a/dist/_/calendars/images/cards/orange_on_white/userdel.png and /dev/null differ diff --git a/dist/_/calendars/images/cards/white_on_black/arch.png b/dist/_/calendars/images/cards/white_on_black/arch.png deleted file mode 100644 index 504cf83..0000000 Binary files a/dist/_/calendars/images/cards/white_on_black/arch.png and /dev/null differ diff --git a/dist/_/calendars/images/cards/white_on_black/cron.png b/dist/_/calendars/images/cards/white_on_black/cron.png deleted file mode 100644 index ccccd9e..0000000 Binary files a/dist/_/calendars/images/cards/white_on_black/cron.png and /dev/null differ diff --git a/dist/_/calendars/images/cards/white_on_black/debian.png b/dist/_/calendars/images/cards/white_on_black/debian.png deleted file mode 100644 index 29c2da6..0000000 Binary files a/dist/_/calendars/images/cards/white_on_black/debian.png and /dev/null differ diff --git a/dist/_/calendars/images/cards/white_on_black/fedora.png b/dist/_/calendars/images/cards/white_on_black/fedora.png deleted file mode 100644 index 9b07eb4..0000000 Binary files a/dist/_/calendars/images/cards/white_on_black/fedora.png and /dev/null differ diff --git a/dist/_/calendars/images/cards/white_on_black/freebsd.png b/dist/_/calendars/images/cards/white_on_black/freebsd.png deleted file mode 100644 index fb961a3..0000000 Binary files a/dist/_/calendars/images/cards/white_on_black/freebsd.png and /dev/null differ diff --git a/dist/_/calendars/images/cards/white_on_black/gcc.png b/dist/_/calendars/images/cards/white_on_black/gcc.png deleted file mode 100644 index 038d0b4..0000000 Binary files a/dist/_/calendars/images/cards/white_on_black/gcc.png and /dev/null differ diff --git a/dist/_/calendars/images/cards/white_on_black/gnu-linux.png b/dist/_/calendars/images/cards/white_on_black/gnu-linux.png deleted file mode 100644 index 1ad6c94..0000000 Binary files a/dist/_/calendars/images/cards/white_on_black/gnu-linux.png and /dev/null differ diff --git a/dist/_/calendars/images/cards/white_on_black/gnu.png b/dist/_/calendars/images/cards/white_on_black/gnu.png deleted file mode 100644 index 3b7e261..0000000 Binary files a/dist/_/calendars/images/cards/white_on_black/gnu.png and /dev/null differ diff --git a/dist/_/calendars/images/cards/white_on_black/golang.png b/dist/_/calendars/images/cards/white_on_black/golang.png deleted file mode 100644 index 98d070c..0000000 Binary files a/dist/_/calendars/images/cards/white_on_black/golang.png and /dev/null differ diff --git a/dist/_/calendars/images/cards/white_on_black/iptables.png b/dist/_/calendars/images/cards/white_on_black/iptables.png deleted file mode 100644 index d0d880f..0000000 Binary files a/dist/_/calendars/images/cards/white_on_black/iptables.png and /dev/null differ diff --git a/dist/_/calendars/images/cards/white_on_black/kali.png b/dist/_/calendars/images/cards/white_on_black/kali.png deleted file mode 100644 index a4d4b09..0000000 Binary files a/dist/_/calendars/images/cards/white_on_black/kali.png and /dev/null differ diff --git a/dist/_/calendars/images/cards/white_on_black/kill.png b/dist/_/calendars/images/cards/white_on_black/kill.png deleted file mode 100644 index 8dbc2d4..0000000 Binary files a/dist/_/calendars/images/cards/white_on_black/kill.png and /dev/null differ diff --git a/dist/_/calendars/images/cards/white_on_black/linuxmasterrace.png b/dist/_/calendars/images/cards/white_on_black/linuxmasterrace.png deleted file mode 100644 index b3de2ff..0000000 Binary files a/dist/_/calendars/images/cards/white_on_black/linuxmasterrace.png and /dev/null differ diff --git a/dist/_/calendars/images/cards/white_on_black/manjaro.png b/dist/_/calendars/images/cards/white_on_black/manjaro.png deleted file mode 100644 index 17421fc..0000000 Binary files a/dist/_/calendars/images/cards/white_on_black/manjaro.png and /dev/null differ diff --git a/dist/_/calendars/images/cards/white_on_black/php.png b/dist/_/calendars/images/cards/white_on_black/php.png deleted file mode 100644 index dd40e0b..0000000 Binary files a/dist/_/calendars/images/cards/white_on_black/php.png and /dev/null differ diff --git a/dist/_/calendars/images/cards/white_on_black/python.png b/dist/_/calendars/images/cards/white_on_black/python.png deleted file mode 100644 index 54709b9..0000000 Binary files a/dist/_/calendars/images/cards/white_on_black/python.png and /dev/null differ diff --git a/dist/_/calendars/images/cards/white_on_black/root.png b/dist/_/calendars/images/cards/white_on_black/root.png deleted file mode 100644 index 2c01200..0000000 Binary files a/dist/_/calendars/images/cards/white_on_black/root.png and /dev/null differ diff --git a/dist/_/calendars/images/cards/white_on_black/solus.png b/dist/_/calendars/images/cards/white_on_black/solus.png deleted file mode 100644 index fea2c44..0000000 Binary files a/dist/_/calendars/images/cards/white_on_black/solus.png and /dev/null differ diff --git a/dist/_/calendars/images/cards/white_on_black/su.png b/dist/_/calendars/images/cards/white_on_black/su.png deleted file mode 100644 index 5f5f7ea..0000000 Binary files a/dist/_/calendars/images/cards/white_on_black/su.png and /dev/null differ diff --git a/dist/_/calendars/images/cards/white_on_black/sudo.png b/dist/_/calendars/images/cards/white_on_black/sudo.png deleted file mode 100644 index b145c9d..0000000 Binary files a/dist/_/calendars/images/cards/white_on_black/sudo.png and /dev/null differ diff --git a/dist/_/calendars/images/cards/white_on_black/swift.png b/dist/_/calendars/images/cards/white_on_black/swift.png deleted file mode 100644 index d8350ab..0000000 Binary files a/dist/_/calendars/images/cards/white_on_black/swift.png and /dev/null differ diff --git a/dist/_/calendars/images/cards/white_on_black/tor.png b/dist/_/calendars/images/cards/white_on_black/tor.png deleted file mode 100644 index 7d83483..0000000 Binary files a/dist/_/calendars/images/cards/white_on_black/tor.png and /dev/null differ diff --git a/dist/_/calendars/images/cards/white_on_black/ubuntu.png b/dist/_/calendars/images/cards/white_on_black/ubuntu.png deleted file mode 100644 index 55b06e3..0000000 Binary files a/dist/_/calendars/images/cards/white_on_black/ubuntu.png and /dev/null differ diff --git a/dist/_/calendars/images/cards/white_on_black/userdel.png b/dist/_/calendars/images/cards/white_on_black/userdel.png deleted file mode 100644 index c0bfdba..0000000 Binary files a/dist/_/calendars/images/cards/white_on_black/userdel.png and /dev/null differ diff --git a/dist/_/calendars/images/distros/android/android-trust.png b/dist/_/calendars/images/distros/android/android-trust.png deleted file mode 100644 index 395f8d6..0000000 Binary files a/dist/_/calendars/images/distros/android/android-trust.png and /dev/null differ diff --git a/dist/_/calendars/images/distros/arch/arch-anatomy.png b/dist/_/calendars/images/distros/arch/arch-anatomy.png deleted file mode 100644 index 9898893..0000000 Binary files a/dist/_/calendars/images/distros/arch/arch-anatomy.png and /dev/null differ diff --git a/dist/_/calendars/images/distros/arch/arch-badge.png b/dist/_/calendars/images/distros/arch/arch-badge.png deleted file mode 100644 index 737cd94..0000000 Binary files a/dist/_/calendars/images/distros/arch/arch-badge.png and /dev/null differ diff --git a/dist/_/calendars/images/distros/arch/arch-bang.png b/dist/_/calendars/images/distros/arch/arch-bang.png deleted file mode 100644 index 86371b4..0000000 Binary files a/dist/_/calendars/images/distros/arch/arch-bang.png and /dev/null differ diff --git a/dist/_/calendars/images/distros/arch/arch-bite.png b/dist/_/calendars/images/distros/arch/arch-bite.png deleted file mode 100644 index 01c57f8..0000000 Binary files a/dist/_/calendars/images/distros/arch/arch-bite.png and /dev/null differ diff --git a/dist/_/calendars/images/distros/arch/arch-formula.png b/dist/_/calendars/images/distros/arch/arch-formula.png deleted file mode 100644 index fad001c..0000000 Binary files a/dist/_/calendars/images/distros/arch/arch-formula.png and /dev/null differ diff --git a/dist/_/calendars/images/distros/arch/arch-lines.png b/dist/_/calendars/images/distros/arch/arch-lines.png deleted file mode 100644 index 8142145..0000000 Binary files a/dist/_/calendars/images/distros/arch/arch-lines.png and /dev/null differ diff --git a/dist/_/calendars/images/distros/arch/arch-linux-n1.png b/dist/_/calendars/images/distros/arch/arch-linux-n1.png deleted file mode 100644 index 3a870ed..0000000 Binary files a/dist/_/calendars/images/distros/arch/arch-linux-n1.png and /dev/null differ diff --git a/dist/_/calendars/images/distros/arch/arch-obey.png b/dist/_/calendars/images/distros/arch/arch-obey.png deleted file mode 100644 index 0feaa10..0000000 Binary files a/dist/_/calendars/images/distros/arch/arch-obey.png and /dev/null differ diff --git a/dist/_/calendars/images/distros/arch/arch-patrick.png b/dist/_/calendars/images/distros/arch/arch-patrick.png deleted file mode 100644 index c88ba87..0000000 Binary files a/dist/_/calendars/images/distros/arch/arch-patrick.png and /dev/null differ diff --git a/dist/_/calendars/images/distros/arch/arch-tux.png b/dist/_/calendars/images/distros/arch/arch-tux.png deleted file mode 100644 index cca8e31..0000000 Binary files a/dist/_/calendars/images/distros/arch/arch-tux.png and /dev/null differ diff --git a/dist/_/calendars/images/distros/arch/arch-vintage.png b/dist/_/calendars/images/distros/arch/arch-vintage.png deleted file mode 100644 index 381259c..0000000 Binary files a/dist/_/calendars/images/distros/arch/arch-vintage.png and /dev/null differ diff --git a/dist/_/calendars/images/distros/arch/arch-wanted.png b/dist/_/calendars/images/distros/arch/arch-wanted.png deleted file mode 100644 index 39206df..0000000 Binary files a/dist/_/calendars/images/distros/arch/arch-wanted.png and /dev/null differ diff --git a/dist/_/calendars/images/distros/arch/archlinux-fucking-awesome.png b/dist/_/calendars/images/distros/arch/archlinux-fucking-awesome.png deleted file mode 100644 index 03a3d74..0000000 Binary files a/dist/_/calendars/images/distros/arch/archlinux-fucking-awesome.png and /dev/null differ diff --git a/dist/_/calendars/images/distros/arch/clap-your-hands.png b/dist/_/calendars/images/distros/arch/clap-your-hands.png deleted file mode 100644 index af3ecf5..0000000 Binary files a/dist/_/calendars/images/distros/arch/clap-your-hands.png and /dev/null differ diff --git a/dist/_/calendars/images/distros/arch/dakr-side-of-arch.png b/dist/_/calendars/images/distros/arch/dakr-side-of-arch.png deleted file mode 100644 index 0d854d6..0000000 Binary files a/dist/_/calendars/images/distros/arch/dakr-side-of-arch.png and /dev/null differ diff --git a/dist/_/calendars/images/distros/arch/fearless.png b/dist/_/calendars/images/distros/arch/fearless.png deleted file mode 100644 index 31a08f1..0000000 Binary files a/dist/_/calendars/images/distros/arch/fearless.png and /dev/null differ diff --git a/dist/_/calendars/images/distros/arch/identify-arch.png b/dist/_/calendars/images/distros/arch/identify-arch.png deleted file mode 100644 index f9d2168..0000000 Binary files a/dist/_/calendars/images/distros/arch/identify-arch.png and /dev/null differ diff --git a/dist/_/calendars/images/distros/arch/in-arch-we-trust.png b/dist/_/calendars/images/distros/arch/in-arch-we-trust.png deleted file mode 100644 index d8c695a..0000000 Binary files a/dist/_/calendars/images/distros/arch/in-arch-we-trust.png and /dev/null differ diff --git a/dist/_/calendars/images/distros/arch/joan-of-arch.png b/dist/_/calendars/images/distros/arch/joan-of-arch.png deleted file mode 100644 index 82d608f..0000000 Binary files a/dist/_/calendars/images/distros/arch/joan-of-arch.png and /dev/null differ diff --git a/dist/_/calendars/images/distros/arch/kali-play.png b/dist/_/calendars/images/distros/arch/kali-play.png deleted file mode 100644 index b2c957f..0000000 Binary files a/dist/_/calendars/images/distros/arch/kali-play.png and /dev/null differ diff --git a/dist/_/calendars/images/distros/centos/centos-before-hoes.png b/dist/_/calendars/images/distros/centos/centos-before-hoes.png deleted file mode 100644 index d79a683..0000000 Binary files a/dist/_/calendars/images/distros/centos/centos-before-hoes.png and /dev/null differ diff --git a/dist/_/calendars/images/distros/debian/debian-stable.png b/dist/_/calendars/images/distros/debian/debian-stable.png deleted file mode 100644 index 763e26a..0000000 Binary files a/dist/_/calendars/images/distros/debian/debian-stable.png and /dev/null differ diff --git a/dist/_/calendars/images/distros/debian/debian-tribal.png b/dist/_/calendars/images/distros/debian/debian-tribal.png deleted file mode 100644 index 09ce4e2..0000000 Binary files a/dist/_/calendars/images/distros/debian/debian-tribal.png and /dev/null differ diff --git a/dist/_/calendars/images/distros/debian/starry.png b/dist/_/calendars/images/distros/debian/starry.png deleted file mode 100644 index 9dc87b2..0000000 Binary files a/dist/_/calendars/images/distros/debian/starry.png and /dev/null differ diff --git a/dist/_/calendars/images/distros/fedora/fedora-f-word.png b/dist/_/calendars/images/distros/fedora/fedora-f-word.png deleted file mode 100644 index e8b4c1c..0000000 Binary files a/dist/_/calendars/images/distros/fedora/fedora-f-word.png and /dev/null differ diff --git a/dist/_/calendars/images/distros/fedora/fedora-vintage.png b/dist/_/calendars/images/distros/fedora/fedora-vintage.png deleted file mode 100644 index f987976..0000000 Binary files a/dist/_/calendars/images/distros/fedora/fedora-vintage.png and /dev/null differ diff --git a/dist/_/calendars/images/distros/gentoo/install-gentoo.png b/dist/_/calendars/images/distros/gentoo/install-gentoo.png deleted file mode 100644 index 015d0d8..0000000 Binary files a/dist/_/calendars/images/distros/gentoo/install-gentoo.png and /dev/null differ diff --git a/dist/_/calendars/images/distros/kali/house-kali.png b/dist/_/calendars/images/distros/kali/house-kali.png deleted file mode 100644 index 7927cd7..0000000 Binary files a/dist/_/calendars/images/distros/kali/house-kali.png and /dev/null differ diff --git a/dist/_/calendars/images/distros/kali/kali-dragon.png b/dist/_/calendars/images/distros/kali/kali-dragon.png deleted file mode 100644 index 468a889..0000000 Binary files a/dist/_/calendars/images/distros/kali/kali-dragon.png and /dev/null differ diff --git a/dist/_/calendars/images/distros/kali/kali-myth.png b/dist/_/calendars/images/distros/kali/kali-myth.png deleted file mode 100644 index dc41d77..0000000 Binary files a/dist/_/calendars/images/distros/kali/kali-myth.png and /dev/null differ diff --git a/dist/_/calendars/images/distros/kali/kali-obey.png b/dist/_/calendars/images/distros/kali/kali-obey.png deleted file mode 100644 index 325ceb1..0000000 Binary files a/dist/_/calendars/images/distros/kali/kali-obey.png and /dev/null differ diff --git a/dist/_/calendars/images/distros/kali/kali-play.png b/dist/_/calendars/images/distros/kali/kali-play.png deleted file mode 100644 index b2c957f..0000000 Binary files a/dist/_/calendars/images/distros/kali/kali-play.png and /dev/null differ diff --git a/dist/_/calendars/images/distros/manjaro/manjaro-sun.png b/dist/_/calendars/images/distros/manjaro/manjaro-sun.png deleted file mode 100644 index 709e5b4..0000000 Binary files a/dist/_/calendars/images/distros/manjaro/manjaro-sun.png and /dev/null differ diff --git a/dist/_/calendars/images/distros/opensuse/opensuse.png b/dist/_/calendars/images/distros/opensuse/opensuse.png deleted file mode 100644 index 6ed9083..0000000 Binary files a/dist/_/calendars/images/distros/opensuse/opensuse.png and /dev/null differ diff --git a/dist/_/calendars/images/distros/ubuntu/i-want-to-ubuntu.png b/dist/_/calendars/images/distros/ubuntu/i-want-to-ubuntu.png deleted file mode 100644 index 9f32f36..0000000 Binary files a/dist/_/calendars/images/distros/ubuntu/i-want-to-ubuntu.png and /dev/null differ diff --git a/dist/_/calendars/images/distros/ubuntu/ubuntu-great.png b/dist/_/calendars/images/distros/ubuntu/ubuntu-great.png deleted file mode 100644 index b2f6998..0000000 Binary files a/dist/_/calendars/images/distros/ubuntu/ubuntu-great.png and /dev/null differ diff --git a/dist/_/calendars/images/distros/ubuntu/ubuntu-user.png b/dist/_/calendars/images/distros/ubuntu/ubuntu-user.png deleted file mode 100644 index 024b4ba..0000000 Binary files a/dist/_/calendars/images/distros/ubuntu/ubuntu-user.png and /dev/null differ diff --git a/dist/_/calendars/index.html b/dist/_/calendars/index.html deleted file mode 100644 index b563666..0000000 --- a/dist/_/calendars/index.html +++ /dev/null @@ -1,103 +0,0 @@ - - -
- - - -' +
- (t ? e : H(e, !0)) +
- '
\n'
- : '' + (t ? e : H(e, !0)) + '
\n'
- )
- }),
- (u.blockquote = function (e) {
- return '\n' + e + '\n' - }), - (u.html = function (e) { - return e - }), - (u.heading = function (e, u, t, n) { - return this.options.headerIds - ? '
' + e + '
\n' - }), - (u.table = function (e, u) { - return '' + e + '
'
- }),
- (u.br = function () {
- return this.options.xhtml ? 'An error occurred:
' + ne(e.message + '', !0) + '' - throw e - } - } - return ( - (ie.options = ie.setOptions = function (e) { - return ue(ie.defaults, e), re(ie.defaults), ie - }), - (ie.getDefaults = m), - (ie.defaults = u), - (ie.use = function (l) { - var u, - t = ue({}, l) - l.renderer && - (function () { - var e, - s = ie.defaults.renderer || new J() - for (e in l.renderer) - !(function (r) { - var i = s[r] - s[r] = function () { - for (var e = arguments.length, u = new Array(e), t = 0; t < e; t++) u[t] = arguments[t] - var n = l.renderer[r].apply(s, u) - return (n = !1 === n ? i.apply(s, u) : n) - } - })(e) - t.renderer = s - })(), - l.tokenizer && - (function () { - var e, - s = ie.defaults.tokenizer || new Z() - for (e in l.tokenizer) - !(function (r) { - var i = s[r] - s[r] = function () { - for (var e = arguments.length, u = new Array(e), t = 0; t < e; t++) u[t] = arguments[t] - var n = l.tokenizer[r].apply(s, u) - return (n = !1 === n ? i.apply(s, u) : n) - } - })(e) - t.tokenizer = s - })(), - l.walkTokens && - ((u = ie.defaults.walkTokens), - (t.walkTokens = function (e) { - l.walkTokens(e), u && u(e) - })), - ie.setOptions(t) - }), - (ie.walkTokens = function (e, u) { - for (var t, n = c(e); !(t = n()).done; ) { - var r = t.value - switch ((u(r), r.type)) { - case 'table': - for (var i = c(r.tokens.header); !(s = i()).done; ) { - var s = s.value - ie.walkTokens(s, u) - } - for (var l, a = c(r.tokens.cells); !(l = a()).done; ) - for (var D = c(l.value); !(o = D()).done; ) { - var o = o.value - ie.walkTokens(o, u) - } - break - case 'list': - ie.walkTokens(r.items, u) - break - default: - r.tokens && ie.walkTokens(r.tokens, u) - } - } - }), - (ie.parseInline = function (e, u) { - if (null == e) throw new Error('marked.parseInline(): input parameter is undefined or null') - if ('string' != typeof e) - throw new Error( - 'marked.parseInline(): input parameter is of type ' + Object.prototype.toString.call(e) + ', string expected' - ) - ;(u = ue({}, ie.defaults, u || {})), te(u) - try { - var t = X.lexInline(e, u) - return u.walkTokens && ie.walkTokens(t, u.walkTokens), ee.parseInline(t, u) - } catch (e) { - if (((e.message += '\nPlease report this to https://github.com/markedjs/marked.'), u.silent)) - return '
An error occurred:
' + ne(e.message + '', !0) + '' - throw e - } - }), - (ie.Parser = ee), - (ie.parser = ee.parse), - (ie.Renderer = J), - (ie.TextRenderer = K), - (ie.Lexer = X), - (ie.lexer = X.lex), - (ie.Tokenizer = Z), - (ie.Slugger = Q), - (ie.parse = ie) - ) -}) diff --git a/dist/_/editor/template.json b/dist/_/editor/template.json deleted file mode 100644 index a179942..0000000 --- a/dist/_/editor/template.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "fields": [ - { - "name": "title", - "type": "text", - "required": true, - "default": "" - }, - { - "name": "author", - "type": "text", - "required": true, - "default": "" - }, - { - "name": "dateCreated", - "type": "datetime-local", - "required": false, - "default": "" - }, - { - "name": "datePublish", - "type": "datetime-local", - "required": false, - "default": "" - }, - { - "name": "dateUpdate", - "type": "datetime-local", - "required": false, - "default": "" - }, - { - "name": "dateArchive", - "type": "datetime-local", - "required": false, - "default": "" - }, - { - "name": "link", - "type": "text", - "required": false, - "default": "" - }, - { - "name": "linkText", - "type": "text", - "required": false, - "default": "" - }, - { - "name": "posterImage", - "type": "text", - "required": false, - "default": "" - }, - { - "name": "posterImageSize", - "type": "text", - "required": false, - "default": "" - }, - { - "name": "posterImageCredits", - "type": "text", - "required": false, - "default": "" - }, - { - "name": "summary", - "type": "text", - "required": false, - "default": "" - }, - { - "name": "categories", - "type": "text", - "required": false, - "default": "" - } - ] -} diff --git a/dist/_/skole/hio/2017/eksamensark/css/exam-paper-linux.css b/dist/_/skole/hio/2017/eksamensark/css/exam-paper-linux.css deleted file mode 100644 index 83f3e24..0000000 --- a/dist/_/skole/hio/2017/eksamensark/css/exam-paper-linux.css +++ /dev/null @@ -1,80 +0,0 @@ -html, -body { - font-size: 10px; -} - -/* Split the page into 2 sections */ -.wrapper section { - padding: 0 2.5mm 0; - width: 50%; -} - -.row h1, -.row h2, -.row h3, -.row h4, -.row h5, -.row h6, -.row p, -.row dl { - margin: 0; - line-height: 1.2; -} - -.row p { - font-size: 1em; -} - -.row ul, -.row ol { - margin: 0; -} - -.row li { - line-height: 1; -} - -.row code { - background-color: #eee; - padding: 0.1em; - line-height: 1.4; - font-size: 0.9em; - font-family: monospace; -} - -.row dl dt:before { - content: " "; - display: table -} - -.row dl dt { - margin: 0; - font-weight: 700; - display: block; -} - -.row dl dd { - display: block; - margin: 0 0 0.3em 0; -} - -.row dl dd dl { - padding: 0 0 0 1em; -} - -.table-code td:first-child { - font-family: monospace; - font-size: 1rem; - white-space: nowrap; -} - -.table-code td.wrap { - white-space: normal; - text-align: left; - word-break: break-all; -} - -.table-code td:last-child { - font-family: serif; - font-size: 1rem; -} \ No newline at end of file diff --git a/dist/_/skole/hio/2017/eksamensark/css/exam-paper.css b/dist/_/skole/hio/2017/eksamensark/css/exam-paper.css deleted file mode 100644 index 3bdb836..0000000 --- a/dist/_/skole/hio/2017/eksamensark/css/exam-paper.css +++ /dev/null @@ -1,450 +0,0 @@ -/* Fix box-sizing */ -*, *:before, *:after { box-sizing: inherit; } -html { box-sizing: border-box; } - -html, -body { - margin: 0; - padding: 0; - font-size: 8px; -} - -body { - background-color: #eee; - font-family: 'PT Serif', 'Times New Roman', Times, serif; - font-size: 1em; -} - -hr { - width: 100%; - height: 1px; - margin: 0.1em auto; - padding: 0; - border: none; - background-color: gray; -} - -/* Question */ -.q { - font-style: italic; -} - -/* Answer */ -.a { - font-style: normal; -} - -/* Clearfix */ -.clear:before, -.clear:after { - content: " "; - display: table -} -.clear:after{ - clear: both -} - -/* Floats */ -.fl { float: left; } -.fr { float: right; } - -/* Widths */ -.w1 { width: 10% !important; } -.w15 { width: 15% !important; } -.w2 { width: 20% !important; } -.w25 { width: 25% !important; } -.w25 { width: 25% !important; } -.w3 { width: 30% !important; } -.w33 { width: 33.3333% !important; } -.w35 { width: 35% !important; } -.w4 { width: 40% !important; } -.w45 { width: 45% !important; } -.w5 { width: 50% !important; } -.w55 { width: 55% !important; } -.w6 { width: 60% !important; } -.w65 { width: 65% !important; } -.w66 { width: 66.6667% !important; } -.w7 { width: 70% !important; } -.w75 { width: 75% !important; } -.w8 { width: 80% !important; } -.w85 { width: 85% !important; } -.w9 { width: 90% !important; } -.w95 { width: 95% !important; } -.w10 { width: 100% !important; } - -/* Columns */ -.cols { - column-gap: 0.5em; - column-rule: 1px dotted #ddd; -} - -.cols-2 { - column-count: 2; -} - -.cols-3 { - column-count: 3; -} - -/* Colors */ -.black { color: black; } -.white { color: white; } -.red { color: red; } -.blue { color: blue; } -.green { color: green; } -.yellow { color: yellow; } -.orange { color: orange; } -.purple { color: purple; } -.pink { color: pink; } -.brown { color: brown; } - -/* Indentations */ -.i0 { padding-left: 0em !important; } -.i1 { padding-left: 1em !important; } -.i2 { padding-left: 2em !important; } -.i3 { padding-left: 3em !important; } -.i4 { padding-left: 4em !important; } -.i5 { padding-left: 5em !important; } - -/* Center an element */ -.centered { display: block; margin-left: auto !important; margin-right: auto !important; } - -/* Seperators */ -.sl { padding-left: 0.5em; border-left: 0.05em solid gray; } -.sr { padding-right: 0.5em; border-right: 0.05em solid gray; } - -/* Alignments */ -.tl { text-align: left !important; } -.tr { text-align: right !important; } -.tj { text-align: justify !important; } -.tc { text-align: center !important; } - -/* Font sizes */ -.fss { font-size: 0.8em !important; } -.fsm { font-size: 1.2em !important; } -.fsl { font-size: 1.5em !important; } - -/* Borders */ -.bt { border-top: 1px solid gray; padding-top: 1px; } -.br { border-right: 1px solid gray; padding-right: 1px; } -.bb { border-bottom: 1px solid gray; padding-bottom: 1px; } -.bl { border-left: 1px solid gray; padding-left: 1px; } - -/* Display styles */ -.inline { display: inline; } - -/* Ensure latex is rendering on print */ -.katex { font-size: 1.1em !important; } -.katex .frac-line { - min-height: 1px !important; - min-width: 1px !important; - border-bottom-width: 1px !important; -} -.katex .underline-line { - min-height: 1px !important; - border-bottom-width: 1px !important; -} -.katex-display { - display: inline-block !important; - margin: 0.3em 0 0 !important; - text-align: left !important; -} - -.katex.bigline { - margin-top: 1px; - display: inline-block; -} - -/* One A4 paper page (landscape) */ -.wrapper { - display: flex; - margin: 10em auto; - padding: 6.35mm; - flex-direction: row; - justify-content: space-between; - color: #222; - background-color: #fff; - width: 297mm; - height: 210mm; - max-width: 100%; - max-height: 100%; - box-shadow: 0 2em 5em -1em rgba(0, 0, 64, 0.1); - overflow-y: auto; - overflow-x: hidden; - /*padding: 0;*/ - /*border: 5mm solid red;*/ - position: relative; -} - -.wrapper:after { - position: absolute; - bottom: 2.5mm; - right: 2.5mm; - content: attr(page); -} - -/* Make sure print behaves correctly */ -@media print { - .wrapper { - position: relative; - top: 0; - left: 0; - right: 0; - padding: 6.35mm; - /*padding: 0;*/ - /*border: 6.35mm solid red;*/ - margin: 0; - transform: none; - max-width: 100vw; - max-height: 100vh; - box-shadow: none; - } -} - -/* Split the page into 3 sections */ -.wrapper section { - display: flex; - flex-direction: column; - padding: 0 0.75mm 0; - width: 33.33333333333333%; - max-width: 100%; -} - -.wrapper section:first-child { - padding-left: 0; -} - -.wrapper section:last-child { - padding-right: 0; -} - -/* Styling for all page elements */ -.row h1, -.row h2, -.row h3, -.row h4, -.row h5, -.row h6, -.row p, -.row img, -.row figure, -.row ul, -.row ol { - width: 100%; - max-width: 100%; -} - -.row h1, -.row h2, -.row h3, -.row h4, -.row h5, -.row h6, -.row p, -.row dl { - margin: 0; - line-height: 1; - text-align: justify; -} - -.row h1, -.row h2, -.row h3, -.row h4, -.row h5, -.row h6 { - color: #111; -} - -.row p { - font-size: 1em; -} - -.row ul, -.row ol { - margin: 0; - padding: 0 0 0 1.5em; -} - -.row ul.nostyle, -.row ol.nostyle { - list-style-type: none; -} - -.row ul.inside, -.row ol.inside { - list-style-position: inside; - padding-left: 0; -} - -.row li { - line-height: 1; -} - -.row ul.inline, -.row ol.inline { - display: flex; - flex-direction: row; - justify-content: space-between; - flex-wrap: wrap; -} - -.row ul.inline li, -.row ol.inline li { - margin: 0 1em 0 0; - padding: 0 1em 0 0; - white-space: nowrap; -} -.row ul.inline li p, -.row ol.inline li p { - word-break: break-word; - white-space: normal; -} - -.row ul.inline.nostyle, -.row ol.inline.nostyle { - padding: 0; -} - -.row ul.inline2 { - padding: 0; - list-style: none; -} - -.row ul.inline2 li { - position: relative; - display: inline; - padding: 0 0.75em; -} - -.row ul.inline2 li::before { - position: absolute; - left: 0; - top: 0; - width: 1em; - height: 1em; - line-height: 1em; - content: '\25CF'; -} - - -.row ul.qna, -.row ol.qna { - margin: 0; - padding: 0; - list-style-type: none; -} - -.row ul.qna > li > ul, -.row ul.qna > li > ol, -.row ol.qna > li > ul, -.row ol.qna > li > ol { - margin: 0.75em 0; - padding: 0; - list-style-type: none; -} - -.row ul.qna ul, -.row ol.qna ol { - margin: 0; - padding: 0 0 0 0.5em; -} - -.row ul.qna > li > ul > li:first-child, -.row ol.qna > li > ul > li:first-child { - font-weight: 700; -} - -.row ul.qna > li > ul > li:first-child pre, -.row ol.qna > li > ul > li:first-child pre { - font-weight: normal; -} - -.row ul.qna > li > ul > li:last-child, -.row ol.qna > li > ul > li:last-child { - padding: 0 0 0 2em; - line-height: 1em; -} - - -.row code, -.row pre { - margin: 0; - padding: 0.5em; - background-color: #eee; -} - -.row pre { - display: inline-block; -} - -.row code { - padding: 0em; - line-height: 1; - font-size: 0.9em; - font-family: 'PT Mono', monospace; -} - -.row dl dt:before { - content: " "; - display: table -} - -.row dl dt { - font-weight: 700; - display: inline; -} - -.row dl dd { - margin: 0 0 0 1em; - display: inline; -} - -.row table { - border-collapse: collapse; -} - -.row table td, -.row table th { - padding: 0; - margin: 0; -} - -.row table th { - font-size: 0.8em; -} - -.row table tbody th { - text-align: left; -} - -.row table tbody tr:nth-child(odd) { - background-color: #eee; -} - -.row table tbody td { - font-family: 'PT Mono', monospace; - font-size: 0.8em; - line-height: 1em; - padding: 0.1em 0.2em 0; -} - -.row figure { - margin: 0; - padding: 0; -} - -.row figure img { - margin: 0; - padding: 0; -} - -.row figure figcaption { - margin: 0; - padding: 0; - line-height: 1; - font-size: 0.8em; - text-align: left; - color: #444; - font-family: 'PT Serif Caption', serif; -} \ No newline at end of file diff --git a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_AMS-Regular.ttf b/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_AMS-Regular.ttf deleted file mode 100644 index 2c998f9..0000000 Binary files a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_AMS-Regular.ttf and /dev/null differ diff --git a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_AMS-Regular.woff b/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_AMS-Regular.woff deleted file mode 100644 index 29ef535..0000000 Binary files a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_AMS-Regular.woff and /dev/null differ diff --git a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_AMS-Regular.woff2 b/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_AMS-Regular.woff2 deleted file mode 100644 index c01a71b..0000000 Binary files a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_AMS-Regular.woff2 and /dev/null differ diff --git a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Caligraphic-Bold.ttf b/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Caligraphic-Bold.ttf deleted file mode 100644 index 35e420d..0000000 Binary files a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Caligraphic-Bold.ttf and /dev/null differ diff --git a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Caligraphic-Bold.woff b/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Caligraphic-Bold.woff deleted file mode 100644 index 2a33324..0000000 Binary files a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Caligraphic-Bold.woff and /dev/null differ diff --git a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Caligraphic-Bold.woff2 b/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Caligraphic-Bold.woff2 deleted file mode 100644 index e914468..0000000 Binary files a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Caligraphic-Bold.woff2 and /dev/null differ diff --git a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Caligraphic-Regular.ttf b/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Caligraphic-Regular.ttf deleted file mode 100644 index d62f65c..0000000 Binary files a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Caligraphic-Regular.ttf and /dev/null differ diff --git a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Caligraphic-Regular.woff b/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Caligraphic-Regular.woff deleted file mode 100644 index e818948..0000000 Binary files a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Caligraphic-Regular.woff and /dev/null differ diff --git a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Caligraphic-Regular.woff2 b/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Caligraphic-Regular.woff2 deleted file mode 100644 index c26e0dd..0000000 Binary files a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Caligraphic-Regular.woff2 and /dev/null differ diff --git a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Fraktur-Bold.ttf b/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Fraktur-Bold.ttf deleted file mode 100644 index 512b32d..0000000 Binary files a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Fraktur-Bold.ttf and /dev/null differ diff --git a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Fraktur-Bold.woff b/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Fraktur-Bold.woff deleted file mode 100644 index d845037..0000000 Binary files a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Fraktur-Bold.woff and /dev/null differ diff --git a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Fraktur-Bold.woff2 b/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Fraktur-Bold.woff2 deleted file mode 100644 index 7d45f74..0000000 Binary files a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Fraktur-Bold.woff2 and /dev/null differ diff --git a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Fraktur-Regular.ttf b/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Fraktur-Regular.ttf deleted file mode 100644 index f5c9a82..0000000 Binary files a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Fraktur-Regular.ttf and /dev/null differ diff --git a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Fraktur-Regular.woff b/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Fraktur-Regular.woff deleted file mode 100644 index 0b2eb42..0000000 Binary files a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Fraktur-Regular.woff and /dev/null differ diff --git a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Fraktur-Regular.woff2 b/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Fraktur-Regular.woff2 deleted file mode 100644 index 5b9bec4..0000000 Binary files a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Fraktur-Regular.woff2 and /dev/null differ diff --git a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Main-Bold.ttf b/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Main-Bold.ttf deleted file mode 100644 index 875806e..0000000 Binary files a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Main-Bold.ttf and /dev/null differ diff --git a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Main-Bold.woff b/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Main-Bold.woff deleted file mode 100644 index fcdf3c8..0000000 Binary files a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Main-Bold.woff and /dev/null differ diff --git a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Main-Bold.woff2 b/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Main-Bold.woff2 deleted file mode 100644 index bfa2801..0000000 Binary files a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Main-Bold.woff2 and /dev/null differ diff --git a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Main-BoldItalic.ttf b/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Main-BoldItalic.ttf deleted file mode 100644 index 25cceac..0000000 Binary files a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Main-BoldItalic.ttf and /dev/null differ diff --git a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Main-BoldItalic.woff b/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Main-BoldItalic.woff deleted file mode 100644 index 13de70d..0000000 Binary files a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Main-BoldItalic.woff and /dev/null differ diff --git a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Main-BoldItalic.woff2 b/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Main-BoldItalic.woff2 deleted file mode 100644 index 0046141..0000000 Binary files a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Main-BoldItalic.woff2 and /dev/null differ diff --git a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Main-Italic.ttf b/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Main-Italic.ttf deleted file mode 100644 index b235ba8..0000000 Binary files a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Main-Italic.ttf and /dev/null differ diff --git a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Main-Italic.woff b/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Main-Italic.woff deleted file mode 100644 index c70b25f..0000000 Binary files a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Main-Italic.woff and /dev/null differ diff --git a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Main-Italic.woff2 b/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Main-Italic.woff2 deleted file mode 100644 index 68e2e94..0000000 Binary files a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Main-Italic.woff2 and /dev/null differ diff --git a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Main-Regular.ttf b/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Main-Regular.ttf deleted file mode 100644 index 7c5300f..0000000 Binary files a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Main-Regular.ttf and /dev/null differ diff --git a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Main-Regular.woff b/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Main-Regular.woff deleted file mode 100644 index 1354862..0000000 Binary files a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Main-Regular.woff and /dev/null differ diff --git a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Main-Regular.woff2 b/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Main-Regular.woff2 deleted file mode 100644 index aa6f9a0..0000000 Binary files a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Main-Regular.woff2 and /dev/null differ diff --git a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Math-Italic.ttf b/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Math-Italic.ttf deleted file mode 100644 index 7add130..0000000 Binary files a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Math-Italic.ttf and /dev/null differ diff --git a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Math-Italic.woff b/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Math-Italic.woff deleted file mode 100644 index b41b9a1..0000000 Binary files a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Math-Italic.woff and /dev/null differ diff --git a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Math-Italic.woff2 b/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Math-Italic.woff2 deleted file mode 100644 index ab66ee6..0000000 Binary files a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Math-Italic.woff2 and /dev/null differ diff --git a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_SansSerif-Bold.ttf b/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_SansSerif-Bold.ttf deleted file mode 100644 index 48c947e..0000000 Binary files a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_SansSerif-Bold.ttf and /dev/null differ diff --git a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_SansSerif-Bold.woff b/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_SansSerif-Bold.woff deleted file mode 100644 index 829d446..0000000 Binary files a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_SansSerif-Bold.woff and /dev/null differ diff --git a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_SansSerif-Bold.woff2 b/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_SansSerif-Bold.woff2 deleted file mode 100644 index c7a2d6e..0000000 Binary files a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_SansSerif-Bold.woff2 and /dev/null differ diff --git a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_SansSerif-Italic.ttf b/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_SansSerif-Italic.ttf deleted file mode 100644 index cd3700c..0000000 Binary files a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_SansSerif-Italic.ttf and /dev/null differ diff --git a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_SansSerif-Italic.woff b/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_SansSerif-Italic.woff deleted file mode 100644 index d572d1c..0000000 Binary files a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_SansSerif-Italic.woff and /dev/null differ diff --git a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_SansSerif-Italic.woff2 b/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_SansSerif-Italic.woff2 deleted file mode 100644 index 5424402..0000000 Binary files a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_SansSerif-Italic.woff2 and /dev/null differ diff --git a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_SansSerif-Regular.ttf b/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_SansSerif-Regular.ttf deleted file mode 100644 index 6cc265a..0000000 Binary files a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_SansSerif-Regular.ttf and /dev/null differ diff --git a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_SansSerif-Regular.woff b/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_SansSerif-Regular.woff deleted file mode 100644 index 7973f19..0000000 Binary files a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_SansSerif-Regular.woff and /dev/null differ diff --git a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_SansSerif-Regular.woff2 b/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_SansSerif-Regular.woff2 deleted file mode 100644 index 891ca8c..0000000 Binary files a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_SansSerif-Regular.woff2 and /dev/null differ diff --git a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Script-Regular.ttf b/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Script-Regular.ttf deleted file mode 100644 index 485ccdd..0000000 Binary files a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Script-Regular.ttf and /dev/null differ diff --git a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Script-Regular.woff b/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Script-Regular.woff deleted file mode 100644 index 99f8ee4..0000000 Binary files a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Script-Regular.woff and /dev/null differ diff --git a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Script-Regular.woff2 b/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Script-Regular.woff2 deleted file mode 100644 index 629d9c8..0000000 Binary files a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Script-Regular.woff2 and /dev/null differ diff --git a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Size1-Regular.ttf b/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Size1-Regular.ttf deleted file mode 100644 index 7080aae..0000000 Binary files a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Size1-Regular.ttf and /dev/null differ diff --git a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Size1-Regular.woff b/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Size1-Regular.woff deleted file mode 100644 index 1517ce9..0000000 Binary files a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Size1-Regular.woff and /dev/null differ diff --git a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Size1-Regular.woff2 b/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Size1-Regular.woff2 deleted file mode 100644 index db8b77f..0000000 Binary files a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Size1-Regular.woff2 and /dev/null differ diff --git a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Size2-Regular.ttf b/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Size2-Regular.ttf deleted file mode 100644 index 7becda4..0000000 Binary files a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Size2-Regular.ttf and /dev/null differ diff --git a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Size2-Regular.woff b/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Size2-Regular.woff deleted file mode 100644 index c12a237..0000000 Binary files a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Size2-Regular.woff and /dev/null differ diff --git a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Size2-Regular.woff2 b/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Size2-Regular.woff2 deleted file mode 100644 index 2558a34..0000000 Binary files a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Size2-Regular.woff2 and /dev/null differ diff --git a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Size3-Regular.ttf b/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Size3-Regular.ttf deleted file mode 100644 index 2c28b7d..0000000 Binary files a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Size3-Regular.ttf and /dev/null differ diff --git a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Size3-Regular.woff b/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Size3-Regular.woff deleted file mode 100644 index f9c2a7d..0000000 Binary files a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Size3-Regular.woff and /dev/null differ diff --git a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Size3-Regular.woff2 b/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Size3-Regular.woff2 deleted file mode 100644 index 329c24e..0000000 Binary files a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Size3-Regular.woff2 and /dev/null differ diff --git a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Size4-Regular.ttf b/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Size4-Regular.ttf deleted file mode 100644 index f4720c2..0000000 Binary files a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Size4-Regular.ttf and /dev/null differ diff --git a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Size4-Regular.woff b/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Size4-Regular.woff deleted file mode 100644 index aca79b3..0000000 Binary files a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Size4-Regular.woff and /dev/null differ diff --git a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Size4-Regular.woff2 b/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Size4-Regular.woff2 deleted file mode 100644 index d0f337f..0000000 Binary files a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Size4-Regular.woff2 and /dev/null differ diff --git a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Typewriter-Regular.ttf b/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Typewriter-Regular.ttf deleted file mode 100644 index 13369a8..0000000 Binary files a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Typewriter-Regular.ttf and /dev/null differ diff --git a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Typewriter-Regular.woff b/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Typewriter-Regular.woff deleted file mode 100644 index 410e3f3..0000000 Binary files a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Typewriter-Regular.woff and /dev/null differ diff --git a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Typewriter-Regular.woff2 b/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Typewriter-Regular.woff2 deleted file mode 100644 index d57f54b..0000000 Binary files a/dist/_/skole/hio/2017/eksamensark/css/fonts/KaTeX_Typewriter-Regular.woff2 and /dev/null differ diff --git a/dist/_/skole/hio/2017/eksamensark/css/katex.min.css b/dist/_/skole/hio/2017/eksamensark/css/katex.min.css deleted file mode 100644 index 631f6c1..0000000 --- a/dist/_/skole/hio/2017/eksamensark/css/katex.min.css +++ /dev/null @@ -1 +0,0 @@ -@font-face{font-family:KaTeX_AMS;src:url(fonts/KaTeX_AMS-Regular.woff2) format("woff2"),url(fonts/KaTeX_AMS-Regular.woff) format("woff"),url(fonts/KaTeX_AMS-Regular.ttf) format("truetype");font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Caligraphic;src:url(fonts/KaTeX_Caligraphic-Bold.woff2) format("woff2"),url(fonts/KaTeX_Caligraphic-Bold.woff) format("woff"),url(fonts/KaTeX_Caligraphic-Bold.ttf) format("truetype");font-weight:700;font-style:normal}@font-face{font-family:KaTeX_Caligraphic;src:url(fonts/KaTeX_Caligraphic-Regular.woff2) format("woff2"),url(fonts/KaTeX_Caligraphic-Regular.woff) format("woff"),url(fonts/KaTeX_Caligraphic-Regular.ttf) format("truetype");font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Fraktur;src:url(fonts/KaTeX_Fraktur-Bold.woff2) format("woff2"),url(fonts/KaTeX_Fraktur-Bold.woff) format("woff"),url(fonts/KaTeX_Fraktur-Bold.ttf) format("truetype");font-weight:700;font-style:normal}@font-face{font-family:KaTeX_Fraktur;src:url(fonts/KaTeX_Fraktur-Regular.woff2) format("woff2"),url(fonts/KaTeX_Fraktur-Regular.woff) format("woff"),url(fonts/KaTeX_Fraktur-Regular.ttf) format("truetype");font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Main;src:url(fonts/KaTeX_Main-Bold.woff2) format("woff2"),url(fonts/KaTeX_Main-Bold.woff) format("woff"),url(fonts/KaTeX_Main-Bold.ttf) format("truetype");font-weight:700;font-style:normal}@font-face{font-family:KaTeX_Main;src:url(fonts/KaTeX_Main-BoldItalic.woff2) format("woff2"),url(fonts/KaTeX_Main-BoldItalic.woff) format("woff"),url(fonts/KaTeX_Main-BoldItalic.ttf) format("truetype");font-weight:700;font-style:italic}@font-face{font-family:KaTeX_Main;src:url(fonts/KaTeX_Main-Italic.woff2) format("woff2"),url(fonts/KaTeX_Main-Italic.woff) format("woff"),url(fonts/KaTeX_Main-Italic.ttf) format("truetype");font-weight:400;font-style:italic}@font-face{font-family:KaTeX_Main;src:url(fonts/KaTeX_Main-Regular.woff2) format("woff2"),url(fonts/KaTeX_Main-Regular.woff) format("woff"),url(fonts/KaTeX_Main-Regular.ttf) format("truetype");font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Math;src:url(fonts/KaTeX_Math-Italic.woff2) format("woff2"),url(fonts/KaTeX_Math-Italic.woff) format("woff"),url(fonts/KaTeX_Math-Italic.ttf) format("truetype");font-weight:400;font-style:italic}@font-face{font-family:KaTeX_SansSerif;src:url(fonts/KaTeX_SansSerif-Bold.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Bold.woff) format("woff"),url(fonts/KaTeX_SansSerif-Bold.ttf) format("truetype");font-weight:700;font-style:normal}@font-face{font-family:KaTeX_SansSerif;src:url(fonts/KaTeX_SansSerif-Italic.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Italic.woff) format("woff"),url(fonts/KaTeX_SansSerif-Italic.ttf) format("truetype");font-weight:400;font-style:italic}@font-face{font-family:KaTeX_SansSerif;src:url(fonts/KaTeX_SansSerif-Regular.woff2) format("woff2"),url(fonts/KaTeX_SansSerif-Regular.woff) format("woff"),url(fonts/KaTeX_SansSerif-Regular.ttf) format("truetype");font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Script;src:url(fonts/KaTeX_Script-Regular.woff2) format("woff2"),url(fonts/KaTeX_Script-Regular.woff) format("woff"),url(fonts/KaTeX_Script-Regular.ttf) format("truetype");font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Size1;src:url(fonts/KaTeX_Size1-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size1-Regular.woff) format("woff"),url(fonts/KaTeX_Size1-Regular.ttf) format("truetype");font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Size2;src:url(fonts/KaTeX_Size2-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size2-Regular.woff) format("woff"),url(fonts/KaTeX_Size2-Regular.ttf) format("truetype");font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Size3;src:url(fonts/KaTeX_Size3-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size3-Regular.woff) format("woff"),url(fonts/KaTeX_Size3-Regular.ttf) format("truetype");font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Size4;src:url(fonts/KaTeX_Size4-Regular.woff2) format("woff2"),url(fonts/KaTeX_Size4-Regular.woff) format("woff"),url(fonts/KaTeX_Size4-Regular.ttf) format("truetype");font-weight:400;font-style:normal}@font-face{font-family:KaTeX_Typewriter;src:url(fonts/KaTeX_Typewriter-Regular.woff2) format("woff2"),url(fonts/KaTeX_Typewriter-Regular.woff) format("woff"),url(fonts/KaTeX_Typewriter-Regular.ttf) format("truetype");font-weight:400;font-style:normal}.katex-display{display:block;margin:1em 0;text-align:center}.katex-display>.katex{display:inline-block;text-align:initial}.katex{font:normal 1.21em KaTeX_Main,Times New Roman,serif;line-height:1.2;white-space:nowrap;text-indent:0;text-rendering:auto}.katex *{-ms-high-contrast-adjust:none!important}.katex .katex-html{display:inline-block}.katex .katex-mathml{position:absolute;clip:rect(1px,1px,1px,1px);padding:0;border:0;height:1px;width:1px;overflow:hidden}.katex .base{position:relative}.katex .base,.katex .strut{display:inline-block}.katex .textbf{font-weight:700}.katex .textit{font-style:italic}.katex .textrm{font-family:KaTeX_Main}.katex .textsf{font-family:KaTeX_SansSerif}.katex .texttt{font-family:KaTeX_Typewriter}.katex .mathit{font-family:KaTeX_Math;font-style:italic}.katex .mathrm{font-style:normal}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .boldsymbol{font-family:KaTeX_Math;font-weight:700;font-style:italic}.katex .amsrm,.katex .mathbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak{font-family:KaTeX_Fraktur}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr{font-family:KaTeX_Script}.katex .mathsf{font-family:KaTeX_SansSerif}.katex .mainit{font-family:KaTeX_Main;font-style:italic}.katex .mainrm{font-family:KaTeX_Main;font-style:normal}.katex .vlist-t{display:inline-table;table-layout:fixed}.katex .vlist-r{display:table-row}.katex .vlist{display:table-cell;vertical-align:bottom;position:relative}.katex .vlist>span{display:block;height:0;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist>span>.pstrut{overflow:hidden;width:0}.katex .vlist-t2{margin-right:-2px}.katex .vlist-s{display:table-cell;vertical-align:bottom;font-size:1px;width:2px}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{display:inline-block;width:100%}.katex .mspace{display:inline-block}.katex .mspace.negativethinspace{margin-left:-.16667em}.katex .mspace.muspace{width:.055556em}.katex .mspace.thinspace{width:.16667em}.katex .mspace.negativemediumspace{margin-left:-.22222em}.katex .mspace.mediumspace{width:.22222em}.katex .mspace.thickspace{width:.27778em}.katex .mspace.sixmuspace{width:.333333em}.katex .mspace.eightmuspace{width:.444444em}.katex .mspace.enspace{width:.5em}.katex .mspace.twelvemuspace{width:.666667em}.katex .mspace.quad{width:1em}.katex .mspace.qquad{width:2em}.katex .clap,.katex .llap,.katex .rlap{width:0;position:relative}.katex .clap>.inner,.katex .llap>.inner,.katex .rlap>.inner{position:absolute}.katex .clap>.fix,.katex .llap>.fix,.katex .rlap>.fix{display:inline-block}.katex .llap>.inner{right:0}.katex .clap>.inner,.katex .rlap>.inner{left:0}.katex .clap>.inner>span{margin-left:-50%;margin-right:50%}.katex .rule{display:inline-block;border:0 solid;position:relative}.katex .overline .overline-line,.katex .underline .underline-line{display:inline-block;width:100%}.katex .sqrt>.root{margin-left:.27777778em;margin-right:-.55555556em}.katex .fontsize-ensurer,.katex .sizing{display:inline-block}.katex .fontsize-ensurer.reset-size1.size1,.katex .sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .sizing.reset-size2.size1{font-size:.83333333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .sizing.reset-size2.size3{font-size:1.16666667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .sizing.reset-size2.size4{font-size:1.33333333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .sizing.reset-size2.size6{font-size:1.66666667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .sizing.reset-size2.size10{font-size:3.45666667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .sizing.reset-size2.size11{font-size:4.14666667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .sizing.reset-size3.size1{font-size:.71428571em}.katex .fontsize-ensurer.reset-size3.size2,.katex .sizing.reset-size3.size2{font-size:.85714286em}.katex .fontsize-ensurer.reset-size3.size3,.katex .sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .sizing.reset-size3.size4{font-size:1.14285714em}.katex .fontsize-ensurer.reset-size3.size5,.katex .sizing.reset-size3.size5{font-size:1.28571429em}.katex .fontsize-ensurer.reset-size3.size6,.katex .sizing.reset-size3.size6{font-size:1.42857143em}.katex .fontsize-ensurer.reset-size3.size7,.katex .sizing.reset-size3.size7{font-size:1.71428571em}.katex .fontsize-ensurer.reset-size3.size8,.katex .sizing.reset-size3.size8{font-size:2.05714286em}.katex .fontsize-ensurer.reset-size3.size9,.katex .sizing.reset-size3.size9{font-size:2.46857143em}.katex .fontsize-ensurer.reset-size3.size10,.katex .sizing.reset-size3.size10{font-size:2.96285714em}.katex .fontsize-ensurer.reset-size3.size11,.katex .sizing.reset-size3.size11{font-size:3.55428571em}.katex .fontsize-ensurer.reset-size4.size1,.katex .sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .sizing.reset-size5.size1{font-size:.55555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .sizing.reset-size5.size2{font-size:.66666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .sizing.reset-size5.size3{font-size:.77777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .sizing.reset-size5.size4{font-size:.88888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .sizing.reset-size5.size6{font-size:1.11111111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .sizing.reset-size5.size7{font-size:1.33333333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .sizing.reset-size5.size10{font-size:2.30444444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .sizing.reset-size5.size11{font-size:2.76444444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .sizing.reset-size7.size1{font-size:.41666667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .sizing.reset-size7.size3{font-size:.58333333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .sizing.reset-size7.size4{font-size:.66666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .sizing.reset-size7.size6{font-size:.83333333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .sizing.reset-size7.size10{font-size:1.72833333em}.katex .fontsize-ensurer.reset-size7.size11,.katex .sizing.reset-size7.size11{font-size:2.07333333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .sizing.reset-size8.size1{font-size:.34722222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .sizing.reset-size8.size2{font-size:.41666667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .sizing.reset-size8.size3{font-size:.48611111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .sizing.reset-size8.size4{font-size:.55555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .sizing.reset-size8.size6{font-size:.69444444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .sizing.reset-size8.size7{font-size:.83333333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .sizing.reset-size8.size10{font-size:1.44027778em}.katex .fontsize-ensurer.reset-size8.size11,.katex .sizing.reset-size8.size11{font-size:1.72777778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .sizing.reset-size9.size1{font-size:.28935185em}.katex .fontsize-ensurer.reset-size9.size2,.katex .sizing.reset-size9.size2{font-size:.34722222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .sizing.reset-size9.size3{font-size:.40509259em}.katex .fontsize-ensurer.reset-size9.size4,.katex .sizing.reset-size9.size4{font-size:.46296296em}.katex .fontsize-ensurer.reset-size9.size5,.katex .sizing.reset-size9.size5{font-size:.52083333em}.katex .fontsize-ensurer.reset-size9.size6,.katex .sizing.reset-size9.size6{font-size:.5787037em}.katex .fontsize-ensurer.reset-size9.size7,.katex .sizing.reset-size9.size7{font-size:.69444444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .sizing.reset-size9.size8{font-size:.83333333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .sizing.reset-size9.size10{font-size:1.20023148em}.katex .fontsize-ensurer.reset-size9.size11,.katex .sizing.reset-size9.size11{font-size:1.43981481em}.katex .fontsize-ensurer.reset-size10.size1,.katex .sizing.reset-size10.size1{font-size:.24108004em}.katex .fontsize-ensurer.reset-size10.size2,.katex .sizing.reset-size10.size2{font-size:.28929605em}.katex .fontsize-ensurer.reset-size10.size3,.katex .sizing.reset-size10.size3{font-size:.33751205em}.katex .fontsize-ensurer.reset-size10.size4,.katex .sizing.reset-size10.size4{font-size:.38572806em}.katex .fontsize-ensurer.reset-size10.size5,.katex .sizing.reset-size10.size5{font-size:.43394407em}.katex .fontsize-ensurer.reset-size10.size6,.katex .sizing.reset-size10.size6{font-size:.48216008em}.katex .fontsize-ensurer.reset-size10.size7,.katex .sizing.reset-size10.size7{font-size:.57859209em}.katex .fontsize-ensurer.reset-size10.size8,.katex .sizing.reset-size10.size8{font-size:.69431051em}.katex .fontsize-ensurer.reset-size10.size9,.katex .sizing.reset-size10.size9{font-size:.83317261em}.katex .fontsize-ensurer.reset-size10.size10,.katex .sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .sizing.reset-size10.size11{font-size:1.19961427em}.katex .fontsize-ensurer.reset-size11.size1,.katex .sizing.reset-size11.size1{font-size:.20096463em}.katex .fontsize-ensurer.reset-size11.size2,.katex .sizing.reset-size11.size2{font-size:.24115756em}.katex .fontsize-ensurer.reset-size11.size3,.katex .sizing.reset-size11.size3{font-size:.28135048em}.katex .fontsize-ensurer.reset-size11.size4,.katex .sizing.reset-size11.size4{font-size:.32154341em}.katex .fontsize-ensurer.reset-size11.size5,.katex .sizing.reset-size11.size5{font-size:.36173633em}.katex .fontsize-ensurer.reset-size11.size6,.katex .sizing.reset-size11.size6{font-size:.40192926em}.katex .fontsize-ensurer.reset-size11.size7,.katex .sizing.reset-size11.size7{font-size:.48231511em}.katex .fontsize-ensurer.reset-size11.size8,.katex .sizing.reset-size11.size8{font-size:.57877814em}.katex .fontsize-ensurer.reset-size11.size9,.katex .sizing.reset-size11.size9{font-size:.69453376em}.katex .fontsize-ensurer.reset-size11.size10,.katex .sizing.reset-size11.size10{font-size:.83360129em}.katex .fontsize-ensurer.reset-size11.size11,.katex .sizing.reset-size11.size11{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{display:inline-block;width:.12em}.katex .delimcenter,.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .accent>.vlist-t,.katex .op-limits>.vlist-t{text-align:center}.katex .accent .accent-body{width:0;position:relative}.katex .overlay{display:block}.katex .mtable .vertical-separator{display:inline-block;margin:0 -.125em;width:.25em;overflow:hidden;position:relative}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist-t{text-align:center}.katex .mtable .col-align-l>.vlist-t{text-align:left}.katex .mtable .col-align-r>.vlist-t{text-align:right}.katex .svg-align{text-align:left}.katex svg{display:block;position:absolute;width:100%;fill:currentColor;stroke:currentColor;fill-rule:nonzero;fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1}.katex svg path{stroke:none}.katex .vertical-separator svg{width:.25em}.katex .stretchy{width:100%;display:block;position:relative;overflow:hidden}.katex .stretchy:after,.katex .stretchy:before{content:""}.katex .hide-tail{width:100%;position:relative;overflow:hidden}.katex .halfarrow-left{position:absolute;left:0;width:50.2%;overflow:hidden}.katex .halfarrow-right{position:absolute;right:0;width:50.2%;overflow:hidden}.katex .brace-left{position:absolute;left:0;width:25.1%;overflow:hidden}.katex .brace-center{position:absolute;left:25%;width:50%;overflow:hidden}.katex .brace-right{position:absolute;right:0;width:25.1%;overflow:hidden}.katex .x-arrow-pad{padding:0 .5em}.katex .mover,.katex .munder,.katex .x-arrow{text-align:center}.katex .boxpad{padding:0 .3em}.katex .fbox{box-sizing:border-box;border:.04em solid #000}.katex .fcolorbox{box-sizing:border-box;border:.04em solid}.katex .cancel-pad{padding:0 .2em}.katex .cancel-lap+.mbin,.katex .cancel-lap+.mord,.katex .cancel-lap+.msupsub,.katex .mbin+.cancel-lap,.katex .mord+.cancel-lap{margin-left:-.2em}.katex .sout{border-bottom-style:solid;border-bottom-width:.08em} \ No newline at end of file diff --git a/dist/_/skole/hio/2017/eksamensark/datakom.html b/dist/_/skole/hio/2017/eksamensark/datakom.html deleted file mode 100644 index 66597ca..0000000 --- a/dist/_/skole/hio/2017/eksamensark/datakom.html +++ /dev/null @@ -1,1862 +0,0 @@ - - - - - - -
Lag 1 kalles det fysiske laget og forteller hva som skal beskrives i det fysiske laget. Det fysiske laget har som oppgave å få overført en bit feilfri mellom to punkter. Det er på dette laget at en beskrivelse av en bit finnes.
-Lag 2 kalles datalink laget og forteller hva som skal beskrives for å få datapakker over til neste node i et nettverk. Protokoller på dette laget har som hovedoppgave å overføre datapakker mellom to punkter/noder. Protokoller på dette laget inneholder beskrivelser av hvordan den delen av en datapakke er bygd opp for å kunne overføre datapakken til neste punkt/node. Lag 2 protokoll inneholder info adressen (f.eks. MAC) til neste punkt/node, slik at riktig node tar imot datapakken. Info om flytkontroll og feilkontroll er også i protokollen for lag 2, slik at en datablokk kan bli feilfri overført mellom to noder/punkt. Protokollen inneholder også info om hvilken protokoll på laget over som skal ha dataene.
-Lag 3 kalles nettverkslaget og forteller hva som skal beskrives for at datapakker skal finne veien gjennom et nettverk. En protokoll på dette laget inneholder info om adressen (f.eks.IP), og kan inneholde info som gjør at alle datapakkene i en overføring blir overført under like forhold, f.eks at pakkene bruker tilnærmet samme tid på å komme seg gjennom nettverket. Protokollen inneholder også info om hvilken protokoll på laget over som skal ha dataene
-Lag 4 kalles transportlaget og forteller hva som skal beskrives for at datapakker skal komme over til endepunktet i forbindelsen. Det kan være et program på endestasjonen (f.eks. PC). En protokoll på dette laget har som hovedoppgave å overføre datablokker mellom to endepunkter, f.eks. fra en applikasjon (program) på en datamaskin til en applikasjon på den andre datamaskinen. En protokoll på transportlaget skal også skjule funksjonene i de underliggende nettverksavhengige lagene fra lagene over.
-Lag 5 kalles applikasjonslaget, og sørger for at data fra applikasjonene på hver side får de data som er nødvendig.
- - -En protokoll dekker et, eller flere lag i denne modellen (Internet Protokoll Stack).. Grensesnittet mellom lagene er veldefinert. En protokoll kan bruke «tjenester» levert av laget under, og den tilbyr tjenester til laget over. Den samme protokollen kan da brukes på forskjellige protokoller på lagene under. F.eks vil den samme webbrowseren brukes uavhengig av hva slags linje som går ut.
-Hovedforskjellen er at i Internet Protokoll Stack mangler lag 5 og 6 (session og presentation), som finnes i OSImodellen. OSI modellen har 7 lag. De grunnleggende protokollene brukt i Internet eksisterte før OSI referanse modellen var laget. Protokollene brukt i Internet hadde i utgangspunktet ikke et så omfattende og klart definerte beskrivelser av arbeidsoppgavene for de forskjellige lagene.
-Etter at OSI modellen kom, startet man også arbeidet med lagdeling av protokollene brukt i Internet. Dette kalles Internet Protocol Stack, eller TCP/IP protocol stack eller TCP/IP modellen. Den inneholder kun 5 lag.
- - -En protokoll inneholder info om hvordan en arbeidsoppgave i TCP/IP modellen skal - løses.
-For at to personer skal kunne snakke sammen, må de bruke samme språk, Da vil de forstå - hverandre. Når datamaskiner skal overføre data til hverandre, må de bruke samme - protokoll. Datamaskiner som «snakker sammen», må bruke samme protokoll.
-En protokoll er et sett med regler som beskriver hvordan kommunikasjonen skal foregå. - En protokoll beskriver oppbyggingen av de forskjellige datapakkene som brukes i - protokollen. Protokollen beskriver også dataflyten i overføringen, dvs hvilke typer - datapakker som brukes når, og hvordan de forskjellige sekvensene er, slik som - oppstartsekvens, dataoverføringssekvens og nedkoblingssekvens.
-En protokoll dekker ett eller flere lag i Internet Protocol Stack. I beskrivelsen av - protokollen tas det da med bare de detaljene som har med dette eller disse laget å gjøre. - For eksempel i beskrivelsen av oppbyggingen av datapakker, vil bare de delene, som har - med de lagene som protokollen dekker, tas med. De andre delene vil ofte bare kalles - ”datadel”.
- - -En datapakke består av mange byte som kommer rett etter hverandre. I den første delen av - pakka er hodet (for det laget pakka er i). Hodet inneholder info som er nødvendig for at - protokollen skal kunne utføre oppgavene den skal gjøre. - Noen pakker har også en hale, som også er der for at protokollen skal kunne utføre oppgaven - den skal gjøre
-255.255.248.0 sier at det er 21 stk 1’ere i masken. I den første byten står det 255, som - vil si 8 stk 1’ere. Tilsvarende er det i byte nr.2. I byte nr.3 står det 248, som er - 11111000 på binær form. Her er det altså 5 stk 1’ere. Det blir til sammen 8+8+5=21 stk - 1’ere.
-Denne info kan skrives som /21 bak nettadressen: 158.29.16.00 / 21 - Man angir på denne måten: Nettadressen / antall 1’ere i masken. Antall 1’ere i masken, - angir antall bit i nettdelen av IP adressen. Dette ses på som en del av nettadressen
- -Antall host bestemmes av antall 0’ere i masken, som angir antall bit i hostdelen. Her er - det 32-21=11 stk 0’ere, det vil si 11 bit til host. Det gir: 211 – 2 = 2046 host. - -2 er de to adressene som går bort; nettadressen og broadcastadressen. En host kan ikke - ha den samme adressen som nettet den er på. En host kan heller ikke ha den samme - adressen som broadcastadressen, som er den adressen som går til alle.
- -Broadcast-adressen er den adressen med bare 1’ere i host. Nå går grensen mellom nett
- og host i den 3.byten. Nettadressen er oppgitt til 158.29.16.00/21. Dette skrevet på
- binær form, hvor fet skrift angir nettdelen, og blå skrift angir hostdelen:
- 10011110.00011101.00010000.00000000
Hvis vi setter alle bitene i hostdelen til 1, blir det:
-10011110.00011101.00010111.11111111
Skrevet på desimal form gir: 158.29.23.255
10011110 = 158
00011101 = 29
00010111 = 23
11111111 = 255
Høyeste IP-adresse er en under broadcast-adressen: 158.29.23.254
Laveste IP-adresse er en over nettadressen: 158.29.16.01
Hvis vi tillater bruk av «subnet zero» og «all 1 subnet», kan vi bruke en bit av - hostadressen for å lage to nett. De nye subnett-bitene får verdiene henholdsvis 0 og 1. - De er angitt med rød farge. Fet skrift angir nettdelen, og blå angir hostdelen (Vi ser på de to siste bytene):
-Nett 1: 00010000.00000000
-> 16.00
=> Nettadressen: 158.29.16.00 / 22
Nett 2: 00010100.00000000
-> 20.00
=> Nettadressen: 158.29.20.00 / 22
Vi har tatt en bit av hostdelen for å lage disse to subnett. Den nye masken blir da:
- 255.255.252.00. (252 = 11111100)
, eller skrevet slik: /22
Broadcastadressene har bare 1’ere i hostdelen:
-Vi ser på de to siste bytene, og setter 1’er i hostdelen:
-Nett 1: 00010011.11111111
-> 19.255
=> Broadcastadressen for nett 1 blir da:158.29.19.255
-Nett 2: 00010111.11111111
-> 23.255
=> Broadcastadressen for nett 2 blir da:158.29.23.255
- -Høyeste IP-adresse er en under broadcastadressen:
- Nett1: 158.29.19.254
Nett2: 158.29.23.254
Laveste IP-adresse er en over nettnummeret:
- Nett1: 158.29.16.01
Nett2: 158.29.20.01
For å kunne få 6 subnett må vi bruke 3 bit til subnett. Hvis vi tillater bruk av «subnet zero» - og «all 1 subnet», ville vi da kunne fått 23= 8 like store subnett. Det er 2 flere subnett enn - det vi trenger. Hvis vi bare hadde brukt 2 bit til subnett, vill vi bare ha fått 22=4 subnett, - som er 2 for lite. Derfor må vi bruke 3 bit.
-Hvis det ikke hadde vært tillatt bruk av «subnet zero» og «all 1 subnet», så ville det kunne - blitt 23-2= 6 subnett. Vi måtte da trekke ifra 2 i antall subnett, fordi da hadde kun nettadressen - uten maskeinfo, blitt brukt for å indentifisere nette. To nett kan jo ikke ha samme - nettadresse, eller samme broadcastadresse. De 2 som må trekkes fra er de hvor - subnettbitene bare er 0’ere, eller bare 1’ere. For å finne nett-adressene til disse 6 nett, ser vi nærmere på de - to siste byte’ene i nettadressen til hovednettet. Det er fordi delet mellom nettdel og hostdel går i den 3.byten. - Ved subnetting vil delet gå i den 4. byten.:
-158.29.16.00 / 21
Fet skrift er bit som er i nettdelen, og blå er de som er i hostdelen
Før subnetting: 00010000.00000000
Biter med rød skrift er nå brukt til subnetting, og går da over fra å være bit i hostdelen til biter i nettdelen.
-Etter subnetting:
-00010000.00000000
-> 158.29.16.00 / 24
00010001.00000000
-> 158.29.17.00 / 24
00010010.00000000
-> 158.29.18.00 / 24
00010011.00000000
-> 158.29.19.00 / 24
00010100.00000000
-> 158.29.20.00 / 24
00010101.00000000
-> 158.29.21.00 / 24
00010110.00000000
-> 158.29.22.00 / 24
00010111.00000000
-> 158.29.23.00 / 24
De 6 subnett kunne i utgangspunktet få hvilken som helst av disse 8 adresser. Det hadde da
- blitt 2 adresser til overs.
- MEN, det er mer oversiktilig å ta de store nettene i mitten av nummer-området, og bruke
- ytterkanten til mindre nett. Slik sett bruker vi ikke
- 158.29.16.00 / 24
eller 158.29.23.00 / 24
til de store subnettene.
Slik som diskutert fram i forrige oppgave, blir masken /24
. Skrevet på den andre måten blir det: 255.255.255.00
Da kunne vi laget 2 av nettene litt større. Ved å velge de to nettene mitt i nummerområdet, ville det blitt:
-00010000.00000000
-> 158.29.16.00 / 24
00010001.00000000
-> 158.29.17.00 / 24
00010010.00000000
-> 158.29.18.00 / 23
00010100.00000000
-> 158.29.20.00 / 23
00010110.00000000
-> 158.29.22.00 / 24
00010111.00000000
-> 158.29.23.00 / 24
En bedrift har sitt hovedkontor i Halden. Bedriften skal opprette et nytt - kontor i Fredrikstad. Hovedkontoret i Halden har et lokalnett som er delt i to - subnett, Ethernet 1 og Ethernet 2, koblet sammen med en ruter (Ruter 1). - Bedriften er koblet til Internet via den samme ruteren. Kontoret i Fredrikstad - skal tilknyttes hovedkontoret via en punkt-til-punkt forbindelse. Da dette - skjer, vil punkt A, på Ruter 1, kobles til punkt B. Se på figuren under.
-La oss først se på kontoret i Halden. IP-nummeret de fikk på sitt nett var - 139.26.154.00/24. Dette har bedriften delt opp i subnett. Adressemasken på - subnettene (Ethernet 1 og Ethernet 2) er 255.255.255.224. Nettadressen på - Ethernet 1 er 139.26.154.64. og på Ethernet 2 er 139.26.154.32.
-Masken på Ethernet1 er: 255.255.255.224 (siste byte: -> .11100000 = .224) - Det er da 5 bit i hostdelen på nettene. Når 00000 og 11111 ikke kan brukes til en host, - blir det 25-2=30 host. Et hostnummer går til ruteren. Da blir det 29 PC'er igjen på - Ethernet1.
-PC1 ligger på Ethernet1, som har nettnummer 139.26.154.64 / 27, - 64=01000000 og masken /27 = 255.255.255.224 -> 224=.11100000 - Første nummer: 139.26.154.65, blir ruterens nummer. PC1 kan da få et nummer - imellom 139.26.154.66 og 139.26.154.94 (66= 01000010, - 94= 01011110)
-PC2 ligger på Ethernet2, som har nettnummer 139.26.154.32 / 27, - 32=00100000 og masken /27 = 255.255.255.224. -> 224=.11100000 - Første nummer: 139.26.154.33, blir ruterens nummer. PC1 kan da få et nummer - imellom 139.26.154.34 og 139.26.154.62 (34= 00100010, - 62= 00111110)
-Laveste IP-adresse på Ethernet2 er en over nettadressen: Nettadresse er - 139.26.154.32 (32= 00100000) Dvs laveste IP-adresse på en host på Ethernet2 blir: - 139.26.154.33 (33= 00100001)
-Høyeste IP- adresse på Ethernet2 er en under broadcastadressen, som er : - 139.26.154.63 (63= 00111111) Dvs høyeste IP-adresse på en host på Ethernet2 blir: - 139.26.154.62 (62= 00111110)
-Ethernet1, har nettnummer 139.26.154.64 /27, 64=01000000 - med maske 255.255.255.124. 224=.11100000 - Broadcastadressen har bare 1’ere i host-delen av adressen. Masken viser at det er 5 bit i - hostdelen av adressen. Broadcastadressen blir da: - 139.26.154.95 => 01011111 =95
- - -Punkt-til-punkt forbindelsen har bare to tilknytninger, en i hver ende. Vi trenger da et - nett som bare har mulighet til to tilkoblinger. Antall bit i host-delen er da to. - Nettnummeret kan tas ifra en av "ytterkantene" av adresseområdet, da de ikke er - brukt fra før. Det blir altså der hvor det er 0.00 eller 1.11 fra de andre subnettene. Vi - velger f.eks. 0.00-delen. Det gir
-VPN står for Virtual Private Network. VPN lager en sikker(kryptert) kanal gjennom et usikret - internet. Du tilknytter deg til en VPN server, som er lokalisert i ditt private nettverk, eller på - intranettet på f.eks jobben/skolen. Du har også nødvendig programvare på din «host». All din - kommunikasjon på internet går via denne VPN serveren, slik at det ser ut som om du er innenfor - dette private nettverket, eller intranett. Du får da også tilgang til tjenester/dokumenter som bare - tilbys på dette intranettet.
-Vi kan fritt velge hvilke nettadresser vi gir Ethernet3 av de adressene vi har igjen. - 139.26.154.00/24 er den originale nettadressen, som kan kalles hovednettet. Ethernet 1 - og Ethernet2 er subnett av det hovednettet, hvor det er brukt 3 bit til subnett. - Hvis Løsning 1: - alle subnett skal være like store, har vi disse valg:
-139.26.154.00 / 27
(siste to byte: 10011010 . 00000000
= 154.00) (subnet zero)139.26.154.32 / 27
(siste to byte: 10011010 . 00100000
= 154.32) (Ethernet 2)139.26.154.64 / 27
(siste to byte: 10011010 . 01000000
= 154.64) (Ethernet 1)139.26.154.96 / 27
(siste to byte: 10011010 . 01100000
= 154.96)139.26.154.128 / 27
(siste to byte: 10011010 . 10000000
= 154.128)139.26.154.160 / 27
(siste to byte: 10011010 . 10100000
= 154.160)139.26.154.192 / 27
(siste to byte: 10011010 . 11000000
= 154.192)139.26.154.224 / 27
(siste to byte: 10011010 . 11100000
= 154.224) (all 1 subnet)139.26.154.64 / 27
Ethernet2 nettnummer: 139.26.154.32 / 27
Her kan vi velge en av 6 nettadresser til Ethernet 3.
- 139.26.154.00 / 27
, eller 139.26.154.96 / 27
eller 139.26.154.128 / 27
...
- 139.26.154.224 / 27
Med denne løsningen vil firmaet meget enkelt kunne utvide med flere kontorer, og alle - kontorer får samme størrelse på sitt nett. Hvis firmaet ikke ser for seg flere kontorer, - og ønsker å bruke mest mulig av de tildelte IP-numrene, kan man vurdere et større nett - for kontoret i Fredrikstad:
-Løsning 2:
-139.26.154.128 / 25
(Masken er da 255.255.255.128
, som er et større nett)139.26.154.128 / 25
(siste to byte: 10011010 . 10000000
= 154.128)Som angitt i oppgaven over: - Løsning 1 gir: - Nettmasken til Ethernet3 er den samme som på Ethernet1 og Ethernet2: - 255.255.255.224. (224=.11100000)
-Løsning 2 gir 255.255.255.128
(128=.10000000)
Hvis du har et stort nettverk vil det ta enormt mye tid å skrive inn IP adressen på hver host som er - på nettverket. Heldigvis kan man bruke DHCP i stedet. En maskin på nettverket kan settes opp som en DHCP - server. En DHCP server gir hver host på nettverket, som spør om det, IP adresse, subnett maske og default - gateway adresse. DHCP står for Dynamic Host Configuration Protocol, og den brukes for å dele ut IPadresse til en maskin som forespør om en IP-adresse. - Det finnes en DHCP server som dekker et eller flere subnett. Denne har et sett med IPadresser som den kan dele ut fra, til maskiner som forespør om en IP-adresse. - DHCP bruker UDP (User Datagram Protocol) protokollen. DHCP serveren bruker port nummer 68.DHCP klienten bruker port nummer 67. - Et eksempel på DHCP:
-- En maskin som blir slått på, og som er satt til å forespørre en DHCP-server om sin - IP-adresse, sender en DHCP DISCOVER pakke til DHCP-serveren. Når denne - kommer fram til DHCP-serveren, retunerer den IP-adresse i en DHCP-OFFER - pakke. Hvis maskinen som mottar denne, godtar dette nummer, sender den en - DHCPREQUEST pakke tilbake til DHCP serveren. DHCP-serveren sender tilbake - en DHCPACK pakke. Samtidig settes en timer i gang. Enhver maskin må - ”oppdatere” sin IP-adresse jevnlig, ved å sende en melding til DHCP-serveren. Hvis - DHCP-serveren ikke mottar en slik oppdatering innen timeren er gått ut, vil den - frigjøre IP-adressen, som da kan deles ut til en annen maskin som forespør om en - IP-adresse. -
- - -MAC adressen kalles også ”den fysiske adressen” eller ”hardware adressen”. Det er - MAC adressen som en PC bruker for å bestemme om en datapakke skal tas imot. - MAC adressen består av 48 bit, dvs 6 byte. De 3 første byte sier hvilken produsent av - nettkortet det er. De 3 siste byte bestemmer produsenten selv. Det finnes ikke to - nettkort som har den samme fysiske adressen.
-Det finnes flere typer MAC adresser.
-Den individuelle, som er individuell for alle nettverkskort. Det finnes ingen - nettverkskort som har samme MAC adresse. De første 24 bit bestemmer - hvilken produsent det er. De neste 24 bit bestemmer produsenten selv. Denne - type MAC adresse kalles også unicast (kun for dette nettkort) og er «globally - unique»
-En annen type MAC adresse kan programmeres på kortet. Den er «locally administered».
-Det finnes også en multicast MAC adresse, som også kan programmeres. Det - er en MAC adresse som brukes når mange host i et nett skal ta imot - datapakken
-Det er to bit i første byte som bestemmer hvilken type MAC adressen det er. En bit - indikerer om det er en «globally unique» adresse eller «locally administrert» adresse. - En annen bit indikerer om det er en unicast adresse
-En MAC adresse virker på lag 2 i TCP/IP modellen. Det er ikke mulig å finne ut hvor en host - med en bestem MAC adresse befinner seg på internet, før datapakken er på dette samme - lokalnettet hvor denne MAC adressen befinner seg. En IPv4 adresse virker på lag 3 i TCP/IP modellen. Det er et system på disse - adressene slik at det er mulig å finne ut hvor en IPv4 adressen befinner seg på - internet. En MAC adresse består av 6 byte, slik som forklart i oppgave nr.1. En IPv4 - adresse består av totalt 4 byte. Adressen består av en nettdel og en hostdel. En host - vil få en ny IPv4 adresse når den blir koblet til et annet nett (LAN). Alle host på et - LAN har samme nettdel av adressen.
- - -Adressefeltet er mye større i IPv6. Det er det 128 bit, mens i IPv4 er det 32 bit. Det er - også flere adressetyper i IPv6. I tillegg til unicast adresse (en enkelt enhet), slik som også - IPv4 har, har IPv6 anycast og multicast adresse. Anycast tas imot av den første, den - nærmeste, av et sett host’s som utgjør anycast adressen. En multicast adresse blir sendt til - alle som er en del av multicast adressen. Det kan sammenlignes med broadcast adressen i - IPv4.
-IPv6 hodet har sløyfet en del felt, som gjør at prosesseringen på info i IPv6 hodet går - raskere. Header Checksum er fjernet, som gjør at lag3-utstyr slipper å foreta beregningen - på header checksum. IPv6 har sløyfet info om lengden på hodet, og muligheten av - ”option” i hodet. I stedet legger IPv6 opp til å bruke flere etterfølgende hoder. Denne - metode gjør prosesseringen på et standardhode raskere.
-Hvis det er et gammelt IPv4 nett, hvor routerne ikke har mulighet for å håndtere både IPv6 - og IPv4, kan det brukes ”tunneling” for å sende en IPv6 pakke igjennom et IPv4 nettverk. - Hele IPv6 pakka pakkes inn i datadelen av IPv4 pakka. - Hvis det brukes routere som både kan ta IPv4 og IPv6, kan det brukes «dual-stack». Da blir - IPv6 pakka sent igjennom nettet som en IPv6 pakke.
- - -En bit har en, av to mulige tilstander: 0 eller 1. - En byte består av 8 bit. En byte kan da ha en av 28=256 mulige «verdier», eller forskjellige kombinasjoner av 0 og 1. - En datapakke består av mange byte som kommer rett etter hverandre.
-Autonomous System er en del av internet, som består av flere routere. Internet er delt - opp i mange AS. Hver av disse AS indentifiseres med et nummer; AS <nr>. Routerne innen et - AS utveksler info, bla. routinginfo seg i mellom via bestemte protokoller. En stor bedrift, - eller institusjon, kan ha sitt eget AS <nr>.
-Internet er delt inn i flere AS bla. fordi det er for mange routere i hele internet, til at alle kan - utveksle info seg i mellom. Det er derfor hensiktsmessig å la et begrenset antall routere, som - i et AS, utveksle info seg i mellom. Routerne som er ”i kanten” på et slik AS, kalles en - gateway router. Gateway routere kommuniserer med en tilsvarende gateway router i et annet - AS. Den vanlige routing protokollen mellom AS er BGP.
-Et AS kan i prinsippet velge hvilken routing algoritme, og dermed routing protokoll som skal - brukes i sitt AS. Vanlige routing protokoller innen et AS er RIP eller OSPF.
-En ruting algoritme’s (eng: routing algorithm) hovedoppgave er å finne den beste veien - mellom to host i nettverket. Den ”beste” veien kan også kalles den ”billigste” veien, eller - veien med ”minst kostnad” (least cost). Det er flere faktorer som avgjør en ”kostnad”, ikke - bare penger.
-Det er to hovedprinsipper for rutings algoritmer:
-Her vet rutings algoritmen alle kostnader på alle forbindelser i nettet, før den starter - på beregningen. En slik algoritme kalles også en Link-State (LS) algoritme. En mye - brukt LS algoritme er Dijkstra’s algoritme. – En slik algoritme må altså innhente alle - kostnader i nettet, på forhånd. Blir det forandring på kostnaden på en forbindelse, må - info om hele nettet ut på nytt til alle som skal foreta denne algoritmen.
-Her vet rutings algoritmen kun kostnadene på sine egne forbindelser, når den starter. - En slik algoritme kalles også en Distance-Vector (DV) algoritme. Info sendes - etterhvert ut til de nærliggende routerne, som bruker denne info for den videre - beregning. Slik sprer routings info seg gradvis utover i nettverket, helt til alle har fått - all info som er nødvendig for å vite kostnadene i hele nettet.
-Routing Information Protocol (RIP) bruker en DVrutings algoritme, og er mest utbredt, da - den brukes i de nederste lag i internet hierakiet. Her er det flest routere
-Open Shortest Path First (OSPF) bruker en LS rutings algoritme. De brukes oftest i routere i - ”backbone” nettverk, som forbinder forskjellige områder innen internet (ikke AS, men - mindre hoveddeler)
-Border Gateway Protocol (BGP) er den mest komplekse, og brukes mellom AS.
-Intra-AS routing protokoll er routing protokoll som brukes innen et AS. Routings - protokollene RIP eller OSPF er vanlige intra-AS routings protokoller. Inter-AS routing protokoll er routing - protokoll som brukes mellom forskjellige AS. Routing protokollen BGP er en vanlig inter-AS routing protokoll.
-Kryptering foregår ved at ved sendersiden sendes «klartekst» inn i en krypterings algoritme, - som bruker info fra en «nøkkel» til å lage den krypterte datastrømmen (ciphertext)
-Denne krypterte datastrømmen er umulig å dekode tilbake til klartekst uten bruk av riktig - nøkkel og dekodings algoritme. Det brukes to nøkler, en offentlig nøkkel og en privat nøkkel. Den offentlige brukes til - krypteringen og den private brukes til å dekryptere. Den offentlige nøkkelen kan være kjent - av alle, men den private nøkkelen må være hemmelig. Disse to nøklene hører sammen.
- - -Effektiviteten er gitt av forholdet mellom tiden som brukes til å sende data, og tiden til neste - pakke (eller serie med pakker) kan sendes. Hvis vi setter tiden for å sende en pakke til ttrans og - tiden signalet bruker for å komme fra sender (S) til mottager (M) og tilbake igjen; RTT. - RTT=Round Trip Time. L=pakkestørrelsen og R=bithastigheten, blir U ved stopp-og-vent - overføring (idle RQ):
-Ved kontinuerlig dataoverføring, med et sendevindu på K, må uttrykket multipliseres med K. - Effektiviteten U kan ikke være større enn 1,0, så hvis multiplikasjonen med K gir en U større - enn 1,0, blir U=1,0
- -Hva er effektiviteten på en forbindelse til universitetet i Sofia? Anta at du har en - kontinuerlig overføring, med et sendevindu på 16 pakker. Pakkestørrelsen er på - 1024 byte, og datahastigheten ut av din PC er 50 Mbit/s. Forsinkelsen til - universitetet i Sofia kan du lese ut av en ping til maskinen:
-Pinging www.uni-sofia.bg [62.44.96.22] with 32 bytes of data:
Reply from 62.44.96.22: bytes=32 time=52ms TTL=51
Reply from 62.44.96.22: bytes=32 time=52ms TTL=51
Reply from 62.44.96.22: bytes=32 time=52ms TTL=51
Reply from 62.44.96.22: bytes=32 time=52ms TTL=51
Ping statistics for 62.44.96.22:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 52ms, Maximum = 52ms, Average = 52ms
Vi setter inn i formelen:
-Den effektive datahastigheten er effektiviteten multiplisert med (den fysiske) - datahastigheten. Det bli:
-Datahastigheten blir Uˑ50 Mbit/s = 0,05ˑ50 Mbit/s = \underline{\underline{2,5 Mbit/s}}
-Du skal finne ut hvor mye en BER (Bit Error Rate) påvirker effektiviteten. - Pakkestørrelsen er på 2048 byte og datahastigheten er på 100 Mbit/s (100*106 - bit/s)
-Forsinkelsen til NTNU kan du lese ut av en ping:
-Pinging lvs56vip12.it.ntnu.no [129.241.56.202] with 32 bytes of data:
Reply from 129.241.56.202: bytes=32 time=9ms TTL=56
Reply from 129.241.56.202: bytes=32 time=9ms TTL=56
Reply from 129.241.56.202: bytes=32 time=10ms TTL=56
Reply from 129.241.56.202: bytes=32 time=9ms TTL=56
Ping statistics for 129.241.56.202:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 9ms, Maximum = 10ms, Average = 9ms
Vi setter inn i formelen:
-Vi må første regne ut sannsynligheten for feil i en pakke, Pf:
-P_f = BER \cdot (antall\ bit\ i\ pakke) = BER \cdot L = 2 \cdot 10^{-5} \cdot (2048 \cdot 8) = 0,328
-Dette brukes i den nye formelen for effektiviteten U, hvor Pf inngår:
-Flytkontroll er en metode for å kontrollere og styre flyten av data mellom sender - og mottager. Uten denne flytkontrollen ville mottageren kunne kommet i den - situasjonen at den ikke klarte å ta unna all data som kom fra senderen. Senderen - kunne da ha sent data for fort for mottageren, og data kunne blitt tapt. - Mottageren har et mottagerbuffer, der data legger seg før de sendes opp til applikasjonen. - Det bufferet må være der fordi vi kan ikke anta at applikasjonen er klar til ta imot data da - data faktisk kommer. Applikasjonen kan være opptatt med andre oppgaver da data kommer. Så - lenge dette mottagerbufferet har plass nok, kan sender bare sende data til mottager. - Flytkontroll oppnås ved at mottageren sender info om hvor mye ledig plass den - har i mottagerbufferet, tilbake til senderen. Denne info legger seg i TCP hodet, i - ”Receive window”, og sendes tilbake i en ACK pakke. Det kan også legges i en - datapakke som sendes fra mottager til sender, altså hvis det sendes data begge - veier samtidig.
-Køkontroll er en metode for styre kø. Kø kan oppstå i et nettverk ved at flere - forbindelser går igjennom en nettverksenhet, f.eks en ruter. Summen av - trafikken for hver forbindelse kan bli for stor for den ruteren, og da vil pakker bli - tapt. TCP må ha mekanismer som vil kunne justere trafikken på sin forbindelse, - slik at alle pakker slipper igjennom.
-Nå har ikke nettverksenhetene i ”vanlig” Internet, f.eks ruterne, mulighet til å gi - beskjed om kø hos seg. Hadde den hatt den muligheten, kunne den ha gitt - beskjed om køtilstanden tilbake til TCP forbindelsene. TCP må bruke andre - midler for å finne ut av køtilstanden, og justere trafikken i henhold til den
-TCP starter forsiktig ved å bruke ”slow-start”. Den begynner ved å sende kun en - pakke. Neste pakke sendes først etter at ACK har kommet. Da vil den øke - vindustørrelsen til 2. For hver ACK legger den på en pakke i vinduet. Det vil - medføre at vindusstørrelsen dobbles for hver gang (hver RTT). Slik fortsetter - den inntil den oppdager at pakker blir borte (ved at timeout slår til). Da justerer - den vindusstørrelsen tilbake til 1 pakke. (En pakke er MSS stor). Samtidig har - den notert hva vindusstørrelsen var da timeout slo til. ”Threshold” settes til - halvparten av den verdien.
-Nå vil den kjøre slow-start igjen, men den vil doble vindusstørrelsen kun inntil den har kommet til - ”Threshold”. Det var jo den vindusstørrelsen hvor det gikk bra forrige gang. Ved neste dobling ble det - jo pakketap.
-Når vindusstørrelsen har nådd ”Threshold” verdien, går den inn i ”congestion avoidance” tilstand, - hvor økning av vindusstørrelsen skjer mye mer forsiktig. I stedet for dobling, øker den med kun 1 for - hver RTT. Slik øker den inntil det blir tap av pakker igjen.
-Tap av pakker oppdages enten ved at timeout slår til, eller at det har kommet 3 duplikate ACK. Dvs at - 2 like ACK har kommet 3 ganger. En duplikat ACK betyr at pakken kom riktig fram på andre forsøk. Køen er - da ikke så stor.Hvis timeout slår til, betyr det at ingen pakker har kommet fram. Da er køen stor.
-Hvis tap oppdages ved at 3 duplikate ACK har kommer, går den inn i ”Fast recovery” tilstand. Det vil - si at vindusstørrelsen går tilbake til halvparten av hva den var da tap skjedde, og den går inn i - ”congestion avoidance” tilstand. Dvs. pakkestørrelsen øker kun med 1 for hver RTT. Denne økningen fortsetter - inntil det blir tap igjen.
-Hvis tap oppdages ved at timeout slår til, går vindusstørrelsen tilbake til slow start tilstand. - Vindusstørrelsen går da tilbake til 1.
-For hver gang det blir duplikat ACK (to like ACK etter hverandre), øker duplikat ACK telleren.
- - -UDP står for User Datagram Protocol og er en ”connectionless” protokoll. Det vil si at - forbindelsen ikke blir satt opp først. Det er data i første pakke. UDP er en usikker protokoll - da den ikke gir noen respons tilbake om pakka har kommet fram, og veien som den tar kan - være forskjellig for hver pakke som går. UDP inneholder lite ”overhead”, og det går da - raskere å sende data med UDP enn TCP.
-TCP står for Transmission Control Protocol og er en ”connected oriented” protokoll. Det vil - si at forbindelsen blir satt opp før data sendes. Alle pakkene som sendes i en melding følger - samme veien. Pakkene kommer også fram i riktig rekkefølge og det er mulighet for - retransmisjon ved feil. TCP-hodet inneholder nok info til å styre alt dette. Det blir da - forholdsvis mye ”overhead”, som gjør at det går tregere med TCP enn UDP.
-TCP er egnet der hvor det er viktig at alle pakker kommer riktig fram, selv om det ikke går så - hurtig. F.eks. hvis en webside blir overført, eller i en forbindelse med banken. UDP er egnet - der hvor det ikke er så kritisk hvis en pakke skulle bli borte, men det er viktig at forbindelsen - er rask. F.eks. der hvor lyd og/eller film blir overført.
- -Et UDP hode inneholder kun fra og til- portnummer, lengden på datapakka og sjekksummen for datapakka
- - -Et TCP hode inneholder fra- og tilportnummer. Til-portnummeret er nummeret til den socket som - applikasjonen skal ha data inn på. Fra-portnummeret er nummeret til den socket som applikasjonen - forventer et svar på.
- -Nummeret på pakka. Dette nummer øker for hver pakke, slik at mottageren kan finne ut av rekkefølgen på pakkene. (Egentlig er det bytenummer, slik at tallet øker ikke med en, men med hvor mange byte det var i pakka)
-Hovedhensikten med DNS er å oversette et hostnavn til en IP adresse og vise versa. Den motsatte veien, å oversette en IP adresse til et domain navn, kalles "Reverse DNS".
- - -Datamaskinene må bruke IP adresse for å finne fram til en annen maskin, for - eksempel en web-server eller mail-server. For oss mennesker er det mer naturlig å bruke et navn enn et - nummer. DNS gjør at du kan skrive inn adressen som et ”domain name”, f.eks www.hiof.no, og DNS - finner da IP adressen til denne, som kan være 158.39.162.29.
-DNS står for Domain Name System. DNS består av et hierarkisk system av navnetjenere. En - navnetjener inneholder noen opplysninger som er tilknyttet et maskinnavn på Internet. Primært er det - IP-nummeret som PC’en (brukeren) forespør etter. Hvis den ikke kjenner IP-adressen, videresender - den forespørselen til en root-navnetjener.
-Hvis det brukes «interaktion» metode, vil root-navnetjeneren sende svar tilbake om hvem som er «toplevel-domain» - navnetjener, som da blir spurt.
-Denne gir info tilbake om hvem som er domenets - autoritative navnetjener, som da blir spurt og som svarer med informasjon om den aktuelle IP-adressen. - Den lokale navnetjeneren svarer deretter den spørrende maskinen.
-Hvis det brukes «rekursiv» metode, vil root-navnetjeneren sende forespørselen videre til TLD - navnetjener, som igjen sender forespørselen videre til den autorative navnetjeneren. Svarene går - samme vei tilbake til den første (spørrende) navnetjeneren. Se figur.
-Den første navnetjeneren, som originalt sendte forespørselen, vil kopiere opplysningen om det - maskinnavnet, og la den være hos seg i en viss tid (TTL), i tilfelle det blir en ny forespørsel.
-Etter at den tiden er gått ut, vil opplysningene om den maskinen bli slettet. - DNS kan også benyttes til host aliasing, mail server aliasing og lastdeling mellom flere web-servere.
-En DNS record inneholder fire felt: NAME, VALUE, TYPE, TTL.
-TTL angir hvor lenge navneopplysningene skal leve før den blir fjernet ifra cache.
-NAME og VALUE avhenger av TYPE: (Her er en oversikt over de mest brukte TYPE):
-Dersom TYPE=A (Address) så er NAME=hostnavn og VALUE=ip-adressen (IPv4) for - hostnavnet. Dersom TYPE=AAAA (Address) så er NAME=hostnavn og VALUE=ipadressen - (IPv6) for hostnavnet.
-Dersom TYPE=NS (Name Server) så er NAME=domain, for eksempel hiof.no, mens VALUE er - hostnavnet til en autoritativ DNS server som kan å få tak i ipadressene til hosts i det domainet.
-Dersom TYPE=CNAME (Canonical Name) så vil NAME være et alias navn mens VALUE er det - virkelige hostnavnet.
-Dersom TYPE=MX (Mail eXchange) så vil NAME være et alias navn for mailserver mens - VALUE er det virkelige hostnavnet til mailserveren.
-SMTP (Simple Mail Transfer Protocol) er en gammel protokoll for e-post. Den fungerer mellom mailservere. - RFC 733 for SMTP er fra 1977, men SMTP eksisterte også før det. Den gang ble e-post kun - brukt til å sende tekst, som benyttet ASCII-tegnene for bokstaver og tegn. I ASCII-tabellen ligger - bokstaver, talltegn og andre tegn i den første del av ASCII-tabellen. Dvs at det kun var nødvendig å - sende 7 bit per tegn. I den første del av ASCII-tabellen er den 8.ende bit’en, DB7 = ’0’. Den biten - trengte da ikke å bli sendt. SMTP er basert på 7 bit dataoverføring. Nå er det jo stort sett bare 8 bit - dataoverføring som brukes. Disse må nå først gjøres om til 7 bit, før de kan sendes via SMTP. Dette får man til - ved å bruke MIME. Hadde SMTP vært laget for 8 bit overføring, kunne man i prinsippet sluppet MIME. Det kan man - da si er en svakhet for SMTP. En annen svakhet ved SMTP er at det er relativt enkelt å lage en ”falsk” avsender - for e-post. All info ligger i klartekst.
- - -POP3: Denne protokollen var en av de første som ble brukt. Her ble eposten lastet ned på din PC, - fra epost serveren. Vanligvis ble eposten slettet fra epost-serveren rett etter at den ble lastet - ned til din PC. Når du svarte på en epost (reply) så gjorde du det på din PC, som så lastet - opp denne epost til epost serveren, som så sendte den. – POP3 hadde ikke mulighet til å - organisere epost på epost-serveren, i f.eks mapper. Det ble også et problem hvis du brukte - flere forskjellige PC’er til til epost. POP3 var laget for at du kun brukte en PC til din epost - behandling. For å bruke denne må du ha et program som har mulighet til å bruke POP3, - som må settes opp med en del parametere, som f.eks epost-serverens adresse.
-IMAP: Denne protokollen tok var laget for at du kunne bruke flere forskjellige PC’er til din epostbehandling. - Her kunne all epost organiseres på selve epost-serveren, i f.eks mapper. Det lå - også flere funksjoner inne i denne protokollen. For å bruke denne må du ha et program - som har mulighet til å bruke IMAP, som må settes opp, tilsvarende POP3. (Mer på neste spalte)
-HTTP: Hvis du bare har en web-browser tilgjengelig på din PC, kan du allikevel behandle din - epost på epost-serveren. Du trenger ikke sette opp denne først, det er nok å vite - webadressen. Denne er meget praktisk å bruke hvis du f.eks skal lese og behandle din - epost på en fremmeds PC, f.eks på en internet kafe ol.
- -Dataene blir summer på 16 bits nivå. Overskytende mente blir lagt til, og tilslutt blir svaret - invertert, og lagt i checksumfeltet. Mottageren gjør samme beregning, unntatt den siste - inverteringen. Når så mottagerens svar blir summer med det som er i checksumfeltet, blir - svaret 1
-Vi slår opp i ASCII-tabellen og finner ut bitmønstrene for de tre 16 bits ASCII verdiene - 'A8' , '3F' og 'fa'. Vi summer de to første først, og legger til den siste:
-- | A8 | -=> | -01000001 00111000 | -
+ | -3F | -=> | -00110011 01000110 | -
- | - | - | 01110100 01111110 | -
+ | -FA | -=> | -01100110 01100001 | -
- | - | - | 11011010 11011111 | -
Invertert => 00100101 00100000
som legges i checksumfeltet
Dette datasignalet skal overføres på en kabel. Hva må vi sette som krav til - båndbredde for denne kabelen, når:
- -Vi vet at et slikt datasignal består av en sum av mange sinus-signaler, med forskjellig - frekvens. Hvis vi tar bort alle sinus-signalene med høye frekvenser, og bare sitter igjen - med ett sinus-signal, som er grunnfrekvensen i datasignalet. I figuren under ser du den - grunnfrekvensen tegnet inn i datasignalet:
- -Ut fra dette sinussignalet er det mulig å gjenskape bitmønsteret som sendes. Vi må sette - som krav til båndbredden for kabelen at det sinus-signalet kan overføres. Frekvensen på - dette sinus-signalet er gitt av ”en delt på perioden av signalet”. Perioden er gitt av - avstanden i tid mellom to punkter på kurven som er like. I figuren over er den tiden 2*t. - Det gir en frekvens på:
-Kravet til båndbredde er altså 500 KHz
- -Kravet til båndbredde her er:
-Center frequency er frekvensen (bærebølgen) som brukes til å modulere - datasignalet. Et modulert datasignal har en viss båndbredde. Den bruker en del - av frekvensen rundt bærebølgen. Denne delen kalles channel width. En kanal er - en del av frekvensområdet som brukes til datakommunikasjon. Det - frekvensområdet er rundt bærebølgen som brukes i den kanalen
- - -I et ad-hoc nett vil alle host kunne ta initiativ til å sende til en annen host på adhoc - nettet. I et nett med infrastruktur er det et aksesspunkt (AP) som styrer all - kommunikasjon. En host kan ikke sende før et AP spør den om den har noe å - sende. Både ad-hoc og infrastruktur kan fungere samtidig. Det er akessmetoden som styrer dette.
- - -I WiFi brukes to forskjellige system når det gjelder aksess. Det er PCF (Point - Coordination Function) og DCP (Distributed Coordination Function), I PCF er det - en basestasjon (aksesspunkt=AP) som spør hver enkel host om den har noe å - sende, altså nett med infrastruktur. Ingen host kan aksessere mediet uten å ha blitt - spurt av basestasjnen (AP). - I DCF kan hvilken som helst host i nettet ta initiativ til å sende, altså et ad-hoc - nett. Da brukes CSMA/CA aksess
-Carrier Sense Multiple Access med Collision Avoidance virker slik: En - stasjon som ønsker å sende, må først lytte, for å høre om det er noen - aktivitet på kanalen. Hvis det er aktivitet, må den vente. Så fort aktiviteten - er over, må den vente ytterligere DIFS tid før den starter sending. Hvis noen - andre da har begynt å sende, må den fortsette å vente.
-Når pakken er sent, venter den på ACK pakke fra mottager. Hvis den ikke - kommer innen en viss tid, sender den pakken på nytt. Dette kan gjentas et - visst antall ganger.
-CSMA/CA kan også bruke RTS og CTS. Stasjonen som skal sende, sender - da først en RTS pakke, hvor det er info om hvor lang tid sendingen vil pågå. - Det er for at andre stasjoner ikke skal sende i denne perioden. Den - mottagende stasjon svarer på RTS med en CTS pakke, med samme info om - tid på sendingen. De stasjonene som kun hører mottager, vil dermed også - ikke sende i den perioden. Når sende stasjonen har mottatt CTS, sende den - datapakka
-Nå skal DCF og PCF kunne virke samtidig i et nett. Det løses ved å innføre - bestemte tidsintervall, med forskjellig lengde.. En pågående kommunikasjon gjør - seg ferdig. Neste pakke i kommunikasjonen venter den korteste intervalltiden; - SIFS, før neste pakke sendes. Når kommunikasjonen er ferdig, kan neste begynne - å kommunisere. Da har PCF fortrinn. PCF kan starte sending etter tiden PIFS, - som er litt lenger enn SIFS. Når den kommunikasjonen er ferdig, kan neste DCF - kommunikasjon starte. De må vente DIFS tid, som er litt lenger enn PIFS tiden.
- - -Cyclic Redundancy Check (CRC) er en feilkontroll som brukes for å oppdage - bitfeil i datapakker. CRC utfører en beregning av det som er i datapakka. Resultatet - av denne beregningen legges i gjerne i slutten av datapakka som sendes over, i - CRC feltet (eller FCS feltet). Mottageren utfører tilsvarende beregning, og vil da - kunne oppdage bitfeil i datapakka. CRC bruker et polynom (G) i sin beregning. - Hvis polynomet G består av r+1 bit, legges det til r stk 0’ere i slutten av datapakka. - Denne utvidede datapakka blir «modula 2 dividert» på G. Resten etter denne «divisjonen» - blir lagt inn i CRC feltet. Når så mottager utfører samme «divisjon», på datapakka som - tas imot, vil resten bli null, hvis det ikke er bitfeil... (fortsetter på neste spalte)
-Styrken er at denne type feilkontroll vil oppdage alle typer feil, unntatt der hvor - feilmønsteret (E) i den mottatte pakka er lik polynomet. Hvis f.eks G = 1011, så vil - ikke en pakke som har E=1011 oppdages. Dvs feil i en bit, og neste bit er feilfri og - to neste bit er feil.
-CRC har få svakheter. CRC er ofte implementert i hardware, og det er da ikke - mulig å forandre polynomet. Hvis den implementeres i software, vil den kreve en - del prosessorkraft.
- - -::
(brukes kun en gang, der hvor
- den fjerner mest 0-ere):0:
(en per seksjon)2607:F6D0:0000:005A:0000:0000:0000:07C0
blir 2607:F6D0:0:5A::7C0
255.255.255.255
= 11111111.11111111.11111111.11111111
= /32
255.255.255.128
= 11111111.11111111.11111111.10000000
= /25
Class | -1st Ocet Decimal Range | -1st Ocet High order bits | -Network / Host ID | -Default subnet mask | -Number of networks | -Hosts per network | -
---|---|---|---|---|---|---|
A | -1-126* | -0 | -N.H.H.H | -255.0.0.0 | -126 (27-2) | -16,777,214 (224-2) | -
B | -128-191 | -10 | -N.N.H.H | -255.255.0.0 | -16,382 (214-2) | -65,534 (216-2) | -
C | -192-223 | -110 | -N.N.N.H | -255.255.255.0 | -2,097,150(221-2) | -254 (28-2) | -D | -224-239 | -1110 | -- | Reserved | -for | -Multicasting | - -E | -240-254 | -1111 | -- | Used | -for | -research | - - -
Hovedforskjellen mellom klasse A, B og C er hvor grensen mellom nattdel og hostdel er. Nå ble det
- vanlig å dele et LAN (nett) opp i flere subnett. Da kunne men ikke vite hvor grensen mellom nettdel
- og hostdel gikk, basert på klassen. Det var nettmasken som fortalte hvor grensen mellom nett og
- host gikk. Derfor gikk man mer bort fra klasse-begrepet, og gikk over til CIDR (Classless Inter-Domain
- Routing). Her ble det også innført den andre måten å angi masken på. Rett og slett skrive antall 1’ere
- i masken som et tall. F.eks /24, i stedet for 255.255.255.00
Loopback adresse: 127.0.0.1
vil peke tilbake på «deg selv». Hvis du f.eks har
- både en webbrowser og webserver på samme PC, og ønsker å teste webserveren vha browseren, uten at du har fått
- tildelt en eget IP adresse, kan du bruke loopback adressen.
Private IP adresser er ikke synlige på internet, de er bare synlig på det LAN hvor de brukes.
- Du kan fritt bruke disse på ditt private LAN. Du kan da ha veldig mange host på ditt LAN. For å komme ut på
- internet, fra en slik privat IP adresse, må det brukes en router med NAT (Network Address
- Translation). NAT oversetter fra en privat IP adresse til en IP adresse som er på internet.
- Private IP Adresser: Klasse A: 10.0.0.0
- 10.255.255.255
,
- B: 172.16.0.0
- 172.31.255.255
, C: 192.168.0.0
- 192.168.255.255
- | IPv4 | -IPv6 | -
---|---|---|
Adresse lengde | -32 bits | -128 bits | -
Header lengde | -20 bytes | -40 bytes | -
Bytes for hver adresse i header | -4 bytes | -16 bytes | -
Adresse presentasjon | -Desimal | -Hexadesimal | -
Internet adresse klasser | -A, B, C, D, E | -Ingen ekvivalent, men har tre typer. (uni, multi, anycast) | -
Multicast adresse | -224.0.0.0/4 |
- FF00::/8 | -
Broadcast adresser | -Se IPv4 info | -Brukes ikke | -
Uspesifisert adresse | -0.0.0.0 |
- :: |
-
Loopback adresse | -127.0.0.1 |
- ::1 |
-
Public IPer | -Se IPv4 info |
- Global unicast adresser |
-
Private IP adresser | -Se IPv4 info |
- Site-local: FEC0::/10 ,
- unique local FC00::/7 |
-
Autoconfigurasjons adresser | -169.254.0.0/16 |
- Link-local FE80::/64 |
-
\tau = \dfrac{0,44}{5 \cdot 10^9[s]} = spektralbåndbredde \cdot dispersjon \cdot kabellengde
-\tau = 1,5 [nm] \cdot 2,7[\dfrac{ps}{nm \cdot km}] \cdot x [km]
-\tau = 4,05 [nm] \cdot 10^{-12} \cdot x [km]
-\dfrac{\tau}{4,05 [nm] \cdot 10^{-12}} = \dfrac{4,05 [nm] \cdot 10^{-12}}{4,05 [nm] \cdot 10^{-12}} \cdot x
-x = \dfrac{\tau}{4,05 [nm] \cdot 10^{-12}}
-\underline{\underline{x = 21,7 [km]}}
-Man finner dispersjonen i dataark
Dette polynomet brukes til å regne ut hva som skal være i FCS i datapakka. Se - ellers beskrivelsen i oppgave 1.
- - -Antall bit i FCS bestemmes av den høyeste potensen i polynoment. Her er det 8, dvs det er 8 bit FCS
- - -Det finnes to hovedtyper fiber kabel: Multimodus (MM) og Singlemodus (SM). MM - fiber finnes også i to typer, det er Gradert indeks (GI) og Step indeks (SI) fiber. Du finner - ofte ikke info i databladet om MM-fiberen er SI eller GI. Det er fordi det (nesten) bare - produseres GI fiber, av disse MM fibrene. GI fiber har nemlig mye større båndbredde enn - en SI fiber. Det er fordi dispersjonen er litt mindre i en GI fiber i forhold til en SI fiber
-Størrelsen på kjernediameteren, altså kjernen i fiberkabelen, der lyset går, bestemmer om - det er en SM fiber eller MM fiber. Kjernediameteren må være liten, i størrelsesorden - 9 µm, for at den skal kunne være SM. I en SM fiber er det bare plass til en lysstråle, noe - som medfører at det ikke er modedispersjon i en SM fiber. Det er kun kromatisk - dispersjon, som i hovedsak skyldes at brytningsindeksen er litt forskjellig for de - forskjellige bølgelengdene på lyset. Lyshastigheten er gitt av brytningsindeksen, og da vil - lyshastigheten være litt forskjellig for de forskjellige bølgelengdene.
-I en MM fiber er det dispersjon pga de forskjellige lysstrålene går forskjellig - veistrekning. Det kalles modedispersjon. De som går lengst vei, kommer senest fram. I en - GI fiber er lyshastigheten på de lysstrålene som går lengst vei litt større, som medfører at - dispersjonen er litt mindre enn i en SI fiber, hvor lyshastigheten er lik for alle lysstrålene. - En fiberkabel har også en Numerisk Aperture (NA), som er sinus til den største vinkelen - lyset inn på kjernen kan ha, for at lyset skal kunne sendes videre i kjernen. Dvs at det blir - totalrefleksjon mellom kjerne og kappe.
- - -Båndbredden B på en 5 km fiberforbindelsen, ved bruk av en fiber med 10 - MHz*km, er: B = 10/5 MHz = 2 MHz
-Man bør velge en fiber med høyest mulig NA hvis man ønsker minst mulig innkoblingstap - i fiberen. NA er definert som sinus til den største vinkelen en lysstråle kan ha inn på - fiberen, for å bli ført videre i kjernen. Jo større NA, jo større vinkel.
-Hvis man bruker en LED som lyskilde, stråler den ut lys i alle retninger. Hvor mye av dette - som faktisk blir koblet inn i fiberen, er avhengig av (bl.a.) NA. Ved bruk av fiber med høy - NA vil også de lysstålene med stor vinkel bli koblet inn i fiberen. Med bruk av lav NA ville - disse lysstrålene bli tapt. Dette regnes da med i innkoblingstapet, slik at innkoblingstapet - blir da større.
- - -Man bør velge en fiber med lavest mulig NA, hvis man ønsker fiber med høyest mulig - båndbredde. - Båndbredden på en multimodus fiber er gitt av modedispersjonen. Modedispersjonen - skyldes at de forskjellige lysstrålene (modene) går forskjellig vei (og lengde) i fiberen, og - kommer dermed fram til forskjellige tidspunkt. Maksimal forskjell i lengde er det mellom - den strålen som går rett fram, og den som har maksimal vinkel i forhold til retningen fram i - fiberen. Den prosentvise forskjellen i lengde er større i en fiber med høy NA, enn en med - lav NA. Jo større prosentvis forskjell det er i lengde, desto større tidsforskjell, dvs større - modedispersjon, som igjen gir mindre båndbredde.
- - -Båndbredden B på en 5 km fiberforbindelsen, ved bruk av en fiber med 10 MHz*km, er: - B = 10/5 MHz
- - -Forholdet mellom dispersjon \tau, og båndbredde B er gitt av formelen: B = 0,44/\tau
-Ved en dispersjon på 10[ns] (= 10 \cdot 10^{-9}[s] = 10^{-8}[s], får vi en båndbredde på:
-B=0,44/10^{-8} = 0,44 \cdot 10^8 Hz = 44 MHz
-Båndbredden er gitt av den kromatiske dispersjonen i SM-fiberen, lengden på fiberen og - den spektrale båndbredde på lyskilden:
-B = 0,44/\tau = 0,44/ (35 \cdot 2 \cdot 5)ps = 0,44/0,35 ns = 1,26 GHz
- - -Systemmarginen kan man finne ved å sette opp effektbudsjettet.
-Du skal dimensjonere et fiberoptisk anlegg. Fiberkabel: 50/125 µm, med 50MHz*km båndbredde. - Dempningen i 1.vindu 3,0 dB/km. Fiberkabelen kabelen skjøtes per 1 km (fordi den levers i lengder på 1 km). - Skjøtetapet: 0,2 dB. Fra senderen og mottageren går det en fiberstump til en kontakt. En kontakt i hver ende. - Kontaktapet på 1,0 dB. Kontaktene kan bli "møkkete". - Krav: anlegget skal kunne akseptere et tap på opp til - 3,0 dB per kontakt. Systemarginen bør være 5 dB.
- -Dette kan finnes ved å sette opp effektbudsjet. - I oppsettet er det ikke gitt noe data for innkoblingstapet ved mottageren. Den kan - settes til 1,0 dB. - Vi får da:
-Mottageren må ha en følsomhet på bedre enn –61,8 dBm.
- -Hvis følsomheten til mottageren hadde vært på –50,0 dBm kunne vi hatt en fiberkabel - på maks X km:
-Ved en lengde på 6,25 km får vi
-Lengden på fiberkabelen kan være 6,25 km
- -Da ikke annet er oppgitt er maksimal datahastighet lik det dobbelte av båndbredden. - Vi tar utgangspunkt i fiberkabelens data på 50 MHz*km :
-Da fiberkabelen er 10Km blir maks datahastighet D, lik: - D = 2*B = (2*50 / 10) Mbit/s = 10 Mbit/s
-Da fiberkabelen er 6,25Km blir maks datahastighet D, lik: - D = 2*B = (2*50 / 6,25) Mbit/s = 16 Mbit/s
- -10^n | -Prefiks | -Symbol | -Navn | -- |
---|---|---|---|---|
10^{15} | -peta | -P | -billiard | -1 000 000 000 000 000 |
-
10^{12} | -tera | -T | -billion | -1 000 000 000 000 |
-
10^{9} | -giga | -G | -milliard | -1 000 000 000 |
-
10^{6} | -mega | -M | -million | -1 000 000 |
-
10^{3} | -kilo | -k | -tusen | -1 000 |
-
10^{2} | -hekto | -h | -hundre | -100 |
-
10^{1} | -deka | -da | -ti | -10 |
-
10^{-1} | -desi | -d | -tidel | -0,1 |
-
10^{-2} | -centi | -c | -hundredel | -0,01 |
-
10^{-3} | -milli | -m | -tusendel | -0,001 |
-
10^{-6} | -mikro | -\mu | -milliondel | -0,000 001 |
-
10^{-9} | -nano | -n | -milliarddel | -0,000 000 001 |
-
10^{-12} | -pico | -p | -billionddel | -0,000 000 000 001 |
-
- Lorem ipsum dolor sit amet consectetur adipisicing elit. Asperiores - dolore, dicta iste dolorum nihil ullam dolor, fugit optio - reprehenderit, ab nisi odio expedita libero sequi illo officia vero! - Earum, omnis. -
- -- Lorem ipsum dolor sit amet consectetur adipisicing elit. Asperiores - dolore, dicta iste dolorum nihil ullam dolor, fugit optio - reprehenderit, ab nisi odio expedita libero sequi illo officia vero! - Earum, omnis. -
- -- Lorem ipsum dolor sit amet consectetur adipisicing elit. Asperiores - dolore, dicta iste dolorum nihil ullam dolor, fugit optio - reprehenderit, ab nisi odio expedita libero sequi illo officia vero! - Earum, omnis. -
- -- Lorem ipsum dolor sit amet consectetur adipisicing elit. Asperiores - dolore, dicta iste dolorum nihil ullam dolor, fugit optio - reprehenderit, ab nisi odio expedita libero sequi illo officia vero! - Earum, omnis. -
- -- Lorem ipsum dolor sit amet consectetur adipisicing elit. Asperiores - dolore, dicta iste dolorum nihil ullam dolor, fugit optio - reprehenderit, ab nisi odio expedita libero sequi illo officia vero! - Earum, omnis. -
- -Goes up to 10
- -Lorem ipsum dolor sit amet
- -Lorem ipsum dolor sit amet
- -Lorem ipsum dolor sit amet
- -Lorem ipsum dolor sit amet
- -Lorem ipsum dolor sit amet
- -Lorem ipsum dolor sit amet
- -Lorem ipsum dolor sit amet
-Lorem ipsum dolor sit amet
-Lorem ipsum dolor sit amet
-Lorem ipsum dolor sit amet
- --Usage: tr [OPTION]... SET1 [SET2] -Translate, squeeze, and/or delete characters from standard input, -writing to standard output. - - -c, -C, --complement use the complement of SET1 - -d, --delete delete characters in SET1, do not translate - -s, --squeeze-repeats replace each sequence of a repeated character - that is listed in the last specified SET, - with a single occurrence of that character - -t, --truncate-set1 first truncate SET1 to length of SET2 - --help display this help and exit - --version output version information and exit - -SETs are specified as strings of characters. Most represent themselves. -Interpreted sequences are: - - \NNN character with octal value NNN (1 to 3 octal digits) - \\ backslash -... -- -
Lorem Hello World
ipsum
- | Ordnet utvalg | -Uordnet utvalg | -
---|---|---|
Med tilbakelegging | -
- n^t - |
-
- - \dfrac{(n+k-1)!}{(n-1)!k!} - - |
-
Uten tilbakeleggning | -
- - \underbrace{P(n,k) = \dfrac{n!}{(n-k)!}}_\text{utvalg til - styre} - - |
-
- - \underbrace{\binom{n}{t} = C(n,k) = - \dfrac{n!}{(n-k)!k!}}_\text{lotto, komite} - - |
-
- Lag en «egen»XOR port med AND og OR porter. Bruk Ladder (LD) - eller funksjonsblokker (FBD) for å løse oppgaven. Programmer - løsningen i Codesys med et egnet HMI. -
- -- Lag et FBD-program i Codesys med et HMI for et enkelt lyskryss - som følger tidspunkter gitt nedenfor. Løs først nord-syd - NS-retningen. Bruk en bryter (start/stopp) for å starte stoppe - lyskrysset. -
-opg1: Med ladder
- -opg1: Med FBD
- -opg1: HMI for alle
- -opg1: Med strukturert tekst
- -- Test at det NS-retningen virker. Legg nå til øst-vest - ØV-retningen. - Trafikklyset skal skifte på følgende vis: -
- -Tidsangivelse
-NS-retningen
-ØV-retningen
-HMI
- - - -- En hermetikkfabrikk har en produksjonslinje for fiskeboller. Et - transportbånd frakter boksene som produseres til et pakkeanlegg. - En fotocelle som er montert ved transportbåndet registrerer hver - boks som passerer. Systemet er konstruert slik at når en boks - passerer fotocellen (bryter lyset), så gir den logisk 1 (sann). - Når lyset ikke er brutt gir den logisk 0 (falsk). Produserte - bokser samles opp i enden av transportbåndet, og når 5 bokser er - produsert skal de skyves ved hjelp av et stempel inn i esker. - Stempelet skyver boksene når det får logisk 1 (sann) som en kort - puls fra logisk 0 til 1 og tilbake til 0 igjen. -
-
- I tillegg benyttes en startbryter som gir logisk 1 (sann) når
- den er trykket. Den returnerer til logisk 0 (falsk) når den
- slippes, samt en tilsvarende stoppbryter som gir logisk 1 når
- den er trykket, og logisk 0 (falsk) når den er urørt.
- Transportbåndet vil gå når trans_b
legges til
- logisk 1 (sann), og vil stoppe når trans_b
leggs
- til logisk 0. Figur 4.1 viser en oversikt over inn – og utganger
- som benyttes på PLS’en.
-
- | Inngang | -Utgang | -
---|---|---|
Startbryter | -start_br | -- |
Stoppbryter | -stopp_br | -- |
Fotocelle | -foto_c | -- |
Stempel | -- | stempel | -
Transportbånd | -- | trans_b | -
- Oppgave 3. Fortsetter Når startbryteren trykkes - (startsignal) skal transportbåndet starte. Når en fiskebolleboks - passeres fotocellen skal de telles med to tellere. Teller_1 skal - når den kommer til 5 starte stempelet som skyver boksene ut. - Samtidig skal telleren resettes, slik at den kan telle opp 5 nye - bokser. Teller_2 skal være en akkumulerende teller som teller - alle bokser som er produsert etter at startbryteren ble trykket. - Den skal ha en Preset Value på 10000. Når det er produsert 10000 - bokser skal teller_2 resettes. Når stoppbryteren blir trykket - skal transportbåndet stoppe, og teller_2 skal resettes -
-- Løsning Ettersom start- og stoppbryterne er - touch-brytere må vi sikre at verdiene holdes med en RS-vippe. - Benytter 2 timere. Resetter timere etter gitt krav. Ettersom både - stopp-knappen og når teller_2 har kommet til 10000 bokser kan - restte teller_2 så benytter vi en eller-blokk for disse. -
- -- Tegn et blokkskjema for et generelt reguleringssystem. Forklar - kort hvilke blokker som inngår. Redegjør kort for hva som er - hovedoppgavene til et reguleringssystem. -
-- Blokkene er forklart i kompendiet «Intro til reg_tek». Et - reguleringssystem kan ha flere hovedoppgaver - som; -
-- Oppgave 1B Du skal lage et system for - regulering av hastigheten på en bil. (Cruisekontroll). Forklar - hvilke komponenter/moduler du vil trenge for å lage et slikt - system. Tegn et blokkskjema som viser hvordan komponentene - inngår. Forklar kort begrepene: -
-- Vi må lage et tilbakekoblet system med en - regulator som påvirker/regulerer hastigheten til bilen. Vil - trenge: Regulator, pådragsorgan som styrer bensin/diesel - innsprøytning, prosessen (bilen), måleelement som måler - hastigheten. Er det en elektrisk bil kan vi styre elmotorene - med kraftforsterkere -
-- - Oppgave 1C Hvorfor benyttes pådragsorganer i en - reguleringssløyfe? Nevn noen typiske pådragsorganer? - - - - Pådragsorgan benyttes for å forsterke opp pådragssignalet fra - regulatoren. En regulator gir kun ut svake signaler som f.eks 4 - -> 20mA. Et slikt signal må forsterkes for å kunne gi noe effekt - på en prosess. Typiske pådragsorgan; ventiler, - elektriske forsterkere, motorer, pumper. - - Typisk signalverdier i reguleringssløyfe: - 4-20mA, 0–10Volt, 1-5Volt, 3-15PSI - -
-- Oppgave 1E Du skal lage et system som overvåker - en pasient på et sykehus (eller hjemme for den saks skyld). Hva - slags type «informasjon» kan det være interessant å - måle/overvåke? -
-- Her er det mange «tilstander» som kan være interessant å - måle/overvåke: På selve pasienten: Puls, blodtrykk, hjerterytme, - oksygen i blodet, blodsukker, kroppstemperatur, fuktighet... - (Andre parametere kan være kolesterol, blodprosent, samt - x-antall andre parametere som kan måles via blodprøver). Andre - tilstander kan være bevegelse, fall, i hvilket rom man er, - lysforhold, lyd, temperatur, ... -
- -- Oppgave 4 Gitt følgende integral: - y = \int_{a}^{b} f(x) dx - f(x) = 30x^3 - 8x^2 + 4x + 10 - Beregn selv hva det korrekte svaret er når: - a=0 \quad b=3 -
-- Et system kan beskrives med følgende differensialligning; - 20\dot{x} + 10x = f(t) -
-- f(t) = inngang - x(t) = utgang Finn transferfunksjonen - som beskriver systemet gitt i ligning 1. Forklar kort hva en - transferfunksjon uttrykker/beskriver (på generell basis). Anta at - f(t) er et enhetssprang ved t=0. -
-- Finner transferfunksjonen ved å benytte Laplace på hvert ledd. - 20s \cdot X(s) + 10X(s) = F(s) - (20 + 10s)X(s) = F(s) - \dfrac{X(s)}{F(s)} = H(s) = \dfrac{1}{20s + 10} = - \dfrac{0.1}{2s + 1} -
-- Vi har nå funnet transferfunksjonen som beskriver systemet. En - transferfunksjon er en beskrivelse av et system - (modell) i s-plan. Beskriver sammenhengen mellom inngang og utgang - i systemet. - f(t) - enhetssprang \rightarrow F(s) = 1/s - X(s) = H(s) \cdot F(s) = \dfrac{0.1}{s(2s + 1)} -
-- Invers Laplace gir; - x(t) = 0.1(1-e^{-0.5t}) -
- -- Gitt at du har en differensialligning som - beskrevet nedenfor der y(t) er utgangen og x(t) er inngangen. Hva - blir transferfunksjonen til dette systemet? - \ddot{y}(t) + 4\dot{y}(t) + 3y(t) = x(t) - Hva blir Y(s) gitt at x(t) er et enhets-sprang? -
-- Må Laplacetransformere ledd for ledd. - Initialtilstander settes lik 0. Vi får da: - - s^2 \cdot Y(s) + 4s \cdot Y(s) + 3Y(s) = X(s) - - Y(s) \cdot (s^2 + 4s + 3) = X(s) - - \dfrac{Y(s)}{X(s)} = H(s) = \dfrac{1}{s^2 + 4s + 3} - -
-- X(s) skal være et enhetssprang - \rightarrow X(s) = 1/s -
-- Finner da: - - Y(s) = H(s) \cdot X(s) = \dfrac{1}{s(s+3)(s+1)} - -
-- Vi finner y(t) ved å ta invers Laplace - av uttrykket Y(s). -
-- Et fjæringssystem på en bil har følgende transferfunksjon; - H(s) = \dfrac{10}{s^2 + 0.8s + 4} -
-- A. Beregn hva systemets poler er. Hvordan vil du - klassifisere polene til systemet? Skisser hvordan du vil forvente - at sprangresponsen blir? -
-Setter nevneren = 0.
-- s^2 + 0.8s + 4 = 0 - s = \dfrac{-0.8 \pm \sqrt{0.8^2 - 4 \cdot 1 \cdot 4}}{2 \cdot - 1} - = \dfrac{-0.8 \pm \sqrt{0.64 - 16}}{2} - = \dfrac{-0.8 \pm \sqrt{15.36}}{2} - s_1 = -0.4 + 1.96i - \underline{\underline{s_2 = -0.4 - 1.96i}} -
-- Vi klassifiserer polene til systemet som kompleks konjugerte. - Polene har negativ realdel dermed er systemet stabilt. Et system - med kompleks konjugerte poler vil ha en sprangrespons med - oversving. Systemer er stabilt og svinger seg inn mot en stabil - verdi. -
- -- B. Hva vil det si at et system har en - resonansfrekvens? -
-
- Robert sin forklaring:
Hvis frekvensresponsen viser
- en forstrekningstopp ved en gitt frekvens så har
- systemet en resonansfrekvens.
-
- Vår forklaring:
Resonansfrekvens er en frekvens hvor
- det fortsetter å svinge av seg selv når svingningene først er satt
- i gang og svingebevegelsene ikke blir dempet.
-
- Hvorfor må et reguleringssystem ha stabilitetsmarginer? - Forklar kort hvilke marginer man normalt benytter i et - reguleringssystem og hvilken praktisk betydning de har. -
-- Stabilitetsmarginer er nødvendig for at reguleringssystemet skal - være stabilt. Desto større marginer jo mer stabilt er systemet. - Ettersom et reg.ssytem skal fungere under ulike driftsforhold og - over lang tid er det nødvendig med akseptable marginer.Vi setter - krav til fasemargin. Den bør normalt være på minst - 45 grader. Velges 60 grader fårman et godt stabilt system. Pidtune() - i Matlab benytter 60 grader fasemargin for tuning av parametere. - Forsterkningsmarginen bør være på minst 6dB. Det - betyr at vi skal kunne doble regulatorforsterkningen uten at - reg.systemet blir ustabilt. -
- -- For å undersøke stabilitet til et - reguleringssystem kan man benytte frekvensrespons. Forklar kort - hva det er man undersøker frekvensresponsen til? Anta at du har - bestemt en fornuftig regulator i reguleringssystemet og ønsker å - simulere hvordan utgangen (prosessverdien) følger setpunktet i - Matlab med step-funksjonen.Hvilken funksjon (matematisk uttrykk) - må man beregne før man kan benytte step-funksjonen? -
-- Man må finne systemets - åpne sløyfetransferfunksjon A(s). Frekvensresponsen - til A(s) vil være utgangspunktet for å finne en «optimal» regulator. - For å simulere responsen til hele reguleringssystemet må vi beregne - følgeforholdet M(s). Hvis systemet har enhets tilbakekobling blir - M(s) = \frac{A(s)}{1+A(s)}. Matlab - beregner dette enkelt, og så kan vi benytte step-funksjonen på M(s). -
- -- Nevn noen prosesser som blir regulert med av/på-regulering. Hvordan varierer pådraget og utgangen (prosessverdien) når - av/på-regulering benyttes? Tegn en skisse. -
-- Av/på-regulering kan benyttes i trege prosesser, og der kravet til - nøyaktighet ikke er store. Eksempler: Temperaturregulering i hus og - kjøleskap. Nivåregulering i en tank hvor kravet til nivået ikke er - stort. -
-- Ulempene ved av/på-regulering er at den regulerte prosessverdien - ikke stabiliserer seg på settpunktet. Utgangen vil svinge rundt - setpunktet, (unøyaktig regulering). I tillegg vil pådragsorganet - kjøres hardt fra 0 pådrag til 100% pådrag i en evig syklus. Vil - kunne gi stor «slitasje». Skisse av utgang (prosessverdien) og - pådraget i en av/på-regulering: -
- -- Hvilke forbedringer kan vi oppnå med en PID-regulator? - Forklar hvorfor en PI-regulator kan gi null stasjonær feil? - Hvilken effekt har derivatvirkningen Td i et reguleringssystem? -
-- PID-regulatoren lager 3 bidrag til pådraget basert på avviket - e(t). De tre bidragene er: Proporsjonalt med avviket – P, - Integralet av avviket – I, Deriverte av avviket – D. Summen av - bidragene gir et pådrag som kan innta enhver verdi mellom 0 og - 100%. Det betyr at vi kan finne det helt riktige pådraget som gjør - at utgangen prosessverdien blir lik setpunktet (ønsket verdi). - PI-regulatoren integrerer avviket, og da vet vi at så lenge - avviket ikke er null (perfekt) så vil det genereres et bidrag til - pådraget som driver avviket mot null. Når avviket er null vil det - ikke genereres mer bidrag pga av I-delen og vi får null stasjonær - feil. Derivatvirkningen gjør at regulatoren følger hvor hurtig - avviket endrer seg. Ved raske endringer i avviket vil regulatoren - reagerer raskt for å motvirke at det blir et avvik. Fører dermed - til raskere regulering. -
-- Tegn en skisse som viser hvordan pådraget og utgangen - (prosessverdien) nå varierer. -
- - -- Anta at du benytter en PID-regulator i et - reguleringssystem, og at regulatoren er fornuftig innstilt. Hva vil - normalt skje hvis man øker forsterkningen på regulatoren? Hva vil - skje hvis man øker integrasjonstiden Ti? -
-- Hvis man øker forsterkningen vil reguleringssystemet bli mer - oscillatorisk. Utgangen vil svinge mer. Når forsterkningen blir stor - nok blir det fleste reguleringssystemer ustabile. Regulatoren vil da - slå seg av og på (vandre mellom yttergrensene 0 og 100%). Utgangen - vil bli en stående svingning. Økes integrasjonstiden Ti vil det bety - at I-delen vektlegges mindre. Integrasjonseffekten avtar, og - regulatoren blir en P/PD-regulator, og da vil man normalt få - stasjonær feil. -
- -- Anta at vi har konstruert et system som skal regulere nivåeti en - tank til ønsket nivå. - Vi har lageten matematisk beskrivelse av systemet som vist i - blokkdiagrammetfor reguleringssystemet, se figur2.2. -
- -- P-reg: Anta at regulatoren vi først benytter er en - P-regulator med forsterkning K. Hva blir systemets åpne - sløyfetransferfunksjon A(s) når K= 1 ? Bestem forsterkningen K slik - at systemet oppfyller en fasemargin på minst 60 grader og en - forsterkningsmargin på minst 6dB. Bruk margin()funksjonen i Matlab, - og løs oppgaven. Du skal nå kunne oppgi følgende verdier som - beskriver systemet: Hvilken forsterkning K som bør benyttes. Hvilke - marginer \psiog - \Delta Ksom er oppnådd? Hva - \omega_c og - \omega_{180}? Og hva forsterkning - K_{krit} som vil gi et ustabilt system - er? -
- -- Sløyfetransferfunksjonen A(s) benyttes for å bestemme - PID-parametere og stabilitetesmarginer. Når K=1 blir A(s). - A(s) = \dfrac{1}{(1+4s)(1+50s)(1+s)} - Legger A(s) inn i Matlab. Plotter bode(a) når K=1 og får - \rightarrow -
-- Margin() sier -180 grader fasemargin. Det kommer av at A-kurven - aldri skjærer odB-linja, og dermed har systemet 180 grader - fasemargin. (ikke -180) Økes K til f.eks 2 eller 10 så vil vi se - riktig fasemargin og forsterkningsmargin. Prøver litt - forskjellige verdier i Matlab og finner fort ut at K=8.4 - oppfyller kravene. Lar margin() vise verdiene med K=8.4. Se - figuren til høyre. -
-- Kan nå lese av følgende sentrale verdier: K= 8.4 gir Fasemargin - = 60.1. Forsterkningsmargin = 18.3dB. - \omega_c = 0.143 rad/s - \omega_{180} = 0.524 rad/s -
-- Opg ? Test systemet i Matlab ved å påtrykke et - sprang i referansen r(t). Vis responsen y(t).Kommenterhvordan - systemet fungerer? (Hurtighet, nøyaktighet, stabilitet). Test en - sprangrespons når du benytter en forsterkning lik Kkrit. Vis - responsen y(t), og kommenter hvordan systemer fungerer nå. Prøv - også funksjonen pidtune(), og finn ut hva slags P-regulator den - anbefaler. Oppgi verdien som pidtune() kommer fram til, og - kommenter om den er i nærheten av det dere fant med - margin()-funksjonen. -
-- Svar Opg ? Finner Kkrit ved å ta forsterkningen som - er benyttet (8.4), og legge til forsterkningsmarginen 18.3dB. Kkrit - = 8.4 + 18.3 dB. (Må gjøre om til dB hele veien, og så legge - sammen.) Regner om 8.4 til dB - \rightarrow18.5dB. Kkrit = 18.48+ 18.3 dB - = 36.78dB som igjen er: 69.0 i ren forsterking. Lar Matlab beregne - overføringsfunksjonen; M= a/(1+a)når K=8.4. Plotter så - sprangresponsen med step(M). -
- -- PI-reg:Det viser seg at P-regulatoren gir for stor - stasjonær feil, og en PI-regulatorskal benyttes isteden. Benytt - igjen margin(), og bestem en PI-regulator som oppfyller kravene i - 2A. Test også ut pidtune(),og finn ut hva slags PI-regulator den - anbefaler. Oppgi hvilken K og Ti som bør benyttes gitt data fra - margin() funksjonen. Hva blir \psi og - \Delta K med valgte PI-regulator. -
-- Må nå finne Ti. Benytter Wc fra P-reg med K=8.4. (Wc= 0.143 rad/s). - Benytter: - \dfrac{1}{T_i} = \dfrac{\omega_c}{5} \rightarrow T_i = - \dfrac{5}{\omega_c} = \dfrac{5}{0.143} = 35. , K = 8.4 -
-- PI-reg som nå benyttes blir: - H_{pi}(s) = K \dfrac{(1+T_is)}{T_is} = 8.4 \dfrac{(1+35s)}{35s} = - 0.24 \dfrac{(1+35s)}{s} - A(s) med PI-reg blir: - A(s) = \dfrac{0.24(1+35s)}{s(1+4s)(1+50s)(1+s)} -
-- Oppgave 3: Hva er det som gjør PLS’er godt egnet i - automatiserte systemer? Forklar kort hvilke standardiserte - programmeringsspråk som kan benyttes for å programmere PLS’er. - Forklar kort hva programmet Codesys er, og hva vi kan benytte det - til. Begrepet «POU» dukker opp i forbindelse med programmering av - PLS’er. Hva er en POU? -
-- PLS’er er dedikerte datamaskiner med IO for styring - og regulering. Robuste enheter med stor fleksibilitet for å løse - styringsoppgaver. Har stor driftsstabilitet, lite feil. Vil kunne - fungere 24/7. Finnes i alle formater fra små rimelige enheter til - enheter som kan håndtere tusenvis av I/O. Et programmeringsverktøy - følger normalt med, slik at en kan utvikle programmene på en PC, og - overføre kompilert kode til selve PLS’en. Kan programmeres etter IEC - 61131-3 på 5 alternative måter: Instruksjonsliste, Relé/ladder - diagram, Funksjonsblokker, Strukturert tekst, Sekvensielle - funksjonskart (SFC) -
-- Codesys er CODESYS(an acronym for controller - development system, previously stylised CoDeSys) is a development - environmentfor programming controller applications according to the - international industrial standard IEC 61131-3. Codesys benyttes for - å utvikle kode til PLS’er. Vi kan også lage HMI’er for å simulere - løsninger. -
-- En POUer en Program Organiseringsenhet. Det kan ses - på som et sted hvor man legger; funksjonsblokker, funksjoner, kode, - program. Vi kan lage benytte POU’er når vi lager PLS-kode. En måte å - organisere kode på. -
-- Du skal utvikle en matematisk modell for et system. Beskriv kort to - metoder som kan benyttes. Hva kan matematiske modeller benyttes til? -
-- En matematisk modell er en beskrivelse av sammenhenger i - systemer/prosesser. Beskriver et system/prosess med matematiske - ligninger som gir oss muligheter for analyse og design. Beskriver - f.eks sammenhengen mellom påvirkninger og responser med matematiske - uttrykk. Metoder som kan benyttes er: 1.Basert på fysiske lover og - balanser (fysisk modellering), 2. Eksperimentell analyse ved bruk av - eksperimenter og databehandling. (System identifikasjon). Modeller - kan benyttes til: 1. For å simulere systemer, 2. For analyse/design - av styringssystemer, 3. For å trene operatører i simulatorer, 4. For - optimal design av systemer, 5. For å lage realistisk dynamikk i - spill -
- -- Forklar hva et prosess-instrumenteringsdiagram er. - Hvordan angis Tag’er i slike diagram? Hvordan kan man se av - symbolet om instrumentet står i et kontrollrom eller ute i - prosessen? Hva angir følgende tag’er? TIC, TT, TAH, FIC, FT. Sjekk - på nettet og finn instrumenteringssymboler for: Varmeveksler, - Reguleringsventil, Pumpe -
-- Et P&ID-diagram er et skjema/tegning som viser - koblingen av prosessutstyr og instrumenter som benyttes for å - styre prosessen. Fokuserer på rør, prosessutstyr, instrumentering - og regulering. -
-- Tag’er angir prosessinstrumenter, men kan også - benyttes for å angi parameterei prosessutstyr, og - variabler/symboler i et industrielt IT-system. En måte å angi en - Tag på er: Ex. 234.67 FIC 172 ( Fabrikk–Avsnitt-Instrumentsymbol - -Loopnummer). TIC - Temperatur indikerende regulator(control). TT - - Temperatur Transmitter (måle-elementog overføring av verdi). TAH - - Temperatur Alarm Høy. FIC - Flow indicating Control. Mengde/flow - regulator. FT - Flow (mengde) transmitter (måle-elementog - overføring av verdi) -
-Symboler:
-noen instrumenter
-eksempel på sløyfer
-- Gitt følgende differensialligning. (Beskrivelse - av et fysisk system). - \ddot{X} + 0.8\dot{X}+4X(t) = 0.1f(t) - Anta at alle startbetingelser ved t = 0 er 0. Diskretiser ligning - 1 vha Eulers 1-skritts metode. Vis utledningen og - svaret. TIPS!! Erstatt den 2 -deriverte med sin numeriske - ekvivalent osv. Anta at f(t) er et enhetssprang ved t=0.\rightarrowf(t) = 1. Lag et program som beregner (simulerer) systemet for - verdier av t mellom 0 og 10 sekunder. Test følgende tidskritt T. - T= 0.01, T = 0.1, T =1.0 sek Skisser (plot) løsningen x(t) som - programmet beregner. Kommenter hva som skjer når T øker. -
-- Benytter Eulers bakovermetode og setter inn for den - første og andre deriverte. -
-- \dot{X} = \frac{X_k - X_{k-1}}{T} - \ddot{X} = \frac{X_k - 2X_{k-1} + X_{k-2}}{T} -
-- Setter inn i 1 og løser mhp Xk. - \frac{X_k - 2X_{k-1} + X_{k-2}}{T^2} + 0.8 \frac{X_k-X_{k-1}}{T} - + 4X_k = 0.1F_k -
- -- Løser med hensyn på Xk. Får nå den numeriske ligningen; - X_k = \frac{0.1T^2F_k + (0.8T+2)X_{k-1} - - X_{k-2}}{(1+0.8T+4T^2)} -
- -Fk - Påtrykt signal.
-- Fk = 1 når f(t) er et enhetssprang, Fk = sin(2*T*k) når f(t) er et - sinussignal på 2 rad/s. Benytter at tiden t = k*T -
-Gitt følgende integral
-Beregn hva det korrekte svaret er når : a= 0 b= 4
-- y = \int_{a}^{b} f(t) dt - f(t) = 50t^4+20t^3-3t^2+4t-10 - =\Big[ \frac{50}{4+1}t^{4+1} + \frac{20}{3+1}t^{3+1} - - \frac{3}{2+1}t^{2+1}+\frac{4}{1+1}t^{1+1}-\frac{10}{0+1}t^{0+1} - \Big]_{0}^{4} = 11448 -
- -- Tustins metode tar utgangspunkt i følgende - sammenheng: - y_k = y_{k-1} + \frac{T}{2}(f_k + f_{k-1}) - Når vi kjenner T og beregner funksjonsverdien ved k og k-1 får vi - arealet av en skive. Summerer alle ”skivene” fra start til stopp - punktet. Får da totalt areal. Ser at Tustins metode blir mer - nøyaktig med økende antall skiver (n). Høyere n -> lavere T -> bedre - nøyaktighet. -
- -- Simpsons metode - y_k = y_{k-1} + \frac{T}{3}(f_{2k} + 4f_{2k+1} + f_{2k+2}) - 0 \leq k \lt \dfrac{n}{2} , n = antall - skiver, må være et like tall. Simpsons metode er mer nøyaktig enn - Tustin. -
- -- Shannon-Nyquist Forklar kort hva Shannon-Nyquist - samplingsteorem beskriver.Anta at man sampler musikk med 20kHz. - Hva er den høyeste frekvensen man vil sitte igjen med? Anta at det - ligger en tone ved 16kHz når samplingen gjennomføres. Hva skjer - med den? Hvilken frekvens «dukker» den opp som? Hvordan unngår man - aliasfrekvenser ved sampling? -
-- Samplingsteoremet sier at vi må sample minst dobbelt så hurtig som - den høyeste frekvensen i signalet vi ønsker å gjenskape etter - sampling. F_s \geq 2F_{max} Det betyr at - vi aldri vil sitte igjen med høyere frekvenser enn Fs/2 (Nyquist - frekvensen) i det samplede signalet. Hvis Fmax= 20kHz vil vi ikke - sitte igjen med høyere frekvenser enn 10kHz.Et 16kHz signal vil - dukke opp som en aliasfrekvens på: 20kHz – 16kHz = 4kHz. Dukker opp - som en 4kHz frekvens som aldri var der originalt. (Falsk frekvens). - Man unngår problemet med aliasfrekvenser ved å filtrere bor alle - frekvenser over Fs/2 før sampling. Benytter da et lavpassfilter som - demper alle frekvenser over Fs/2. Anti-alias filteret bør ha en - cut-off frekvens som er noe lavere enn Fs/2. -
-- Beskriv (gjerne med en skisse) hvordan et distribuert - styringssystem er oppbygd. - Forklar kort prinsippene slike systemer er bygd etter. Hva vil det - si at man har redundans i slike systemer? Industri - 4.0 er ofte benyttet som et begrep. Forklar kort hva dette dreier - seg om. -
-- Bør få med at det består av operatørstasjoner, brukerstasjoner hvor - visualisering, brukergrensesnitt kjøres. Nettverk som forbinder - opartørstasjoner med distribuerte prosessenheter. Distribuerte - prosess-enheter som kan være alt fra PLS’er, intelligente - IO-moduler; RTU’er osv. Det er her styringsalgoritmer og IO utføres. -
-- Redundans betyr at man bruker ekstra enheter for å øke sikkerheten, - påliteligheten i systemene. Kan for eksempel bruker flere IO-enheter - og sensorer som overvåker samme prosessverdi. -
-- ndustri 4.0 dreier seg om at informasjonsteknologi tas i bruk i alle - ledd i et produksjonssystem/bedrift. Fra wiki: Industry 4.0is the - current trend of automationand data exchange in manufacturing - technologies. It includes cyber-physical systems, the Internet of - thingsalso cloud computing. -
- -- Forklar kort hva en feltbuss er, og hvorfor dette - er en viktig del av industriell IT. Beskriv noen fordeler man kan - oppnå med feltbusser. Hva er forklaringen på at det finnes så mange - feltbusser? -
-- Feltbuss er en digital kommunikasjonslinje som - forbinder feltinstrumenter med overordnet overvåking/styring-system. - Feltbusser gjør oppkobling av distribuerte enheter, sensorer m.m i - et styringssystem enklere. -
-- Fordeler som ofte nevnes er: Mindre kabling, mindre - maskinvare. Mer intelligens ligger i instrumentene. En digital - kommunikasjon fra sensor til bruker. Kan også gi enklere - konfigurasjon og mye mer informasjon om instrumenter fungerer som de - skal. Kan gi en masse tilleggsinformasjon som tradisjonelle - instrumenter (analoge) ikke kan gi. -
-- Feltbusser har blitt utviklet av mange selskap over tid. Mange - selskap holder på sin teknologi og mener den ofte er best. Samtidig - vil de ikke gi fra seg fordeler de har med etablerte systemer. I - tillegg skal feltbusser dekke mange ulike oppgraver. Alt fra - overordnet kommunikasjon som kan være industrielt Ethernet. Ned til - busser som håndterer distribuerte IO, og helt ned på sensor nivå. - Ulike busser kan dermed ha fordeler avhengig av bruksområdet. -
- -- Forklar hvordan kan vi finne x(t) med Matlab? -
-- Vi finner x(t) ved å ta invers Laplace av uttrykket X(s). I Matlab - oppgi X(s) og så utføre inversLaplace (ilaplace) på X(s): Får da - x(t) utrykt i tidsplanet. Kan også utføre step()-funksjonen på X(s). - Får da plottet x(t). -
- -- Forklar og skisser hvordan sprangresponser på 1. - og 2.ordens stabile systemernormalt vil være. -
-- Sprangrespons på et 1.ordens system vil gi en pen innsvingning - uten oversving. Et 2.ordens system kan gi ulik respons avhengig av - om systemet har reelle eller komplekse poler. Reelle poler gir en - pen innsvinging uten oversving,Komplekse poler vil gi - oversving.(Se figur.) -
- -- Oppgave A - Du skal finne gode reguleringsparametere for et tilbakekoblet - system. - - Reguleringssystemet skal regulere nivået i en tank med væske. Anta - at du har funnet en modell som beskriver blokkene som inngår, og - at du lar Matlab med margin()-funksjonen tegne opp - frekvensresponsen til den åpne sløyfetransferfunksjonen A(s) som - vist på figur 2.1. Du har her benyttet en P-regulator med - forsterkning K= 6. -
- -- Det er greiest å avlese hva margin()-funksjonen viser på toppen av - figuren: Der ser vi at fasemargin er 84.1 graderog - forsterkningsmargin er uendelig. Kryssfrekvensen ser vi er: 0.0568 - rad/s -
-- Med disse marginene vil systemet være godt stabilt. Antagelig litt - for mye stabilt, noe som går ut over hurtigheten og nøyaktigheten - til systemet. Vi kan øke forsterkningen. F.eks kan vi prøve K lik - 8 eller 10.Får da et litt raskere og mer statisk nøyaktig - regulering.Hvis K økes for mye blir stabilitetsmarginene «spist» - opp. Dette system tåler egentlig at forsterkning kan økes mot - uendelig, men da blir fasemargin tilnærmet 0. Nærmer seg - ustabilitet, og et system som vil pendle svært mye. -
-- Oppgave B P-regulatoren benyttet i oppgave A - ønskes forbedret med en PI-regulering. Forslå verdier som bør - testes på K og Ti. Begrunn valget. Hva blir transferfunksjonen til - PI-regulatoren du foreslår? -
-- Kan beregne Ti ut fra kryssfrekvensen: 1/Ti = Wc/5 -> Ti= 88. Et - alternativ som er OK er å benytte: 1/Ti = Wc/10 -> Ti = 176. - Forsterkningen K kan holdes på 6 ettersom fasemargin var 84 - grader. Det burde gi et brukbart stabilt system. Kan også ta dette - ut av figuren av frekvensresponsen. -
-- Oppgave C Figur 2.2 viser sprangrespons på - reguleringssystemet med en PI-regulator. Hvordan vil du vurdere - systemets reguleringssegenskaper? Hva bør vi gjøre for å redusere - oversvinget? -
- -- Er en typisk innsvinging. Ser at stasjonær feil er null. (Bra). - Systemets hurtighet ser vi på tidsaksen. Tar ca 40 sekunder før - systemet roer seg ned. Oversvinget er på ca 30%, og det er i meste - laget. Kan redusere oversvinget ved å redusereforsterkningen K. - F.eks kan vi prøve å halvere K. Et annet tiltak kan være å øke - integrasjonstiden Ti. Det beste er å gjøre små justeringer og så - teste sprangresponsen for å se hva en oppnår. -
-- Oppgave D Prosessen gitt i oppgave 2A blir koblet - opp, og testes med Ziegler-Nichols metode. Følgende - verdier ble funnet: Kritisk forsterkning Kkrit= 14 og svingeperioden - Tk= 105 sekunder. Hvilke verdier vil du anbefale å benytte for - innstilling av en PID-regulator? Hvilke svakheter har - Ziegler-Nichols metode.? Beskriv noen andre metoder som vi kan - anvende for praktisk tuning som kan være bedre enn Ziegler-Nichols - metode. -
-- Dette kan vi beregne rett fra vedlagte tabell: K = 0.65. Kkrit = - 0.65 * 14 = 9.1. Ti =0.5*Tk = 0.5 *105 = 52.5. Td = 0.12. Tk = 0.12* - 105 = 12.6. Ziegler-Nichols metode tester hvor mye systemet tåler. - Metoden krever at prosessen er oppkoblet og utsettes for store - pådragsendringer. Systemet kjøres slik at et blir tilnærmet - ustabilt. Stående svingninger. Det er ikke akseptabelt formange - prosesser, og dermed kan ikke metoden benyttes. Tabellen forslår - verdier som skal passe for alle prosesser.Etter en beregning/testing - bør man finjustere reguleringsparameterne. Andre metoder som kan - benyttes er: 1. Relè-metoden som setter prosessen i en kontrollert - svingning. Meget god metode. 2. Teste sprangrespons på systemet, og - ut fra responsen beregne parametere. Mye benyttet i enkle - auto-tunings-algoritmer. 3. Andre forslag som er presentert er: Good - Gain metoden til Finn Haugen.baserer seg på sprangrespons. 4. I - tillegg har en rekke personer kommet med sine «egne» metoders om - baserer seg på vurdering av sprangresponsen. -
- -- Oppgave E - Anta at du har en 12 bit A/D-omformer som dekker - området 0 til 5 Volt. Hvilken oppløsning har denne A/D-omformeren i - mV. Hvilken nøyaktighet i mV kan vi forvente å ha? Begrunn svaret. - Det påsettes en spenning på 2.75 Volt på A/D-omformeren. Hvilken - bit-verdi bør A/D-omformeren gi ut? Hvorfor vil 12 bit A/D og - D/A-omformere ofte være godt nok å benytte i industrielle styringer? -
-- Oppløsningen er gitt av antall bit og er gitt av antall nivåer vi - kan dele området i: Kan regnes ut på følgende vis: - - Res_{mv} = \frac{Vref}{2^N} = \frac{5}{2^{12}}= \frac{5}{4096} = - 1.2mV -
-- Nøyaktighet er aldri bedre enn antall bit som - benyttes for å holde den digitale verdien. Aldri bedre enn : - \pm0.5 LSB. Vanligvis oppnår en ikke - bedre enn \pm1 til 2 LSB. (LSB-minste - signifikante bit) -
-- Ex Vi beregner hva LSB utgjør. Med spenning fra 0-5 - volt blir max nøyaktighet: - \frac{5V}{4096}=1.2mV (1 LSB) Kan angis - som +/- 0.6mV. (Tilsvarer +/- 0.5 LSB) -
-- 2.75 Volt tilsvarer: - \frac{2.75}{5} \cdot 4096 = 2252 (Får - 2252.8. Må være et heltall. Runder mot null) -
-- Nøyaktigheten til en 12 bit A/D, D/A omformer er såpass god at - feilen som ligger rundt 0.02% er vesentlig lavere enn feil i - sensor/målesystemet (som kan ligge på 0.5% eller høyere). et - svakeste leddet er normalt måle-element/sensor, og da hjelper det - ikke stort om en bruker A/D, D/A med flere bit. I systemer med store - krav til nøyaktighet (som f.eks lyd) vil man måtte bruke 16 bit - eller høyere. -
-- Oppgave F - Forklar hva det vil si å sample et analogt signal. - Hvordan vil du bestemme hvor ofte et analogt signalet må samples? -
-- Sampling betyr å kvantisere et signal i tid og verdi. Et analogt - signal avleses med en fast takt (samplingsfrekvensen), og verdien - omformes fra analog til digital i en A/D-omformer. Nøyaktig og - oppløsning er avhengig av antall bit som benyttes for å holde den - digitale verdien. Samplingsfrekvensen er avhengig av hvor hurtig - signalet vi skal sample er. Shannon-Nyquist har utledet - samplingsteoremet som sier at vi må sample minst dobbeltså hurtig - som den høyeste frekvensen vi ønsker å gjenskape. -
- -- Differensialligning under beskriver dynamikken for - et generelt 1.ordens lavpassfilter. - \dot{X}(t) + \alpha X(t) =\beta U(t) - X(t)-er filtrert signal. U(t)-er signal som skal filtreres. alpha og - beta er en faktor som avgjør hvor kraftig filteret skal filtrere. - Bruk Eulers bakovermetode for diskretisering og finn den - programmerbare differensligningen for lavpassfilteret. Forklar hva - løsningen praktisk innebærer. Anta at β=1. Hva bør α være hvis en - ønsker en kraftig filtrering av innkommende signal? -
-- Ved å sette inn EBM som vi finner i vedlegget, og får når vi samler - like ledd og Xk på venstre side i ligningen: -
-- \dot{X} + \alpha X = \beta U \rightarrow \dot{X} = \frac{X_k - - X_{k-1}}{T} \rightarrow \frac{X_k - X_{k-1}}{T} + \alpha X_k = - \beta U_k - -
-- X_k - X_{k-1} + \alpha T X_k = \beta T U_k \rightarrow X_k (1 + - \alpha T ) = X_{k-1} + \beta T U_k - -
-- X_k = \dfrac{1}{1 + \alpha T} \cdot X_{k-1} + \dfrac{\beta T}{1 + - \alpha T} \cdot U_k -
-- \beta = 1 \rightarrow X_k = \dfrac{1}{1 + \alpha T} \cdot X_{k-1} - + \dfrac{T}{1 + \alpha T} \cdot U_k -
- -- Ser at: (Antar også T er mye mindre enn 1)Når α er tilnærmet null - betyr det kraftig filtrering av inngangssignalet Uk. Det betyr at Uk - påvirker Xk lite (kraftig filtrering). Xk tilnærmet Xk-1 -
- -- Uttrykket gitt under kan benyttes for numerisk integrasjon. - - Forklar leddene i uttrykket, og hvordan vi kan benytte dette for å - integrere en gitt funksjon fra et startpunkt a til et sluttpunkt b. -
-- y_k = y_{k-1} + \frac{T}{2}(f_k + f_{k-1}) - Forklar en annen metode som vil kunne være mer nøyaktig enn denne. - Beskriv kort forskjellen på dem. -
-- Formelen er differensligningen som beskriver - trapes integrasjon. yk er nytt areal som beregnes. - yk-1 er arealet før neste «skive» som beregnes. T–samplingstiden - (Tiden mellom 2 målinger). fk – funksjonsverdien i punktet k. fk-1 – - funksjonsverdien i punktet k-1. -
-- Lager en løkke som beregner og summerer hver skive som funksjonen - blir delt opp i. Vi må oppgi start og sluttpunktet a og b. Og hvor - mange skiver/intervaller kurven skal deles i. -
-- Trapesmetoden har god nøyaktighet, men Simpsons metode som benytter - parabelbuer og 3 funksjonerverdier ved hver beregning er mer - nøyaktig. Litt mer krevende algoritme, men gir større nøyaktighet. -
- -- Man har også RS, som er helt lik som SR, men i stedet for at SET1 - er dominant (som i SR), er det RESET som er dominant -
-START, STOPP og UTGANG er BOOL.
-- CTU og CDU funker på samme måte, men CTU teller oppover, og CDU - teller nedover. Teksten under er for CTU -
-- Blandetanken har 2 nivåsensorer. Nivåsensorene - gir et logisk høyt (1) signal når nivået ”dekker” sensoren. Når - nivået er lavere enn sensoren gir den logisk 0. To pumper benyttes - for å pumpe væske A og B til tanken. I tillegg finnes det en motor - som styrer en omrører, og en alarmutgang til en alarmlampe. Det - benyttes også en startbryter og en stoppbryter som begge er - normalt åpne (logisk 0) når de ikke er berørt, men som gir logisk - 1 når de holdes inne. De går automatisk til logisk 0 når de - slippes. Du skal lage et PLS-program med Ladder og/eller - Funksjonsblokker som utfører følgende: Når startbryteren trykkes, - og deretter slippes, skal pumpe 1 starte med å pumpe væske inn, - samtidig skal omrøreren starte. Når nivået passerer (høyere) enn - nivåsensoren Niv_norm skal pumpe 1 stoppe. Deretter skal pumpe 2 - starte og pumpe væske B inn i tanken i 3 minutter. Nivåsensorer - Niv_hoy skal fungere som sikkerhet mot at tanken overfylles. Hvis - nivået i tanken passerer Niv_hoy skal begge pumpene stoppe, og et - alarmsignal Alarm_hoy skal aktiveres. Hvis stoppbryteren trykkes - skal anlegget stoppes (pumpe 1, pumpe 2, omrører og alarm skal - slås av.) -
- -- Begrepene styring og regulering benyttes ofte med ulik - mening. - Forklar hva som menes med styring. Tegn en figur/skisse som viser - prinsippet. Beskriv to eksempler på systemer som styres. Forklar hva - som menes med regulering. Tegn en figur/skisse som viser prinsippet. - Beskriv to eksempler på systemer som reguleres. -
-- Bør få med at styring normalt ikke benytter - tilbakekobling. Påvirker et system. Men kan også observere. - Trafikklys. Heis. Pakkelinje…… - Regulering bruker tilbakekobling for å oppnå ønsket - resultat. Regulering av nivået i et kar, Cruisekontroll for å holde - hastigheten til en bil, Autopilot for å holde kurs. Holde - temperaturen i et rom…. -
- -- Segway er et batteridrevet kjøretøy på 2 hjul som - balanserer og kjører en person. Den regulerer en prosess som virker - som en invertert pendel. Vis med et blokkskjema hvordan du antar - reguleringssystemet i Segway’en må virke. Forklar hva - blokkene/enhetene som inngår utfører. Hvordan vil du karakterisere - tidskonstantene/tregheten i denne prosessen, og hvordan vil det - påvirke samplingstiden som bør benyttes i reguleringsalgoritmen? Hva - vil skje hvis en velger for lav samplingsfrekvens? -
-- Blokkskjema bør vise hvor komponentene inngår og - tilbakekoblingen. Regulator – pådragsorgan- prosess- måle-element- - summasjonspunktet Tradisjonelt tilbakekoblet system. - Referansen blir satt som en vinkel som skal holde - personen i en loddrett stilling (slik at han/hun ikke faller). - Benytter en vinkelmåler (kan være gyro etc) som indikerer om - personen er loddrett eller ikke. Avviket sendes til - en PID-regulator som genererer pådrag til motorer som kjører hjulene - for å balansere personen. Når personen bikker framover vil - regulatoren kjøre Segway’en framover for å motvirke et fall, og - dermed beveger den seg i riktig retning. Tilsvarende bakover. I - tillegg til å holde en person loddrett, og dermed kjøre rett - fram/eventuelt tilbake kan Seqwayen også styres mot høyre/venstre av - personen som står på den. Det hele fungerer som et system som - balanserer en invertert pendel. Motorene (hjulene) kjøres slik at - håndtaket og personen ikke tipper framover eller bakover. Dette er - en forholdsvis rask prosess med små tidskonstanter (motorstyring), - og en må sample så hurtig at systemet blir stabilt. Seqway benytter - 100Hz for å oppnå dette. Dermed blir regulering mer nøyaktig, stabil - og behagelig. Hadde det blitt benyttet en lav samplingsfrekvens - f.eks 1Hz ville ganske sikkert systemet blitt ustabilt. Personen - ville ha falt framover/bakover før reg.systemet hadde klart å - balansere det loddrett. -
-- Hvorfor er standard Ethernet problematisk å benytte - som en feltbuss? Nyere biler benytter CAN-bus og ODB-2 (On Board - Diagnostics system). Forklar/beskriv hva CAN-bus og ODB-2 har som - oppgave i en bil. -
-- Standard Ethernet er gir ikke sanntids responser. - Kan benyttes på overordnet nivå til HMI, og operatørstasjoner. Hvis - man forbedrer Ethernet slik som ProfiNet og Ethernet/IP. EtherCat, - Så har de sanntidsegensaker som gjør at disse kan benyttes ut mot - felt. -
-- CAN bus (Controller Area Network) is a vehicle bus - standard designed to allow microcontrollers and devices to - communicate with each other within a vehicle without a host - computer. CAN bus is a message-based protocol , designed - specifically for automotive applications but now also used in other - areas such as aerospace, maritime, industrial automation and medical - equipment. CAN bus blir benyttet i ODB-II diagnose system for biler. - Ble introdusert i biler i 1996. Er nå obligatorisk i alle bensin og - diesel biler. Gjør at alle ECU’er i bilen kan snakke sammen. Kan - følgelig overvåke sensorer, aktuatorer, motorstyring ++. - Diagnose-systemet gjør at feil i motor, styriger m.m kan rapporteres - og feilsøkes fra en datamaskin som kjører et diagnose-service - program. -
- -- Reduser blokkdiagrammet og vis at - transferfunksjonen mellom inngang og utgang blir. - \frac{Y(s)}{R(s)} = M(s) = \frac{K}{50s^2 + s + K} -
-- Må først sette opp - åpen sløyfetransferfunksjonen A(S) lik : - K/(s*(1+50s)) Regner så ut følgeforholdet M(s) lik: - A(s)/(1 + A(s)), og da ser vi at svaret blir lik det som er oppgitt. - q.e.d -
- -- De fleste regulatorer har auto-tunings funksjoner. - Forklar hva slags metoder/prinsipper som normalt anvendes ved - auto-tuning? -
-- 1. Bør her kunne forklare kort rele-metoden som - baserer seg på at systemet påtvinges av/på signal i påadraget, og så - observeres utgangen. Systemet blir satt i en kontrollert selvsving. - Og Kritisk forsterkning og svingetid avleses automatisk. Dermed kan - man lage en enkel beregning for P, PI eller PID parametere. 2. En - enklere metode er å påsette sprang (på/av) og - avlese responstider og forsterkning. Ut fra loggede data kan P, PI, - PID parameter anslås. Kalles ofte: - sprangrespons metoden. -
-- Et lydsignal samples, og resultatet er vist på figur 3.1 Signalet - blir testet med en FFT-rutine, og resultatet er vist i figur 3.2. - Benytt figurene, og forklar/beskriv hva slags signal/signaler som er - samplet. Benytt figur 3.2, og sett opp det matematiske uttrykket som - beskriver lydsignalet. -
-- Figur 3.1 viser et periodisk signal. Så det ser ut som det er ulike - sinus-signaler (lyd-frekvenser) som summeres. Figur 3.2 viser dette - klarere. Vi ser tydelig at vi har sinus-frekvenser ved 200, 400, 600 - og 800 Hz. Amplituden er gitt av høyden. Det betyr at det er summen - av 4 sinus-komponenter. Signalet kan skrives som: x(t) = sin - (2*pi*200*t) + 2sin (2*pi*400*t) + 3sin (2*pi*600*t)+ 4sin - (2*pi*800*t) -
-- Kode for en diskret PI-regulator: - u_k = u_{k1} + k_p \cdot (1.0 + \dfrac{T_s}{Ti}) \cdot avvik - - k_p \cdot avvik_1 -
-- Forklar hva den utfører og alle variablene som inngår i uttrykket. - Hva skjer hvis Ti settes svært stor? Hva vil skje hvis vi setter Ts - svært stor? Hvorfor må man begrense uk før verdien benyttes mot en - prosess? -
-- Uttrykket er en typisk numerisk beregning som kan - gjøres av en datamaskin. Framkommer ved å digitalisere den analoge - løsningen for en PI-regulator. ( Ikke krav at det vises). Ledd som - inngår: Uk – nytt beregnet pådrag, Uk1 – Pådraget 1 sampling tilbake - i tid, Kp – regulatorforsterkningen, Ts – samplingstiden, Ti - - Integrasjonstiden, Avvik – nåværende avvik, Avvik1 – avviket 1 - sampling tilbake i tid -
-- Hvis Ti settes stor vil I-virkningen bli borte. Vil virke som en - P-regulator. Stor Ts betyr at vi sampler langsomt. Kan gi - svingninger, og til slutt et ustabilt system. Må begrense pådraget - Uk til max/min verdi som pådragsorganet kan benytte. Hvis ikke vil - systemet fungere dårlig (store oversving), eller at D/A-omformeren - ikke takler verdien i det hele tatt. (Anti-wind up) -
- -- Et analogt høypassfilter er gitt ved av transferfunksjon - \dfrac{Y(s)}{X(s)} = \dfrac{s}{1+0.5s} -
-- Y(s) - Filtrert signal (utgang). X(s) - Signal som skal filtreres - (inngang Du skal lage en diskret ekvivalent. Benytt Eulers metode - med samplingstid T , og f inn den programmerbare differensligningen - som beskriver filteret. Filteret testes med et enhetssprang på - inngangen. Bergen hva responsen blir for k = 0, 1 og 2 -
-- Omformer fra Laplace til tidsplan. Setter så inn - Eulers ekvivalent og regner ut. Det er ikke angitt hva - samplingstiden T skal være. Jeg benytter T=0.01 for å regne helt ut. -
-- \dfrac{Y(s)}{X(s)} = \dfrac{s}{1+0.5s} - \Rightarrow (1+0.5s) \cdot Y(s) = s \cdot X(s) - s-plan: Y(s)+0.5s \cdot Y(s) = s \cdot X(s) -
-- t-plan: y+0.5 \dot{y} = \dot{x} -
-k | -y_k | -y_{k-1} | -x_k | -x_{k-1} | -
---|---|---|---|---|
0 | -1.96 | -0 | -1 | -0 | -
1 | -1.92 | -1.96 | -1 | -1 | -
2 | -1.88 | -1.92 | -1 | -1 | -
- \Rightarrow y_k + 0.5 \cdot \dfrac{y_k - y_{k-1}}{T} = \dfrac{x_k - - x_{k-1}}{T} \cdot T - \Rightarrow Ty_k + 0.5y_k - 0.5y_{k-1} = x_k - x_{k-1} - \Rightarrow y_k(T+0.5) = 0.5y_{k-1} + y_k - y_{k-1} - \Rightarrow \underline{\underline{y_k = \dfrac{0.5}{T+0.5} \cdot - y_{k-1} + \dfrac{1}{T+0.5}(y_k - y_{k-1})}} -
- -- FeltbusserHvorfor IKKE benytte feltbusser? Mer - komplekst utstyr, Mange standarder, Driftere må ha gode - IT-kunnskaper, Revisjon av programvare kan gi - integrasjonsproblemer, Nytt og gammelt utstyr snakker ikke alltid - sammen, Kan «hackes»/forstyrres slik at datamistes eller blir - feil. -
-- Det finnes en rekke feltbusser. Noen busser er mer rettet mot - sensor påbitnivå. (ASI, CAN, IO-link). Noen dekker kommunikasjon - mellom PLS’er og instrumenter. (Profibus-DP, Interbus, Modbus, - DeviceNet, EtherCat.) Noen er rettet mot prosessautomatisering. - (Profibus-PA, Fieldbus H1) Noen er rettet mot overordnede - styringssystemer. (ProfiNet, Ethernet/IP, Fieldbus HSE), samt - ulike ethernet-typer beregnet for sanntidsoperasjoner. -
-- Vanlige feltbusser ASI: Effektiv når det er enkle - digitale signaler mot sensor. IO-Link : Kommunikasjons-Interface. - Punkt til punkt tilkobling mellom sensorer,aktuatorer og PLS’er. - CAN: Control area Network. Mye brukt i bilindustrien. OBD2 diagnose - system for biler. (Seriebus). Profibus-DP: Dekker kommunikasjon - mellom Master (eks. PC/PLS) og distribuerte I/O-enheter som da blir - slaver. Max 12Mbit/s. Max 32 enheter per segment. Benytter RS 485. - Profibus-PA: Benyttes for kommunikasjon motprosessinstrumenter. - 31.25 kBit/sPA nettet kobles mot en DP-Master via en DP til PA - omkobler. Fieldbus Foundation: Konkurrent til Profibus-PA. - Kommunikasjon mot prosessinstrumenter. 31.25 kBit/s. - Funksjonsmoduler (software) i I/O enhetene. Industrielt Ethernet: - Benytter Ethernet med ”programvare/hardware” som sørger for - sanntidsegenskaper. Oppdateringstider mindre enn 10 - 0mikrosekunder.Eks. Profinet, Ethernet/IP, EtherCAT, ModbusTCP -
- -- Måleelement og kalibrering. Må - kalibreremåleelementet slik at vi får mest mulig riktig informasjon - om det fysiske signalet. Må kunne stole på at signalet som angir - resultatet/målingen er riktig. F.eks må alle bensinpumper kalibreres - jevnlig. (Justervesenet.) Veldig viktig ved kjøp og salg av varer. - Viktig for skattelegging. Fiskalemålinger, avgifter. Et måleelement - kalibreres slik at nedre fysiske verdi gir en utgang lik f.eks 4mA, - og høyeste fysiske verdi gir 20mA. Benytte da Zero (angir nullpunkt) - og Span (angir område, maks verdi). -
- -- Digitalisering og sampling. Analoge signaler må - digitaliseres (kvantiseres i tid og verdi) før de kan benyttes av en - datamaskin. Kvantisering i tid kalles sampling/punktprøving. -
- -- Begrensing av pådrag Pådragsorganer har - metningsgrenser. Når disse grensene nås er det uheldig at - regulatoren fortsetter å integrere opp pådraget uk. ådraget kan i en - algoritme bli uendelig stort eller lite. Slike verdier vil ikke ha - noen mening å benytte. NB!!En ventil kan åpnes 100%, det er - meningsløst å si at en ventil skal åpnes 200%. Løsningen er å ikke - la pådraget bli større enn Umax og ikke bli mindre enn Umin. Dette - gjøres enkelt med noen if-setninger. Hvis en slik begrensing (anti - wind-up) ikke legges inn vil det gå uforholdsmessig lang tid før - pådraget bringes tilbake til normalt område igjen etter endringer. - Resultatet vil bli et langvarig oversving. -
-- A. Timere er ofte benyttet i PLS - - programmer. Forklar hvordan de 3 vanligste PLS - Timerne virker, og - gi gjerne eksempel på oppgaver de kan anvendes -
- -- - TON – forsinket innkobling. Når noe ikke skal gå - på før etter en viss tid. F.eks. Roobma (Robert) i et bygg som går - på etter en time etter at sistemann gikk ut døren. -
-- - TOF - Forsinket utkobling. Når noe skal holde seg - på en viss tid etter at innsignalet går av. F.eks. lyset skal stå - på noen sekunder et at er at lysbryteren er slått av. -
-- - TP - Pulstimer. En timer som er på en spesifisert tid. Den slår - seg av etter gitt tid. F.eks. Døråpner. Når man trykker på - bryteren, så åpner døren seg, og holder seg åpen i x sekunder før - den lukker seg igjen. -
-- Bode-diagram: Gm = forsterkningsmargin = - \Delta K, Pm = Fasemargin = - \psi, K = forsterkning -
- -Faseforskyvning = \phi
-- T kalles Systemets tidskonstant, - hurtighet/treghet. Store tidskonstanter gjør systemet tregt. -
-- Tidsforsinkelse betyr at det går en viss tid før - utgangen reagerer på inngangen. Det er da et delay - (dødtid) i systemet. Det medfører at vi får - målinger forsinket i forhold til pådraget. Vi observerer følgelig - ikke momentant virkningen av et pådrag. Dette gjør at et - reguleringssystem må tunes mer forsiktig (må sikre marginer). Kan - gi treg regulering og utfordringer i forhold til stabilitet. -
- -- Holdelementet holder verdien i samplingstiden T - sek. Hold-elementer skaper dødtid. Ofte T/2? -
- -- Forsterkningsmarginen er uendelig, fordi fasen - ikke passer -180 grader. -
- -- Ved sprangrespons må man benytte M(s). - M(s) = \dfrac{a(s)}{1+a(s)}. Maks - oversving burde være på 1.20 (20%) -
-- Beregning av dB-verdier - K(db) = 20log_{10}(K). Legg merke - til at X \cdot 2 \rightarrow 6 dB, - X \cdot 0.5 \rightarrow -6 dB, - X \cdot 10 \rightarrow 20 dB, - X \cdot 0.1 \rightarrow -20 dB -
- -Nullpunkter, poler og tidskonstanter
-- Systemet har 1 nullpunkt. Tidskonstant 2 sek. Systemet har 2 poler - (tidskonstanter 10 sek og 50 sek), samt 1 integrator. Systemet har - en dødtid/tidsforsinkelse på 20 sekunder NB!: Nullpunkter påvirker - dynamikken og responsen til systemet. Polene påvirker dynamikken, - men også om systemet skal være stabilt eller ikke. Dødtid gjør - systemer trege og vanskeligere å regulere. -
-- Tidsrespons Undersøker hvordan et system takler - endringer/påvirkninger. Gir oss informasjon om; Hurtighet, - forsterkning, stabilitet, reaksjonsmønster. -
-- Frekvensrespons Undersøker hvordan et system - takler sinussignaler. Gir oss informasjon om; Båndbredde, - stabilitet, filteregenskaper. Ved å la - \omega variere fra null til uendelig vil - vi kunne finne ut hvordan et system overfører sinussignaler. Vi vil - sitte igjen med informasjon som vi kaller frekvensresponsen til - systemet. Frekvensresponsen til et system (lineært og stabilt) kan - finnes direkte fra transferfunksjonen H(s). Det kan vises at vi - finner frekvensresponsen ved å erstatte s med - j\omega i en transferfunksjon. I Matlab - finner man frekvensresponsen enkelt ved å skrive inn - transferfunksjonen. Legger inn teller og nevner hver for seg, og - benytter deretter tf-funksjonen som lager selve transferfunksjonen. - Når den er inne benyttes BODE()-funksjonen for å beregne og plotte - frekvensresponsen. -
- -- Arbeidspunkt:. Angir det normale - virkeområde(setpunkt/referanse) for en reg.sløyfe. Vi må bestemme - oss for hvor hva referansen normalt er innstilt på. Det har - betydning for tuning av PID-parametrene. Hvis prosessen vi skal - regulere er lineærvil reg.parametrene vi har funnet ved et - arbeidspunkt kunne benyttes når vi endrer arbeidspunkt. Er prosessen - ulineærvil optimale reg.parametre variere med arbeidspunktet som - benyttes. Vi bør derfor tune systemet på nytt når arbeidspunktet - endres. -
- -- Man kan gjøre et ustabil prosess stabil ved å benytte - tilbakekobling. -
- -- RFID Radiofrekvensidentifikasjon (engelsk: radio - frequency identification, RFID) er en metode for å lagre og hente - data ved hjelp av små enheter kalt RFID-brikker. En RFID-brikke er - en liten brikke som kan festes til eller bygges inn i et produkt, et - dyr eller en person. -
-- OPC Open Platform Communications. OPCer en - interoperabilitetsstandardfor sikker og pålitelig datautvekslingi - industriell automatisering/nettverk. Den er plattform uavhengig, og - sikrer sømløs strøm av informasjonmellom enheter fra flere - leverandører. Siste utgave er: OPC-UA (Unified Architecture). Gjør - det mulig å lese/skrive PLS-tagger i sanntid. Er basert på en - klient/server modell. -
-- OPC Data Access (OPC Classic) OPC DA sender over - realtimeverdier fra PLS’er til HMI/SCADA system. Altså tilgang til - realtime prosessdata. Brukes til: Lesing av nåverdier( - Måleinstrumenter, Styresignaler, Beregnede verdier). Og skriving av - nåverdier (Settpunkt i regulator, Startkriterier i - logikk-programmer). - OPC Unified Architecture (UA) Motivasjon: Samler - alle eksisterendespesifikasjoner i enhelhetligmodell. Støtter - kompliserte/rike informasjonsmodeller. Fokus på sikkerhet i - kommunikasjon mellomklient og server. Er tilgjengelig på andre - plattformer enn Win32: Linux, Android, VxWorks, iOS, Android -
- -- Rektangel-integrasjon følger Eulers metode. Vi - deler området under en funksjon/kurve opp i rektangler. Bredden på - en skive er samplingstiden T (i matematikken ofte benyttet delta x). - Det blir da lett å beregne arealet av hver rektangel. Lager et - program som beregner arealet av hvert rektangel /Skive og som - summerer fra startpunkt til endepunkt, Får dermed beregnet det - totale (tilnærmede) areal under kurven. På en måten kan vi enkelt - integrere bestemte funksjoner. -
- -- Simpsons metode benytter parabelbuer istedenfor - rektangler. En slik bue kan bede tilpasses en kurve. Dermed vil også - arealberegningen bli mer nøyaktig -
- -- Programbare ligninger fra analoge uttrykk. - Ligningene fremkommer ved å diskretisere analoge uttrykk. Vi må - benytte diskrete løsninger (numeriske) for derivasjon og - integrasjon. Mange metoder å velge blant. Eulers metoder er enkle. - For integrasjon finnes, rektangel og trapesintegrasjon. Simpsons - metode og andre. For derivasjon kan Eulers forovermetode benyttes, - men også mer avanserte fler-skritts metoder som Runge-Kutta. Ved å - erstatte analoge uttrykk med sine diskrete ekvivalenter fremkommer - en differensligning som kan programmeres. -
- -- Eulers midtpunktsmetodeer en forbedring av Eulers - forovermetode. Den går ut på at man beregner den deriverte i punktet - (t0+ T/2). Og benytter den som et estimat av den deriverte i punktet - (t0, x0) En enda bedre metode går ut på å beregne den deriverte i - flere punkter. Runge-Kutta 4-skritts metode - beregner funksjonsverdien fk i 4 delintervaller mellomt0og t1. Det - er en tyngre metode å utføre, men gir vesentlig bedre resultat enn - enkle metoder som Eulers metoder. -
- -Runge-Kutta: ode45()
-Audioread(): Leser flere lyd-formater
-Audiowrite(): Skriver flere lyd-formater
-- sound(y, Fs): Spiller av samplingene. Ofte 2 kanaler med lyd. - (Stereo) Fs angir samplingsfrekvensen som benyttes. -
-- Pause(): Angir at systemet tar en pause på n - sekunder. Ved lyd: spiller ingenting. -
-- Plot(): plotter valgte feks. samplinger eller - annet. Visualisering. -
-- Flipud(): Snur matrisa bak fram. Ved lyd vil den - bli spilt inn bakfrem -
-- Anta at du skal utføre en PID-regulering, og at algoritmen under - benyttes - uk = u_{k-1} + K(1 + \dfrac{T}{T_i})e_k - Ke_{k-1} - - \dfrac{KT_d}{T}(y_k - 2y_{k-1} + y_{k-2}) -
-- Parametere i algoritmer: uk – beregnet pådrag ved - et gitt samplingspunkt, uk-1 – pådraget en sampling tilbake (gamle - pådraget), ek – nåværende avvikk, ek-1 – avviket en sampling - tilbake, ek-2 – avviket to sampling tilbake, yk - målt verdi, rk - - referanse. Evt. A, B og C er konstanter. -
- -- Numeriske løsninger - Integrasjonsmetoder:Eulers metoder: Enkle men ikke - så nøyaktige. Trapesmetoden_ Mer nøyaktig og enkel å implementere. - Simpsons metode: Meget nøyaktig, men tyngre å implementere. - Differensialapproksimasjoner: Eulers metoder, grove - mhp nøyaktighet, 1-skritts metoder, rask. Runge-Kutta metoden: - Flerskritts metoder. Mer nøyaktige. Trenger desto flere beregninger. - Mye benyttet i simulering. -
-- Viktig: Det er viktig at tidsskrittet T man velger ved numeriske - løsninger (simuleringer) er liten i forhold til systemets dynamikk. - En regel er at man bør velge en skrittlengde T som er minst 10 - ganger mindre enn systemets minste tidskonstant. En annen måte å si - dette på er at en bør velge en samplingsfrekvens som er minst 10 - ganger raskere en den øverste frekvens som skal gjengis tilnærmet - uendret. Velges tids-skrittet T for stor i en numerisk - løsningvilhele simuleringen kunne bli ustabil. Resultatet blir da - helt ubrukelig. -
- -- For å kunne analysere et system/prosess i t-plan trenger vi en - matematisk modell som beskriver hvordan systemet - oppfører seg. Vi kan benytte forskjellige metoderfor å utføre en - slik analyse/simulering. 1. Simulere løsninger ved å - diskretiser edifferensialligningene som beskriver - systemet. Får da programmerbare løsninger (numeriske løsninger). 2. - 2. Vi kan benytte Laplacetransformen. Transformerer - modell-ligningene over i s-plan. Blir da lettere å jobbe med - ”koblede”systemer. Hvis systemet/prosessen er beskrevet med lineære - diff.ligninger kan vi etablere koblinger mellom inngang og utgang - som kalles en transferfunksjon. -
- -- 2015 4B: en liten industriprosess er følgende - koblet opp mot en PLS. -
-- Du skal lage et PLS - program med ladder og/eller funksjonsblokker - som gjør følgende: Når startbryteren trykkes (startsignal) skal - motor 1 kjøres i 2 minutter før den stoppes. Når motor 1 stopper - skal motor 2 kjøres i 4 minutter før den stopper. Hvis - stoppbryteren trykkes (stoppsignal) skal begge motorer stoppe - umiddelbart. Skriv/tegn programmet som løser oppgaven. Forklar - kort hvordan ditt program løser dette. Benytt funksjonsblokker som - du mener er nødvendige -
- -- Kan løses på flere måter. Ettersom start - og stoppbryterne er - touch - brytere må vi sikre at verdiene holdes med en RS - vippe. - Vil benytte en TOF - timer (forsinket utkobling ) blokk som settes - til 2 minutter, samt en RS - blokk og en AND - blokk som vist - under -
- - -- Når startbryteren trykkes og slippes starter TOF, og holder - utgangen høy i 2 minutter. (Forsinket utkobling). Så lenge - stoppbryteren ikke trykkes løper tiden, og motor en vil gå i 2 - minutter ettersom både TOF og RS - vippa har høy utgang. AND - - blokka gir nå på - signal til motoren. Hvis stopp trykkes vil RS - - vippa resettes og AND - blokka vil gi lavt utgangssignal . Motoren - stoppes. Det samme vil skje når timertiden på 2 minutte r utløper. - AND - blokka vil gå lav og stoppe motoren. -
-