Download - Počítačové modelování dynamických soustav
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ě