•
•
•
•
What is DaniWeb IT Discussion Community?
You're currently browsing the Legacy and Other Languages section within the Software Development category of DaniWeb, a massive community of 426,572 software developers, web developers, Internet marketers, and tech gurus who are all enthusiastic about making contacts, networking, and learning from each other. In fact, there are 1,656 IT professionals currently interacting right now! Registration is free, only takes a minute and lets you enjoy all of the interactive features of the site.
Please support our Legacy and Other Languages advertiser: Programming Forums
Views: 2699 | Replies: 0
![]() |
•
•
Join Date: Mar 2006
Posts: 3
Reputation:
Rep Power: 0
Solved Threads: 0
help me solve this...what i need is if anybody can change this codes from part 2 to part 5 but still use the same concept. the output must in negative and positive value. pls email me..cinok777@yahoo.com
% PART I --------The calculation of deflection and effective stiffness for a force at One End------
format long
A=7183e-6; %Rail properties based on British Section BS 113 A
E=200e9;
l=0.6;
T=20e6;
k=A*E/l;
k1=2.15e8;
k2=2.15e8;
d1=0.001; %The calculation of rail deflection, force and stiffness from left hand side
d2=(1+(k1/k))*d1; % of the track
dLeft=[d1 d2];
S= input(' Enter the number of sleeper panels for the whole track: ')
for s=2
;
dLeft(s+1)=(2+(T/k))*dLeft(s)-dLeft(s-1);
end
for s=2
+1;
FLeft(s)=k*((1+(T/k))*dLeft(s)-dLeft(s-1));
end
dLeft;
FLeft;
FdLeft=FLeft./dLeft;
%The calculation of rail deflection, force and stiffness from the right hand side of
%the track
%Specify deflection at node S and calculate deflection for the rest of the
%track i.e from S-1 to node 1. Calculate forces for node S to node 1 and
%divide force over deflection to get stiffness
dS=0.001;
dM=(1+(k2/k)+(T/k))*dS;
dRight=[dS dM];
for M=3
;
dRight(M)=(2+(T/k))*dRight(M-1)-dRight(M-2);
end
for M=2
;
FRight(M)=k*(dRight(M)-dRight(M-1));
end
dRight;
FRight;
FdRight=FRight./dRight;
%Program section II
%---Sleeper J For Locomotives And Wagons------
%Define wagon and locomotive arrangement.
Wagon= input ('Enter the number of wagons:')
Loco=input('Enter the number of locomotives:')
Axle_w=2;
Axle_l=2;
%Define the first sleeper panel of the train and the number of sleepers
%between each axle of the locomotives/wagon.
s1=input('Enter the first sleeper panel(wagon):')
sw_1=input('Enter the number of sleepers within wagon:')
sw_2=input('Enter the number of sleepers between wagons:')
sl_1=input('Enter the number of sleepers within locomotives:')
sl_2=input('Enter the number of sleepers between locomotives:')
%Generate sleeper panel for wagon.
%Specify first sleeper panel of the wagon and genarate list of sleeper
%panel by counting the number of sleepers between athe axles of the wagon.
sw1=s1;
for w=0:Wagon-1
Swag1(w+1)=sw1+w*(sw_1+sw_2);
Swag2(w+1)=sw1+w*(sw_1+sw_2)+(sw_1);
Sw=sort([Swag1 Swag2]);
end
%Generate sleeper panel for locomotive.
%Specify first sleeper panel of locomotive and generate list of sleeper
%panels by counting the number of sleeper between the axles of the
%locomotive.
sl1=Sw(Wagon*Axle_w);
for l=0:Loco-1
Sloco1(l+1)=sl1+l*(sl_1+sl_2);
Sloco2(l+1)=sl1+l*(sl_2+sl_2)+(sl_1);
Sl=sort([Sloco1 Sloco2]);
end
%generate force for unit displacement at sleeper J - left hand side and
%right hand side
%calculate the reciprocal of the total force at sleeper J
%Calculate scale factor for force on the left hand side and right hand side
%of the track
%---Wagon---
FdLeft(Sw);
FdRight(S-Sw+1);
Df=1./(FdLeft(Sw)+FdRight(S-Sw+1));
SLeft_w=Df./dLeft(Sw);
SRight_w=Df./dRight(S-Sw+1);
%----Locomotive----
FdLeft(Sl);
FdRight(S-Sl+1);
Df=1./(FdLeft(Sl)+FdRight(S-Sl+1));
SLeft_l=Df./dLeft(Sl);
SRight_l=Df./dRight(S-Sl+1);
%Program section III
%------Deflection at Sleeper J----------
%Calculate deflection at sleeper J(Left and side and Right hand side)
%calculate deflection at a sleeper J by multiplying deflection at every
%sleeper at node x by the scale factor. Repeat this for every sleeper J for
%both wagons and locomotives. Calculate for deflection from the left hand
%side and the right hand side of the track.Calculate total deflection for
%wagons and locomotives seperately.
%Generates an i by x matrix where the elements of each column of the matrix
%are the deflection at a node X for i number of sleepers for wagons/locomotives.
%Take the sum of the all elements of each column of te matrix to obtain
%total deflection
%----Left Hand Side Wagon-----
for i=1:Wagon*Axle_w
for x=1
w(i)-1
dLeft_w(i,x)=SLeft_w(i)*dLeft(x);
end
end
dLeft_wt=sum(dLeft_w)';
%----Left hand side locomotive-----
for i=1:Loco*Axle_l
for x=1
l(i)-1
dLeft_l(i,x)=SLeft_l(i)*dLeft(x);
end
end
dLeft_lt=sum(dLeft_l)';
%----Right hand side wagon------
for i=1:Wagon*Axle_w
for x=1
-Sw(i)+1
dRight_w(i,x)=SRight_w(i)*dRight(x);
end
end
%----Right hand side locomotive-----
dRight_wt=sum(dRight_w)';
%Deflection for locomotive
for i=1:Loco*Axle_l
for x=1
-Sl(i)+1
dRight_l(i,x)=SRight_l(i)*dRight(x);
end
end
dRight_lt=sum(dRight_l)';
%Program Section IV-----
%^^^^^^^^^^^^^^^^^^^^^Total Deflection For Train^^^^^^^^^^^^^^^^^^^^^^
%Calculate scaled deflection and total deflection for wagons, locomotives
%and the entire train
%Specify the amount of force applied on the sleeper by the train. Calculate
%the scaled deflection for left hand side and right hand side.
%Redimension matrix to enable sum of two matrix.For left hand side
%deflections give zero value to elements of the final sleeper J of
%wagon/locomotive to the last sleeper N of track. For right hand side
%deflection give zero value to element of sleepers at node 1 of track to
%the last sleeper before sleeper J of wagon/locomotive
%Calculate total deflection of wagon/locomotive
%^^^^^^Wagon^^^^^^^
%Scale deflection
Fw=input('Specify the force applied by wagon per axle:')
dLeft_ws=dLeft_wt*Fw;
dRight_ws=dRight_wt*Fw;
%Redimension matrix
dLeft_wsnew=dLeft_ws;
for i= Sw(Wagon*Axle_w)
;
dLeft_wsnew(i)=0;
end
dLeft_wsnew;
dRight_wsnew1=dRight_ws;
for i=S-sw1+2
;
dRight_wsnew1(i)=0
end
dRight_wsnew=flipud(dRight_wsnew1);
%Total deflection
dT_w=dLeft_wsnew+dRight_wsnew;
%-----Locomotive-------
%Scale deflection
Fl=input('Specify the force applied by locomotive per axle:')
dLeft_ls=dLeft_lt*Fl;
dRight_ls=dRight_lt*Fl;
%Redimension matrix
dLeft_lsnew=dLeft_ls;
for i= Sl(Loco*Axle_l)
;
dLeft_lsnew(i)=0;
end
dLeft_lsnew;
dRight_lsnew=dRight_ls;
for i=S-Sl(1)+2
;
dRight_lsnew(i)=0;
end
dRight_lsnew=flipud(dRight_lsnew);
%Total deflection
dT_l=dLeft_lsnew+dRight_lsnew;
%Calculate total deflection for entire train
dT=dT_w+dT_l
%Program V-----------------
%^^^^^^^^^^^^^^^^^Plot Displacement Pattern of Rail^^^^^^^^^^^^^
plot(dT_w,'--k')
hold on
plot(dT_l,'--r')
hold on
plot(dT,'b')
axis auto
xlabel('Sleeper')
ylabel('Displacement (m)')
title('Displacement Pattern in Rail')
legend('Wagon','Locomotive','Train')
% PART I --------The calculation of deflection and effective stiffness for a force at One End------
format long
A=7183e-6; %Rail properties based on British Section BS 113 A
E=200e9;
l=0.6;
T=20e6;
k=A*E/l;
k1=2.15e8;
k2=2.15e8;
d1=0.001; %The calculation of rail deflection, force and stiffness from left hand side
d2=(1+(k1/k))*d1; % of the track
dLeft=[d1 d2];
S= input(' Enter the number of sleeper panels for the whole track: ')
for s=2
;dLeft(s+1)=(2+(T/k))*dLeft(s)-dLeft(s-1);
end
for s=2
+1;FLeft(s)=k*((1+(T/k))*dLeft(s)-dLeft(s-1));
end
dLeft;
FLeft;
FdLeft=FLeft./dLeft;
%The calculation of rail deflection, force and stiffness from the right hand side of
%the track
%Specify deflection at node S and calculate deflection for the rest of the
%track i.e from S-1 to node 1. Calculate forces for node S to node 1 and
%divide force over deflection to get stiffness
dS=0.001;
dM=(1+(k2/k)+(T/k))*dS;
dRight=[dS dM];
for M=3
;dRight(M)=(2+(T/k))*dRight(M-1)-dRight(M-2);
end
for M=2
;FRight(M)=k*(dRight(M)-dRight(M-1));
end
dRight;
FRight;
FdRight=FRight./dRight;
%Program section II
%---Sleeper J For Locomotives And Wagons------
%Define wagon and locomotive arrangement.
Wagon= input ('Enter the number of wagons:')
Loco=input('Enter the number of locomotives:')
Axle_w=2;
Axle_l=2;
%Define the first sleeper panel of the train and the number of sleepers
%between each axle of the locomotives/wagon.
s1=input('Enter the first sleeper panel(wagon):')
sw_1=input('Enter the number of sleepers within wagon:')
sw_2=input('Enter the number of sleepers between wagons:')
sl_1=input('Enter the number of sleepers within locomotives:')
sl_2=input('Enter the number of sleepers between locomotives:')
%Generate sleeper panel for wagon.
%Specify first sleeper panel of the wagon and genarate list of sleeper
%panel by counting the number of sleepers between athe axles of the wagon.
sw1=s1;
for w=0:Wagon-1
Swag1(w+1)=sw1+w*(sw_1+sw_2);
Swag2(w+1)=sw1+w*(sw_1+sw_2)+(sw_1);
Sw=sort([Swag1 Swag2]);
end
%Generate sleeper panel for locomotive.
%Specify first sleeper panel of locomotive and generate list of sleeper
%panels by counting the number of sleeper between the axles of the
%locomotive.
sl1=Sw(Wagon*Axle_w);
for l=0:Loco-1
Sloco1(l+1)=sl1+l*(sl_1+sl_2);
Sloco2(l+1)=sl1+l*(sl_2+sl_2)+(sl_1);
Sl=sort([Sloco1 Sloco2]);
end
%generate force for unit displacement at sleeper J - left hand side and
%right hand side
%calculate the reciprocal of the total force at sleeper J
%Calculate scale factor for force on the left hand side and right hand side
%of the track
%---Wagon---
FdLeft(Sw);
FdRight(S-Sw+1);
Df=1./(FdLeft(Sw)+FdRight(S-Sw+1));
SLeft_w=Df./dLeft(Sw);
SRight_w=Df./dRight(S-Sw+1);
%----Locomotive----
FdLeft(Sl);
FdRight(S-Sl+1);
Df=1./(FdLeft(Sl)+FdRight(S-Sl+1));
SLeft_l=Df./dLeft(Sl);
SRight_l=Df./dRight(S-Sl+1);
%Program section III
%------Deflection at Sleeper J----------
%Calculate deflection at sleeper J(Left and side and Right hand side)
%calculate deflection at a sleeper J by multiplying deflection at every
%sleeper at node x by the scale factor. Repeat this for every sleeper J for
%both wagons and locomotives. Calculate for deflection from the left hand
%side and the right hand side of the track.Calculate total deflection for
%wagons and locomotives seperately.
%Generates an i by x matrix where the elements of each column of the matrix
%are the deflection at a node X for i number of sleepers for wagons/locomotives.
%Take the sum of the all elements of each column of te matrix to obtain
%total deflection
%----Left Hand Side Wagon-----
for i=1:Wagon*Axle_w
for x=1
w(i)-1dLeft_w(i,x)=SLeft_w(i)*dLeft(x);
end
end
dLeft_wt=sum(dLeft_w)';
%----Left hand side locomotive-----
for i=1:Loco*Axle_l
for x=1
l(i)-1dLeft_l(i,x)=SLeft_l(i)*dLeft(x);
end
end
dLeft_lt=sum(dLeft_l)';
%----Right hand side wagon------
for i=1:Wagon*Axle_w
for x=1
-Sw(i)+1dRight_w(i,x)=SRight_w(i)*dRight(x);
end
end
%----Right hand side locomotive-----
dRight_wt=sum(dRight_w)';
%Deflection for locomotive
for i=1:Loco*Axle_l
for x=1
-Sl(i)+1dRight_l(i,x)=SRight_l(i)*dRight(x);
end
end
dRight_lt=sum(dRight_l)';
%Program Section IV-----
%^^^^^^^^^^^^^^^^^^^^^Total Deflection For Train^^^^^^^^^^^^^^^^^^^^^^
%Calculate scaled deflection and total deflection for wagons, locomotives
%and the entire train
%Specify the amount of force applied on the sleeper by the train. Calculate
%the scaled deflection for left hand side and right hand side.
%Redimension matrix to enable sum of two matrix.For left hand side
%deflections give zero value to elements of the final sleeper J of
%wagon/locomotive to the last sleeper N of track. For right hand side
%deflection give zero value to element of sleepers at node 1 of track to
%the last sleeper before sleeper J of wagon/locomotive
%Calculate total deflection of wagon/locomotive
%^^^^^^Wagon^^^^^^^
%Scale deflection
Fw=input('Specify the force applied by wagon per axle:')
dLeft_ws=dLeft_wt*Fw;
dRight_ws=dRight_wt*Fw;
%Redimension matrix
dLeft_wsnew=dLeft_ws;
for i= Sw(Wagon*Axle_w)
;dLeft_wsnew(i)=0;
end
dLeft_wsnew;
dRight_wsnew1=dRight_ws;
for i=S-sw1+2
;dRight_wsnew1(i)=0
end
dRight_wsnew=flipud(dRight_wsnew1);
%Total deflection
dT_w=dLeft_wsnew+dRight_wsnew;
%-----Locomotive-------
%Scale deflection
Fl=input('Specify the force applied by locomotive per axle:')
dLeft_ls=dLeft_lt*Fl;
dRight_ls=dRight_lt*Fl;
%Redimension matrix
dLeft_lsnew=dLeft_ls;
for i= Sl(Loco*Axle_l)
;dLeft_lsnew(i)=0;
end
dLeft_lsnew;
dRight_lsnew=dRight_ls;
for i=S-Sl(1)+2
;dRight_lsnew(i)=0;
end
dRight_lsnew=flipud(dRight_lsnew);
%Total deflection
dT_l=dLeft_lsnew+dRight_lsnew;
%Calculate total deflection for entire train
dT=dT_w+dT_l
%Program V-----------------
%^^^^^^^^^^^^^^^^^Plot Displacement Pattern of Rail^^^^^^^^^^^^^
plot(dT_w,'--k')
hold on
plot(dT_l,'--r')
hold on
plot(dT,'b')
axis auto
xlabel('Sleeper')
ylabel('Displacement (m)')
title('Displacement Pattern in Rail')
legend('Wagon','Locomotive','Train')
![]() |
•
•
•
•
•
•
•
•
DaniWeb Legacy and Other Languages Marketplace
•
•
•
•
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
- syntax error? .. operator overload method problemo (C)
- syntax error that I just can't seem to find! (Visual Basic 4 / 5 / 6)
- UPDATE syntax error (MySQL)
- Subshell Problem, syntax error...Help please! (Shell Scripting)
- DECLARATION SYNTAX ERROR (for bc 31 user) (C++)
- Parse error, syntax error, Forbids declaration (C++)
Other Threads in the Legacy and Other Languages Forum
- Previous Thread: Unified Modelling Language or Data Flow Diagram
- Next Thread: QBasic character counter


Linear Mode