コイルばねのばね定数とせん断弾性係数の関係
ばね定数を計測し、せん断弾性係数を求めてみる。
Matlabのginput(2)を使ってばねの長さを測定する。
Ls = []; for i=1:4 fname = string(i)+'.png'; im = imread(fname); imshow(im); [x,y,button]=ginput(2); L = y(2)-y(1); Ls = [Ls L]; end
これでピクセルでの相対距離は計測できた。
ipadの写真編集アプリのRulerでばねの自然長と直径を測定した。
L = 42; % 42 mm Ls = [0.9893 1.0694 1.1015 1.1455]; % distance by pixel delta1 = (Ls(2)-Ls(1))/Ls(1)*L; %mm delta2 = (Ls(3)-Ls(1))/Ls(1)*L; %mm delta3 = (Ls(4)-Ls(1))/Ls(1)*L; %mm deltas = [delta1 delta2 delta3]; Fs = [165 295 375]*0.00980665; %[N] % plot(deltas,Fs,'o'); coef = polyfit(deltas,Fs,1); %plot(deltas,polyval(coef,deltas)); k=coef(1); %[MPa] k=G*d^4/(64*ne*R^3); ne = 16; % 16 times R = 8; %8mm G0 = 7.4*1e4; %[MPa] d = 1.45; %1.45mm G = 64*k*ne*R^3/d^4; fprintf('original G: %.0f[GPa]\n',G0/1000); fprintf('computed G: %.0f[GPa]\n',G/1000);
実行結果
original G: 74[GPa] computed G: 74[GPa]
ばねの径d=1.45mmとすると、せん断弾性係数がステンレスのものと一致した。
Todo:実際のばねの径を計測してみる
追記:写真から計測してみたら、d=1.5mmくらいだったので、いい線いっている
さて、ばねに入力できる限界荷重を求める。
ねじりにおいては、せん断応力が降伏応力に達したときに降伏する。
コイルばねにおけるねじりによるせん断応力は、で計算する。
clear; close all; clc; L = 42; % 42 mm Ls = [0.9893 1.0694 1.1015 1.1455]; % distance by pixel delta1 = (Ls(2)-Ls(1))/Ls(1)*L; %mm delta2 = (Ls(3)-Ls(1))/Ls(1)*L; %mm delta3 = (Ls(4)-Ls(1))/Ls(1)*L; %mm deltas = [delta1 delta2 delta3]; Fs = [165 295 375]*0.00980665; %[N] ne = 16; % 16 times R = 8; %8mm G = 7.4*1e4; %[MPa] d = 1.45; %1.45mm P = Fs(2); %N tau_max = 16*P*R/(pi*d^3); fprintf('tau_max: %.f[MPa]\n',tau_max);
実行結果
tau_max: 39[MPa]
ステンレス(SUS304)の降伏点:255[MPa]
www.jssa.gr.jp
よって、375(g) * (255/39) /9.8 = 1.93[kg]の荷重で降伏することがわかる。
疲労限度についても求める。
SUS304の引張強度が590Mpa。一般にステンレスの疲労限は引張強度の0.35~4倍で計算するとのこと。
mori.nc-net.or.jp
修正グッドマン線図は以下のようになる。
sigma_b = 590; %[Mpa] sigma_w = 0.35*sigma_b; %[Mpa] sigma = 0:sigma_b; sigma_a = sigma_w*(1-sigma/sigma_b); %[Mpa] plot(sigma,sigma_a); title('goodman plot'); ylabel('Fatigue limit [MPa]'); xlabel('Average stress [MPa]'); big;
片振りの条件を代入して変形すると、
片振りの最大応力は2 x 平均応力なので、
sigma_max = 2*sigma_w/(1+sigma_w/sigma_b); max_fatigue_load = Fs(2)*sigma_max/tau_max/9.8; %kg fprintf('Max stress when failure: %.f[MPa]\n',sigma_max); fprintf('Load when fatigue failure: %.f[kg]\n',max_fatigue_load);
実行結果
Max stress when failure: 306[MPa] Load when fatigue failure: 2[kg]
疲労破壊するときの荷重は2kgとでた。これって上で計算した降伏のときの荷重と同じになっている。疲労限=降伏点ということだけど、意外な結果だった。もう少し疲労限度は降伏点より下になると予想していた。