Цель работы:
- ознакомиться с алгоритмами моделирования статических элементов систем автоматического управления;
- ознакомиться с приемами моделирования динамических элементов;
- получить практические навыки составления программ моделирования.
Задание лабораторной работы:
X1=sin(31.4·t),
K1=0.7, Y01=0.5,
T2=0.4,
K3=1, T3=0.015.
Интервал расчета 0.5, шаг расчета 0.005.
Структурное моделирование. Усовершенствованный Эйлера.
Составим на основе усовершенствованного метода Эйлера подпрограммы-функции расчета значения выходного сигнала звена на текущем шаге для всех типов звеньев, входящих в состав модели:
1. Множительное звено.
Множительное звено описывается выражением:
y=x1*x2
Звено с ограничением описывается выражением
y=K*x
3. Интегрирующее звено
Интегрирующее звено описывается выражением
y(p)=x(p)/T*p
4.Апериодическое звено
Выходной сигнал звена в операторной форме y(p)=K*x(p)/(T*p+1)
ДУ:
Применив усовершенствованного метода Эйлера к данному уравнению, получим
Y1 :=Yp+dt*(K*x-Yp)/T;
Y2:=Yp+(dt/2)*((K*x-Yp)/T+(K*x-Y1)/T);
Описание переменных
Название переменной |
Назначение |
Программа |
|
Y |
Вектор значений выходных сигналов звеньев на текущем шаге расчета |
Yp |
Вектор значений выходных сигналов звеньев на предыдущем шаге расчета |
lk |
Коэффициент передачи звеньев |
lt |
Постоянные времени звеньев |
ly0 |
Уровни ограничения звеньев |
xm |
Амплитуда входных воздействий |
tk |
Интервал расчета |
dt |
Шаг расчета |
t |
Текущее время |
i |
Счетчик шагов расчета |
N |
Количество шагов расчета |
Процедура расчета входного воздействия cX |
|
t |
Текущее время |
x |
Входной сигнал на текущем шаге |
Множительное звено |
|
X1,X2 |
Перемножающиеся сигналы |
Функция расчета первого звена |
|
X |
Входной сигнал на текущем шаге |
k |
Коэффициент передачи |
y0 |
Уровень ограничения |
Функция расчета второго звена |
|
X |
Входной сигнал на текущем шаге |
Yp |
Выходной сигнал звена на предыдущем шаге |
T |
Постоянная времени |
dt |
Шаг расчета |
Функция расчета третьего звена |
|
x |
Входной сигнал |
Yp |
Выходной сигнал звена на предыдущем шаге |
k |
Коэффициент передачи |
T |
Постоянная времени |
dt |
Шаг расчета |
Текст программы
procedure TForm1.Button1Click(Sender: TObject);
Var
Y,
Yp,
lk,
lt,ly0,
xm:DArray;
tk,dt,t:double;
i,N:integer;
Procedure Cx(t: double; var x: DArray);
begin
if t>0 then x[1]:=xm[1]*(sin(31.4*t)) else x[1]:=0;
end;
function Lim(X, k, y0:double):double;
var y:double;
begin
y:=k*X;
if y>y0 then y:=y0 else if y<-y0 then y:=-y0;
Lim:=y;
end;
function Int(X, Yp, T, dt:double):double;
begin
Int:=Yp + dt*X/T;
end;
function Ap(x,Yp, k, T, dt:double):double;
var
Y1:double;
begin
y1 :=yp+dt*(k*x-yp)/t;
ap:=yp+(dt/2)*((k*x-yp)/t+(k*x-y1)/t);
end;
function Mul(X1, X2:double):double;
begin
Mul:=X1*X2;
end;
Procedure Cy(Yp:DArray; t, dt:double; var Y:DArray);
var x:DArray;
begin
Cx(t,x);
Y[1]:=Mul(X[1],X[1]);
Y[2]:= Lim(Y[1], lk[1], ly0[1]);
Y[3]:= Int(Y[2], Yp[3], lt[2], dt);
Y[4]:= Ap(Y[3], Yp[4], lk[3], lt[3], dt);
end;
begin
xm[1]:=strtofloat(X1.text);
lk[1]:=strtofloat(K1.text);
lk[3]:=strtofloat(K3.text);
lt[2]:=strtofloat(T2.text);
lt[3]:=strtofloat(T3.text);
ly0[1]:=strtofloat(Y01.text);
tk:=strtofloat(ETk.text);
dt:=strtofloat(Edt.text);
Fillchar(Y, sizeof(Y),0);
Fillchar(Yp, sizeof(Yp),0);
Form2.Chart1LineSeries1.clear;
Form2.Chart1LineSeries2.clear;
Form2.Chart1LineSeries3.clear;
Form2.Chart1LineSeries4.clear;
t:=0;
Form2.Chart1LineSeries1.AddXY(t,Y[1]);
Form2.Chart1LineSeries2.AddXY(t,Y[2]);
Form2.Chart1LineSeries3.AddXY(t,Y[3]);
Form2.Chart1LineSeries4.AddXY(t,Y[4]);
N:=round(tk/dt);
for i:=1 to N do begin
t:=i*dt;
Cy(Yp,t,dt,Y);
Form2.Chart1LineSeries1.AddXY(t,Y[1]);
Form2.Chart1LineSeries2.AddXY(t,Y[2]);
Form2.Chart1LineSeries3.AddXY(t,Y[3]);
Form2.Chart1LineSeries4.AddXY(t,Y[4]);
Yp:=Y;
end;
Button2.Enabled:=true;
end;
end.
Главное окно программы:
Окно вывода графика функции:
Вывод: В результате выполнения данной лабораторной работы, ознакомились с алгоритмами моделирования статических элементов систем автоматического управления, ознакомились с приёмами моделирования динамических элементов и получили практические навыки составления программы структурного моделирования.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.