ガイドAPIリファレンス
ガイド

EVフリートに合わせて効率的なルートを計画する

この記事では、電気自動車 (EV) で構成される運行管理の要件に応えるために、旅程計画を調整する方法を説明します。

電気自動車向けにツアー計画を適応させるには、航続距離の制限、途中での充電、充電間隔と休憩時間の最適化などの特定のユースケースに対処する必要があります。こうした調整をツアー計画の問題に組み込むことで、EVフリートの効率的で信頼性の高い運用を実現しながら、航続距離を最大化し、ダウンタイムを最小限に抑えることができます。

📘

ヒント:バッテリー消費量を予測する

各電気自動車には、1回の充電で再充電が必要になるまでに走行できる距離に制限があります。特に物流と配達のシナリオで、この制限が極めて重要となります。すでに車両の航続可能距離についてインサイトを得ている可能性もありますが、そうでない場合は、HERE Routing API v8を使用して、車速、ルートの長さ、地形標高などの変数に基づいてバッテリー消費量を計算することを検討します。詳細については、「HERE Routing API v8でのEVのルート探索」を参照してください。

HERE Routing API v8に対してEVのバッテリー消費量に関するデータを取得するクエリを実行すると、レスポンスにはsummaryオブジェクトが含まれます。このオブジェクトには、EVに関連するさまざまな種類の航続距離制限を確立するために利用できる豊富な値が含まれており、特定の要件に合わせて調整されています。

次のサンプルsummaryオブジェクトを考えてみましょう。

"summary" : {
    "consumption" : 43.343000000000004,
    "length" : 145350,
    "baseDuration" : 6337,
    "duration" : 6337
  }

次のリストは、EVフリートのツアー計画でsummaryオブジェクトのいくつかの主要な値を利用する方法についてのインサイトを示しています。

  • length:この値から、充電が必要になるまでに車両が走行できる距離の推定値がわかります。たとえば、1回の充電でツアーを完了する必要がある場合、この値を使用してEVフリートのmaxDistance制限を設定できます。

  • durationまたはbaseDuration:この値から、時間的な要素を含む情報 (待機や休憩など) の有無にかかわらず、車両が1回の充電で作動できる時間の推定値がわかります。これらの値は、次のようなさまざまな目的に役立つ場合があります。

  • EVフリートのshiftTime制限を設定する。この制限をmaxDistance制限と合わせて調整すると、EVフリートのツアー計画をよりきめ細かく制御できるようになり、距離ベースと時間ベースの両方の制約に対応できます。

  • 充電ジョブの時間枠を計算して、充電スケジュールを効果的に管理できるようにする。

  • EVの充電場所でドライバーの休憩時間を設け、休憩と充電間隔を同期させることでダウンタイムを最適化する。

📘

HERE Routing API v8は、バッテリーの消費量を特定することで移動の最大距離または最大所要時間を判断するのに役立ち、こうしたパラメーターに基づいて充電がどこで必要になるかを把握できます。ただし、システム内のEV充電スポットの正確な位置の特定は個別に行う必要があります。

1回の充電でのツアーの効率を管理する

EVが集配センターに戻るまでに1回のバッテリー充電でツアーを完了するか、バッテリーを補充するために電気自動車充電所でツアーを完了する必要がある場合の一般的なユースケースについて考えてみます。車両がバッテリー電力を使い切ることなく割り当てられたジョブを完了できるようにするには、fleet.types.limitsオプションを使用してツアー距離またはフリート内の各車両の所要時間制限を設定します。limitsオプションの詳細については、「VehicleType」を参照してください。

次の問題のJSONスニペットは、次の設定を含むlimits構成のサンプルを示したものです。

  • shiftTime10800秒に設定 (3時間)
  • maxDistance25000メートルに設定 (25km)
{
  // Simplified version focusing on the "limits" object
  "fleet": {
    "types": [
      {
        "id": "car_shift_a",
        "profile": "ev_car",
        "limits": {
          "shiftTime": 10800,
          "maxDistance": 25000
        },
        "amount": 2
      }
    ]
  }
}

先ほどのEVのユースケースでは、limits値によってツアー計画に制約が課されています。つまり、1台の車両のツアーが3時間または25キロメートルを超えることができないため、集配センターで再充電が必要になるまでに車両が走行できる時間と距離に上限が設定されていることになります。

次の図は、2台の車両で構成されるフリートの7つのジョブの問題に対するソリューションを図式化したもので、先ほどのユースケースで紹介したlimits構成を使用しています。

1回の充電でEVが走行できる航続距離の上限に関する問題のソリューション

[Tours overview](ツアーの概要) で示されるように、どちらの車両も距離や所要時間の上限に違反することなく、割り当てられたツアーを完了しました。一方で、割り当てられた上限 (この場合は距離制限) を超えてツアーを延長せずにツアーを達成するために、この車両は割り当てられていない2つのジョブを犠牲にしました。

したがって、1回の充電のEVユースケースでは、すべてのジョブが指定された上限を超えることなく完了するように、フリートのサイズやツアーでのジョブの数を調整することが不可欠です。

途中での充電を計画する

もう一つの一般的なユースケースとして、1回の充電での最大航続距離を超えて都市間を移動するような長いツアーを完了するようスケジューリングされたEVが挙げられます。ツアーを完了するには、ルートに沿って戦略的に配置された充電スタンドに1回以上停車して充電する必要があります。

HERE Tour Planning APIでは、いくつかの推奨設定を使用して、EVフリートの充電のための停車場所として機能する定期配達/集荷ジョブを作成できます。

📘

現在、Tour Planning APIには充電後に距離とバッテリーレベルを自動的に更新する機能がないため、車両が動的にカバーできる最大距離を手動で再計算する必要があります。

ツアー中の充電のための停車場所を表す次のサンプルジョブ構成を考えてみましょう。

{
  "id": "Charging_job1",
  "priority": 1,
  "tasks": {
    "deliveries": [
      {
        "places": [
          {
            "times": [
              [
                "2023-07-31T13:45:00Z",
                "2023-07-31T15:45:00Z"
              ]
            ],
            "location": {
              "lat": 52.5954254748477,
              "lng": 13.324703385065265
            },
            "duration": 7200,
            "tag": "charging_1"
          },
          {
            "times": [
              [
                "2023-07-31T14:45:00Z",
                "2023-07-31T16:45:00Z"
              ]
            ],
            "location": {
              "lat": 52.471443,
              "lng": 13.38549
            },
            "duration": 7200,
            "tag": "charging_2"
          },
          {
            "times": [
              [
                "2023-07-31T15:45:00Z",
                "2023-07-31T17:45:00Z"
              ]
            ],
            "location": {
              "lat": 52.52640450644544,
              "lng": 13.407224802521869
            },
            "duration": 7200,
            "tag": "charging_3"
          }
        ],
        "demand": [
          0
        ]
      }
    ]
  }
}

上記のジョブ構成には次の主な設定が含まれています。

  • "priority": 1:この設定では、ジョブを最優先に指定しています。指定された時間枠と組み合わせると、指定された充電の時間枠内でジョブが他の何よりも優先されることが保証されます。
  • "places": [...]:EV充電のための最大3つの代替場所が含まれます。この例では、charging_1charging_2charging_3として指定されています。 これらの場所では、指定された時間枠 ("times": [...]) 内で充電ポイントを柔軟に選択できるため、最適化アルゴリズムが交通状況の変化、ルートへの近接度、ステーションの空き状況に応じて対応できます。
  • "demand": [0]:充電時間中の車両の積載量を無駄にしないよう、このパラメーターは0に設定されます。車両は充電中に非アクティブになるため、商品の配送や集荷には関与しません。

以下の図は、52のジョブで構成された、3台のEVフリートによる問題のソリューションを図式化した例です。通常のジョブの間に混在する3つの充電ジョブ (前の例のジョブを含む) があり、それぞれが異なるフリートに割り当てられています。

充電のための停車が優先度の高いジョブとして実装される

図に示されているように、ジョブの優先順位、時間枠、代替ジョブ場所などの前述の設定を利用すると、すべての車両が必要に応じてバッテリーを確実に補充でき、ツアーを問題なく完了できるようになります。

充電時間と車両の休憩時間を重複させる

長距離のEVツアーを最適化するには、車両の充電のための停車に合わせて休憩を計画し、ドライバーが休憩中にバッテリーを充電できるようにします。このためには、シフト構成に場所を指定して休憩を追加します。

breaksオプションの詳細については、「VehicleType」を参照してください。

特定の場所での休憩を含むシフト構成のサンプルを示した、次の問題のスニペットを考えてみましょう。

"shifts": [
  {
    "start": {
      "time": "2023-07-31T08:45:00Z",
      "location": {
        "lat": 52.530971,
        "lng": 13.384915
      }
    },
    "end": {
      "time": "2023-07-31T18:45:00Z",
      "location": {
        "lat": 52.530971,
        "lng": 13.384915
      }
    },
    "breaks": [
      {
        "duration": 5400,
        "times": [
          [
            "2023-07-31T11:45:00Z",
            "2023-07-31T13:15:00Z"
          ]
        ],
        "location": {
          "lat": 52.471443,
          "lng": 13.38549
        }
      }
    ]
  }
]

前の例の"breaks"配列には、次のプロパティがある単一の休憩インスタンスが含まれています。

  • "duration":車両の充電に必要な推定時間。
  • "times":バッテリー充電に割り当てられた時間枠。たとえば、HERE Routing API v8のdurationまたはbaseDurationの値や、充電スタンドを予約した時間などの他の要素に基づいてこの時間枠を割り当てることができます。
  • "location":バッテリーの推定持続時間に基づいて決定される電気自動車充電所の場所。

次の図は、前の例で説明した、特定の場所での休憩を組み込んだ問題のソリューションの例を示したものです。

EVツアーで充電のための停車として機能する車両の休憩

前の例で示したように、充電時間に合わせて休憩のスケジュールを最適化することで、EVフリートのダウンタイム効率を最大化できます。

次のステップ

  • HERE Tour Planning APIで問題を作成する方法の詳細については、「問題」を参照してください。
  • HERE Tour Planning APIのメソッド、エンドポイント、パラメーターの詳細については、「APIリファレンス」を参照してください。
  • ルーティングの詳細については、「HERE Routing API v8」を参照してください。