Elektrický výkon v obvodu stejnosměrného proudu

Následující aplet zobrazuje zatěžovací charakteristiku lineárního zdroje elektrického napětí a závislost okamžitého elektrického výkonu na proudu procházejícím obvodem. Pomocí posuvníků lze nastavit hodnoty:
	elektromotorického napětí (Subscript[U, e]) zdroje;
	vnitřní odpor (Subscript[R, i]) zdroje napětí;
	aktuální proud (Subscript[I, aktuální]), pomocí něhož lze "procházet" vykreslené grafy a zobrazovat okamžité hodnoty svorkového napětí zdroje a výkonu.

Okamžité hodnoty výkonu (resp. napětí) se zobrazí pouze tehdy, jsou-li zvoleny současně možnosti Zobrazit graf výkonu a Zobrazit okamžité napětí (resp. Zobrazit graf napětí a Zobrazit okamžitý výkon).
Dále lze volitelně zobrazit hodnoty odporu zátěže obvodu a účinnosti zdroje.

Tlačítkem Ulož obrázek se uloží právě zobrazené "bílé" okno do aktuální složky (složka, v níž je uložen tento notebook) pod jménem, které je uloženo v proměnné jmenosouboru. K tomuto jménu souboru je při opakovaném ukládání grafu přidáváno pořadové číslo.
Pozor! Při každém spuštění tohoto apletu se začínají soubory číslovat opět od jedné! Tak může dojít k přepsání minule uložených obrázků.

© Jaroslav Reichl, 2010

Příprava pro vykreslení grafu

jmenosouboru="el_vykon_.jpg";
cesta=NotebookDirectory[];
pocetulozeni=0;

x1=-10;x2=-x1;
y1=-10;y2=-y1;
stredx=0.5(x2+x1);stredy=0.5(y2+y1);
Ue0=5;Uemin=0.5;Uemax=10;deltaUe=0.5;
Ri0=2;Rimin=0.5;Rimax=5;deltaRi=0.5;
deltaI=0.05;I0=deltaI;Imin=deltaI;Imax=(Uemax/Rimin);

tloustka=0.005;
velikostbodu=0.02;
velikostpisma=18;

barva=Black;
barvaue=barva;
barvari=barva;
barvavykonbod=Red;
barvanapetibod=Blue;
barvavykon=Lighter[barvavykonbod,0.5];
barvanapeti=Lighter[barvanapetibod,0.5];

ElektrickyVykon=Manipulate[Deploy[
U=Ue-Ri Io;
Ik=(Ue/Ri);
P[Io_]=U Io;
Pmax=P[(Ik/2)];
If[aktualniproud>Ik,
aktualniproud=Ik,
""];
Rzatez=((P[aktualniproud])/(aktualniproud^2));
ucinnost=(Rzatez/(Rzatez+Ri));
bodvykon=Point[{aktualniproud,P[aktualniproud]}];
bodvykonIk=Point[{Ik,P[Ik]}];
bodnapeti=Point[{aktualniproud,Ue-Ri aktualniproud}];
bodnapetiIk=Point[{Ik,P[Ik]}];

pisUe=StringJoin[ToString[Style["(Subscript[U, e]) = ",barva],StandardForm],ToString[Style[ToString[Round[Ue,0.1]],barva],StandardForm],ToString[Style[" V",barva],StandardForm]];
pisRi=StringJoin[ToString[Style["(Subscript[R, i]) = ",barva],StandardForm],ToString[Style[ToString[Round[Ri,0.1]],barva],StandardForm],ToString[Style[" Ω",barva],StandardForm]];
pisRzateze=StringJoin[ToString[Style["\!\(\*SubscriptBox[\(R\), \(zátěž\)]\) = ",barva],StandardForm],ToString[Style[ToString[Round[Rzatez,0.1]],barva],StandardForm],ToString[Style[" Ω",barva],StandardForm]];
pisucinnost=StringJoin[ToString[Style["η = ",barva],StandardForm],ToString[Style[ToString[Round[ucinnost,0.01]],barva],StandardForm]];
If[aktualniproud≤Ik,
{pisproud=StringJoin[ToString[Style["(Subscript[I, aktuální]) = ",barva],StandardForm],ToString[Style[ToString[Round[aktualniproud,0.01]],barva],StandardForm],ToString[Style[" A",barva],StandardForm]],
pisvykon=StringJoin[ToString[Style["P",barvavykonbod],StandardForm],ToString[Style[" = ",barva],StandardForm],ToString[Style[ToString[Round[P[aktualniproud],0.01]],barvavykonbod],StandardForm],ToString[Style[" W",barva],StandardForm]],
pisnapeti=StringJoin[ToString[Style["U",barvanapetibod],StandardForm],ToString[Style[" = ",barva],StandardForm],ToString[Style[ToString[Round[Ue-Ri aktualniproud,0.01]],barvanapetibod],StandardForm],ToString[Style[" V",barva],StandardForm]]},
{pisproud=StringJoin[ToString[Style["(Subscript[I, aktuální]) = ",barva],StandardForm],ToString[Style[ToString[Round[Ik,0.01]],barva],StandardForm],ToString[Style[" A",barva],StandardForm]],
pisvykon=StringJoin[ToString[Style["P",barvavykonbod],StandardForm],ToString[Style[" = ",barva],StandardForm],ToString[Style[ToString[Round[P[Ik],0.01]],barvavykonbod],StandardForm],ToString[Style[" W",barva],StandardForm]],
pisnapeti=StringJoin[ToString[Style["U",barvanapetibod],StandardForm],ToString[Style[" = ",barva],StandardForm],ToString[Style[ToString[Round[Ue-Ri Ik,0.01]],barvanapetibod],StandardForm],ToString[Style[" V",barva],StandardForm]]}];

grafik=Show[
If[zobrazitnapeti∧zobrazitvykon,
Plot[{P[Io],U},{Io,0,Ik},PlotStyle->{{Thickness[tloustka],barvavykon},{Thickness[tloustka],barvanapeti}},AxesLabel->{"(I/A)",{Style["(U/V)",barvanapeti],Style["(P/W)",barvavykon]}}],
If[zobrazitnapeti==False∧zobrazitvykon,
Plot[P[Io],{Io,0,Ik},PlotStyle->{{Thickness[tloustka],barvavykon}},AxesLabel->{"(I/A)",Style["(P/W)",barvavykon]}],
If[zobrazitnapeti∧zobrazitvykon==False,
Plot[U,{Io,0,Ik},PlotStyle->{{Thickness[tloustka],barvanapeti}},AxesLabel->{"(I/A)",Style["(U/V)",barvavykon]}],
Plot[0,{Io,0,Ik},PlotStyle->{{Thickness[0.001tloustka],barva}},AxesLabel->{"",""}]]]],
Graphics[{
If[aktualnivykon∧zobrazitvykon,
If[aktualniproud≤Ik,
{barvavykonbod,PointSize[0.8velikostbodu],bodvykon},
{barvavykonbod,PointSize[0.8velikostbodu],bodvykonIk}],
Text[""]],
If[aktualninapeti∧zobrazitnapeti,
If[aktualniproud≤Ik,
{barvanapetibod,PointSize[0.8velikostbodu],bodnapeti},
{barvanapetibod,PointSize[0.8velikostbodu],bodnapetiIk}],
Text[""]]
}],
FormatType->StandardForm,AspectRatio->Automatic,PlotRange->{{stredx,x2},{stredy,y2}},ImageSize->480
]],

{{Ue,Ue0,Style["(Subscript[U, e])",15,barvaue,Italic]},Uemin,Uemax,deltaUe},
{{Ri,Ri0,Style["(Subscript[R, i])",15,barvari,Italic]},Rimin,Rimax,deltaRi},
Delimiter,
{{aktualniproud,I0,Style["(Subscript[I, aktuální])",15,barva,Italic]},Imin,Imax,deltaI},
Delimiter,
Item[Style["Zobrazit",15,barva,FontFamily->Times,Bold,Underlined],Alignment->Left],
{{zobrazitvykon,True,Style["- graf výkonu",15,barvavykon,FontFamily->Times]},{True,False},ControlType->Checkbox},
{{zobrazitnapeti,False,Style["- graf napětí",15,barvanapeti,FontFamily->Times]},{True,False},ControlType->Checkbox},
Delimiter,
{{aktualnivykon,True,Style["- okamžitý výkon",15,barvavykonbod,FontFamily->Times]},{True,False},ControlType->Checkbox},
{{aktualninapeti,False,Style["- okamžité napětí",15,barvanapetibod,FontFamily->Times]},{True,False},ControlType->Checkbox},
{{hodnotaodporuzateze,False,Style["- odpor zátěže",15,barva,FontFamily->Times]},{True,False},ControlType->Checkbox},
{{hodnotaucinnosti,False,Style["- účinnost",15,barva,FontFamily->Times]},{True,False},ControlType->Checkbox},
Delimiter,
Dynamic[
Grid[{
{Item[Style[pisUe,velikostpisma,FontFamily->Times],Alignment->Left]},
{Item[Style[" ",0.25velikostpisma,FontFamily->Times],Alignment->Left]},
{Item[Style[pisRi,velikostpisma,FontFamily->Times],Alignment->Left]},
{Item[Style[" ",0.25velikostpisma,FontFamily->Times],Alignment->Left]},
{If[aktualnivykon∨aktualninapeti,
Item[Style[pisproud,velikostpisma,barva,FontFamily->Times],Alignment->Left],
""]},
{Item[Style[" ",0.25velikostpisma,FontFamily->Times],Alignment->Left]},
{If[aktualnivykon∧zobrazitvykon,
Item[Style[pisvykon,velikostpisma,FontFamily->Times],Alignment->Left],
""]},
{Item[Style[" ",0.25velikostpisma,FontFamily->Times],Alignment->Left]},
{If[aktualninapeti∧zobrazitnapeti,
Item[Style[pisnapeti,velikostpisma,barvanapetibod,FontFamily->Times],Alignment->Left],
""]},
{Item[Style[" ",0.25velikostpisma,FontFamily->Times],Alignment->Left]},
{If[hodnotaodporuzateze,
Item[Style[pisRzateze,velikostpisma,barva,FontFamily->Times],Alignment->Left],
""]},
{Item[Style[" ",0.25velikostpisma,FontFamily->Times],Alignment->Left]},
{If[hodnotaucinnosti,
Item[Style[pisucinnost,velikostpisma,barva,FontFamily->Times],Alignment->Left],
""]}
}]],
Delimiter,
Button[" Ulož obrázek ",{pocetulozeni=pocetulozeni+1,Export[StringInsert[StringJoin[cesta,jmenosouboru],ToString[pocetulozeni],-5],grafik]},ImageSize->{100,Automatic}],
ControlPlacement->Left,
FrameLabel->{Style["© Jaroslav Reichl, 2010",10,Black,FontFamily->Times],"",Style["Elektrický výkon v obvodu stejnosměrného proudu",25,Black,FontFamily->Times],""}];

Spuštění animace
Zpracujte běžným způsobem následující buňku a na dotaz, který se objeví, odpovězte ANO.

ElektrickyVykon