2015-04-19 2 views
0

Я пытаюсь упростить некоторые вычисления для проекта, над которым я работаю. Я должен рассчитать нормальное напряжение, напряжение, смещение и напряжение сдвига, деформацию для трех моделей с тремя различными порами и тремя типами материалов. Всего я должен иметь 9 значений для каждого параметра, который я вычисляю.Проблема с функцией петли MATLAB

я получаю сообщение об ошибке на * для АОПА, и когда я проверяю расчет для АОПА, это только показывает значение пи и игнорирует, что она должна быть раз раз первого 2 значения р^пи 25.

Это мой код ниже:

% Height[m] 
h= 0.0045; 
%Length o[m] 
l=0.0025; 
%cross-sectional area [m] 
a=h*l; 
%Force [N] 
f=1000; 
% three pores [m] 
p=[0.00150 0.00175 0.00200] 
% three materials E used 
E=[ 1.138e12 6.96e10 1.25e-3] 
% three materials G used 
G=[ 4.20e10 2.630e10 2.4e10] 
AoP=25*(pi()*(p)^2) 
for p=1:3 E=1:3 G=1:3 
    AoP=25*(pi()*(p)^2) 
    A=a-AoP 
    %Normal Stress 
    NSTRESS =f/A 
    %Normal Strain 
    NSTRAIN = NSTRESS/E 
    %Normal Displacement 
    NormalDisplacment = NSTRAIN*h 
    %Shear stress 
    SStress=f/a 
    %Shear strain 
    SStrain=SStress/G 
    %Shear displacement 
    SDisplacement = SStrain*h 
end 

disp (NSTRESS) 
disp (NSTRAIN) 
disp (NormalDisplacment) 
disp (SStress) 
disp (SStrain) 
disp (SDisplacement) 

ответ

1

Ваш цикл сброса р (Е и G) 1, 2, и 3, и вы должны только петли через одну вещь в то время. Вы должны использовать целое число в качестве итератора петли, а затем использовать это число как индекс р:

for ip = 1: 3 
    for iE = 1: 3 
     for iG = 1: 3 
      AoP=25*(pi*p(ip)^2) 
     end 
    end 
end 

Каждый раз, когда вы хотите использовать p или E или G в расчете, вы должны дать им их соответствующие индексы:

p(ip) 
E(iE) 
G(iG) 

() скобки после пи не больно, но они не нужны. Операторы disp в конце также не нужны, потому что они будут отображаться внутри цикла.

Смежные вопросы