Skip to content

Commit

Permalink
Merge pull request #1748 from MicrosoftDocs/fcp-iot
Browse files Browse the repository at this point in the history
Fcp iot
  • Loading branch information
ShannonLeavitt committed Sep 10, 2020
2 parents bd4d50c + e5f0d9d commit 0998bcf
Show file tree
Hide file tree
Showing 9 changed files with 939 additions and 14 deletions.
54 changes: 54 additions & 0 deletions docs/example-scenario/iot/analyze-optimize-loop.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
---
title: IoT analyze and optimize loops
titleSuffix: Azure Example Scenarios
description: Learn about analyze and optimize loops, an IoT pattern for generating and applying optimization insights based on the entire business context.
author: hanuk
ms.date: 08/10/2020
ms.topic: example-scenario
ms.service: architecture-center
ms.subservice: example-scenario
ms.custom: fcp
---

# Analyze and optimize loops

The Internet-of-Things (IoT) *analyze and optimize loop* enables the generation and application of business optimization insights to one or more deployments of physical systems controlled by software, based on the entire enterprise business context. The analyze and optimize loop sources telemetry, typically from [monitor and manage loop](monitor-manage-loop.md) processes, refines it, and combines it with enterprise data sources to generate insights.

This article provides an overview of analyze and optimize process loop architecture, characteristics, and components.

## Use cases

Some example scenarios for analyze and optimize loops include:

- Smart spaces: Compute campus safety index and take appropriate measures.
- Power transmission: Correlate power outage and wildfire event trends to produce proactive transmission repairs and replacement of monitoring devices.
- Oil and gas production: Compute a basin's oil production trends and compare it with site performance.
- Transportation and logistics: Compute carbon footprint trends, compare them with organizational goals, and take corrective measures.
- Wind farm: Compute the power factor of the entire wind farm operation, and devise means to improve efficiency of each wind turbine.
- Discrete manufacturing: Increase the widget production rate of many factories to meet market demand.

## Architecture

The following diagram shows the schematic of a typical analyze and optimize loop and its relationships with other IoT process loops.

![Diagram showing an analyze and optimize loop in context with measure and control and monitor and manage loops.](./media/analyze-and-optimize.svg)

In an analyze and optimize loop, data from various IoT, enterprise, private, and public sources flows into cloud data lakes. Offline analytics consume the data lakes to discover hidden trends and business optimization insights. The optimization insights from the offline analytics processes flow back to IoT installations through [monitor and manage loops](monitor-manage-loop.md) and [measure and control loops](measure-control-loop.md).

## Characteristics

- The analyze and optimize loop operates asynchronously, so there are no tight timing deadlines for analyzing data or sending optimization signals to devices. These loops depend on long telemetry history and enterprise operational data history for running batch jobs.
- System dependencies include multiple systems to feed data through the data lake, which include IoT systems and feeds from enterprise systems. The optimization loop primarily uses web service protocols to integrate with supervisory systems and other enterprise systems.

## Components

The important components of business optimization control are:

- A **data lake**, large-scale storage optimized for lower usage costs over longer periods. HDFS storage in the context of map-reduce processing is an example of such a data lake. Data lake defers the structure of the data to the processing time, so is good for storing both structured and unstructured data.
- **Cold time series data**, raw or processed telemetry that is important for offline analytics and often comes from multiple IoT systems. Analytics jobs further refine and combine this data with enterprise and external data sets.
- **Enterprise data** produced by enterprise systems like product lifecycle management, supply chain, finance, sales, manufacturing and distribution, and customer relationship management. Enterprise data combined with external data sets like weather can contextualize IoT telemetry at business scope for generating compatible insights.
- **Offline analytics** to process big data in batch mode. Spark jobs and Hadoop map-reduce processing are a couple of examples. Monitor and manage loop and measure and control loop processes then apply the insights obtained from analyze and optimize loops to IoT devices.

## See also
- [Monitor and manage loops](monitor-manage-loop.md)
- [Measure and control loops](measure-control-loop.md)
58 changes: 58 additions & 0 deletions docs/example-scenario/iot/measure-control-loop.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
---
title: IoT measure and control loops
titleSuffix: Azure Example Scenarios
description: Learn about measure and control loops, an IoT process pattern to keep IoT devices within tolerable ranges.
author: hanuk
ms.date: 08/10/2020
ms.topic: example-scenario
ms.service: architecture-center
ms.subservice: example-scenario
ms.custom: fcp
---

# Measure and control loops
An Internet-of-Things *measure and control loop* keeps an IoT device within the tolerable range of setpoint configuration, through a real-time, closed-loop control process. The device may be part of a larger physical system controlled by software that contains one or more networked devices.

An IoT device that is prone to disturbances from external events requires a closed-loop control process to keep it near its desired setpoint configuration. The measure and control loop *control logic* observes the device through *sensor* metrics and takes corrective measures through *actuator* actions.

This article provides an overview of the measure and control process loop architecture, characteristics, and components.

## Use cases
Examples of measure and control loops in action include:
- Smart mousetrap: Triggers a trap shut event when the sensors detect a mouse.
- Smoke sensors: Trigger sprinklers upon sensing smoke from multiple sensors.
- Power transformer: Shut down a transformer under a predicted severe thunderstorm.
- Gas pipeline monitor: Open a valve to compensate for a pressure drop.
- Home thermostat: Increase the heater gas flow upon sensing the room temperature falling below the setpoint.
- Wind turbine: Apply brakes to slow down a rotor when it is about to reach the warning RPM threshold.
- Solar panels: Adjust solar panel angle as the sun moves over the horizon to maximize the power generated.

## Architecture
![Measure and control loop in the context of a regulatory control.](./media/measure-and-control.svg)

A measure and control loop is scoped as a single device abstraction composed of sensors, actuators, and a controller. These loops may integrate with [analyze and optimize loops](analyze-optimize-loop.md) and [monitor and manage loops](monitor-manage-loop.md) that operate in a much larger context.

## Characteristics
A measure and control loop has the following characteristics:
- Runs close to the device or embedded inside the device.
- Has a cycle time depending on IoT scenario, which may be a few milliseconds in a time-sensitive networking environment.
- Takes input measurements depending on setpoint configuration, last known sensor measurements, and a small time series history of each measurement.
- Accepts commands from monitor and manage loops to adjust setpoint configuration, and imperative commands to control actuators.
- Implements actuator commands to maintain the device state around the setpoint configuration.
- Doesn't depend on any external systems to ensure low cycle time and operational autonomy.
- May emit telemetry to be used by supervisory systems.
- For sensor metrics and actuator commands, uses field bus protocols like Modbus, RS485, EtherCAT, and SERCOS.
- May integrate with supervisory systems like monitor and manage loops through IoT Hub protocols like HTTP, MQTT, and AMQP.

## Components
An IoT *thing* (device) is composed of sensors, actuators, and a controller. All three components work in concert to make sure that the device is operating in its environment as expected. Example devices include wind turbines, washing machines, car washes, and gas storage tanks. Example setpoints include safe RPM of a wind turbine, safe temperature and pressure of a gas tank, and safe distance for auto unlock of a smart door lock.

- **Sensors** continually measure current device conditions and report them to the controller. Example measurements include natural gas storage tank temperature and pressure, smart home temperature and humidity, or wind turbine rotor RPM and power generation rate. The sensor sampling rate depends on the function of the device. Slow-changing devices like large gas tanks need low frequency sampling, while fast-changing devices like wind turbines need high-frequency sampling.

- **Actuators** are the physical components that affect device state. Examples include the inlet valve of a natural gas tank, a brake that slows down the rotor of a wind turbine, or a smart front door lock that locks when the owner is away. The controller drives the actuators based on sensor measurements and external stimuli. Some sensing-only devices don't have any actuators, so that part of the loop isn't needed.

- **Control logic** keeps device state within the tolerable desired range. The current state is computed from sensor measurements. If the current state deviates from the desired state, the controller takes corrective action by sending commands to the actuators. Examples of corrective actions include closing the valve of a natural gas tank, turning on a home heater, or applying brakes to a wind turbine rotor. The controller can also emit telemetry and receive external commands from monitor and manage loops as needed.

## See also
- [Analyze and optimize loops](analyze-optimize-loop.md)
- [Monitor and manage loops](monitor-manage-loop.md)
135 changes: 135 additions & 0 deletions docs/example-scenario/iot/media/analyze-and-optimize.svg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
126 changes: 126 additions & 0 deletions docs/example-scenario/iot/media/measure-and-control.svg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 0998bcf

Please sign in to comment.