ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΌΠΎΠ΄Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ
ΠΡΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° ΠΠ Π£1() ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ mp. MP1Y-PB.cpp ΠΠΎΠ΄. ΡΠ΅Π³ΡΠ»ΡΡΠΎΡ Ρ Π½Π°Π±Π»ΡΠ΄Π°ΡΠ΅Π»Π΅ΠΌ ΠΈ ΡΠΏΡΠ΅Π΄ΠΈΡΠ΅Π»Π΅ΠΌ. Float E, EL, E1, EY, MIY, U;//ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΠ°Π·ΠΎΠ²ΠΎΠ³ΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ. Cout <<" Ki" <<" «<<» Kp" <<" «<<» K1β³ <<" «<<» Bp"; Cout <<" M" <<" «<<» A" <<" «<<» B1β³ <<" «<<» B2 «; ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΏΡΠ΅ΠΆΠ΄Π°ΡΡ Π½Π° Π+1 ΡΠ°ΠΊΡ. Void MOY1: koefmo1(float K, float T, float H, float TK… Π§ΠΈΡΠ°ΡΡ Π΅ΡΡ >
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΌΠΎΠ΄Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ (ΡΠ΅ΡΠ΅ΡΠ°Ρ, ΠΊΡΡΡΠΎΠ²Π°Ρ, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½Π°Ρ)
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΌΠΎΠ΄Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠΈΡΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π½Π°ΠΏΠΈΡΠ°Π½Π° Π½Π° ΡΠ·ΡΠΊΠ΅ Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ Π‘++. ΠΠ΅ Π»ΠΈΡΡΠΈΠ½Π³ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. ΠΠ»Ρ ΡΡΠ°Π½ΡΠ»ΡΡΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Borland C++ Π²Π΅ΡΡΠΈΠΈ 2.0.
Π Π½Π°ΡΠ°Π»Π΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΡΠ°ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ Π±ΡΠ΄Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅. ΠΠ°Π»Π΅Π΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΡΡΠ΄ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ , Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΡ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠ° Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ INTERRUP. EXE, ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±ΡΠ»ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΏΠ»Π°ΡΡ Π¦ΠΠ-ΠΠ¦Π. ΠΡΠΎΡ Π΄ΡΠ°ΠΉΠ²Π΅Ρ Π·Π°Π³ΡΡΠΆΠ°Π΅ΡΡΡ Π»ΠΈΡΡ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΡΡ ΠΏΠ°ΠΌΡΡΡ ΠΠΠ Π΄ΠΎ Π½Π°ΡΠ°Π»Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ MP1Y-PB.cpp. ΠΡΠΎΠΌΠ΅ ΡΡΠΎΠ³ΠΎ, Π΄Π»Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠ»Π°ΡΡ Π¦ΠΠ-ΠΠ¦Π ΡΠ»ΡΠΆΠΈΡ ΡΡΠ½ΠΊΡΠΈΡ inicial (), Π° Π΄Π»Ρ Π²Π²ΠΎΠ΄Π° ΠΈ Π²ΡΠ²ΠΎΠ΄Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ — ΡΡΠ½ΠΊΡΠΈΠΈ getADC (), setDAC (), update ().
Π ΠΊΠ»Π°ΡΡΠ΅ ΠΠΠ£1 ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° ΡΡΠ½ΠΊΡΠΈΡ koefmo1() Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½ΡΠΎΠ² ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π1,Π1,Π2. Π ΠΊΠ»Π°ΡΡΠ΅ ΠΠ Π£1 ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ KP, K1, KI — ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½ΡΡ ΠΌΠΎΠ΄Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅Π³ΡΠ»ΡΡΠΎΡΠ°. ΠΠ΄Π΅ΡΡ ΠΆΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΠ Π£1() ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ koefmp () Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½ΡΠΎΠ² ΠΌΠΎΠ΄Π°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅Π³ΡΠ»ΡΡΠΎΡΠ° ΠΈ mreg () Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ.
Π ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ ΡΠ°ΡΡΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ (ΠΏΠΎΡΠ»Π΅ main ()) ΡΠ½Π°ΡΠ°Π»Π° ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΠ΅ΠΆΠΈΠΌΠ° ΡΠ°Π±ΠΎΡΡ Π΄ΠΈΡΠΏΠ»Π΅Ρ, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°Π±Π»ΡΠ΄Π°ΡΡ Π³ΡΠ°ΡΠΈΠΊΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π²ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. ΠΠ°Π»Π΅Π΅ Π·Π°Π΄Π°Π΅ΡΡΡ ΠΏΠ΅ΡΠΈΠΎΠ΄ Π’Π ΠΊΠ²Π°Π½ΡΠΎΠ²Π°Π½ΠΈΡ (ΠΎΠΏΡΠΎΡΠ°) Π² ΡΠΈΠΊΠ°Ρ ΡΠ°ΠΉΠΌΠ΅ΡΠ° BIOSΠ° ΠΠΠ. ΠΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠΈΠΎΠ΄Π° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΎ Π’Π=1ΡΠΈΠΊΡ =1/18.2 Ρ = 0.0549 Ρ.
Π‘ΡΠΎΠ»Ρ ΠΌΠ°Π»ΡΠΉ ΠΏΠ΅ΡΠΈΠΎΠ΄ ΠΊΠ²Π°Π½ΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π²ΡΡΠΎΠΊΠΎΠ΅ Π±ΡΡΡΡΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΠΠ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΌΠ°Π»ΠΎΠΈΠ½Π΅ΡΡΠΈΠΎΠ½Π½ΡΠΌΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΡΠ²Π»ΡΡΡΡΡ ΡΠ΅ΠΏΠ»ΠΎΠ²ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ.
ΠΡΠΈ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ° ΠΠ Π£1() ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΎΠ±ΡΠ΅ΠΊΡ Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ mp.
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΡΠ°Π·ΡΠ΅ΡΠ°Π΅Ρ ΡΠ°ΠΊΠΆΠ΅ Π²Π²ΠΎΠ΄ΠΈΡΡ Ρ ΠΊΠ»Π°Π²ΠΈΠ°ΡΡΡΡ Π² Π»ΡΠ±ΠΎΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π½ΠΎΠ²ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π²Π΅Π»ΠΈΡΠΈΠ½ XZ — ΡΠΈΠ³Π½Π°Π» Π·Π°Π΄Π°Π½ΠΈΡ, ΠΠ — ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½Ρ ΡΠ΅Π³ΡΠ»ΡΡΠΎΡΠ°, bp — ΠΊΠΎΡΠ΅Π½Ρ Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ, u — ΡΠΈΠ³Π½Π°Π» Π·Π°Π΄Π°Π½ΠΈΡ, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠΎΠ²Π΅ΡΡΠΈ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠΉ Π΄ΠΈΠ½Π°ΠΌΠΈΠΊΠΈ Π·Π°ΠΌΠΊΠ½ΡΡΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ. ΠΡΠΈ ΡΡΠΎΠΌ Π·Π° ΡΡΠ΅Ρ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ Π²Π΅Π»ΠΈΡΠΈΠ½Ρ bt Π½Π΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΡΡΠ²Π° ΡΠ°Π±ΠΎΡΡ ΡΠΈΡΡΠ΅ΠΌΡ Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅ΠΉΡΠΈ Π² ΡΠ΅ΠΆΠΈΠΌ ΡΡΡΠ½ΠΎΠ³ΠΎ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΡΠ΅ΠΌ Π½Π°ΠΆΠ°ΡΠΈΡ ΠΊΠ»Π°Π²ΠΈΡΠΈ «u» Π²Π²Π΅ΡΡΠΈ ΡΠΈΠ³Π½Π°Π» Π·Π°Π΄Π°Π½ΠΈΡ. ΠΠ»Ρ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄Π° Π² Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΠ΅ΠΆΠΈΠΌ ΠΏΡΡΠ΅ΠΌ Π½Π°ΠΆΠ°ΡΠΈΡ ΠΊΠ»Π°Π²ΠΈΡΠΈ «k» Π²Π²Π΅ΡΡΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΡΡΡΠΈΡΠΈΠ΅Π½ΡΠ° ΡΠ΅Π³ΡΠ»ΡΡΠΎΡΠ° ΠΠ .
ΠΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠΌ Π½ΠΎΠ²ΠΈΠ·Π½Ρ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΠΊΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ biostime () Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΠ΅ΠΉ ΡΠ΅ΠΊΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΠΌΠ°ΡΠΈΠ½Ρ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΡΠ΅Π³ΡΠ»ΡΡΠΎΡ ΠΈ Π²ΡΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ ΡΡΡΠΎΠ³ΠΎ ΡΠ΅ΡΠ΅Π· Π·Π°Π΄Π°Π½Π½ΡΠΉ ΠΏΠ΅ΡΠΈΠΎΠ΄ ΠΊΠ²Π°Π½ΡΠΎΠ²Π°Π½ΠΈΡ Π’Π. Π Π΅Π°Π»ΠΈΠ·ΡΠ΅ΡΡΡ ΡΡΠ° ΠΈΠ΄Π΅Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ.
bt = TK+biostime (0,0L);
if (bt — biostime (0,0L) = = 0L).
{.
bt = TK + biostime (0,0L);
ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ;
}.
ΠΠ΄Π΅.
bt = TK+ biostime (0,0L).
— ΡΠΏΡΠ΅ΠΆΠ΄Π΅Π½Π½ΠΎΠ΅ Π½Π° Π²Π΅Π»ΠΈΡΠΈΠ½Ρ Π’Π ΡΠ΅ΠΊΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΠΌΠ°ΡΠΈΠ½Ρ. ΠΠ°ΠΊ Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π»ΠΈΡΡ Π² ΠΌΠΎΠΌΠ΅Π½Ρ Π΄ΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠΈΠΌ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ Π²Π΅Π»ΠΈΡΠΈΠ½Ρ bt. ΠΠ°ΠΌΠ΅ΡΠΈΠΌ, ΡΡΠΎ ΠΏΡΠΈ ΡΠ°ΠΊΠΎΠΌ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Π΅ ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΡΡΡ ΡΠ΅ΠΊΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΠΌΠ°ΡΠΈΠ½Ρ.
ΠΠ»Ρ ΠΎΠ±Π»Π΅Π³ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π² Π΅Π΅ Π»ΠΈΡΡΠΈΠ½Π³Π΅ ΠΈΠΌΠ΅ΡΡΡΡ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ, ΠΏΠΎΡΡΠ½ΡΡΡΠΈΠ΅ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ².
//MP1Y-PB.cpp ΠΠΎΠ΄. ΡΠ΅Π³ΡΠ»ΡΡΠΎΡ Ρ Π½Π°Π±Π»ΡΠ΄Π°ΡΠ΅Π»Π΅ΠΌ ΠΈ ΡΠΏΡΠ΅Π΄ΠΈΡΠ΅Π»Π΅ΠΌ.
//ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΏΡΠ΅ΠΆΠ΄Π°ΡΡ Π½Π° Π+1 ΡΠ°ΠΊΡ.
#include.
#include.
#include.
#include.
#include.
#include.
#include.
#include.
#include «drv-pb.cpp» .
#include «class-GR.cpp» .
#define ZERO_INIT (Object).
memset (((Object*)this), 0, sizeof (*this));
float A, B1, B2;
int M;
class MOY1.
{.
public:
void koefmo1(float, float, float, float);
};
void MOY1: koefmo1(float K, float T, float H, float TK).
{.
float G=H/TK; M=H/TK;
float C=G-M; A=exp (-TK/T);
B1=K*(1-pow (A,(1-C)));
B2=-K*(A-pow (A,(1-C)));
}.
class MPY1.
{.
float MI, W[100];
public:
float KP, KI, K1;//ΠΠ»Ρ Π²ΡΠ²ΠΎΠ΄Π° Π² main.
MPY1();
void koefmp (float);
float mreg (float, float);
};
MPY1:MPY1()//ΠΡΠΈΠΌΠ΅Π½ΡΡΡ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ.
{ ZERO_INIT (MPY1);}.
void MPY1: koefmp (float BR).
{.
KI=pow ((1-BR), 3)/(B1+B2);
KP=(A+A*A-3*A*BR+BR*BR*BR+B2*KI)/(A*B1+B2);
K1=1+A-B1*KP-3*BR;
}.
float MPY1: mreg (float X, float X3).
{.
float E, EL, E1, EY, MIY, U;//ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΠ°Π·ΠΎΠ²ΠΎΠ³ΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ.
E=X-X3;EL=E;
MIY=MI;E1=E;
if (M>0).
{.
for (int J=0;J<=M-1;J++).
{.
EY=A*E1+B1*W[1+J]+B2*W[J];
MIY=MIY+E1;E1=EY;
}.
}.
if (M==0) EY=E;
U=-KP*EY-KI*MIY-K1*W[M];
if (U>100){U=100;EL=0;}.
if (U<0){U=0;EL=0;}.
MI=MI+EL;
for (int t=0;t<=M+1;t++).
W[t]=W[1+t];
W[M]=U;
return U;
}.
void main ().
{.
int gdriver = DETECT, gmode;
initgraph (&gdriver, &gmode, «C:BC31BGI»);
inicial (); //ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΠ»Π°ΡΡ.
long TK=10;
float tk=TK/18.2; // Tk Π² Ρ!
char ch=0;
float BR=.7,mt=2.5,Ko=1.1206,To=35.8,Ho=1.331;
// ΠΠΠΠ¦ΠΠΠΠΠΠΠ¦ΠΠ― ΠΠΠͺΠΠΠ’ΠΠ.
GR graph=GR (mt);//ΠΠ°ΡΡΡΠ°Π± ΠΏΠΎ t.
MOY1 moy;
MPY1 mp=MPY1();
moy.koefmo1(Ko, To, Ho, tk);M=M+1;//Π£ΠΏΡ. Π½Π° Π+1.
mp.koefmp (BR);
cout.precision (3);
float U, y, xz=40,WF=0;
graph.osi (tk);
long bty;
bty=TK+biostime (0,0L);
while (ch≠27).
{.
if (bty-biostime (0, 0L)==0).
{.
bty=TK+biostime (0, 0L);
gotoxy (48,2);
printf («Y=%.1f U=%.1f «, y, U);
gotoxy (46,3);
printf («Ko=%.3f To=%.1f Ho=%.2f», Ko, To, Ho);
gotoxy (52,1);
printf («tk=%.4f «, tk);
update ();
y=getADC (1);
U=mp.mreg (y, xz);
setDAC (U+WF, 2);
update ();
gotoxy (13,1);
cout <<" M" <<" «<<» A" <<" «<<» B1″ <<" «<<» B2 «;
cout.precision (4);
gotoxy (13,2);