欧拉法求解多自由系统响应的MATLAB程序
function =vbr(n,dt,x0,xd0,a,b,c,u)%vbr
%Solves the forced multiples degree of freedom system using Euler's method.
%x=vbr(n,dt,x0,a,u)
%Solves the system given the initial state vector 'x0',
% the state matrix 'a',
% the time step to be used 'dt',
% and the number of steps to take 'n'.
% The force matrix u is ordered such that the nth column of u is the force vector u evaluated at time n*dt.
%=vbr(n,dt,x0,v0,m,d,k,u)
%Solves the system given the initial displacement vector 'x0',
% the mass matrix 'm',
% the stiffness matrix 'k',
% and the damping matrix 'd'.
% The remaining parameters are as described above.
%The outputs are in the form of a matrix where each column represents the
%states a one time step and the rows represent a state as a function of time.
if nargin==8
la=length(a);
x0=;
a=;
u=;
else
u=a;
a=xd0;
end
% -----------------------------------------------
% Where the action is.
% -----------------------------------------------
x(:,1)=x0;
for i=2:1:n+1
x(:,i)=a*dt*x(:,i-1)+x(:,i-1)+dt*u(:,i-1);
end
% -----------------------------------------------
% Where the action is finished.
% -----------------------------------------------
lx=length(a);
if lx/2==floor(lx/2)
xd=x(lx/2+1:lx,:);
x=x(1:lx/2,:);
else
xd=x;
end
页:
[1]