MATLABでモータの効率マップを作る
モータの研究をやっている人からMATLABでモータの効率マップの作り方を聞かれたのでその作り方をここに書いておこうと思う。
↑こんな感じのグラフをつくる
環境
MATLAB R2020A
作り方
先ず、Excelなどで取得したデータをcsvファイルに変換する。 今回は以下のようなデータで効率マップを作る。 A列がスピード、B列がトルク、C列が効率のデータになっている。
MATLABを開き、新規スクリプトを作成し、csvファイルがあるディレクトリに保存する。 そして以下のコードを記述する。
%モータの効率マップの作成 %データの読み込み a = load('{ファイルの名前}.csv'); %各行のデータを格納 speed = a(:,1); torque = a(:,2); efficiency = a(:,3); %等高線図用のデータの作成 x0 = min(speed) ; x1 = max(speed) ; nx = 1000 ; y0 = min(torque) ; y1 = max(torque) ; ny = 1000 ; x = linspace(x0,x1,nx) ; y = linspace(y0,y1,ny) ; [X,Y] = meshgrid(x,y) ; Z = griddata(speed,torque,efficiency,X,Y); %塗りつぶした 2 次元等高線図の作成 contourf(X,Y,Z); %contourf(X,Y,Z,'LineStyle','none'); %軸の範囲指定 axis([300,2700,0,15]) %X軸ラベル xlabel('Speed [min^-^1]') %Y軸ラベル ylabel('Torque [Nm]') %カラーバーのラベル c = colorbar; c.Label.String = 'Efficiency [%]'; %色の変更 colormap(jet); %colormapeditor;%colormapの編集
記入後、実行すると以下のようなグラフができる。
注意
- ファイルの名前は英語で先頭を数字にしない
- 読み込むデータの名前を自分のものに変更する