stify"> Series6: TLineSeries;
Series7: TLineSeries;
Series8: TLineSeries;
Оголошення процедур використовуються в програме
procedure FormCreate (Sender: TObject);
procedure Button1Click (Sender: TObject);
end;
procedure solvestep (time, Uupr, settime: real);
procedure solvelineup (time, Uupr, settime: real);
procedure solveparab (time, Uupr, settime: real);
procedure solvesinus (time, Uupr, period: real);
function sign (p: real): integer;
оголошення глобпльних змінних
var
Form1: TForm1;
Tm: real;// електромеханічна постійна часу двигла
Wnom: real;// номінальна частота обертання
Mnom: real;// номінальних момент
Inom: real;// номінальний струм
Rya: real;// сомротівленіе якоря
Unom: real;// напруга харчування
J: real;// момент Нерц
Ce, Cm: real;// конструкційні параметри
M: real;// Момент
Lya: real;// індукція якоря
Nnom: integer;// номінальна потужність
p: real;, t0, tmax: real;: real;: real;
{$ R *. dfm}
Функція повертає знак чіслаsign (p: real): integer;
if p <0 then result: = -1 else result: = 1;;
розрахунок реакції на ступеневу воздейстиіе
procedure solvestep (time, Uupr, settime: real);, c, c1: integer;, dt, h: real;, W, dI, dW: real;
// поч учловія: = 0.00001;: = 0;: = 0;
число ітерацій
c1: = round (time/dt);
момент перемикання сигналу з низького рівня на високий
st: = round (settime/dt);
ітераційний ціклc: = 0 to c1 do
begin
// система//
Перевірка умови перемикання
if c
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.Series1.AddXY (c * dt, w * ce); висновок точки графіка частоти обертання
...