form1.Series5.AddXY (c * dt, upr); виврд точки графіка керуючого сигналу
end;
end;
розрахунок рекціі на лінійно зростаючий сигнал
procedure solvelineup (time, Uupr, settime: real);, c1: integer;, dt: real;, W, dI, dW: real;
// поч учловія: = 0;: = 0;: = 0.00001;: = round (time/dt);: = (Uupr * dt)/settime; розрахунок приросту керуючого напруги
Uupr: = 0; c: = 0 to c1 do
begin
Uupr: = Uupr + du; розрахунок керуючого напруги
dI: = dt * ((((Uupr-Ce * W)/Rya)-I)/(Lya/Rya));
I: = I + dI;
M: = Cm * I;
dW: = dt * ((Mh * sign (W))/J);
W: = W + dW;
// -------//
form1.Series2.AddXY (c * dt, w * ce);
form1.Series6.AddXY (c * dt, Uupr);
end;
end;
розрахунок реакції на синусоїдальний вхідний сигнал
procedure solvesinus (time, Uupr, period: real);, c1: integer;, t, dU, upr, dt: real;, W, dI, dW: real;
// поч учловія: = 0;: = 0;: = 0.00001;: = round (time/dt); 1: = period/dt; розрахунок періоду коливань
for c: = 0 to c1 do
begin
// система//
upr: = Uupr * sin (2 * pi * c/t1); розрахунок керуючого сигналу
dI: = dt * ((((upr-Ce * W)/Rya)-I)/(Lya/Rya));
I: = I + dI;
M: = Cm * I;
dW: = dt * ((Mh * sign (W))/J);
W: = W + dW;
// -------//
form1.Series3.AddXY (c * dt, w * ce);
form1.Series8.AddXY (c * dt, upr);
end;
end;
розрахунок реакції на параболічно зростаючий сигнал
procedure to c1 do
begin
upr: = Uupr * sqr ((c * dt/settime)); розрахунок керуючого сигналу
dI: = dt * ((((upr-Ce * W)/Rya)-I)/(Lya/Rya));
I: = I + dI;
M: = Cm * I;
dW: = dt * ((Mh * sign (W))/J);
W: = W + dW;
// -------//
form1.Series4.AddXY (c * dt, w * ce) ;//* 6.28 * 60);
form1.Series7.AddXY (c * dt, upr);
end;
end;
обробник дій при створенні форми
procedure TForm1.FormCreate (Sender: TObject);
вказівку параметрів двигуна
...