본문 바로가기
공부(Study)/기계공학

매트랩을 이용하여 축의 지름을 계산하기(최대전단응력이론,Tresca theory,전단변형에너지이론,Von-Mises theory,옥타브,기계요소설계,축의 강도 설계)

by PhillipHong97 2021. 9. 4.

모든 설계과정에서 제품에 대한 안정성과 알맞은 사이즈 등의 조건에 맞는 제품을 설계하기 위해서 많은 양의 데이터를 필요로 한다는 사실은 모두가 알고 있을 것이다. 오늘은 이런 데이터를 효과적으로 효율적으로 얻기 위하여 제작한 코드에 대하여 글을 작성해보려고 한다.

기계요소설계에서 배운 이론을 기반으로 제품을 설계하는 시간을 가졌는데 그중에서 메인이 되는 내용이 축의 지름을 설계하는 과정이었다.(물론 축을 설계하는 과정 이외에도 묻힘키, 카플링, 베어링,각 부품의 데이터 값에서 추출된 안전율과 경제성을 모두 고려한 설계를 진행하였다.) 축의 지름을 설계하는 과정을 큰 범위로 보면 축의 강도 설계와 강성 설계로 나누어지는데 이 두 가지 설계 중 오늘은 축의 강도 설계를 이용한 데이터 값을 추출한 것에 대하여 알아보려고 한다.

최대전단응력이론(Tresca theory)과 전단변형에너지이론(Von-Mises theory)의 공식

기존의 제품을 설계하는 과정에서 사용되는 동하중에서의 최대전단응력이론(Tresca theory)과 전단변형에너지이론(Von-Mises theory)을 이용한 방법 이외에도 이 두 가지 이론 사이의 관계에 대하여 그래프로 확인해 보고 싶어서 두 가지 그래프를 볼 수 있는 코드를 추가해서 관계를 확인하여 보았고, 그래프의 변화와 매트랩의 장점을 최대한 활용하기 위하여 블레이드의 동력 값을 linspace를 이용하여 한번에 계산할 수 있도록 코드를 구상하였다. 코드는 컴퓨터 프로그래밍 시간에 배운 for문과 if문을 이용하여 표현하였다.(또한 매트랩이 고가의 프로그램이어서 매트랩을 대신한 옥타브라는 프로그램으로 코드를 제작하고 실행하였다.)

제작한

(일반적으로 글쓰기 입력 시 글이 깨지는 현상이 발생하여 매트랩 언어의 코드이지만 코드 블록을 html로 표현하였다. 또한 아래의 코드를 불펌하거나 무단으로 사용하는 것을 금지합니다.)

clear all;
close all;
clc;

disp('tresca process');
sigmaY=input('sigmaY=');
H=input('blade_power=')
N=input('Blade_rpm=');
sigmaut=input('sigmaut=');
n=input('Enter the number you want to find=');
d=input('write random diameter number=');
S=2; ##문제에서 주어진 안전율
##표면 처리계수 C_f=기계 가공
A=4.51;  b=-0.265;
C_f=A.*(10.*sigmaut).^b;
C_r=0.89;
C_t=1;
K_f=1.95;
M=100000
T=716200.*(H./N);

disp('checking diameter')

if sigmaut<140   ##축의 피로한도 구하는 방법,시편의 인장강도가 140보다 작은 경우
sigmae_prime=0.5.*sigmaut;
if d>50
C_s=0.7;
sigmae=C_f.*C_r.*C_s.*C_t.*(1/K_f).*sigmae_prime;  ##수정피로한도 구하기
d=(((32.*S)./pi).*(((M./sigmae).^2+(T./sigmaY).^2).^(1/2))).^(1/3) ##tresca 이론
elseif 13<d
C_s=0.85;
sigmae=C_f.*C_r.*C_s.*C_t.*(1/K_f).*sigmae_prime;  ##수정피로한도 구하기
d=(((32.*S)./pi).*(((M./sigmae).^2+(T./sigmaY).^2).^(1/2))).^(1/3) ##tresca 이론
else
display('error')
end
else ##sigmaut>=140
sigmae_prime=70;
if d>50
C_s=0.7;
sigmae=C_f.*C_r.*C_s.*C_t.*(1/K_f).*sigmae_prime;  ##수정피로한도 구하기
d=(((32.*S)./pi).*(((M./sigmae).^2+(T./sigmaY).^2).^(1/2))).^(1/3) ##tresca 이론
elseif 13<d
C_s=0.85;
sigmae=C_f.*C_r.*C_s.*C_t.*(1/K_f).*sigmae_prime;  ##수정피로한도 구하기
d=(((32.*S)./pi).*(((M./sigmae).^2+(T./sigmaY).^2).^(1/2))).^(1/3) ##tresca 이론
else
display('error')
end
end

#여기까지 하면 d값의 크기 어느 정도 확인가능(input 사이클 1번만 더 돌리면 값이 나옴.)
d=input('write previous D='); ##위에서 나온 축의 지름값입력.

if sigmaut<140   ##축의 피로한도 구하는 방법,시편의 인장강도가 140보다 작은 경우
sigmae_prime=0.5.*sigmaut;
if d>50
C_s=0.7;
sigmae=C_f.*C_r.*C_s.*C_t.*(1/K_f).*sigmae_prime;  ##수정피로한도 구하기
d=(((32.*S)./pi).*(((M./sigmae).^2+(T./sigmaY).^2).^(1/2))).^(1/3); ##tresca 이론
elseif 13<d
C_s=0.85;
sigmae=C_f.*C_r.*C_s.*C_t.*(1/K_f).*sigmae_prime;  ##수정피로한도 구하기
d=(((32.*S)./pi).*(((M./sigmae).^2+(T./sigmaY).^2).^(1/2))).^(1/3); ##tresca 이론
else
display('error')
end
else ##sigmaut>=140
sigmae_prime=70;
if d>50
C_s=0.7;
sigmae=C_f.*C_r.*C_s.*C_t.*(1/K_f).*sigmae_prime;  ##수정피로한도 구하기
d=(((32.*S)./pi).*(((M./sigmae).^2+(T./sigmaY).^2).^(1/2))).^(1/3); ##tresca 이론
elseif 13<d
C_s=0.85;
sigmae=C_f.*C_r.*C_s.*C_t.*(1/K_f).*sigmae_prime;  ##수정피로한도 구하기
d=(((32.*S)./pi).*(((M./sigmae).^2+(T./sigmaY).^2).^(1/2))).^(1/3); ##tresca 이론
else
display('error')
end
end
d1=[d];
fprintf('use tresca diameter = %f \n',d1)
disp('')
disp('')

disp('von-mises process')   ##von_mises 축설계 하는 작업
d=input('write random number=');
disp('checking diameter')

if sigmaut<140   ##축의 피로한도 구하는 방법,시편의 인장강도가 140보다 작은 경우
sigmae_prime=0.5.*sigmaut;
if d>50
C_s=0.7;
sigmae=C_f.*C_r.*C_s.*C_t.*(1/K_f).*sigmae_prime;  ##수정피로한도 구하기
d=(((32.*S)./pi).*(((M./sigmae).^2+(3./4).*(T./sigmaY).^2).^(1/2))).^(1/3)  ##von_mises 이론
elseif 13<d
C_s=0.85;
sigmae=C_f.*C_r.*C_s.*C_t.*(1/K_f).*sigmae_prime;  ##수정피로한도 구하기
d=(((32.*S)./pi).*(((M./sigmae).^2+(3./4).*(T./sigmaY).^2).^(1/2))).^(1/3)  ##von_mises 이론
else
display('error')
end
else ##sigmaut>=140
sigmae_prime=70;
if d>50
C_s=0.7;
sigmae=C_f.*C_r.*C_s.*C_t.*(1/K_f).*sigmae_prime;  ##수정피로한도 구하기
d=(((32.*S)./pi).*(((M./sigmae).^2+(3./4).*(T./sigmaY).^2).^(1/2))).^(1/3)  ##von_mises 이론
elseif 13<d
C_s=0.85;
sigmae=C_f.*C_r.*C_s.*C_t.*(1/K_f).*sigmae_prime;  ##수정피로한도 구하기
d=(((32.*S)./pi).*(((M./sigmae).^2+(3./4).*(T./sigmaY).^2).^(1/2))).^(1/3)  ##von_mises 이론
else
display('error')
end
end

#여기까지 하면 d값의 크기 어느 정도 확인가능(input 사이클 1번만 더 돌리면 값이 나옴.)
d=input('write previous D='); ##위에서 나온 축의 지름값입력.

if sigmaut<140   ##축의 피로한도 구하는 방법,시편의 인장강도가 140보다 작은 경우
sigmae_prime=0.5.*sigmaut;
if d>50
C_s=0.7;
sigmae=C_f.*C_r.*C_s.*C_t.*(1/K_f).*sigmae_prime;  ##수정피로한도 구하기
d=(((32.*S)./pi).*(((M./sigmae).^2+(3./4).*(T./sigmaY).^2).^(1/2))).^(1/3);  ##von_mises 이론
elseif 13<d
C_s=0.85;
sigmae=C_f.*C_r.*C_s.*C_t.*(1/K_f).*sigmae_prime;  ##수정피로한도 구하기
d=(((32.*S)./pi).*(((M./sigmae).^2+(3./4).*(T./sigmaY).^2).^(1/2))).^(1/3);  ##von_mises 이론
else
display('error')
end
else ##sigmaut>=140
sigmae_prime=70;
if d>50
C_s=0.7;
sigmae=C_f.*C_r.*C_s.*C_t.*(1/K_f).*sigmae_prime;  ##수정피로한도 구하기
d=(((32.*S)./pi).*(((M./sigmae).^2+(3./4).*(T./sigmaY).^2).^(1/2))).^(1/3);  ##von_mises 이론
elseif 13<d
C_s=0.85;
sigmae=C_f.*C_r.*C_s.*C_t.*(1/K_f).*sigmae_prime;  ##수정피로한도 구하기
d=(((32.*S)./pi).*(((M./sigmae).^2+(3./4).*(T./sigmaY).^2).^(1/2))).^(1/3);  ##von_mises 이론
else
display('error')
end
end
d2=[d];
fprintf('use von-mises diameter = %f \n',d2)
plot(H,d1,H,d2)
xlabel('power(ps)')
ylabel('diameter(mm)')
title('relationship between power(ps) and diameter(mm)')
legend('d1=tresca','d2=von-mises')
disp('')
disp('')

##for문을 이용하여/추출한 값들의 평균값 구하기위해 d1의 총합
total1=0;
for k=1:n
v=d1(k);
total1=total1+v;
end

##for문을 이용하여/추출한 값들의 평균값 구하기위해 d2의 총합
total2=0;
for k=1:n
v=d2(k);
total2=total2+v;
end
disp('tresca-average')
average1=total1./n
disp('von mises-average')
average2=total2./n

코드에 대한 해석

(일반적으로 글쓰기 입력 시 글이 깨지는 현상이 발생하여 매트랩 언어의 코드이지만 코드 블록을 html로 표현하였다. 또한 아래의 코드를 불펌하거나 무단으로 사용하는 것을 금지합니다.)

##프로그램을 시작 할 때 이전의 변수값이나, 그래프 , command window 창을 깔끔하게 해주는 작업
clear all;
close all;
clc;

##시작을 할 때 어떤 것을 구할 것인지 disp 함수를 이용하여 나타내어준다.
disp('tresca process'); 
##input을 이용하여 변수 값을 입력하였다.
##블레이드의 동력은 linspace를 이용하여 1행 n열의 형태를 벡터의 값 입력
sigmaY=input('sigmaY='); 
H=input('blade_power=')
N=input('Blade_rpm=');  
sigmaut=input('sigmaut=');
n=input('Enter the number you want to find=');
d=input('write random diameter number=');
##문제에서 주어진 조건을 변수값으로 지정 
S=2; ##문제에서 주어진 안전율
##표면 처리계수 C_f=기계 가공
A=4.51;  b=-0.265;
C_f=A.*(10.*sigmaut).^b;
C_r=0.89;
C_t=1;  
K_f=1.95; 
M=100000
##위에서 대입한 변수값 H값을 이용하여 T에 관하여 계산
T=716200.*(H./N);
##위에 입력된 write random diameter number을 이용하여 가정한 C_s값이 맞는지 확인하는 단계를 시작할 때 ##disp 함수를 이용하여 나타내어준다.
disp('checking diameter')
##위에 입력된 write random diameter number을 이용하여 가정한 C_s 값이 맞는지 확인하는 단계에서 재료의 ##sigmaut의 값에 따라 sigmae_prime 값을 구하는 과정이 다르기 때문에 if 조건문 이용.
if sigmaut<140   ##축의 피로한도 구하는 방법,시편의 인장강도가 140보다 작은 경우
sigmae_prime=0.5.*sigmaut;
##if 중첩을 이용하여 sigmaut<140일 때 계산된 sigmae_prime 값을 이용하여
##d의 변화에 따른 C_s 값을 구하는 과정을 진행한다. 축의 d>50mmd C_s=0.7이고,
##13<d≤50mm일 때 C_s=0.85를 사용하는데, if d>50 라고 설정하여
##if를 이용하여 설정한 random diameter number가 50을 초과하는 경우 C_s=0.7,
##elseif을 이용하여 random diameter number가 13보다는 크지만50보다 작거나 같을 경우 C_s=0.85,
##else을 이용하여 random diameter number가 설정한 범위 값에 포함되지 않는 경우 error이라는 문자가
##나오도록 설정.
if d>50
C_s=0.7;
sigmae=C_f.*C_r.*C_s.*C_t.*(1/K_f).*sigmae_prime;  ##수정피로한도 구하기
d=(((32.*S)./pi).*(((M./sigmae).^2+(T./sigmaY).^2).^(1/2))).^(1/3) ##tresca 이론
elseif 13<d
C_s=0.85;
sigmae=C_f.*C_r.*C_s.*C_t.*(1/K_f).*sigmae_prime;  ##수정피로한도 구하기
d=(((32.*S)./pi).*(((M./sigmae).^2+(T./sigmaY).^2).^(1/2))).^(1/3) ##tresca 이론
else
display('error')
end 
else ##sigmaut>=140
sigmae_prime=70;
if d>50
C_s=0.7;
sigmae=C_f.*C_r.*C_s.*C_t.*(1/K_f).*sigmae_prime;  ##수정피로한도 구하기
d=(((32.*S)./pi).*(((M./sigmae).^2+(T./sigmaY).^2).^(1/2))).^(1/3) ##tresca 이론
elseif 13<d
C_s=0.85;
sigmae=C_f.*C_r.*C_s.*C_t.*(1/K_f).*sigmae_prime;  ##수정피로한도 구하기
d=(((32.*S)./pi).*(((M./sigmae).^2+(T./sigmaY).^2).^(1/2))).^(1/3) ##tresca 이론
else
display('error')
end 
end


##위에서 나온 값을 이용하여 설정한 C_s 값을 이용하여 옳은 d값을 구하는 과정을 input을 이용하여 실행
#여기까지 하면 d값의 크기 어느 정도 확인가능(input 사이클 1번만 더 돌리면 값이 나옴.)
d=input('write previous D='); ##위에서 나온 축의 지름값 입력.
##sigmaut의 값에 따라 sigmae_prime 값을 구하는 과정이 다르기 때문에 if 조건문 이용.
if sigmaut<140   ##축의 피로한도 구하는 방법, 시편의 인장강도가 140보다 작은 경우
sigmae_prime=0.5.*sigmaut;
##d의 변화에 따른 C_s 값을 구하는 과정을 진행한다. 축의 d>50mmd C_s=0.7이고,
##13<d≤50mm일 때 C_s=0.85를 사용하는데, if d>50 라고 설정하여
##if를 이용하여 설정한 random diameter number가 50을 초과하는 경우 C_s=0.7,
##elseif을 이용하여 random diameter number가 13보다는 크지만50보다 작거나 같을 경우 C_s=0.85,
##else을 이용하여 random diameter number가 설정한 범위 값에 포함되지 않는 경우 error이라는 문자가
##나오도록 설정
if d>50
C_s=0.7;
sigmae=C_f.*C_r.*C_s.*C_t.*(1/K_f).*sigmae_prime;  ##수정피로한도 구하기
d=(((32.*S)./pi).*(((M./sigmae).^2+(T./sigmaY).^2).^(1/2))).^(1/3); ##tresca 이론
elseif 13<d
C_s=0.85;
sigmae=C_f.*C_r.*C_s.*C_t.*(1/K_f).*sigmae_prime;  ##수정피로한도 구하기
d=(((32.*S)./pi).*(((M./sigmae).^2+(T./sigmaY).^2).^(1/2))).^(1/3); ##tresca 이론
else
display('error')
end 
else ##sigmaut>=140
sigmae_prime=70;
if d>50
C_s=0.7;
sigmae=C_f.*C_r.*C_s.*C_t.*(1/K_f).*sigmae_prime;  ##수정피로한도 구하기
d=(((32.*S)./pi).*(((M./sigmae).^2+(T./sigmaY).^2).^(1/2))).^(1/3); ##tresca 이론
elseif 13<d
C_s=0.85;
sigmae=C_f.*C_r.*C_s.*C_t.*(1/K_f).*sigmae_prime;  ##수정피로한도 구하기
d=(((32.*S)./pi).*(((M./sigmae).^2+(T./sigmaY).^2).^(1/2))).^(1/3); ##tresca 이론
else
display('error')
end 
end
##위에서 구한 d값을 추후에 한 차트안에 그래프와 평균값을 구하기 위해 d1으로 설정
d1=[d];
##fprintf를 이용하여 위의 d1의 값을 표현
fprintf('use tresca diameter = %f \n',d1)
##disp 함수를 이용하여 빈칸을 만들어줘서 다음단계 진입 이전에 보기 쉽게 나타낸다.
disp('')
disp('')

##시작을 할 때 어떤 것을 구할 것인지 disp 함수를 이용하여 나타내어준다.
disp('von-mises process')   ##von_mises 축설계 하는 작업
##input을 이용하여 변수 값을 입력하였다.
d=input('write random number=');
##위에 입력된 write random diameter number을 이용하여 가정한 C_s값이 맞는지 확인하는 단계를 시작할 때 ##disp 함수를 이용하여 나타내어준다.
disp('checking diameter')
##위에 입력된 write random diameter number을 이용하여 가정한 C_s 값이 맞는지 확인하는 단계에서 재료의 ##sigmaut의 값에 따라 sigmae_prime 값을 구하는 과정이 다르기 때문에 if 조건문 이용.
if sigmaut<140   ##축의 피로한도 구하는 방법,시편의 인장강도가 140보다 작은 경우
sigmae_prime=0.5.*sigmaut;
##d의 변화에 따른 C_s 값을 구하는 과정을 진행한다. 축의 d>50mmd C_s=0.7이고,
##13<d≤50mm일 때 C_s=0.85를 사용하는데, if d>50 라고 설정하여
##if를 이용하여 설정한 random diameter number가 50을 초과하는 경우 C_s=0.7,
##elseif을 이용하여 random diameter number가 13보다는 크지만50보다 작거나 같을 경우 C_s=0.85,
##else을 이용하여 random diameter number가 설정한 범위 값에 포함되지 않는 경우 error이라는 문자가
##나오도록 설정
if d>50
C_s=0.7;
sigmae=C_f.*C_r.*C_s.*C_t.*(1/K_f).*sigmae_prime;  ##수정피로한도 구하기
d=(((32.*S)./pi).*(((M./sigmae).^2+(3./4).*(T./sigmaY).^2).^(1/2))).^(1/3)  ##von_mises 이론
elseif 13<d
C_s=0.85;
sigmae=C_f.*C_r.*C_s.*C_t.*(1/K_f).*sigmae_prime;  ##수정피로한도 구하기
d=(((32.*S)./pi).*(((M./sigmae).^2+(3./4).*(T./sigmaY).^2).^(1/2))).^(1/3)  ##von_mises 이론
else
display('error')
end 
else ##sigmaut>=140
sigmae_prime=70;
if d>50
C_s=0.7;
sigmae=C_f.*C_r.*C_s.*C_t.*(1/K_f).*sigmae_prime;  ##수정피로한도 구하기
d=(((32.*S)./pi).*(((M./sigmae).^2+(3./4).*(T./sigmaY).^2).^(1/2))).^(1/3)  ##von_mises 이론
elseif 13<d
C_s=0.85;
sigmae=C_f.*C_r.*C_s.*C_t.*(1/K_f).*sigmae_prime;  ##수정피로한도 구하기
d=(((32.*S)./pi).*(((M./sigmae).^2+(3./4).*(T./sigmaY).^2).^(1/2))).^(1/3)  ##von_mises 이론
else
display('error')
end 
end
##위에서 나온 값을 이용하여 설정한 C_s 값을 이용하여 옳은 d값을 구하는 과정을 input을 이용하여 실행
#여기까지 하면 d값의 크기 어느 정도 확인가능(input 사이클 1번만 더 돌리면 값이 나옴.)
d=input('write previous D='); ##위에서 나온 축의 지름값입력.
##sigmaut의 값에 따라 sigmae_prime 값을 구하는 과정이 다르기 때문에 if 조건문 이용.
if sigmaut<140   ##축의 피로한도 구하는 방법,시편의 인장강도가 140보다 작은 경우
sigmae_prime=0.5.*sigmaut;
##d의 변화에 따른 C_s 값을 구하는 과정을 진행한다. 축의 d>50mmd C_s=0.7이고,
##13<d≤50mm일 때 C_s=0.85를 사용하는데, if d>50 라고 설정하여
##if를 이용하여 설정한 random diameter number가 50을 초과하는 경우 C_s=0.7,
##elseif을 이용하여 random diameter number가 13보다는 크지만50보다 작거나 같을 경우 C_s=0.85,
##else을 이용하여 random diameter number가 설정한 범위 값에 포함되지 않는 경우 error이라는 문자가
##나오도록 설정
if d>50
C_s=0.7;
sigmae=C_f.*C_r.*C_s.*C_t.*(1/K_f).*sigmae_prime;  ##수정피로한도 구하기
d=(((32.*S)./pi).*(((M./sigmae).^2+(3./4).*(T./sigmaY).^2).^(1/2))).^(1/3);  ##von_mises 이론
elseif 13<d
C_s=0.85;
sigmae=C_f.*C_r.*C_s.*C_t.*(1/K_f).*sigmae_prime;  ##수정피로한도 구하기
d=(((32.*S)./pi).*(((M./sigmae).^2+(3./4).*(T./sigmaY).^2).^(1/2))).^(1/3);  ##von_mises 이론
else
display('error')
end 
else ##sigmaut>=140
sigmae_prime=70;
if d>50
C_s=0.7;
sigmae=C_f.*C_r.*C_s.*C_t.*(1/K_f).*sigmae_prime;  ##수정피로한도 구하기
d=(((32.*S)./pi).*(((M./sigmae).^2+(3./4).*(T./sigmaY).^2).^(1/2))).^(1/3);  ##von_mises 이론
elseif 13<d
C_s=0.85;
sigmae=C_f.*C_r.*C_s.*C_t.*(1/K_f).*sigmae_prime;  ##수정피로한도 구하기
d=(((32.*S)./pi).*(((M./sigmae).^2+(3./4).*(T./sigmaY).^2).^(1/2))).^(1/3);  ##von_mises 이론
else
display('error')
end 
end
##위에서 구한 d값을 추후에 한 차트안에 그래프와 평균값을 구하기 위해 d2로 설정
d2=[d];
##fprintf를 이용하여 위의 d2의 값을 표현
fprintf('use von-mises diameter = %f \n',d2)
##plot를 이용하여 동력ps 값에 대한 d1과 d2의 변화를 그래프로 보여준다.
plot(H,d1,H,d2)
## xlabel, ylabel을 이용하여 축의 이름을 설정한다.
xlabel('power(ps)')
ylabel('diameter(mm)')
##title을 이용하여 그래프의 제목을 설정한다.
title('relationship between power(ps) and diameter(mm)')
##legend을 이용하여 차트의 범례를 설정한다.
legend('d1=tresca','d2=von-mises')
##disp 함수를 이용하여 빈칸을 만들어줘서 다음단계 진입 이전에 보기 쉽게 나타낸다.
disp('')
disp('')
##for문을 이용하여 d1의 총합을 구해주기
##for문을 이용하여/추출한 값들의 평균값 구하기위해 d1의 총합
total1=0;
for k=1:n
   v=d1(k);
   total1=total1+v;
end
##for문을 이용하여 d2의 총합을 구해주기
##for문을 이용하여/추출한 값들의 평균값 구하기위해 d2의 총합
total2=0;   
for k=1:n
   v=d2(k);
   total2=total2+v;
end
##위에서 구한 d1의 총합을 이용하여 평균값 계산
disp('tresca-average')
average1=total1./n
##위에서 구한 d2의 총합을 이용하여 평균값 계산
disp('von mises-average')
average2=total2./n

위의 코드를 작동한 결과

최대전단응력이론(Tresca theory)을 적용하는 모습

최대전단응력이론(Tresca theory)을 적용하는 모습

전단변형에너지이론(Von-Mises theory)을 적용하는 모습

전단변형에너지이론(Von-Mises theory)을 적용하는 모습

동력과 축의 지름 사이의 관계를 나타내는 그래프

동력과 축의 지름 사이의 관계를 나타내는 그래프

댓글