diff --git a/.gitignore b/.gitignore index 49100e9..e93f8cd 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,3 @@ *.ms14 (Security copy) +/report/report.pdf +/report/report_temp.htm diff --git a/report/0_intro.pug b/report/0_intro.pug deleted file mode 100644 index e277d01..0000000 --- a/report/0_intro.pug +++ /dev/null @@ -1 +0,0 @@ -p yada \ No newline at end of file diff --git a/report/0_intro/0_intro.pug b/report/0_intro/0_intro.pug new file mode 100644 index 0000000..8cdbed0 --- /dev/null +++ b/report/0_intro/0_intro.pug @@ -0,0 +1,70 @@ +// Chapter title +h2 Εισαγωγή +br/ + +// Chapter description/introduction +h3 Περίληψη +p. + Στην εργασία αυτή ζητήθηκε ο σχεδιασμός τεσσάρων (4) διαφορετικών φίλτρων, ενός κατωδιαβατού, ενός ζωνοπερατού, ενός ζωνοφρακτικού και ενός ανωδιαβατού. Κατά την ανάθεση των φίλτρων, μου ανατέθηκε ο εξής συνδυασμός φίλτρων-τύπων φίλτρου: + +figure.block-center.width-15cm + table.ui.celled.table.teal.striped.center.aligned + thead + tr + th Φίλτρο + th Τύπος φίλτρου + tbody + tr + td Κατωδιαβατό + td Αντίστροφο Chebyshev + tr + td Ζωνοπερατό + td Chebyshev + tr + td Ζωνοφρακτικό + td Chebyshev + tr + td Ανωδιαβατό + td Butterworth + figcaption + .reference #[span.table-count] + .caption. + Συνδυασμός φίλτρων και υλοποιήσεων (τύπων) φίλτρου προς υλοποίηση + + +h3 Σύμβαση ονοματολογίας και ειδικοί όροι +p. + Στα πλαίσια της εργασίας γίνεται χρήση των εξής όρων με τις αντίστοιχες σημασίες: + +figure.block-center.width-15cm + table.ui.celled.table.teal.striped.center.aligned.compact + thead + tr + th Όρος + th Περιγραφή + tbody + tr + td πόλος + td Μπορεί να εννοείται ζεύγος συζηγών πόλων #[br/](έναντι ενός, μοναδικού πόλου) + tr + td LP + td Low pass filter + tr + td BP + td Band pass filter + tr + td BE + td Band elimination filter + tr + td HP + td High pass filter + tr + td LPN + td Low pass notch filter + tr + td HPN + td High pass notch filter + figcaption + .reference #[span.table-count] + .caption. + Ειδικοί όροι που χρησιμοποιούνται diff --git a/report/1_low_pass/1_low_pass.pug b/report/1_low_pass/1_low_pass.pug index bab1fd6..f5ce985 100644 --- a/report/1_low_pass/1_low_pass.pug +++ b/report/1_low_pass/1_low_pass.pug @@ -1,37 +1,42 @@ +// Chapter title h2 Κατωδιαβατό φίλτρο Inverse Chebyshev -br +br/ + +// Chapter description/introduction p. Με βάση το ΑΕΜ (8261), υπολογίστηκαν οι προδιαγραφές του κατωδιαβατού φίλτρου προς σχεδίαση: figure.block-center.width-15cm - table.ui.celled.structured.table.teal.striped.center.aligned + table.ui.celled.table.teal.striped.center.aligned thead tr th Προδιαγραφή - th(colspan="2") Τιμή + th Τιμή tbody tr - td f#[sub pass] - td 1000 - td 500 + td Pass frequency (f#[sub p]) + td 5500 Hz + tr + td Pass radial frequency (ω#[sub p]) + td 34557.519 rad/s + tr + td Stop frequency (f#[sub s]) + td 11550 Hz tr - td f#[sub stop] - td 1200 - td 500 + td Stop radial frequency (ω#[sub s]) + td 72570.790 rad/s tr - td a#[sub max] - td(colspan="2") 0.6 + td Min stop attenuation (a#[sub min]) + td 23.75 dB tr - td a#[sub min] - td(colspan="2") 24 + td Max pass attenuation (a#[sub max]) + td 0.35 dB figcaption - .reference Πίνακας 1 + .reference #[span.table-count] .caption. Προδιαγραφές σχεδίασης κατωδιαβατού φίλτρου -h3 Σχεδίαση φίλτρου -//h4 Υπολογισμός συνάρτησης μεταφοράς -//h4 Υλοποίηση συνάρτησης μεταφοράς -//h4 Ρύθμιση κέρδους -h3 Μελέτη συνάρτησης μεταφοράς στο Matlab -h3 Υλοποίηση κυκλώματος στο Multisim +// Sub-Chapters +include 1_low_pass_design +include 1_low_pass_transfer_function_matlab +include 1_low_pass_transfer_function_multisim diff --git a/report/1_low_pass/1_low_pass_design.pug b/report/1_low_pass/1_low_pass_design.pug new file mode 100644 index 0000000..523ae9b --- /dev/null +++ b/report/1_low_pass/1_low_pass_design.pug @@ -0,0 +1,128 @@ +h3 Σχεδίαση φίλτρου +p. + Για τη σχεδίαση του φίλτρου ακολουθήθηκε η διαδικασία που περιγράφεται στο κεφάλαιο 9 των σημειώσεων του μαθήματος: + +figure.block-center.width-15cm + div.ui.list.ordered.celled.striped + div.item Υπολογισμός της τάξης του φίλτρου. + div.item Υπολογισμός της συχνότητας ημίσειας ισχύος. + div.item Υπολογισμός των πόλων του πρότυπου φίλτρου Chebyshev. + div.item Υπολογισμός των πόλων του αντίστροφου φίλτρου Chebyshev μέσω αντιστροφής των πόλων Chebyshev. + div.item Υπολογισμός των μηδενικών της συνάρτησης μεταφοράς. + div.item Ομαδοποίηση των ζευγών πόλων και μηδενικών ανά δύο. Με τον τρόπο αυτό προκύπτουν φίλτρα notch, LPN ή HPN, ανάλογα με τις σχετικές θέσεις πόλων και μηδενικών. + div.item Υλοποίηση των φίλτρων notch με βάση τα κυκλώματα του κεφαλαίου 7. + div.item Κλιμακοποίηση του κυκλώματος με στόχο τη μεταφορά στις πραγματικές συχνότητες και σε στοιχεία με πρακτικές (υλοποιήσιμες) τιμές. + div.item Έλεγχος των κερδών των μονάδων και ρύθμιση κέρδους με επιβολή απόσβεσης ή ενίσχυσης. + +h4 Υπολογισμός συνάρτησης μεταφοράς +p Αρχικά σχεδιάζεται ένα πρότυπο κατωδιαβατό Chebyshev φίλτρο, το οποίο αργότερα να μετατραπεί στο επιθυμητό αντίστροφο Chebyshev. + +p Γίνεται κανονικοποίηση των συχνοτήτων ώστε να επιτευχθεί Ω#[sub s]=1 rad/s: + +p.latex-equation. + $$\Omega_p = \frac{\omega_p}{\omega_s} = \frac{34557.519}{72570.790} = 0.476\frac{rad}{s}$$ + +p Υπολογίζεται η τάξη του φίλτρου χρησιμοποιώντας την εξίσωση #[span.course-notes-equation 9-137]: + +p.latex-equation. + $$n = \left \lceil \frac{cos^{-1}\bigg(\sqrt{\frac{10^{\frac{a_{min}}{10}}-1}{10^{\frac{a_{max}}{10}}-1}}\bigg)}{cos^{-1}(\frac{1}{\Omega_p})} \right \rceil = \left \lceil \frac{cos^{-1}\bigg(\sqrt{\frac{10^{2.375}-1}{10^{0.035}-1}}\bigg)}{cos^{-1}(2.1)} \right \rceil = \left \lceil \frac{4.6642}{1.373} \right \rceil = \left \lceil 3.397 \right \rceil = 4$$ + +p. + Από τον παραπάνω τύπο φαίνεται ότι κατά τον υπολογισμό της τάξης του φίλτρου γίνεται στρογγυλοποίηση της τάξης προς τον επόμενο #[strong μεγαλύτερο] ακέραιο. Αυτό γίνεται επειδή δεν είναι δυνατή η υλοποίηση ενός φίλτρου ρητής τάξεως, έτσι είναι απαραίτητο η τάξη να στρογγυλοποιηθή. Η στρογγυλοποίηση είναι σημαντικό να γίνει προς τα επάνω (ceiling) ώστε να επιτευχθούν οι προδιαγραφές του φίλτρου. Μία πιθανή στρογγυλοποίηση προς τα κάτω θα είχε ως αποτέλεσμα την αποτυχία στη σχεδίαση. + +p. + Λόγω της στρογγυλοποίησης αυτής, αναμένεται μάλιστα να υπάρχει υπερκάλυψη σε τουλάχιστον μία από τις προδιαγραφές. Στη συγκεκριμένη περίπτωση, λόγω της επιλογής κανονικοποίησης ως προς την ω#[sub s], αναμένεται να υπάρχει υπερκάλυψη της προδιαγραφής a#[sub max]. + +p. + Στη συνέχεια υπολογίζονται οι παράμετροι ε και α από τις εξισώσεις #[span.course-notes-equation 9-123] και #[span.course-notes-equation 9-92] αντίστοιχα: + +p.latex-equation. + $$\varepsilon = \frac{1}{\sqrt{10^{\frac{a_{min}}{10}}-1}} = \frac{1}{\sqrt{10^{2.375}-1}} = 0.065$$ +p.latex-equation. + $$\alpha = \frac{\sinh^{-1}(\frac{1}{\varepsilon})}{n} = \frac{\sinh^{-1}(\frac{1}{0.065})}{n} = 0.857$$ + +p. + Υπολογίζεται η κανονικοποιημένη συχνότητα ημίσειας ισχύος χρησιμοποιώντας την εξίσωση #[span.course-notes-equation 9-139]: + +p.latex-equation. + $$\Omega_{hp} = \frac{1}{cosh(\frac{1}{n}cosh^{-1}(\frac{1}{\varepsilon}))} = \frac{1}{cosh(\frac{1}{4}cosh^{-1}(\frac{1}{0.065}))} = 0.7196\frac{rad}{s}$$ + +p και στη συνέχεια μεταφέρεται στη πραγματική συχνότητα: + +p.latex-equation. + $$\omega_{hp} = \Omega_{hp} * \omega_s = 0.7196 * 72570.790 = 52222.58\frac{rad}{s}$$ + +p. + Οι γωνίες Butterworth μπορούν να υπολογιστούν με βάση τον αλγόριθμο Guillemin ή να βρεθούν απευθείας από γνωστούς πίνακες γωνιών Butterworth. Για φίλτρο πέμπτης τάξης, οι γωνίες είναι: + +p.latex-equation. + $$\pm 22.5^\circ$$ και $$\pm 67.5^\circ$$ + +p. + Με βάση τις εξισώσεις #[span.course-notes-equation 9-102] και #[span.course-notes-equation 9-103]: + +p.latex-equation. + $$\sigma_k = -\sinh(\alpha)*\cos(\theta)$$ + $$\Omega_k = \cosh(\alpha)*\sin(\theta)$$ + +p προκύπτουν οι πόλοι #[strong Chebyshev]: + +p.latex-equation. + $$\text{Pole 1: } -0.892\pm0.532\mathrm{i}$$ + $$\text{Pole 2: } -0.369±1.284\mathrm{i}$$ + +p. + Χρησιμοποιώντας τις εξισώσεις #[span.course-notes-equation 9-150] και #[span.course-notes-equation 9-151]: + +p.latex-equation. + $$\Omega_{0_k} = \sqrt{\sigma_k^2+\Omega_k^2}$$ + $$Q_k = \frac{1}{2*\cos(\tan^{-1}(\frac{\Omega_k}{\sigma_k}))}$$ + +p υπολογίζονται τα ω#[sub 0] και Q των πόλων αντίστοιχα: + +p.latex-equation. + $$\text{Pole 1: } \Omega_0 = 1.038 \text{, }Q = 0.582$$ + $$\text{Pole 2: } \Omega_0 = 1.336 \text{, }Q = 1.809$$ + +p. + Οι πόλοι αντιστρέφονται χρησιμοποιώντας την εξίσωση #[span.course-notes-equation 9-146] για τον υπολογισμό των ω#[sub 0#[sub k]], ενώ τα Q παραμένουν ίδια: + +p.latex-equation. + $$\omega_{0_k} = \frac{1}{\Omega_{0_k}}$$ + +p. + Από τον μετασχηματισμό προκύπτουν οι πόλοι του #[strong αντίστροφου Chebyshev]: + +p.latex-equation. + $$\text{Pole 1: } \Omega_0 = 0.963 \text{, }Q = 0.582$$ + $$\text{Pole 2: } \Omega_0 = 0.748 \text{, }Q = 1.809$$ + +p. + Κατά τον μετασχηματισμό προκύπτουν επίσης, με βάση την εξίσωση #[span.course-notes-equation 9-143]: + +p.latex-equation. + $$\omega_{z_k} = \sec\big(\frac{k\pi}{2n}\big) \text{, } k=1,3,5,...$$ + +p. + τα μηδενικά της συνάρτησης μεταφοράς; + +p.latex-equation. + $$\text{Zero 1: } 0\pm1.082\mathrm{i}$$ + $$\text{Zero 2: } 0\pm2.613\mathrm{i}$$ + +p. + Οι πόλοι και τα μηδενικά του φίλτρου φαίνονται στο παρακάτω διάγραμμα: + +figure.block-center.width-15cm + img(src="1_low_pass/assets/diagrams/inverse_chebyshev_zero_pole.svg").width-19cm + //- include assets/diagrams/inverse_chebyshev_zero_pole.svg + figcaption + .reference #[span.plot-count] + .caption. + Πόλοι και μηδενικά του αντίστροφου Chebyshev + +h4 Υλοποίηση συνάρτησης μεταφοράς +p. + +h4 Ρύθμιση κέρδους +p. diff --git a/report/1_low_pass/1_low_pass_transfer_function_matlab.pug b/report/1_low_pass/1_low_pass_transfer_function_matlab.pug new file mode 100644 index 0000000..271721a --- /dev/null +++ b/report/1_low_pass/1_low_pass_transfer_function_matlab.pug @@ -0,0 +1 @@ +h3 Μελέτη συνάρτησης μεταφοράς στο Matlab \ No newline at end of file diff --git a/report/1_low_pass/1_low_pass_transfer_function_multisim.pug b/report/1_low_pass/1_low_pass_transfer_function_multisim.pug new file mode 100644 index 0000000..359979f --- /dev/null +++ b/report/1_low_pass/1_low_pass_transfer_function_multisim.pug @@ -0,0 +1 @@ +h3 Υλοποίηση κυκλώματος στο Multisim \ No newline at end of file diff --git a/report/1_low_pass/assets/diagrams/inverse_chebyshev_zero_pole.svg b/report/1_low_pass/assets/diagrams/inverse_chebyshev_zero_pole.svg new file mode 100644 index 0000000..d88d782 --- /dev/null +++ b/report/1_low_pass/assets/diagrams/inverse_chebyshev_zero_pole.svg @@ -0,0 +1,139 @@ + + + diff --git a/report/config.yaml b/report/config.yaml deleted file mode 100644 index e51a8fc..0000000 --- a/report/config.yaml +++ /dev/null @@ -1,2 +0,0 @@ -plugins: - - mathjax \ No newline at end of file diff --git a/report/config.yml b/report/config.yml new file mode 100644 index 0000000..8f4a57c --- /dev/null +++ b/report/config.yml @@ -0,0 +1,2 @@ +plugins: + - mathjax diff --git a/report/report.pdf b/report/report.pdf deleted file mode 100644 index c8cbf66..0000000 Binary files a/report/report.pdf and /dev/null differ diff --git a/report/report.pug b/report/report.pug index 0123cd9..af2cf08 100644 --- a/report/report.pug +++ b/report/report.pug @@ -1,32 +1,32 @@ .report-sidebar: p Σύνθεση Ενεργών και Παθητικών Κυκλωμάτων -br -br -br +br/ +br/ +br/ div.center h2.no-count ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ h2.no-count ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ h2.no-count ΤΟΜΕΑΣ ΗΛΕΚΤΡΟΝΙΚΗΣ - br - br - br - br + br/ + br/ + br/ + br/ h1#title ΣΥΝΘΕΣΗ ΕΝΕΡΓΩΝ ΚΑΙ ΠΑΘΗΤΙΚΩΝ ΚΥΚΛΩΜΑΤΩΝ h3.no-count 7ο εξάμηνο - br - br - br - br + br/ + br/ + br/ + br/ h3.no-count. - Εισηγητής: Θεοχάρης Ι.
+ Εισηγητής: Θεοχάρης Ι.#[br/] Φανάκης Απόστολος, 8261 - br + br/ span Θεσσαλονίκη 2018 div(style="page-break-before:always") //Insert components table here! -include 0_intro +include 0_intro/0_intro include 1_low_pass/1_low_pass //- include 2_band_pass //- include 3_band_elimination diff --git a/report/report.scss b/report/report.scss index 37819ef..9f4ed08 100644 --- a/report/report.scss +++ b/report/report.scss @@ -1,8 +1,13 @@ @import 'https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.3.0/semantic.min.css'; @import 'https://afeld.github.io/emoji-css/emoji.css'; +@import url('https://fonts.googleapis.com/css?family=Lato'); -$primary_color: #009688; +// Constant attributes $page-width: 17cm; +/* #00b5ad ?? */ +$primary_color: #009688; +$sidebar-width: 0.25in; +$sidebar-height: 943px; @page { margin: 1cm 1cm 2cm 0cm; @@ -31,7 +36,7 @@ body { h2 { font-size: 1.8em; - counter-reset: h3; + counter-reset: h3 0 table-counter 0 plot-counter 0; } h2:before { @@ -39,16 +44,37 @@ h2:before { content: counter(h2) ". " } +h3 { + counter-reset: table-counter 0 plot-counter 0; +} + h3:before { counter-increment: h3; content: counter(h2) "." counter(h3) ". " } +span.table-count:before { + counter-increment: table-counter; + content: "Πίνακας " counter(h2) "." counter(h3) "." counter(table-counter) +} + +span.plot-count:before { + counter-increment: plot-counter; + content: "Διάγραμμα " counter(h2) "." counter(h3) "." counter(table-counter) +} + h2.no-count:before, h3.no-count:before { content: ""; counter-increment: none; } +h4:before { + content: "•"; + display: inline-block; + margin-left: 12px; + margin-right: 5px; +} + p { line-height: 1.5em; font-size: 1.1em !important; @@ -60,9 +86,6 @@ a { color: inherit; } -$sidebar-width: 0.25in; -$sidebar-height: 943px; - .report-sidebar { position: fixed; left: -$sidebar-width; @@ -171,4 +194,13 @@ figure { .center { text-align: center; +} + +span.course-notes-equation { + color: $primary_color; +} + +p.latex-equation { + border: 1px solid $primary_color; + border-radius: 4px; } \ No newline at end of file diff --git a/report/report_temp.htm b/report/report_temp.htm deleted file mode 100644 index 0f743eb..0000000 --- a/report/report_temp.htm +++ /dev/null @@ -1,308 +0,0 @@ - - - - - - -

Σύνθεση Ενεργών και Παθητικών Κυκλωμάτων




ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ

ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ

ΤΟΜΕΑΣ ΗΛΕΚΤΡΟΝΙΚΗΣ





ΣΥΝΘΕΣΗ ΕΝΕΡΓΩΝ ΚΑΙ ΠΑΘΗΤΙΚΩΝ ΚΥΚΛΩΜΑΤΩΝ

7ο εξάμηνο





Εισηγητής: Θεοχάρης Ι.
-Φανάκης Απόστολος, 8261


Θεσσαλονίκη 2018

yada

Κατωδιαβατό φίλτρο Inverse Chebyshev


Με βάση το ΑΕΜ (8261), υπολογίστηκαν οι προδιαγραφές του κατωδιαβατού φίλτρου προς σχεδίαση: -

ΠροδιαγραφήΤιμή
fpass1000500
fstop1200500
amax0.6
amin24
Πίνακας 1
Προδιαγραφές σχεδίασης κατωδιαβατού φίλτρου -

Σχεδίαση φίλτρου

Μελέτη συνάρτησης μεταφοράς στο Matlab

Υλοποίηση κυκλώματος στο Multisim

We tend to prefer mark-up languages (Markdown, LaTeX, etc.) to interfaced document editors like MS Office or Google Docs, because they make it easier to quickly write documents with consistent style. However, Markdown is limited to the title/sections/paragraphs structure, and LaTeX has obscure syntax and errors that also make it difficult to go off the beaten tracks. -This report introduces ReLaXed, a solution using Pug and SCSS for document definition and Google Chrome for rendering. -

Web technologies have never looked so good

-

Plenty of CSS frameworks will make sure your documents will look clean and modern. Javascript frameworks can plot schemas, highlight code, or render maths equations the same way LaTeX does. Millions of people (and growing) are now fluent in these technologies. Shorthand languages like Pug and SCSS are finally making it fun to write HTML and CSS. (Headless) web browsers can easily turn all these technologies into PDF, on any platform.

-

As an illustration, it took just one line to import the Semantic UI framework and style this document. Now look at this gorgeous table (don't pay attention to the content, it's place-holder)

-

Here is another cool component provided by Semantic UI:

Give it a try !

The ReLaXed homepage is at github.com/RelaxedJS/ReLaXed
A
ABCDEFGHIJKLMNOa020406080100b
B
Chrome
mermaid
svg
vega-lite
html
pug
pdf
Figure 1
Examples of graphics generated by web frameworks.
This also demonstrates figure composition into panels - suck it, markdown ! -A. Graph defined as a JSON and transformed to SVG using Vega-lite and Chrome. -B. Graph generated using Mermaid and Chrome. -

Next we will have a look at some differences between ReLaXed and other frameworks.

-

ReLaXed vs other solutions

-

Here are a few highlights of what you may win, or lose, using ReLaXed instead -of another solution. This section is of course open to contributions.

-

Let us start with Markdown. This widely supported language (Github, NPM, etc.) -became very popular due to its simple and friendly syntax close to plain text. -Markdown also has cool editors and extensions. One example is -markdown-preview-enhanced -which can render plots, flowcharts, and equations.

-

ReLaXed has been specially extended so that it could support plot, flowchart, -and equations (using the same underlying libraries as -markdown-preview-enhanced), as illustrated in Figure 1. In addition, ReLaXed -allows you to write any kind of layout with boxes, sidebars, etc. HTML -elements are more fun to write with Pug (in markdown, HTML elements must be -written in plain HTML). You can define macros, use conditionals and loops, use -computed expressions using Javascript , and ReLaXed supports (S)CSS which is -pretty cool. Last but not least, you can write parts in markdown if you want -to . Yep, that was an emoji. Cost us one line of -code, to import Emoji CSS as a -stylesheet.

-

Now what about LaTeX ? Sure, LaTeX is wide-spread in academic and publishing -communities, where it's typography and layout optimizations, and its -bibliography management tool are very appreciated. But LaTeX is also known for -its cryptic errors, its complex advanced syntax which not many make the effort -to learn, and as a consequence not many LaTeX venture on the creative side -with their own themes and layouts.

-

Certainly the letter and paragraph spacings won't be as nice in ReLaXed (but -Google Chrome is still doing a very good job), but the syntax, clear error -messages, etc. will certainly make you happier. ReLaXed is also possibly -faster to render big documents (not entirely sure though ).

- - \ No newline at end of file