計測用車いすの開発
〜プログラムの詳細とダウンロード〜

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までお願いします