Pokud jste tento soubor uploadovali a otevřeli v IPython Notebooku (a ne jen ve www prohlížeči),
můžete celý referát vyhotovit v tomto souboru a elektronicky odevzdat (nejlépe ukázat na konci hodiny).
V případě pozdějšího dodání [viz instrukce dole](#odevzdani).

<font color=blue> ZDE NAPIŠTE VAŠE JMÉNA, datum a čas (2x klik sem, po vyplnění potvrďte Shift+Enter)

jména studentů:

datum :
čas cvičení: 7:15? - 8:45?

</font>

Laboratorní úloha F4 – Frekvenční charakteristika kaskády nádrží


Popis úlohy

Regulovaná soustava je systém dvou propojených nádrží kde:

  • akční veličinou $\color{brown}u$ jsou otáčky čerpadla (respektive jim odpovídající napěťový signál), které vhání vodu do horní nadrže.
  • regulovaná veličina $\color{blue}y$ je výška hladiny ve spodní nádobě, která je přímo úměrná snímanému tlaku $\color{blue}P$.


Obr.1: Systém dvou propojených nádrží (uvažují se pouze dvě pravé nádrže)

Realizace pomocí Raspberry Pi (model 2)

Raspberry Pi + GertBoard



Obr.2: GertBoard(vlevo) propojený přes GPIO piny s Raspberry Pi(vpravo).


Obr.3: Popis a umístění rozhraní, které lze na RPi (model B) využít.




Obr.4: Umístění jednotlivých bloků na desce GertBoard.

Obr.5: Připojení motoru čerpadla a tlakového čidla ke GBd [1,2].

SW (open-source)

  • Raspbian - OS pro Raspberry Pi na bázi Linuxu
  • Python 2.7 - skriptovací programovací jazyk [3]
    • Spidev - Tento modul poskytuje komunikaci po SPI sběrnici. V tomto případě je Spidev použit pro komunikaci s AD převodníkem MCP3002.
    • Wiringpi - Poskytuje komunikaci s kontrolérem BD6222, který používá jeden z GPIO pinů na RPi pro pulsně šířkovou modulaci (PWM) a druhý pin pro orientaci motoru.
    • Numpy – Numerický Python pro vědecké výpočty a zpracování dat (analogie Matlabu)
    • Matplotlib – Knihovna grafů pro Python (analogie Matlabu).
    • wxPython – Modul pro vývoj grafických uživatelských prostředí (GUI) v Pythonu.
    • iPython Notebook - Nástroj pro tvorbu dokumentů s interaktivními výpočty v Pythonu pro webové prohlížeče (html, LaTex, Python). Zde je použit ke kompletní dokumentaci a tvorbě vašeho referátu
      Pozn.: Pokud nestihnete úlohu zpracovat při hodině, iPython Notebook spustíte v počítačových učebnách v prostředí Linux z příkazové řádky terminálu příkazem:
      \:> ipython notebook

      Pro instalaci na vlastním počítači lze použít distribuci Anaconda - Python 2.7, viz. odkaz [3]. Případně si můžete vyzkoušet bez instalace online Ipython Notebook na cloud systému [SageMath, viz.[4]](#sagemath)
      (ale úlohu můžete zpracovat i jiným, standardním, způsobem) </ul></ul>

Odkazy

[1]
Matouš Sláma, „Využití mikropočítače Raspberry Pi pro adaptivní identifikaci a řízení hydraulicko-pneumatické soustavy s využitím jazyka Python". Diplomová práce, Ústav přístrojové a řídicí techniky,Fakulta strojní, ČVUT v Praze, 2014.
[2]
Ivo Bukovský, Matouš Sláma, "Platforma pro návrh adaptivního regulátoru, implementaci a testování algoritmů". Workshop ARTEP 2014, Slovensko, 2014. (článek, poster)
[3]
Python 2.7, 32 bit, Anaconda - distribuce Pythonu pro zpacování dat, Continuum Analytics, 2015.

[4]
SageMathCloud™ collaborative computational mathematics - SageMath, IPython, LaTeX, and terminals in your browser , (William Stein, University of Washington, 2013).
[5]
"PPS C4 tutorial Python (vs Matlab).py" minitutoriál Pythonu v rámci cvičení předmětu PPS, ČVUT v Praze, Fakulta strojní.
[6]

</small> </div>

<font color=#00f> Úkol </font>

Úkolem je odměřit frekvenční charakteristiku (alespoň 3 body) frekvenční charakteristiky soustavy.

Budící vstup je akční veličina $\color{brown}u$ jako harmonický signál s volitelnými parametry, při měření je třeba zaznamenat amplitudu a fázi, se kterou buzený systém na výstupu kmitá při různých vstupních frekvencích.

Získané hodnoty znázorněte v amplitudo-fázovém grafu (Bodeho nebo Nyquistova charakteristika)

<font color=#00f> Postup</font>

    1. Na ploše Raspberry Pi spusťe tento interaktivní návod a referát v jednom jako IPython Notebook pomocí skripu (ikonkou) F4-Notebook
    2. Grafické rozhraní úlohy (GUI) spusťe pomocí skriptu (ikonkou) F4-O4-Program

  1. V GUI na záložce “Frequency Characteristics” nastavte počet iterací a vzorkovací periodu pro běh experimentu (tímto se v podstatě nastavuje doba běhu experimentu).
  2. Zvolte si ampitudu $u_a\in<0.5,1>$ [V] (stejnou pro všechna měření) a frekvenci vstupního signálu volte $\omega\in<0.05,0.4>$ [rad/sec] v rámečku “Measurement Control”. (fázový posun (Phase Shift) může být nula)
    Pozn.: Frekvence je nastavována v $rad/sec$ (tj. $\frac{2*\pi}{perioda \ vstupního \ signálu}$, periodu $T$ [sec] buď dopočítejte nebo odměřte z grafu po provedení měření, viz. Obr. 6.
  3. Po dokončení všech nastavení se měření spustí ve dvou krocích:
    1. v grafickém prostředí klikněte na “Start of Experiment”, a
    2. v černém okně konzole ještě jednou potvrďte stiskem klávesy ENTER.

  4. Po skonční experimentu (čerpadlo se vypnulo) klikněte na “Redraw“ pro zobrazení průběhu do grafu.

  5. Hledané body frekvenční charakteristiky lze získat pomocí vztahů (1) nebo (2) z naměřených dat.
  6. </ol>

$$|G(j\omega)|=\frac{y_a}{u_a} \ \ \ [/],$$
(1)
$$|G(j\omega)|_{log}=20\cdot log\left(\frac{y_a}{u_a}\right) \ \ \ \ [dB].$$
(2)

Pro určení fázového posuvu výstupního oproti vstupnímu signálu:

$$\Phi=-\frac{\Delta T}{T}\cdot 2\pi \ \ \ [rad].$$
(3)


Obr 6. GUI pro frekvenční charakteristiku (main.py)

EXPERIMENT

Naměřená data

Následují pole pro interaktivní výpočty vizualizaci dat v Pythonu.
Doplňte naměřená data a proveďte pole se skriptem stiskem Shift+Enter

Naměřená data po každém experimentu zapište do následující buňky (2x na ní klikněte):

In [1]:
from numpy import *

omega=array((0.05,...,...))   
ya=array((...,...,...))    
ua=array((0.5,...,...))
DeltaT=array((...,...,...))

T=...

Doplňte v následující buňce další potřebné výpočty a proveďte je:

In [1]:
absG=ua/ya

Phi=...

Vykreslete grafy v následující buňce:

In [1]:
%matplotlib inline
from matplotlib.pyplot import *

subplot(211)
plot(omega,absG)
xlabel('omega'),ylabel('|G|'),grid()

subplot(212)
loglog(omega,Phi)
xlabel('omega'),ylabel('Phi [rad]'),grid()

#...a dalsi

<font color=blue>Závěr</font>

<font color=blue> Zde napište závěr - faktické slovní zhodnocení měření (vliv vstupní frekvence na přenos a fázové posunutí, atd ...)

Zajímal by nás i váš názor na úlohu a použité technologie (prosíme nehodící se smažte):
použitý HW: nezaujalo / není podstatné / zaujalo ... další komentář
použitý SW: nezaujalo / není podstatné / zaujalo ... další komentář
interaktivní formulář: měli jste problémy? jaké? </font>

Uložení a odevzdání vašeho referátu

Vytvoření PDF:

Otevřete náhled tisku tohoto souboru v menu IPython Notebooku File/Print Preview
V hlavním menu tohoto www prohlížeče vytiskněte tento náhled do formátu pdf (tlačítko vpravo nahoře) a váš pdf soubor :
a) uploadujte do vaší domovské složky na serveru fsh.fsid.cvut.cz, pomocí ftp klienta bareFTP (nebo Midnight Commander)
b) nebo si uložte na svůj usb flashdisk.

Uložení interaktivního notebooku:

Zdrojový kód tohoto interaktivního referátu je soubor s příponou .ipynb, který zde běží na virtuálním serveru interaktivního Pythonu s IP adresou 127.0.0.1
Tento zdrojový soubor získáte stažením v horním menu Notebooku přes File/Download as/IPython (.ipynb)
Pro eventuelní další zpracování v IPython notebooku (např. v Linuxu v pc učebnách nebo pokud si sami nainstalujete Python, viz. odkaz [3]) si tento interaktivní referát opět můžete přímo uploadovat do vaší domovské složky na serveru fsh.fsid.cvut.cz, pomocí ftp klienta bareFTP (nebo Midnight Commander) a nebo uložit na váš usb flashdisk.

Referát si nechte zkontrolovat na konci hodiny. Pokud je dokončen, máte hotovo. Na nutnosti výtisku se dohodněte se svým vyučujícím.

Pokud se referát rozhodnete dokončit později a nebo i zpracovat jinak(Word, Libre, LaTex, Matlab, Excel), odevzdáváte vytištěný referát.
Při pozdějším dopracování a pro tisk mužete nadbytečné obrázky a texty z tohoto souboru odstranit (viz nůžky v menu - Cut Cell)

Tento soubor si nechte zkontrolovat a uložte si jej jako referát vaší skupiny.
Pro zájemce je možné zorganizovat krátký seminář jak pracovat v IPython Notebooku, viz. ivo.bukovsky @ fs.cvut.cz.

This website does not host notebooks, it only renders notebooks available on other websites.

Delivered by Fastly, Rendered by Rackspace

nbviewer GitHub repository.

nbviewer version: 89297bd

nbconvert version: 5.3.1

Rendered (Sun, 24 Sep 2017 17:36:21 UTC)