Počítačové modelování dynamických soustav

Post on 07-Jan-2016

44 views 0 download

description

Počítačové modelování dynamických soustav. 1. cvičení (úvod). katedra elektrotechniky a automatizace. Miloslav LINDA. Co je MATLAB!. - integrované prostředí pro vědeckotechnické výpočty; - obsahuje grafické a výpočetní nástroje; - intuitivní rozhraní Matlab Desktop; - PowerPoint PPT Presentation

transcript

Počítačové modelování Počítačové modelování dynamických soustavdynamických soustav

1. cvičení1. cvičení(úvod)(úvod)

Miloslav LINDAMiloslav LINDAkatedra elektrotechniky a automatizacekatedra elektrotechniky a automatizace

Co je MATLAB!Co je MATLAB!

- integrované prostředí pro vědeckotechnické výpočty;- integrované prostředí pro vědeckotechnické výpočty;

- obsahuje grafické a výpočetní nástroje;- obsahuje grafické a výpočetní nástroje;

- intuitivní rozhraní Matlab Desktop;- intuitivní rozhraní Matlab Desktop;

- programovací jazyk 4 generace,- programovací jazyk 4 generace,

- více než 1000 funkcí,- více než 1000 funkcí,

- objektově orientované programování;- objektově orientované programování;

- tvorba grafických uživatelských rozhraní (GUI);- tvorba grafických uživatelských rozhraní (GUI);

- možnost tvorby spustitelných programů, bez nutnosti - možnost tvorby spustitelných programů, bez nutnosti plné instalace MATLABu.plné instalace MATLABu.

Oblasti využití systému Oblasti využití systému MATLABMATLAB

- tradiční- tradiční

- letectví, kosmonautika;- letectví, kosmonautika;

- automobilový průmysl;- automobilový průmysl;

- automatizace a strojnictví;- automatizace a strojnictví;

- komunikace, elektronika, polovodiče;- komunikace, elektronika, polovodiče;

- nově vznikající- nově vznikající

- finance, ekonomika;- finance, ekonomika;

- energetika;- energetika; - přírodní vědy.- přírodní vědy.

Oblasti využití systému Oblasti využití systému MATLABMATLAB

- oblasti použití se neustále rozšiřují, tak jak se rozšiřují - oblasti použití se neustále rozšiřují, tak jak se rozšiřují možnosti MATLABu;možnosti MATLABu;

- v MATLABu je možné si tvořit vlastní knihovny, scripty, - v MATLABu je možné si tvořit vlastní knihovny, scripty, funkce, aplikační prostředí.funkce, aplikační prostředí.

- tímto je možné ho použít na cokoli, od aplikací pro - tímto je možné ho použít na cokoli, od aplikací pro zpracování obrazu, přes finance až po simulace pro zpracování obrazu, přes finance až po simulace pro letecký průmysl.letecký průmysl.

Tok informací a datTok informací a dat

vstupyvstupy

- data aplikací, excelovské tabulky, exportovaná data;- data aplikací, excelovské tabulky, exportovaná data;

- vstupem může být cokoli, co má maticovou strukturu - vstupem může být cokoli, co má maticovou strukturu dat.dat.

řešenířešení

- řešení v prostředí Matlab, scripty, GUI aplikace.- řešení v prostředí Matlab, scripty, GUI aplikace.

výstupvýstup

- export do souborů, výstup do speciálních - export do souborů, výstup do speciálních uživatelských systémů, maticový výstup.uživatelských systémů, maticový výstup.

použití + přednostipoužití + přednosti

- matematika a výpočty;- matematika a výpočty;

- vývoj algoritmů, scripty, vlastní funkce;- vývoj algoritmů, scripty, vlastní funkce;

- modelování a simulace;- modelování a simulace;

- vývoj aplikací včetně grafického rozhraní (GUI) + - vývoj aplikací včetně grafického rozhraní (GUI) + přenos dat mezi GUI a funkcemi či scripty;přenos dat mezi GUI a funkcemi či scripty;

- možnost rozšiřování o vlastní funkce;- možnost rozšiřování o vlastní funkce;

- toolboxy - orientované balíky hotových funkcí,- toolboxy - orientované balíky hotových funkcí,

- modulární.- modulární.

Matlab - prostředíMatlab - prostředí

Command WindowCommand Window

WorkspaceWorkspace

CommandCommandHistoryHistory

Matlab - prostředíMatlab - prostředí

WorkspaceWorkspace

- prostor kam MATLAB ukládá proměnné, pro jejich - prostor kam MATLAB ukládá proměnné, pro jejich další úpravu a editaci;další úpravu a editaci;

Command WindowCommand Window

- okno příkazového řádku; v něm je možné zadávat - okno příkazového řádku; v něm je možné zadávat příkazy, není vhodný pro scripty;příkazy, není vhodný pro scripty;

Command HistoryCommand History

- okno historie; v něm se ukládá posloupnost - okno historie; v něm se ukládá posloupnost prováděných příkazů od spuštění MATLABu.prováděných příkazů od spuštění MATLABu.

Základy práce s programemZáklady práce s programem

- CTRL + C - přerušení prováděného příkazu, přerušení - CTRL + C - přerušení prováděného příkazu, přerušení scriptuscriptu

- klávesy šipka nahoru a dolu použité v příkazovém - klávesy šipka nahoru a dolu použité v příkazovém řádku slouží k procházení historiířádku slouží k procházení historií

- klávesa ESC vymaže celý řádek- klávesa ESC vymaže celý řádek

nápovědanápověda

help help - nápověda- nápověda

help help příkazpříkaz - vyhledá nápovědu k příkazu, výpis - vyhledá nápovědu k příkazu, výpis nápovědy do okna příkazového řádkunápovědy do okna příkazového řádku

helpwin helpwin - spustí okno helpu- spustí okno helpu

info info - informace o Matlabu a Mathworks- informace o Matlabu a Mathworks

version version - verze Matlabu- verze Matlabu

základy programovánízáklady programování

- pokud se nám nevejde kód na jednu řádku, použijeme pro - pokud se nám nevejde kód na jednu řádku, použijeme pro oddělení oddělení ‘‘......’’ + ENTER a na další řádku zapíšeme zbytek + ENTER a na další řádku zapíšeme zbytek kódukódu

x=x=[[1 3 5 8 ...1 3 5 8 ...

12 15 4812 15 48]]

- středník - středník ‘‘;;’’ použitý za příkazem potlačí výpis hodnot použitý za příkazem potlačí výpis hodnot

- na jednom řádku může být i více příkazů, musí však být - na jednom řádku může být i více příkazů, musí však být odděleny buď čárkou odděleny buď čárkou ‘‘,,’’ nebo středníkem nebo středníkem ‘‘;;’’, čárka oproti , čárka oproti středníku nepotlačuje výpis hodnot, slouží jen k oddělení středníku nepotlačuje výpis hodnot, slouží jen k oddělení příkazůpříkazů

základy programovánízáklady programování

ansans

- je proměnná do které se ukládá nejaktuálnější - je proměnná do které se ukládá nejaktuálnější výsledek, tvoří se automaticky při výpočtu, který není výsledek, tvoří se automaticky při výpočtu, který není směřován do proměnnésměřován do proměnné

- pokud proběhne výpočet a nevypíše se výsledek, zobrazí - pokud proběhne výpočet a nevypíše se výsledek, zobrazí se buď se buď inf (jako nekonečno)inf (jako nekonečno) nebo nebo NaN(nejde o číslo)NaN(nejde o číslo)

Základní příkazyZákladní příkazy

clear allclear all- smaže všechny proměnné- smaže všechny proměnné

clcclc- vymaže command window- vymaže command window

clfclf- vymaže aktuální figuru- vymaže aktuální figuru

echo echo on/offon/off- umožňuje vypisovat při spuštění M-file, výsledky - umožňuje vypisovat při spuštění M-file, výsledky

i komentáře jednotlivých řádků, ignoruje středníki komentáře jednotlivých řádků, ignoruje středník

základní příkazyzákladní příkazy

close close jménojméno- uzavře námi požadovanou figuru-graf- uzavře námi požadovanou figuru-graf

close allclose all- uzavře všechna okna- uzavře všechna okna

dirdir- vypíše obsah aktuálního adresáře- vypíše obsah aktuálního adresáře

pathpath- vypíše všechny přístupné adresáře- vypíše všechny přístupné adresáře

základní příkazyzákladní příkazy

whatwhat- vypíše soubory Matlabu podle typu z aktuálního - vypíše soubory Matlabu podle typu z aktuálního

adresářeadresáře

type type jménojméno- vypíše obsah souboru typu M, bez otevření editoru- vypíše obsah souboru typu M, bez otevření editoru

whowho- vypíše veškeré použité proměnné- vypíše veškeré použité proměnné

whoswhos- jako - jako whowho, jen detailní, jen detailní

základní příkazyzákladní příkazy

workspaceworkspace- otevře workspace, obdoba whos, ale s tím, že je - otevře workspace, obdoba whos, ale s tím, že je

možná jejích editacemožná jejích editace

editedit- otevře Matlab editor/debugger- otevře Matlab editor/debugger

edit edit jménojméno- otevře M-file v Matlab editor/debugger- otevře M-file v Matlab editor/debugger

clear clear jménojméno- vymaže zadanou proměnnou- vymaže zadanou proměnnou

základní příkazyzákladní příkazy

size(A)size(A) size(x)size(x)- slouží ke zjištění velikosti matice- slouží ke zjištění velikosti matice

length(t)length(t)- vrací délku řetězce nebo větší rozměr matice- vrací délku řetězce nebo větší rozměr matice

inputinput- vstup z klávesnice- vstup z klávesnice x=input(x=input(’’zadej x: zadej x: ’’))

dispdisp- výpis na obrazovku - výpis na obrazovku disp(disp(‘‘ahojahoj’’))

základní příkazyzákladní příkazy

pause(n)pause(n)- pozastavení programu, n udává počet sekund - pozastavení programu, n udává počet sekund

čekáníčekání

pausepause- pozastavení do stisku klávesy- pozastavení do stisku klávesy

pwdpwd- výpis aktuální adresářové cesty z Matlabu- výpis aktuální adresářové cesty z Matlabu

diarydiary- ukládání obsahu příkazového okna do souboru- ukládání obsahu příkazového okna do souboru

základní příkazyzákladní příkazy

ceditcedit- nastavení parametrů řízení editace příkazového - nastavení parametrů řízení editace příkazového

řádkuřádku

homehome- nastavení kurzoru vlevo nahoru- nastavení kurzoru vlevo nahoru

moremore- řízení stránkového výstupu v příkazovém okně- řízení stránkového výstupu v příkazovém okně

lasterrlasterr- vypsání poslední chyby- vypsání poslední chyby

základní příkazyzákladní příkazy

errorerror- zobrazení hlášení a ukončení funkce- zobrazení hlášení a ukončení funkce

menumenu- vytvoření jednoduchého klikacího menu- vytvoření jednoduchého klikacího menu

clockclock- datum a čas- datum a čas

datedate- datum- datum

základní příkazyzákladní příkazy

savesave- uloží veškeré proměnné od použití clear all- uloží veškeré proměnné od použití clear all

save filenamesave filename- totožné jako save, jen je uloží do námi zvoleného - totožné jako save, jen je uloží do námi zvoleného

souborusouboru

save filename variablessave filename variables- jako save + uloží jen námi zvolené proměnné- jako save + uloží jen námi zvolené proměnné

save filename optionssave filename options- můžeme navíc volit v jakém tvaru se bude ukládat - můžeme navíc volit v jakém tvaru se bude ukládat

základní příkazyzákladní příkazy

save filename variables optionssave filename variables options - můžeme navíc volit v jakém tvaru se bude ukládat - můžeme navíc volit v jakém tvaru se bude ukládat

options:options: -ascii-ascii 8-číselný ascii formát8-číselný ascii formát

-ascii -double-ascii -double 16-číselný ascii formát16-číselný ascii formát

-ascii -tabs-ascii -tabs 8-číselný ascii formát, oddělené tab.8-číselný ascii formát, oddělené tab.

-ascii -double -tabs-ascii -double -tabs

-V4-V4 ve formátu Matlab verze4.0ve formátu Matlab verze4.0

-append-append na konec souboru(pouze pro *.mat)na konec souboru(pouze pro *.mat)

základní příkazyzákladní příkazy

příkladypříkladysave promenne.mat c dsave promenne.mat c d

save promenne.mat e -appendsave promenne.mat e -append

save promenne.txt c d e -ascii -tabssave promenne.txt c d e -ascii -tabs

save promenne.txt c d e -ascii -tabs -doublesave promenne.txt c d e -ascii -tabs -double

základní příkazyzákladní příkazy

loadload- otevře matlab.mat v aktuálním adresáři- otevře matlab.mat v aktuálním adresáři

load filenameload filename- otevře filename.mat v aktuálním adresáři- otevře filename.mat v aktuálním adresáři

load (load (‘‘C:C:\\matlab65matlab65\\workwork\\filenamefilename’’))- otevře filename.mat se zadanou cestou- otevře filename.mat se zadanou cestou

load filename -asciiload filename -ascii- otevře soubor s čísly, uloží ho do proměnné se - otevře soubor s čísly, uloží ho do proměnné se

stejným názvem, nemusí být vytvořen v Matlabu stejným názvem, nemusí být vytvořen v Matlabu

základní příkazyzákladní příkazy

loadload filename -matfilename -mat- otevře soubor typu mat, tedy vytvořené v - otevře soubor typu mat, tedy vytvořené v

MatlabuMatlabu

příkladypříkladyload promenne -matload promenne -mat

load(load(‘‘C:\MATLAB6p5\workC:\MATLAB6p5\work\\promenne.matpromenne.mat’’))

ProměnnéProměnné

- proměnné musí začínat písmenem a mohou mít 31znaků- proměnné musí začínat písmenem a mohou mít 31znaků

- rozlišují se malá a velká písmena- rozlišují se malá a velká písmena

globalglobal- definování globálních proměnných- definování globálních proměnných

Zaokrouhlování číselZaokrouhlování čísel

round(x)round(x)- zaokrouhlí - zaokrouhlí xx směrem k nejbližšímu celému číslu směrem k nejbližšímu celému číslu

fix(x)fix(x)- odřízne desetinnou část- odřízne desetinnou část

floor(x)floor(x)- zaokrouhlí - zaokrouhlí xx směrem k nižšímu celému číslu směrem k nižšímu celému číslu

ceil(x)ceil(x)- zaokrouhlí - zaokrouhlí xx směrem k vyššímu celému číslu směrem k vyššímu celému číslu

dalšídalší

sqrtsqrt - druhá odmocnina- druhá odmocnina

expexp - exponenciální funkce- exponenciální funkcenebonebo

^̂ - odmocnina- odmocnina, , mocninamocnina

loglog - přirozený logaritmus- přirozený logaritmus

log10log10 - dekadický logaritmus- dekadický logaritmus

Funkce pro práci se souboryFunkce pro práci se soubory

fopenfopen - otevření souboru- otevření souboru

fclosefclose - zavření souboru- zavření souboru

fgetlfgetl - čtení řádku ze souboru, ruší znak konce řádky- čtení řádku ze souboru, ruší znak konce řádky

fgetsfgets - čtení řádku ze souboru, zachovává znak konce - čtení řádku ze souboru, zachovává znak konce řádkyřádky

fprintffprintf - zápis formátovaných dat do souboru- zápis formátovaných dat do souboru

fscanffscanf - čtení formátovaných dat ze souboru- čtení formátovaných dat ze souboru

funkce pro práci se souboryfunkce pro práci se soubory

feoffeof - test konce souboru- test konce souboru

fseekfseek - nastavení pozice souboru- nastavení pozice souboru

ftellftell - nastavení pozice v souboru- nastavení pozice v souboru

sprintfsprintf - zápis formátovaných dat do řetězce- zápis formátovaných dat do řetězce

sscanfsscanf - čtení formátovaných dat z řetězce- čtení formátovaných dat z řetězce

tempnametempname- generování jedinečného jména souboru- generování jedinečného jména souboru

funkce pro práci se souboryfunkce pro práci se soubory

csvreadcsvread - načtení souboru s čísly oddělenými - načtení souboru s čísly oddělenými čárkami čárkami do maticedo matice

csvwritecsvwrite - zapsání matice do souboru s čísly - zapsání matice do souboru s čísly oddělenými čárkamioddělenými čárkami

dlmreaddlmread - načtení souboru s čísly oddělenými ASCII - načtení souboru s čísly oddělenými ASCII znakem do maticeznakem do matice

dlmwritedlmwrite - zapsání matice do souboru s čísly - zapsání matice do souboru s čísly oddělenými ASCII znakemoddělenými ASCII znakem

M-fileM-file

- tvorba scriptu- tvorba scriptu

- vytvoření - vytvoření file - new - m-filefile - new - m-file

- psaní příkazů se stejnými pravidly jako v - psaní příkazů se stejnými pravidly jako v command windowcommand window

- komentáře jsou uvozené - komentáře jsou uvozené %%

Ukázka programuUkázka programu

spouštění scriptuspouštění scriptu

tělo scriptutělo scriptu

kometářekometáře

doplněnídoplnění

- měření času průběhu programu, příkazy - měření času průběhu programu, příkazy tictic a a toctoc

tictic- zapne časovač- zapne časovač

toctoc-vypne časovač a vypíše čas v sekundách-vypne časovač a vypíše čas v sekundách

zatím konec, další příštězatím konec, další příště