How to change only certain numbers in a matrices for a certain iteration?

2 vues (au cours des 30 derniers jours)
Robert Vandergriff
Robert Vandergriff le 15 Fév 2022
Hello, im struggling to understand a problem. I have solved a truss analysis by using the method of joints and turned it into a 10x10 matrix. I am solving using Ax=B form. I need to be able to find when the truss fails for a certain ultimate force at a certain m. therefore in the matrix B = [0;0;0;0;0;w;0;w;0;0]; w needs to increase from 2kg to m_max incrementing by .5 kg. This is what i have so far. I am extremely new to matlab.
A = [1 0 0 0 0 0 1 0 0 0;
0 0 0 0 0 0 0 1 0 0;
-1 0.707 0 0 -0.707 0 0 0 0 0;
0 -0.707 0 0 -0.707 -1 0 0 0 0;
0 -0.707 -1 0 0 0 0 0 0 0;
0 0.707 0 0 0 0 0 0 0 0;
0 0 1 -1 0 0 0 0 0 0;
0 0 0 0 0 1 0 0 0 0;
0 0 0 1 0.707 0 0 0 1 0;
0 0 0 0 0.707 0 0 0 0 1];
F_ult = 400
B = [0;0;0;0;0;w;0;w;0;0];
N = 100;
for w = 2:.5:N
F = A\B;
while F<<400
end

Réponses (2)

KSSV
KSSV le 15 Fév 2022
A = [1 0 0 0 0 0 1 0 0 0;
0 0 0 0 0 0 0 1 0 0;
-1 0.707 0 0 -0.707 0 0 0 0 0;
0 -0.707 0 0 -0.707 -1 0 0 0 0;
0 -0.707 -1 0 0 0 0 0 0 0;
0 0.707 0 0 0 0 0 0 0 0;
0 0 1 -1 0 0 0 0 0 0;
0 0 0 0 0 1 0 0 0 0;
0 0 0 1 0.707 0 0 0 1 0;
0 0 0 0 0.707 0 0 0 0 1];
F_ult = 400 ;
N = 100;
iter = 0 ;
x = zeros(10,[]) ; % save deformations for each iteration
for w = 2:.5:N
iter = iter+1 ;
B = [0;0;0;0;0;w;0;w;0;0];
x(:,iter) = A\B; % save deformations for each w
end

Walter Roberson
Walter Roberson le 15 Fév 2022
Modifié(e) : Walter Roberson le 15 Fév 2022
A = [1 0 0 0 0 0 1 0 0 0;
0 0 0 0 0 0 0 1 0 0;
-1 0.707 0 0 -0.707 0 0 0 0 0;
0 -0.707 0 0 -0.707 -1 0 0 0 0;
0 -0.707 -1 0 0 0 0 0 0 0;
0 0.707 0 0 0 0 0 0 0 0;
0 0 1 -1 0 0 0 0 0 0;
0 0 0 0 0 1 0 0 0 0;
0 0 0 1 0.707 0 0 0 1 0;
0 0 0 0 0.707 0 0 0 0 1];
F_ult = 400
F_ult = 400
syms w positive
B = [0;0;0;0;0;w;0;w;0;0];
F = A\B
F = 
maxF_ratio = max(abs(F/w))
maxF_ratio = 
3
breaking_w_exact = double(F_ult / maxF_ratio)
breaking_w_exact = 133.3333
breaking_w = ceil(breaking_w_exact / 0.5) * 0.5
breaking_w = 133.5000
That is, 133.0 would not be enough to break it, and you are incrementing by 0.5, so the number you are looking for is 133.5
I assumed here that a -400 force would also break the system.

Catégories

En savoir plus sur Structural Analysis dans Help Center et File Exchange

Produits


Version

R2021a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by