ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании студСнчСских Ρ€Π°Π±ΠΎΡ‚
АнтистрСссовый сСрвис

ОписаниС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ модального управлСния Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ

Π Π΅Ρ„Π΅Ρ€Π°Ρ‚ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

ΠŸΡ€ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ конструктора МРУ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);

cout <<" «<<» «<<» «<

gotoxy (15,3);

cout <<" Ki" <<" «<<» Kp" <<" «<<» K1″ <<" «<<» Bp" ;

gotoxy (15,4);

cout <<" «<<» «<<» «<

graph.Grafic (y, U,0,0,0,0,0,tk);

if (kbhit ()).

{.

ch=getch ();

switch (ch).

{.

case 'x':

case 'X':

gotoxy (8,5);

cout << «XZ=» <<< endl;

gotoxy (8,6);

cout << «XZ= «<

gotoxy (8,6);

cout << «XZ=»;

cin >> xz;

bty=TK+biostime (0, 0L);

break;

case 'f':

case 'F':

gotoxy (24,5);

cout << «WF=» <<< endl;

gotoxy (24,6);

cout << «WF= «<

gotoxy (24,6);

cout << «WF=»;

cin >> WF;

bty=TK+biostime (0, 0L);

break;

}.

}.

}.

}.

setDAC (40, 2);

update ();

}.

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ