車QF

車のATS:故障探求と故障事例交換

全体表示

[ リスト ]

イメージ 1

イメージ 1

scilab-5.2.1>再度インストール>デモを試行中

scilab コンソール画面のメニューから

その他(?) > scilab デモ(D) > sound file handling  [RET]
で選択すると以下のデモが実行される 

デモ


立ち上げ開始:
初期環境の取り込み
-->// At first we create 0.5 seconds of sound parameters.
-->t=soundsec(0.5);
-->// Then we generate the sound.
-->s=sin(440*t)+sin(220*t)/2+sin(880*t)/2;
-->[nr,nc]=size(t);
-->s(nc/2:nc)=sin(330*t(nc/2:nc));
-->// We can easily make a Fourier analysis of it.
-->my_handle = scf(100001);
-->clf(my_handle,"reset");
-->analyze(s);

-->
-->halt();


グラフは上記の結果を反映しているようです。
実測データの読み込みとか分かれば別途トライしてみたい。

閉じる コメント(44)

顔アイコン

// make_cylinder_general.sce

clear; xdel(winsid());

// Cylinder specification
r = [1,1,1]; // Reference position
A = [-%pi/3, 0, 0]; // Reference orientation (x-y-z Euler angle)

2013/7/19(金) 午後 7:05 ogw*og*2 返信する

顔アイコン

Radius = 0.1;
Height = 0.3;
SideCount = 20;

// Euler angle -> Orientation matrix
a1 = A(1);
a2 = A(2);
a3 = A(3);

R1 = ...
[1, 0, 0;
0, cos(a1), -sin(a1);
0, sin(a1), cos(a1)];

R2 = ...
[cos(a2), 0, sin(a2);
0, 1, 0;
-sin(a2), 0, cos(a2)];

R3 = ...
[cos(a3), -sin(a3), 0;
sin(a3), cos(a3), 0;
0, 0, 1];

R = R1*R2*R3;

2013/7/19(金) 午後 7:06 ogw*og*2 返信する

顔アイコン

// Vertices
n_side = SideCount;

for i_ver=1:n_side
VertexData_0(i_ver,:) = [Radius*cos(2*%pi/n_side*i_ver),Radius*sin(2*%pi/n_side*i_ver),0];
VertexData_0(n_side+i_ver,:) = [Radius*cos(2*%pi/n_side*i_ver),Radius*sin(2*%pi/n_side*i_ver),Height];
end

2013/7/19(金) 午後 7:07 ogw*og*2 返信する

顔アイコン

n_ver = 2*n_side;

for i_ver=1:n_ver
VertexData(i_ver,:) = r + VertexData_0(i_ver,:)*R';
end

// Side Patches
for i_pat=1:n_side-1
Index_Patch1(i_pat,:) = [i_pat,i_pat+1,i_pat+1+n_side,i_pat+n_side];
end
Index_Patch1(n_side,:) = [n_side,1,1+n_side,2*n_side];

for i_pat=1:n_side

2013/7/19(金) 午後 7:08 ogw*og*2 返信する

顔アイコン

// Side patches data
PatchData1_X(:,i_pat) = VertexData(Index_Patch1(i_pat,:),1);
PatchData1_Y(:,i_pat) = VertexData(Index_Patch1(i_pat,:),2);
PatchData1_Z(:,i_pat) = VertexData(Index_Patch1(i_pat,:),3);
end

// Draw side patches
figure(1);
plot3d(PatchData1_X,PatchData1_Y,PatchData1_Z);
h_fac3d = gce();
h_fac3d.color_mode = 4;
h_fac3d.foreground = 1;
h_fac3d.hiddencolor = 4;

2013/7/19(金) 午後 7:09 ogw*og*2 返信する

顔アイコン

// Bottom Patches
Index_Patch2(1,:) = [1:n_side];
Index_Patch2(2,:) = [n_side+1:2*n_side];

for i_pat=1:2

// Bottom patches data
PatchData2_X(:,i_pat) = VertexData(Index_Patch2(i_pat,:),1);
PatchData2_Y(:,i_pat) = VertexData(Index_Patch2(i_pat,:),2);
PatchData2_Z(:,i_pat) = VertexData(Index_Patch2(i_pat,:),3);
end

2013/7/19(金) 午後 7:10 ogw*og*2 返信する

顔アイコン

// Draw bottom patches
figure(1);
plot3d(PatchData2_X,PatchData2_Y,PatchData2_Z);
h2_fac3d = gce();
h2_fac3d.color_mode = 4;
h2_fac3d.foreground = 1;
h2_fac3d.hiddencolor = 4;

// Axes settings
xlabel("x",'fontsize',2);
ylabel("y",'fontsize',2);
zlabel("z",'fontsize',2);
h_axes = gca();
h_axes.font_size = 2;
h_axes.isoview = "on";
h_axes.box = "off";
h_axes.rotation_angles = [63.5,-127];
h_axes.data_bounds = [0.8,0.9,0.8;1.3,1.4,1.3];
xgrid;

2013/7/19(金) 午後 7:10 ogw*og*2 返信する

顔アイコン

// make_block_general.sce

clear; xdel(winsid());

// Block specification
r = [1,1,1]; // Reference position
A = [-%pi/3, 0, %pi/6]; // Reference orientation (x-y-z Euler angle)

Lx = 0.15;
Ly = 0.05;
Lz = 0.30;

2013/7/19(金) 午後 7:14 ogw*og*2 返信する

顔アイコン

// Euler angle -> Orientation matrix
a1 = A(1);
a2 = A(2);
a3 = A(3);

R1 = ...
[1, 0, 0;
0, cos(a1), -sin(a1);
0, sin(a1), cos(a1)];

R2 = ...
[cos(a2), 0, sin(a2);
0, 1, 0;
-sin(a2), 0, cos(a2)];

R3 = ...
[cos(a3), -sin(a3), 0;
sin(a3), cos(a3), 0;
0, 0, 1];

R = R1*R2*R3;

2013/7/19(金) 午後 7:15 ogw*og*2 返信する

顔アイコン

// Vertices
VertexData_0 = [Lx*ones(8,1),Ly*ones(8,1),Lz*ones(8,1)]...
.*[0,0,0;
1,0,0;
0,1,0;
0,0,1;
1,1,0;
0,1,1;
1,0,1;
1,1,1];

n_ver = 8;

for i_ver=1:n_ver
VertexData(i_ver,:) = r + VertexData_0(i_ver,:)*R';
end

2013/7/19(金) 午後 7:16 ogw*og*2 返信する

顔アイコン

// Patches
Index_Patch = ...
[1,2,5,3;
1,3,6,4;
1,4,7,2;
4,7,8,6;
2,5,8,7;
3,6,8,5];

n_pat = 6;

for i_pat=1:n_pat

// Patches data
PatchData_X(:,i_pat) = VertexData(Index_Patch(i_pat,:),1);
PatchData_Y(:,i_pat) = VertexData(Index_Patch(i_pat,:),2);
PatchData_Z(:,i_pat) = VertexData(Index_Patch(i_pat,:),3);
end

2013/7/19(金) 午後 7:18 ogw*og*2 返信する

顔アイコン

// Draw patches
figure(1);
plot3d(PatchData_X,PatchData_Y,PatchData_Z);
h_fac3d = gce();
h_fac3d.color_mode = 4;
h_fac3d.foreground = 1;
h_fac3d.hiddencolor = 4;

// Axes settings
xlabel("x",'fontsize',2);
ylabel("y",'fontsize',2);
zlabel("z",'fontsize',2);
h_axes = gca();
h_axes.font_size = 2;
h_axes.isoview = "on";
h_axes.box = "off";
h_axes.rotation_angles = [63.5,-127];
h_axes.data_bounds = [0.8,0.9,0.8;1.3,1.4,1.3];
xgrid;

2013/7/19(金) 午後 7:18 ogw*og*2 返信する

顔アイコン

Scilabでアニメーション作成
http://www.sky-engin.jp/ScilabAnimation/index.html

2013/7/19(金) 午後 7:22 ogw*og*2 返信する

顔アイコン

2.三次元座標回転

三次元座標回転は、数学式のとおりで実装しても良いですが、二次元座標回転のアルゴリズムを三回呼び出せば、分かりやすく処理速度も速いです。

2013/7/19(金) 午後 7:54 ogw*og*2 返信する

顔アイコン

void Rotate3(double x1, double y1, double z1,
double alphaX,double alphaY,double alphaZ,
double& x2, double& y2, double& z2)
{
//Z Axis Rotation
double x3 = x1 * cos(alphaZ) - y1 * sin(alphaZ);
double y3 = x1 * sin(alphaZ) + y1 * cos(alphaZ);
double z3 = z1;

2013/7/19(金) 午後 7:55 ogw*og*2 返信する

顔アイコン

//Y Axis Rotation
double z4 = z3 * cos(alphaY) - x3 * sin(alphaY);
double x4 = z3 * sin(alphaY) + x3 * cos(alphaY);
double y4 = y3;

//X Axis Rotation
y2 = y4 * cos(alphaX) - z4 * sin(alphaX);
z2 = y4 * sin(alphaX) + z4 * cos(alphaX);
x2 = x4;
}

http://www.softist.com/programming/coor-rot/coor-rot.htm

2013/7/19(金) 午後 7:56 ogw*og*2 返信する

顔アイコン

回転座標の求め方
http://garnote.com/2011/03/post-222.html

2013/7/19(金) 午後 9:23 ogw*og*2 返信する

顔アイコン

I think the reason you are getting a flat surface is because you have yet another typo which effectively makes the summation be zero...

in your numerators, you have Y-2 and 2-Y ...you should have Y+2 and 2-Y

and, for completeness, you may want to put back the division by PI

Read more: http://www.physicsforums.com

2013/11/10(日) 午後 6:25 ogw*og*2 返信する

顔アイコン

Whoops you're right. Well since I took a=2 while it's totally arbitrary, I don't think the 1/pi factor is really relevant.
Using the meshgrid I get a somehow decent surface, but doesn't work well for the plot3d command so far.
Here are 2 screenshots.

http://www.physicsforums.com/showthread.php?t=577993

2013/11/10(日) 午後 6:26 ogw*og*2 返信する

顔アイコン

fp=mopen('H7165321.csv'); //ファイルオープン
txt=mgetl(fp,7); //ヘッダ部分読み込み
data=mfscanf(-1,fp,'%f,%f,%f'); //データ部分読み込み
mclose(fp); //ファイルクローズ

http://hotic.blog129.fc2.com/blog-entry-10.html

2013/11/10(日) 午後 7:25 ogw*og*2 返信する

コメント投稿

顔アイコン

顔アイコン・表示画像の選択

名前パスワードブログ
絵文字
×
  • オリジナル
  • SoftBank1
  • SoftBank2
  • SoftBank3
  • SoftBank4
  • docomo1
  • docomo2
  • au1
  • au2
  • au3
  • au4
投稿

開く トラックバック(1)


.


プライバシー -  利用規約 -  メディアステートメント -  ガイドライン -  順守事項 -  ご意見・ご要望 -  ヘルプ・お問い合わせ

Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.

みんなの更新記事