LoginSignup
5
3

More than 1 year has passed since last update.

ミニ四駆用6Tピニオンギアの試作とMATLAB を使ったFEM構造解析

Last updated at Posted at 2022-09-15

はじめに

Raspberry Piなどを使ったロボットカーの製作にミニ四駆のキットを使っています。
カスタムパーツが豊富で、近所のお店で手軽に入手できるので便利です。
しかしながら、ミニ四駆はめっちゃスピードが速いため、低速域での速度制御が難しいところがあります。
そこで、3Dプリンタを使って6Tピニオンギアを自作し、ギア比の変更を試みました。:sunglasses:
造形したピニオンギアの強度には課題もあっため、形状の改良をおこないました。
ここでは、MATLABによるFEM構造解析を試みてみます。

3Dプリンタを使った6Tピニオンギアの試作

ミニ四駆のギア比

カウンターギアとスパーギアの組み合わせでギア比を変更できるようになっています。

ギア比 カウンターギア スパーギア
3.5:1 水色 イエロー
3.7:1 みどり イエロー
4:1 ブラック うす茶
4.2:1 レッド うす茶
5:1 ブルー きみどり

参考 【ミニ四駆】ギア比徹底解説

ミニ四駆標準の8Tピニオンギアを使った場合、最も低速なギア比は5:1ですが、6Tピニオンギアを使った場合、5*(8/6):1 ≒ 6.7:1となります。

3Dモデル

左側の形状では、回転中の負荷でギアの溝が割れることがありました。

光造形による3Dプリント

材質 ELEGOO 光造形3Dプリンター用水洗いレジン

image.png

スペーサー

ギアがかみ合うようにするため、8Tピニオンギアよりも直径を少し小さくしています。
かみ合わせをよくするため、ワッシャーをマスキングテープで張り付けてスペースを調整しています。
image.png

試作したピニオンギアの回転動作

IMG_3887.gif

MATLABを使った6Tピニオンギアの構造解析

使用したツール

デモファイル

作成したライブスクリプトデモをGitHubに公開しています。

解析用テーブルの定義

%Analysis Table
tmp = {
        'Title'  'StlFile'  'YoungsModulus'   'PoissonsRatio'   'FixedFaceNo' 'LoadFaceNo'  'Preassure'  ;   
         'Type1 Teeth'  'pinion_gear_6t_1.stl'   1e9 0.3 [70 69] [41 41]  1.5e7 ;
         'Type2 Teeth'  'pinion_gear_6t_2.stl'   1e9 0.3 [105 77]  [41 41] 1.5e7    ;
         'Type1 Hole'  'pinion_gear_6t_1.stl'   1e9 0.3 [54] [53]  1e7 ;
         'Type2 Hole'  'pinion_gear_6t_2.stl'   1e9 0.3 [54]  [55] 1e7   ;
       };
AnalysisTable = cell2table(tmp(2:end,:));
AnalysisTable.Properties.VariableNames = tmp(1,:);

AnalysisNo = [1:4]; %Analysis No
N=length(AnalysisNo);
Tbl = AnalysisTable(AnalysisNo,:) 

解析モデルの作成

for i=1:N 
    model(i) = createpde('structural','static-solid');
    importGeometry(model(i),Tbl.StlFile{i});
    generateMesh(model(i));
end

3Dモデルにフェースラベルを表示

[s,tbl_i]=unique(Tbl.StlFile);
for i=[tbl_i]'
    figure;
    pdegplot(model(i),'FaceLabels','on','FaceAlpha',0.5);
    title(Tbl.Title(i));
    view(30,30);
end

image.png

image.png

マテリアルの構造特性と負荷の設定

for i=1:N
    structuralProperties(model(i),'YoungsModulus',Tbl.YoungsModulus(i), ...
                           'PoissonsRatio',Tbl.PoissonsRatio(i));
    structuralBC(model(i),'Face',Tbl.FixedFaceNo{i},'Constraint','fixed');

    structuralBoundaryLoad (model(i),'Face',Tbl.LoadFaceNo{i},'Pressure',Tbl.Preassure(i));
end

解析実行

for i=1:N
    result(i) = solve(model(i));
end

コンポーネントの変位をプロット

figure;
PlotCol=2;
for i=1:N
    subplot(ceil(N/PlotCol),PlotCol,i);
    pdeplot3D(model(i),'ColorMapData',result(i).Displacement.ux);
    title([Tbl.Title(i) " X-displacement"]);
    colormap('jet');
    caxis([0 1e-4]);
end

image.png

コンポーネントのストレスをプロット

figure;
for i=1:N
    subplot(ceil(N/PlotCol),PlotCol,i);
    pdeplot3D(model(i),'ColorMapData',result(i).VonMisesStress);
    title([Tbl.Title(i) " Stress"]);
    colormap('jet');
    caxis([0 5e7]);
end

image.png

参考

さいごに

AutoDesk Fusion360のようなホビー用途で使えるCADにもCAEの解析機能があります。MATLABのスクリプトでは、いろいろなパターンをまとめて解析するような使い方でメリットがありそうです。

5
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
3