联系方式

  • QQ:99515681
  • 邮箱:99515681@qq.com
  • 工作时间:8:00-23:00
  • 微信:codinghelp

您当前位置:首页 >> Matlab编程Matlab编程

日期:2019-03-11 10:30

ES2D5/ES3C3 assignment 2019

The assignment consists of two parts. Part (1) is straightforward and part (2) requires more thinking.

The report should contain stiffness matrix, displacement plots, the value of the maximum force in

(1), and short but written in complete English sentences explanatory notes. The MATLAB script used

for calculations should be attached so that the marker can run it. Coordinates of the axis used in the

assignment are parts of your student ID number.

Consider a planar pin-jointed frame shown in the figure above.

The frame consists of 8 spokes connected at their end points (pins 1 to 8) by links of equal length

when not under load.

Initially, the outer points of the frame are positioned at the circle of radius R0 and the centre at

(0,0). Spokes are connected at the axis point, pin 9, with co-ordinates (xA,yA). The top and

neighbouring joints (1 and 2) are fixed.

Then, a vertical load F is applied to the lowest joint.

Use MATLAB to carry out the following tasks. The script is provided with some bits replaced by ###

which you should fill in. All the necessary information can be inferred from Megson, Chapter 17.

(1) Construct stiffness matrices of individual links and use them to populate the system stiffness

matrix. Check that the matrix looks reasonable at least visually. Explain why.

Find displacements of joints under the applied load and present the corresponding plot. Check that

the plot looks reasonable at least visually. Write a sentence or two to explain the observed.

Find, to 3 s.f., the load at which one of the links fails. Does it feel reasonable? (50 marks)

(2) Exclude the failed link from calculation by artificially setting its stiffness to zero and describe what

happens to the system next. Does it look reasonable? Write a sentence or two to explain.

Why excluding the link is not always the correct procedure? Alter the script to address the deficiency

at least approximately. Describe the result. (50 marks)

Consider the system with R0 = 1 m, all links are the mild steel beams of 1 cm diameter. The Young’s

modulus of the steel is 210 GPa, its Yield strength is 210 MPa. The axis position is (xA,yA) where

xA = 0.*** / 2, where *** are last 3 digits of your student number;

yA = 0.*** / 2, where *** are 6

th, 5th, and 4

th from last digits of your student number.


%% STUDENT ID 1456923 Defining system parameters

NSpokes = 8; % number of spokes

NJoints = NSpokes + 1; % number of joints

NLinks = 2*NSpokes; % spokes _ edge links

R0 = 1; % circle radius

Dspoke = 0.01; % spoke diameter, m

Douter = 0.01; % diameter of outer links, m

E = 210e9; %Pa, mild steel Young's modulus

sigma_Yield = 210e6; %Pa, mild steel ultimate strength

xA = 0.923 / 2; % x of the centre, last 3 digits of the student number divided by 2

yA = 0.456 / 2; % y of the centre, 6, 5, 4th from last digits of the student number divided by 2

Fapplied = 409; % N, force applied to stress the system

%% Calculating parameters of individual links and joints

Spoke_phi = linspace(0,2*pi()*(1-1/NSpokes),NSpokes) + pi()/2;  angle of spokes' fixing locations

Joint_x0 = [R0 * cos(Spoke_phi) xA]'; % x coordinates of Joints, N outer and 1 central

Joint_y0 = [R0 * sin(Spoke_phi) yA]'; % y coordinates of Joints, N outer and 1 central

% Now, let the links 1...N are spokes, links (N+1)...2*N are the outer connections

Link_i = [1:NSpokes 1:NSpokes]; % spokes start at outer points, connecting links start where spokes start

Link_j = [ones(1,NSpokes)*NJoints 2:NSpokes 1];

% spokes end at the axis, outer links end at the beginning of the next spoke

Link_theta = atan2(Joint_y0(Link_j) - Joint_y0(Link_i), Joint_x0(Link_j) - Joint_x0(Link_i));

% spokes "begin" at the system edge and "end" in the centre

Link_la = cos(Link_theta); % lambda in stiffness matrix of a member

Link_mu = sin(Link_theta); % mu in stiffness matrix of a member

Link_L0 = sqrt( (Joint_x0(Link_j) - Joint_x0(Link_i)).^2 + (Joint_y0(Link_j) - Joint_y0(Link_i)).^2 );

% length of links

Spoke_D = ones(NSpokes,1)*Dspoke; % spoke diameter, m

Outer_D = ones(NSpokes,1)*Douter; % outer link diameter, m

Link_A = pi()/4*[Spoke_D.^2 ; Outer_D.^2]; % links cross-section, spokes then outer ones

Link_Stf = Link_A*E./Link_L0;

Link_I = ********************; % second moment for buckling

Link_Fmin = - pi()^2 * E * Link_I / 4 ./ Link_L0.^2; % buckling on compression

Link_Fmax = Link_A * sigma_Yield; % breaking on tension

%% Composing stiffness matrix of the system and force vector

Joint_Force = zeros(2*NJoints,1); Joint_Force() = -Fapplied;

% force vector, negative vertical to the (NSpokes/2 + 1)st spoke

STIFFNESS = zeros(2*NJoints,2*NJoints); % stiffness matrix

for kLink = 1: **** % populating the global stiffness matrix

i0 = (Link_i(kLink)-1)*2; % row after which the node i begins

j0 = (Link_j(kLink)-1)*2; % row after which the node j begins

la = Link_la(kLink); % cos(theta) for the current spoke

mu = Link_mu(kLink); % sin(theta) for the current spoke

mtrx = Link_Stf(kLink)*[];

% 2 X 2 part of the stiffness matrix for the current link, see Megson (17.23) which contains an error

STIFFNESS((i0+1):(i0+2),(i0+1):(i0+2)) = STIFFNESS((i0+1):(i0+2),(i0+1):(i0+2)) **** mtrx;

STIFFNESS((i0+1):(i0+2),(j0+1):(j0+2)) = STIFFNESS((i0+1):(i0+2),(j0+1):(j0+2)) **** mtrx;

STIFFNESS((j0+1):(j0+2),(i0+1):(i0+2)) = STIFFNESS((j0+1):(j0+2),(i0+1):(i0+2)) **** mtrx;

STIFFNESS((j0+1):(j0+2),(j0+1):(j0+2)) = STIFFNESS((j0+1):(j0+2),(j0+1):(j0+2)) **** mtrx;

end

%% Calculating displacements from known forces

STIFFNESS_cut = STIFFNESS(5:end,5:end); % removing rows and columns corresponding to zero displacements

F_cut = Joint_Force(5:end); % removing forces applied to joints with zero displacements

w_cut = STIFFNESS_cut \ F_cut; % CORE OPERATION: SOLVING TO FIND DEFORMATIONS

w = [0;0;0;0;w_cut]; % completing deformation vector with zeroes

Joint_Force = ****; % calculating force including fixed joints (use w and STIFFNESS)

Joint_x = Joint_x0 + w(1:2:end); % x of joints with deformations

Joint_y = Joint_y0 + w(2:2:end); % y of joints with deformations

Link_L = sqrt( (Joint_x(Link_j) - Joint_x(Link_i)).^2 + (Joint_y(Link_j) - Joint_y(Link_i)).^2 );

% new length of links

Link_F = (Link_L-Link_L0).*Link_Stf; % force in the link

%% Plotting results

WSTRETCH = 2000; % stretch the shown deformations to make them visible

Joint_xD = Joint_x0 + w(1:2:end)*WSTRETCH; % x with deformations stretched WSTRETCH times

Joint_yD = Joint_y0 + w(2:2:end)*WSTRETCH; % y with deformations stretched WSTRETCH times

figure(33);

clf;

plot(Joint_x0(1),Joint_y0(1),'b.','markersize',30); % fixed joint

hold on; axis equal; axis(R0*1.3*[-1 1 -1 1]);

plot(Joint_x0(2),Joint_y0(2),'b.','markersize',30); % fixed joint

plot(Joint_x0(NSpokes/2+1),Joint_y0(NSpokes/2+1),'b.','markersize',30); % loaded joint

for kLink = 1:NLinks % plotting links

if Link_Stf(kLink)>1e-20, % only plotting existing links

clr = [(max((Link_F))-(Link_F(kLink))) (Link_F(kLink)-min(Link_F)) 0]/(max((Link_F))-min((Link_F)));

% colour coding: tension GREENer, compression REDer

if (Link_F(kLink) > Link_Fmax(kLink)) || (Link_F(kLink) < Link_Fmin(kLink)), lntype = '--'; else,

lntype = '-'; end; % dashed line if the link fails

plot([Joint_x0(Link_i(kLink)) Joint_x0(Link_j(kLink))], ...

[Joint_y0(Link_i(kLink)) Joint_y0(Link_j(kLink))],'-','color',[0.7 0.7 0.7]);

plot([Joint_xD(Link_i(kLink)) Joint_xD(Link_j(kLink))], ...

[Joint_yD(Link_i(kLink)) Joint_yD(Link_j(kLink))],lntype,'linewidth',2,'color',clr);

text((Joint_x0(Link_i(kLink))+Joint_x0(Link_j(kLink)))/2-0.05, ...

(Joint_y0(Link_i(kLink))+Joint_y0(Link_j(kLink)))/2,num2str(kLink),'fontsize',16);

% captions of links

end

end

plot(Joint_xD,Joint_yD,'k.','markersize',15);

for kJoint = 1:NJoints % signing joint numbers

text(Joint_x0(kJoint)*1.12-0.05,Joint_y0(kJoint)*1.1,num2str(kJoint),'color','b','fontsize',20);

end

plot(Joint_xD(NSpokes/2+1),Joint_yD(NSpokes/2+1),'r.','markersize',30);

xlabel('x'); ylabel('y');

set(gca,'fontsize',16,'linewidth',1);


版权所有:留学生编程辅导网 2020 All Rights Reserved 联系方式:QQ:99515681 微信:codinghelp 电子信箱:99515681@qq.com
免责声明:本站部分内容从网络整理而来,只供参考!如有版权问题可联系本站删除。 站长地图

python代写
微信客服:codinghelp