Příloha 1 

Popis simulačního jazyka PSI

Obsah kapitoly:

P1.1  Základní prvky jazyka

P1.2  Bloky (funkce) jazyka PSI

P1.3  Uživatelské prostředí jazyka PSI

P1.4  Práce s generátorem funkcí FNG

P1.5  Postup při optimalizaci

PSI je blokově orientovaný simulační jazyk. Byl vyvinut na univerzitě v holandském Delftu a jeho předností pro náš účel je, že je speciálně zaměřen na řešení soustav obyčejných diferenciálních rovnic. Z hlediska uživatele je navíc velice příznivá skutečnost, že základy tohoto jazyka lze zvládnout zhruba za 2 hodiny práce u počítače. Základní jednotkou programu je blok s jedním nebo více vstupy a jedním výstupem. Blok realizuje určitou (nejčastěji matematickou) funkci. Ta je aplikována na hodnoty vstupů do bloku a výsledkem je hodnota na výstupu bloku. Kromě obecných bloků matematického charakteru obsahuje celou řadu speciálních bloků, např. generátory uživatelských funkcí, regulátory, časovače apod. Je opatřen grafickým výstupem s dost širokými možnostmi uživatelských voleb, nebo výstupem formou tabulky. Součástí jazyka jsou i optimalizační metody, které se velmi dobře uplatní při zpracování experimentálních dat a zjišťování hodnot parametrů modelů. Pro numerickou integraci je k dispozici několik metod s pevným i proměnným krokem a s různou přesností výpočtu.

P1.1  Základní prvky jazyka

PROMĚNNÉ

Proměnné jsou definované uživatelem a označují se identifikátory. Identifikátor může být tvořen až 120 znaky (především písmeny a číslicemi), nesmí začínat číslicí, velká a malá písmena se nerozlišují. Identifikátor nesmí obsahovat znaky

  , ; % ( ) ^ * / + - = ! < > | & mezera

a jako identifikátorů se nesmí používat jmen bloků (funkcí) jazyka PSI. Identifikátor PI je vyhrazen pro Ludolfovo číslo, identifikátor TIME označuje nezávisle proměnnou (čas).

VÝRAZY

Výrazy se používají jako vstupy bloků a jsou tvořeny operandy, které jsou spojovány operátory. Většinou se jedná o výrazy aritmetické, ale mohou to být i výrazy logické a kombinované.

Operandy: konstanty, proměnné, standardní matematické funkce, jiné výrazy

Operátory: 

aritmetické: 

^

umocňování

 

 

 

*

násobení 

 

 

dělení

 

 

+

sečítání

 

 

-

odečítání

 

relační:

= =

rovno 

 

 

!=

nerovno

 

 

>

větší než

 

 

<

menší než

 

 

> = 

větší nebo rovno

 

 

< =

menší nebo rovno

 

logické:

logický součin (AND)

 

 

¦

logický součet (OR)

 

 

!

negace (NOT)

 

Priority při vyhodnocování výrazů:

1.

standardní matematické funkce

 

2.

negace

 

 3.

umocňování

 

4.

násobení, dělení

 

5.

sečítání, odečítání

 

6.

relační operace

 

7.

logický součin, logický součet

Změna priorit je možná pomocí závorek. Jsou přípustné pouze kulaté závorky ( ) , které je však možné vkládat do sebe do libovolné hloubky. Výsledkem relačních nebo logických operací je hodnota 1 (je-li výraz pravdivý) nebo 0 (je-li výraz nepravdivý); je to hodnota číselná a lze ji tedy používat i v aritmetických operacích.

STANDARDNÍ MATEMATICKÉ FUNKCE (výběr):

funkce 

význam

argument 

výsledek

SIN(x)

sinus

radiány

<-1,+1> 

CON(x)

kosinus

radiány

<-1,+1> 

TAN(x)

tangens

radiány

(-Ą,+Ą

ASIN(x)

arkussinus

<-1,+1 >

<-p/2,+p/2>

ACOS(x)

arkuskosinus

<-1,+1 >

<0, p

ATAN(x)

arkustangens

(-Ą ,+Ą)

<-p/2,+p/2>

EXP(x)

exponenciála ex

(-Ą,+Ą)

>0 

LN(x)

přiirozený logaritmus

>0

(-Ą,+Ą)

LOG(x)

dekadický logaritmus

>0

(-Ą,+Ą

ABS(x)

absolutní hodnota

(-Ą,+Ą)

<0,+Ą

FIX(x)

celá část x (odřízne desetinnou část)

(-Ą,+Ą)

(-Ą,+Ą)

SIGN(x)

signum x (-1 pro x<0, 0 pro x=0, +1 pro x>0)

(-Ą,+Ą)

-1, 0, +1 

SQRT(x)

druhá odmocnina

(0,+Ą)

(0,+Ą)

MOD(x,z)

zbytek po dělení x/z

     

      

MAX(x,z)

větší z hodnot x,z 

    

    

MIN(x,z)

menší z hodnot x,z