計測用車いすの開発 〜プログラムの詳細とダウンロード〜 Sub Draw_Graph1() ' '****************** ' グラフ表示1 '****************** ' Form1.RetInf = "" Form1.RetInf = "Graph Drawing..." ' ' トルクのグラフ ' Form1.Xmin(0).Text = 0 Form1.Xmax(0).Text = SampTime If Tq_min(0) < Tq_min(1) Then Form1.Ymin(0).Text = Int(Tq_min(0) / 10) * 10 Else Form1.Ymin(0).Text = Int(Tq_min(1) / 10) * 10 End If If Tq_max(0) > Tq_max(1) Then Form1.Ymax(0).Text = Int(Tq_max(0) / 10 + 1) * 10 Else Form1.Ymax(0).Text = Int(Tq_max(1) / 10 + 1) * 10 End If Form1.Xaxis(0).Text = "Time (sec)" Form1.Yaxis(0).Text = "Torque (Nm)" Form1.pctFig(0).ScaleWidth = Val(Form1.Xmax(0).Text) - Val(Form1.Xmin(0).Text) Form1.pctFig(0).ScaleHeight = Val(Form1.Ymin(0).Text) - Val(Form1.Ymax(0).Text) Form1.pctFig(0).ScaleLeft = Val(Form1.Xmin(0).Text) Form1.pctFig(0).ScaleTop = Val(Form1.Ymax(0).Text) Form1.pctFig(0).Cls Form1.pctFig(0).Line (0, 0)-(SampTime, 0), RGB(128, 128, 128) '0Nmのグラフ Form1.pctFig(0).DrawWidth = 3 For ii = 2 To DataNum z0 = (ii - 1) * SampClk / 1000 z1 = ii * SampClk / 1000 Form1.pctFig(0).Line (z0, Tq(0, ii - 1))-(z1, Tq(0, ii)), ChColor(0) Form1.pctFig(0).Line (z0, Tq(1, ii - 1))-(z1, Tq(1, ii)), ChColor(1) Next ii Form1.pctFig(0).DrawWidth = 1 ' ' 速度のグラフ ' Form1.Xmin(1).Text = 0 Form1.Xmax(1).Text = SampTime If Speed_min(0) < Speed_min(1) Then Form1.Ymin(1).Text = Int(Speed_min(0)) Else Form1.Ymin(1).Text = Int(Speed_min(1)) End If If Val(Form1.Ymin(1).Text) < 0 Then Form1.Ymin(1).Text = -0.2 End If If Speed_max(0) > Speed_max(1) Then Form1.Ymax(1).Text = Int(Speed_max(0) + 1) Else Form1.Ymax(1).Text = Int(Speed_max(1) + 1) End If Form1.Xaxis(1).Text = "Time (sec)" Form1.Yaxis(1).Text = "Speed (m/s)" Form1.pctFig(1).ScaleWidth = Val(Form1.Xmax(1).Text) - Val(Form1.Xmin(1).Text) Form1.pctFig(1).ScaleHeight = Val(Form1.Ymin(1).Text) - Val(Form1.Ymax(1).Text) Form1.pctFig(1).ScaleLeft = Val(Form1.Xmin(1).Text) Form1.pctFig(1).ScaleTop = Val(Form1.Ymax(1).Text) Form1.pctFig(1).Cls Form1.pctFig(1).Line (0, 0)-(SampTime, 0), RGB(128, 128, 128) '0m/sのグラフ Form1.pctFig(1).DrawWidth = 3 For ii = 3 To DataNum z0 = (ii - 1) * SampClk / 1000 z1 = ii * SampClk / 1000 Form1.pctFig(1).Line (z0, Speed(0, ii - 1))-(z1, Speed(0, ii)), ChColor(0) Form1.pctFig(1).Line (z0, Speed(1, ii - 1))-(z1, Speed(1, ii)), ChColor(1) Next ii Form1.pctFig(1).DrawWidth = 1 ' ' 移動距離のグラフ ' Form1.Xmin(2).Text = 0 Form1.Xmax(2).Text = SampTime Form1.Ymin(2).Text = Int(Distance_min(2) - 1) Form1.Ymax(2).Text = Int(Distance_max(2) + 1) Form1.Xaxis(2).Text = "Time (sec)" Form1.Yaxis(2).Text = "Distance (m)" Form1.pctFig(2).ScaleWidth = Val(Form1.Xmax(2).Text) - Val(Form1.Xmin(2).Text) Form1.pctFig(2).ScaleHeight = Val(Form1.Ymin(2).Text) - Val(Form1.Ymax(2).Text) Form1.pctFig(2).ScaleLeft = Val(Form1.Xmin(2).Text) Form1.pctFig(2).ScaleTop = Val(Form1.Ymax(2).Text) Form1.pctFig(2).Cls Form1.pctFig(2).Line (0, 0)-(SampTime, 0), RGB(128, 128, 128) '0mのグラフ Form1.pctFig(2).DrawWidth = 3 For ii = 2 To DataNum z0 = (ii - 1) * SampClk / 1000 z1 = ii * SampClk / 1000 Form1.pctFig(2).Line (z0, Distance(0, ii - 1))-(z1, Distance(0, ii)), ChColor(0) Form1.pctFig(2).Line (z0, Distance(1, ii - 1))-(z1, Distance(1, ii)), ChColor(1) Next ii Form1.pctFig(2).DrawWidth = 1 ' ' 旋回角度のグラフ ' Form1.Xmin(3).Text = 0 Form1.Xmax(3).Text = SampTime If Abs(Alpha_deg_max) > Abs(Alpha_deg_min) Then Form1.Ymin(3).Text = -Int(Alpha_deg_max / 10 + 1) * 10 Form1.Ymax(3).Text = Int(Alpha_deg_max / 10 + 1) * 10 Else Form1.Ymin(3).Text = -Int(Alpha_deg_min / 10 - 1) * 10 Form1.Ymax(3).Text = Int(Alpha_deg_min / 10 - 1) * 10 End If If Val(Form1.Xmax(3).Text) = 0 Then Form1.Ymin(3).Text = -10 Form1.Ymax(3).Text = 10 End If Form1.Xaxis(3).Text = "Time (sec)" Form1.Yaxis(3).Text = "Turn (deg)" Form1.pctFig(3).ScaleWidth = Val(Form1.Xmax(3).Text) - Val(Form1.Xmin(3).Text) Form1.pctFig(3).ScaleHeight = Val(Form1.Ymin(3).Text) - Val(Form1.Ymax(3).Text) Form1.pctFig(3).ScaleLeft = Val(Form1.Xmin(3).Text) Form1.pctFig(3).ScaleTop = Val(Form1.Ymax(3).Text) Form1.pctFig(3).Cls Form1.pctFig(3).Line (0, 0)-(SampTime, 0), RGB(128, 128, 128) '0m/sのグラフ Form1.pctFig(3).DrawWidth = 3 For ii = 2 To DataNum z0 = (ii - 1) * SampClk / 1000 z1 = ii * SampClk / 1000 Form1.pctFig(3).Line (z0, Alpha_deg(ii - 1))-(z1, Alpha_deg(ii)), ChColor(2) Next ii Form1.pctFig(3).DrawWidth = 1 ' ' 旋回角速度のグラフ ' Form1.Xmin(4).Text = 0 Form1.Xmax(4).Text = SampTime If Abs(Beta_deg_max) > Abs(Beta_deg_min) Then Form1.Ymin(4).Text = -Int(Beta_deg_max / 10 + 1) * 10 Form1.Ymax(4).Text = Int(Beta_deg_max / 10 + 1) * 10 Else Form1.Ymin(4).Text = -Int(Beta_deg_min / 10 - 1) * 10 Form1.Ymax(4).Text = Int(Beta_deg_min / 10 - 1) * 10 End If If Val(Form1.Xmax(4).Text) = 0 Then Form1.Ymin(4).Text = -10 Form1.Ymax(4).Text = 10 End If Form1.Xaxis(4).Text = "Time (sec)" Form1.Yaxis(4).Text = "Turn (deg/s)" Form1.pctFig(4).ScaleWidth = Val(Form1.Xmax(4).Text) - Val(Form1.Xmin(4).Text) Form1.pctFig(4).ScaleHeight = Val(Form1.Ymin(4).Text) - Val(Form1.Ymax(4).Text) Form1.pctFig(4).ScaleLeft = Val(Form1.Xmin(4).Text) Form1.pctFig(4).ScaleTop = Val(Form1.Ymax(4).Text) Form1.pctFig(4).Cls Form1.pctFig(4).Line (0, 0)-(SampTime, 0), RGB(128, 128, 128) '0m/sのグラフ Form1.pctFig(4).DrawWidth = 3 For ii = 2 To DataNum z0 = (ii - 1) * SampClk / 1000 z1 = ii * SampClk / 1000 Form1.pctFig(4).Line (z0, Beta_deg(ii - 1))-(z1, Beta_deg(ii)), ChColor(2) Next ii Form1.pctFig(4).DrawWidth = 1 ' ' 軌跡のグラフ ' If Abs(y_max) > Abs(y_min) Then Form1.Xmin(5).Text = Int(y_max + 1) Form1.Xmax(5).Text = -Int(y_max + 1) Else Form1.Xmin(5).Text = Int(y_min - 1) Form1.Xmax(5).Text = -Int(y_min - 1) End If If Val(Form1.Xmax(5).Text) = 0 Then Form1.Xmin(5).Text = -0.5 Form1.Xmax(5).Text = 0.5 End If Form1.Ymin(5).Text = Int(x_min) Form1.Ymax(5).Text = Int(x_max + 1) Form1.Xaxis(5).Text = "Distance (m)" Form1.Yaxis(5).Text = "Distance (m)" Form1.pctFig(5).ScaleWidth = Val(Form1.Xmax(5).Text) - Val(Form1.Xmin(5).Text) Form1.pctFig(5).ScaleHeight = Val(Form1.Ymin(5).Text) - Val(Form1.Ymax(5).Text) Form1.pctFig(5).ScaleLeft = Val(Form1.Xmin(5).Text) Form1.pctFig(5).ScaleTop = Val(Form1.Ymax(5).Text) Form1.pctFig(5).Cls Form1.pctFig(5).Line (Form1.Xmin(5).Text, 0)-(Form1.Xmax(5).Text, 0), RGB(128, 128, 128) Form1.pctFig(5).Line (0, Form1.Ymin(5).Text)-(0, Form1.Ymax(5).Text), RGB(128, 128, 128) Form1.pctFig(5).DrawWidth = 3 For ii = 2 To DataNum Form1.pctFig(5).Line (y(ii - 1), x(ii - 1))-(y(ii), x(ii)), ChColor(2) Next ii Form1.pctFig(5).DrawWidth = 1 ' ' 出力のグラフ ' Form1.Xmin(6).Text = 0 Form1.Xmax(6).Text = SampTime If Power_min(0) < Power_min(1) Then Form1.Ymin(6).Text = Int(Power_min(0) / 10) * 10 Else Form1.Ymin(6).Text = Int(Power_min(1) / 10) * 10 End If If Power_max(0) > Power_max(1) Then Form1.Ymax(6).Text = Int(Power_max(0) / 10 + 1) * 10 Else Form1.Ymax(6).Text = Int(Power_max(1) / 10 + 1) * 10 End If Form1.Xaxis(6).Text = "Time (sec)" Form1.Yaxis(6).Text = "Power (W)" Form1.pctFig(6).ScaleWidth = Val(Form1.Xmax(6).Text) - Val(Form1.Xmin(6).Text) Form1.pctFig(6).ScaleHeight = Val(Form1.Ymin(6).Text) - Val(Form1.Ymax(6).Text) Form1.pctFig(6).ScaleLeft = Val(Form1.Xmin(6).Text) Form1.pctFig(6).ScaleTop = Val(Form1.Ymax(6).Text) Form1.pctFig(6).Cls Form1.pctFig(6).Line (0, 0)-(SampTime, 0), RGB(128, 128, 128) '0Wのグラフ Form1.pctFig(6).DrawWidth = 3 For ii = 2 To DataNum z0 = (ii - 1) * SampClk / 1000 z1 = ii * SampClk / 1000 Form1.pctFig(6).Line (z0, Power(0, ii - 1))-(z1, Power(0, ii)), ChColor(0) Form1.pctFig(6).Line (z0, Power(1, ii - 1))-(z1, Power(1, ii)), ChColor(1) Next ii Form1.pctFig(6).DrawWidth = 1 ' Form1.RetInf = "" Form1.RetInf = "Data Sampling..." ' End Sub |
[ Wheelchair Home Page ] [ Wheelchair Measuring System ] |
このページに関するお問い合わせはkhirata@nmri.go.jpまでお願いします |