1D Newmark Using Matlab
显示 更早的评论
Hi,
I am trying to solve example 5.1 in dynamic structure book by Anil K.Chopra page 168. But, I have a problem with the Matlab coding. Following are my coding:-
clc
m=0.2533;
k=10;
c=0.1592;
gam = 1/2 ;beta = 1/6 ;
%Initial Calculation
po=0;
u0=0;
udot0=0;
u2dot1 = 1/m*(po-k*u0-c*udot0);
% Time step
ti = 0. ;
tf = 4. ;
dt = 0.1 ;
t = ti:dt:tf ;
nt = fix((tf-ti)/dt) ;
kcap = k + gam/(beta*dt)*c + m/(beta*dt^2);
a = m/(beta*dt) + gam*c/beta;
b = 0.5*m/beta + dt*(0.5*gam/beta - 1)*c;
dp = diff(p);
for i = 1:nt
deltaP = dp(i) + a*udot(i) + b*u2dot(i);
du_i = deltaP/kcap;
dudot_i = gam/(beta*dt)*du_i - gam/beta*udot(i) + dt*(1-0.5*gam/beta)*u2dot(i);
du2dot_i = 1/(beta*dt^2)*du_i - 1/(beta*dt)*udot(i) - 0.5/beta*u2dot(i);
u(i+1) = du_i + u(i);
udot(i+1) = dudot_i + udot(i);
u2dot(i+1) = du2dot_i + u2dot(i);
end
When i run the coding this warning appear
Undefined function or variable 'p'.
Error in (line 25)
dp = diff(p);
Why it happen and how to solve the problem?
Thank you.
2 个评论
Chaudhary P Patel
2022-11-29
@nur yusof can you share the solution of this problem?
回答(2 个)
Walter Roberson
2016-1-21
0 个投票
Poking around it appears likely that you are referring to "Dynamics of Structures: Theory and Application to Earthquake Engineering" by Anil K. Chopra, chapter 5, 5.1 Time-Stepping Methods . However you have not indicated which edition, with 4 known numbered editions, and with one named "International Edition". Or perhaps you are referring to "Dynamics of Structures: A Primer" by Anil K. Chopra, or to "Earthquake Dynamics of Structures: A Primer" by Anil K. Chopra and Barbara Zeiders.
The first of those has the most supporting evidence, but the edition matters because there might have been an error that got corrected in later versions.
Or if they do not give code in the book, then the error is in your introduction of p without defining it.
Hello. I am looking at the code & the book you mentioned right now.
It seems that you didn't introduce the P function, which is:
P=10*sin((pi*t)/0.6))
Add the P function right under the u2dot line.
类别
在 帮助中心 和 File Exchange 中查找有关 Geology 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

