Материал: Моделирование работы гидропривода

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

. Попов Д.Н. Механика гидро- и пневмоприводов: Учеб. для вузов. - М.: Изд-во МГТУ им. Н.Э. Баумана, 20001. - 320 с., ил.

. Богданович Л.Б. Гидравлические приводы: Учеб. пособие для вузов. - Киев: Вища школа. Головное изв-во, 1980. - 232 с. - 30314. 2702000000.

. Динамика гидропривода. Колл. Авторов. Под. Ред. В.Н. Прокофьева. М., “Машиностроение”, 1972, 292 стр.

. Гидравлика, гидромашины и гидроприводы: Учебник для машиностроительных вузов /Т.М. Башта, С.С. Руднев, Б.Б. Некрасов и др. - 2-е изд., перераб. - М.: Машиностроение, 1982. - 432 с., ил.

. Гейгер В.Г., Дулин В.С., Заря А.Н. Гидравлика и гидропривод: Учеб. для вузов. - 3-е изд., перераб. и доп. - М.: Недра, 1991. - 331 с.: ил.

. Гудилин Н.С., Кривенко Е.М., Махавиков Б.С., Пастоев И.Л. Гидравлика и гидропривод: Учеб. пособие / Под общ. ред. И.Л. Пастоева. - 3-е изд., стер. - М.: Издательство Московского государственного горного университета, 2001. - 520 с.

. Руднев С.А., Фалдин Н.В. Линеаризвция релейной следящей системы по полезному сигналу // Изв. РАН. Теория и системы управления. 1998. № 2. - С. 36-43.

Приложение

m-функция “time”

%TIME(CLOCK1,CLOCK2) returns time passed since CLOCK1 to CLOCK2

%CLOCK1, CLOCK2 - are arrays formed by function CLOCK.

%

%For example:

%

%a1=clock;

%...

%statements

%...

%a2=clock;

%t=time(a1,a2);

%

%So, variable "t" is array, containing information about

%duration of realization "statements".time=f(clock1,clock2);=clock2-clock1;=1;and(D(k)==0,k<6)=k+1;D(k)<0=clock1;=clock2;=A;=D*(-1);=0;D(k)==0=0;=1;f==0D(2)<0(2)=D(2)+12;(1)=D(1)-1;D(3)<0=or(clock1(2)==1, clock1(2)==3);=or(clock1(2)==5, clock1(2)==7);=or(clock1(2)==8, clock1(2)==10);=clock1(2)==12;=or(A1,A2);=or(A3,A4);=or(A5,A6);=or(clock1(2)==4, clock1(2)==6);=or(clock1(2)==9, clock1(2)==11);=or(B1,B2);=and(clock1(2)==2,fix(clock1(1)/4)~=(clock1(1)/4));=and(clock1(2)==2, fix(clock1(1)/4)==clock1(1)/4);A_clock3=31;B_clock3=30;C_clock3=28;E_clock3=29(3)=D(3)+max_clock3;(2)=D(2)-1;D(4)<0(4)=D(4)+24;(3)=D(3)-1;D(5)<0(5)=D(5)+60;(4)=D(4)-1; D(6)<0(6)=D(6)+60;(5)=D(5)-1; =D;

end

функция “Equality”

%EQUALITY(X1,X2,M,N) returns 1 if X1=X2 or 0 in all other cases.

%Equality in this fucntion is defined to M by absolute accuracy

%or to Nth decimal place N=1,2,3...

%There are two accuracy parameters. M and N are used as in rule logical OR

%in this function.

%

%Parameters X1, X2, M, N are able to be scalars or row matrixes. X1, X2,

%M, N numbers of dimension should be equal then.

%

%There are some requirements for parametres M and N.

%It should be:

%N>=1 and N - integer; M - positive.

%

%

%Example for scalar X1, X2, M, N:

%

%>> equality(0.1722, 0.1721, 0.000001, 3)

%

%ans =

%

% 1

%

%>>

%

%

%here:

%0.1722, 0.1721 - compared numbers

%0.000001 - absolute accuracy

%3 - number or decimal placesy=f(x1,x2,m,n)=size(x1);=size(x2);=size(m);=size(n);=(s1==s2);=(length(C1)==sum(C1));=(s2==s3);=(length(C2)==sum(C2));=(s3==s4);=(length(C3)==sum(C3));=(s1(1)==1);=(fix(n)==n);=sum(C5);=((s4(1)*s4(2))==sum(C5));=(n>=1);=sum(C6);=((s4(1)*s4(2))==sum(C6));=(m>0);=sum(C7);=((s3(1)*s3(2))==sum(C7));C1&C2&C3&C4&C5&C6&C7i=1:1:s1(2)(x1(i)==x2(i))(i)=1;(x1(i)*x2(i)<=0)&((abs(x1(i)-x2(i)))<m(i))(i)=1;(x1(i)*x2(i)<=0)&((abs(x1(i)-x2(i)))>=m(i))(i)=0;(i)=((abs((x1(i)-x2(i))/(x1(i)+x2(i))))<(1/(10^n(i))))|((abs(x1(i)-x2(i)))<m(i));=C;('\n')('Error:\n')('Incorrect parameters X1, X2, M, N or its numbers\n')('of dimension aren''t equal, in function EQUALITY(X1,X2,M,N)\n')

y=NaN;

функция “PH_point”

%PH_point=f(mn,A,T,sv,pc,m,n,min_pn,min_mtd,max_rtd,df,pf)

%

%mn - model name (name of model you're working at.)

%A - amplitude of input Meander-line signal you're giving to system.

%T - period of input Meander-line signal you're giving to system.

%st - state vector (state vector of system.)

%pc - phase coordinate (vector phase coordinate you're taking up.)

%m - absolute accuracy

%n - accuracy by decimal places n=1,2,3...

%min_pn - minimum period number.

%min_mtd - minimum model time duration.

%max_rtd - maximum real time duration.

%df - duration flag.

%pf - printing flag.

%

%returns X*(T) vector of Simlulink system 'model name'

%

%Property:

%All parameters should be a variable of Workspace, so it can be defined

%in a session or m - script file of MATLAB before begining work.PH_point=f(mn,A,T,sv,pc,m,n,min_pn,min_mtd,max_rtd,df,pf)A sv pc=(fix(n)==n)&(n>=1);=(m>0)&(max_rtd>0)&((df==0)|(df==1))&((pf==0)|(pf==1));=(A>0)&(min_mtd>0)&(min_pn>=2)&(fix(min_pn)==min_pn);(mn,1/Inf);=size(m);=size(n);=(s1(1)==1);=(s2(1)==1);=(length(pc)==length(m))&(length(m)==length(n));=B1&B2&B3&B4&B5&B6;B=0;=clock;(mn,T/2);_min1=pc;=-A;(mn,T/2);

k=1; _pl1=pc;pf==1

fprintf('\n')(' Using PH_point for T=%g',T)(' c')(' (Phase coordinate number is%g',length(pc))(')\n')('\n')index=1:1:length(x_pl1)(' %g',x_pl1(index))('\n')=-A;(mn,T/2);_min2=pc;=-A;(mn,T/2);=k+1;

x_pl2=pc;pf==1

for index=1:1:length(x_pl2)(' %g',x_pl2(index))('\n')=clock;c1==c2=0;=time(c1,c2);=c(1)*31104000+c(2)*2592000+c(3)*86400+c(4)*3600+c(5)*60+c(6)*1;((t>=max_rtd)&(k>=min_pn)&(k*T>=min_mtd))=1;((sum(equality(x_pl2,x_pl1,m,n))~=length(equality(x_pl2,x_pl1,m,n)))|...

(sum(equality(x_min2,x_min1,m,n))~=length(equality(x_min2,x_min1,m,n))))&(F==0)_min1=x_min2;_pl1=x_pl2;=-A;(mn,T/2);_min2=pc;=-A;(mn,T/2);=k+1;

x_pl2=pc;pf==1

for index=1:1:length(x_pl2)(' %g',x_pl2(index))('\n')=clock;c1==c2=0;=time(c1,c2);=c(1)*31104000+c(2)*2592000+c(3)*86400+c(4)*3600+c(5)*60+c(6)*1;

if ((t>=max_rtd)&(k>=min_pn)&(k*T>=min_mtd))=1;=-A;F==0pf==1 ('\n')('Phase hodograph point is defined successfully\n')('Passed period number is%g',k)('\n')('Passed model time is%g',T*k)(' s\n')('Passed real time is%g',t)(' s\n')=(x_pl2+x_min2)./2;

x_pl2=x_pl2-d;_pl2(length(x_pl2)+1)=T;_pl2(length(x_pl2)+1)=1;

if pf==1 ('\n') ('Warning:\n')('Function PH_point=f(mn,A,T,sv,pc,m,n,min_pn,min_mtd,max_rtd,df,pf)\n')('failed to find R-characteristic in period T=%g',T)(' s\n')('You should increase max_rtd and parameters "Relative tolerance"\n') ('and "Absolute tolerance" in Simulation parametres to get correct\n')('result here. ')('Also don''t set m and n too much.\n')('\n')('Passed period number is%g',k)('\n')('Passed model time is%g',T*k)(' s\n')('Passed real time is%g',t)(' s\n')

df==1_pl2=(x_pl1+x_pl2)./2;_min2=(x_min1+x_min2)./2;=(x_pl2+x_min2)./2;_pl2=x_pl2-d; _pl2(length(x_pl2)+1)=T;_pl2(length(x_pl2)+1)=2;_pl2=x_pl2.*NaN;_pl2(length(x_pl2)+1)=T;_pl2(length(x_pl2)+1)=3;

_point=x_pl2;

else('\n')

fprintf('Error:\n')('Incorrect parameters in function \n')('PH_point=f(mn,A,T,sv,pc,m,n,min_pn,min_mtd,max_rtd,df,pf)\n')_point=NaN;

-функция “Script”

% Script.m m-файл для определения всего фазового годографа

global A sv pc('off', 'all');('ph_point.txt')on;='hydraulic_drive';=27;=5;=2.99;=0.01;=Ts;=[0 0 0 0 0 0 0 0 0 0];=0;=[1e-6 1e-2 1e-12 1e-8 1e-6 1e-9 1 1e-2 1e-3 1e-9 1e-5 1e-15];=[5 5 5 5 5 5 5 5 5 5 5 5];_pn=5;_mtd=6;_rtd=10;=1;=1;=1;T>=Tf=PH_point(mn,A,T,sv,pc,m,n,min_pn,min_mtd,max_rtd,df,pf);j=1:1:length(a)(i,j)=a(j);=T-dT;=i+1;