- Verify initial conditions are set correctly for displacement, velocity, and acceleration.
- Confirm that "V_linear", "M", "C", and "K_linear_1" matrices are correctly defined and normalized.
- Check that the time step "dt" is small enough to accurately capture the system's dynamics.
- Review the convergence criteria and ensure the error calculation is robust, possibly using absolute error to avoid division by zero.
- Debug by stepping through the code to examine where unrealistic values originate.
Getting unrealistic result in Newmakrs Beta method while solving structural dynamic problem
3 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Ram
le 16 Avr 2023
Réponse apportée : SOUMNATH PAUL
le 30 Déc 2023
I am finding response of multi degree of freedom system by using Newmarks Beta method. But i am getting some unrealistic value of response.Follwoing is my code.Please help me . Thank you in advance.
u=zeros(24,1); % assume displacemnt
du=zeros(24,1); % assume velocity
M_m=transpose(V_linear)*M*(V_linear); % Modal mass
C_m=transpose(V_linear)*C*(V_linear); % Modal damping
K_m=transpose(V_linear)*K_linear_1*(V_linear); % Modal stiffaness
q=(transpose(V_linear)*M*(V_linear))\transpose(V_linear)*M*u; % Modal displacement ,A\B == inv(A)*B
dq=(transpose(V_linear)*M*(V_linear))\transpose(V_linear)*M*du; % Modal velocity
P(:,1)=transpose(V_linear)*F(:,1); % Modal force
ddq=(M_m)\(P(:,1) - C_m*dq(:,1) - K_m*q(:,1)); % Modal acceleration
gamma=1/2;
beta=1/4;
K_cap=K_linear_1+ ((gamma)/(beta*dt))*C_m+(1/(beta*dt^2))*M_m;
a_n=(1/(beta*dt))*M_m +(gamma)/(beta)*C_m;
b=(1)/(2*beta)*M_m+dt*(gamma/(2*beta)-1)*C_m;
for i=1:(length(time)-1)
P(:,i+1)=transpose(V_linear)*F(:,i+1);% Modal force
P_cap=P(:,i+1)-P(:,i)+(a_n)*dq(:,i)+b*ddq(:,i);
delq=(K_cap)\P_cap; % A\B == inv(A)*B
deldq=(gamma)/(beta*dt)*delq-(gamma/beta)*dq(:,i)+dt*(1-gamma/(2*beta))*ddq(:,i);
delddq=1/(beta*dt^2)*delq -1/(beta*dt)*ddq(:,i)-1/(2*beta)*ddq(:,i);
q(:,i+1)=q(:,i)+delq;
dq(:,i+1)=dq(:,i)+deldq;
ddq(:,i+1)=ddq(:,i)+delddq;
u(:,i+1)=(V_linear)*q(:,i+1);
du(:,i+1)=(V_linear)*dq(:,i+1);
ddu(:,i+1)=(V_linear)*ddq(:,i+1);
tu=u(:,i+1);
tq=q(:,i+1);
tdq=dq(:,i+1);
tddq=ddq(:,i+1);
error=1;
[K_nonlinear]= K_nonlinear_coeeficient_calulcation(u,K_linear_1);
while (error>=0.001)
ttu=tu;
ttq=tq;
ttdq=tdq;
ttddq=tddq;
Pti(:,i+1)=transpose(V_linear)*F(:,i+1) - transpose(V_linear)*(K_nonlinear)*(V_linear)*ttq;
Pcapi=Pti(:,i+1)-P(:,i)+(a_n)*ttdq + b*ttddq;
delqi=K_cap\Pcapi;
deldqi=(gamma/(beta*dt))*delqi-(gamma/beta)*dq(:,i)+dt*(1-gamma/(2*beta))*ddq(:,i);
delddqi=1/(beta*dt^2)*delqi -1/(beta*dt)*ddq(:,i)-1/(2*beta)*ddq(:,i);
tq=q(:,i)+delqi;
tdq=dq(:,i)+deldqi;
tddq=ddq(:,i)+delddqi;
tu=(V_linear)*tq;
error=((tu-ttu)/ttu)*100;
end
u(:,i+1)=tu;
du(:,i+1)=(V_linear)*tdq;
ddu(:,i+1)=(V_linear)*tddq;
end
0 commentaires
Réponse acceptée
SOUMNATH PAUL
le 30 Déc 2023
Hi,
I understand you are getting undersired results for Newmark-beta method.
Without more details about your variables used in the code it is bit difficult to diagnose the exact cause of the issue.
To begin with you may try implementing the below points:
You may also refer to the following page which will give you an idea about Newmark-beta method :
Hope it helps!
Regards,
Soumnath
0 commentaires
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Numerical Integration and Differential Equations dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!