{
  "node": {
    "id": "term:kalman-filter",
    "type": "Term",
    "label": "Kalman filter",
    "properties": {
      "id": "kalman-filter",
      "name": "Kalman filter",
      "section": "topic-state",
      "definition": "A recursive estimator that blends a model prediction with noisy measurements according to how much each is trusted. In a BMS an extended Kalman filter combines coulomb counting with a voltage model to track SOC and sometimes resistance.",
      "related": [
        "coulomb-counting",
        "equivalent-circuit-model",
        "state-of-charge",
        "bms",
        "fuzzy-logic",
        "data-driven-soc-estimation"
      ],
      "url": "https://lemonergy.com/learn/glossary/kalman-filter/",
      "mentions": [
        "coulomb"
      ]
    }
  },
  "edges": [
    {
      "id": "edge:usedIn/term:kalman-filter/workflow:native-battery-soc-ekf",
      "source": "term:kalman-filter",
      "target": "workflow:native-battery-soc-ekf",
      "type": "usedIn",
      "properties": {
        "sourceFile": "wiki-blocks.json"
      }
    },
    {
      "id": "edge:usedIn/term:kalman-filter/workflow:native-battery-soc-ekf-variable-capacity",
      "source": "term:kalman-filter",
      "target": "workflow:native-battery-soc-ekf-variable-capacity",
      "type": "usedIn",
      "properties": {
        "sourceFile": "wiki-blocks.json"
      }
    },
    {
      "id": "edge:usedIn/term:kalman-filter/workflow:native-battery-soc-adaptive-ekf",
      "source": "term:kalman-filter",
      "target": "workflow:native-battery-soc-adaptive-ekf",
      "type": "usedIn",
      "properties": {
        "sourceFile": "wiki-blocks.json"
      }
    },
    {
      "id": "edge:usedIn/term:kalman-filter/workflow:native-battery-soc-adaptive-ekf-variable-capacity",
      "source": "term:kalman-filter",
      "target": "workflow:native-battery-soc-adaptive-ekf-variable-capacity",
      "type": "usedIn",
      "properties": {
        "sourceFile": "wiki-blocks.json"
      }
    },
    {
      "id": "edge:usedIn/term:kalman-filter/workflow:native-battery-soe-ekf",
      "source": "term:kalman-filter",
      "target": "workflow:native-battery-soe-ekf",
      "type": "usedIn",
      "properties": {
        "sourceFile": "wiki-blocks.json"
      }
    },
    {
      "id": "edge:usedIn/term:kalman-filter/workflow:native-battery-soe-ekf-variable-capacity",
      "source": "term:kalman-filter",
      "target": "workflow:native-battery-soe-ekf-variable-capacity",
      "type": "usedIn",
      "properties": {
        "sourceFile": "wiki-blocks.json"
      }
    },
    {
      "id": "edge:usedIn/term:kalman-filter/workflow:native-battery-soe-adaptive-ekf",
      "source": "term:kalman-filter",
      "target": "workflow:native-battery-soe-adaptive-ekf",
      "type": "usedIn",
      "properties": {
        "sourceFile": "wiki-blocks.json"
      }
    },
    {
      "id": "edge:usedIn/term:kalman-filter/workflow:native-battery-soe-adaptive-ekf-variable-capacity",
      "source": "term:kalman-filter",
      "target": "workflow:native-battery-soe-adaptive-ekf-variable-capacity",
      "type": "usedIn",
      "properties": {
        "sourceFile": "wiki-blocks.json"
      }
    },
    {
      "id": "edge:usedIn/term:kalman-filter/workflow:native-battery-capacity-observer",
      "source": "term:kalman-filter",
      "target": "workflow:native-battery-capacity-observer",
      "type": "usedIn",
      "properties": {
        "sourceFile": "wiki-blocks.json"
      }
    },
    {
      "id": "edge:usedIn/term:kalman-filter/workflow:native-battery-pack-soc-ekf",
      "source": "term:kalman-filter",
      "target": "workflow:native-battery-pack-soc-ekf",
      "type": "usedIn",
      "properties": {
        "sourceFile": "wiki-blocks.json"
      }
    },
    {
      "id": "edge:usedIn/term:kalman-filter/workflow:native-battery-pack-soc-adaptive-ekf",
      "source": "term:kalman-filter",
      "target": "workflow:native-battery-pack-soc-adaptive-ekf",
      "type": "usedIn",
      "properties": {
        "sourceFile": "wiki-blocks.json"
      }
    },
    {
      "id": "edge:usedIn/term:kalman-filter/workflow:native-battery-cell-delta-soc-ekf",
      "source": "term:kalman-filter",
      "target": "workflow:native-battery-cell-delta-soc-ekf",
      "type": "usedIn",
      "properties": {
        "sourceFile": "wiki-blocks.json"
      }
    },
    {
      "id": "edge:usedIn/term:kalman-filter/workflow:native-battery-cell-delta-soc-ekf-variable-resistance",
      "source": "term:kalman-filter",
      "target": "workflow:native-battery-cell-delta-soc-ekf-variable-resistance",
      "type": "usedIn",
      "properties": {
        "sourceFile": "wiki-blocks.json"
      }
    },
    {
      "id": "edge:belongsTo/term:kalman-filter/topic:topic-state",
      "source": "term:kalman-filter",
      "target": "topic:topic-state",
      "type": "belongsTo",
      "properties": {
        "sourceFile": "terms.json"
      }
    },
    {
      "id": "edge:relatedTo/term:kalman-filter/term:coulomb-counting",
      "source": "term:kalman-filter",
      "target": "term:coulomb-counting",
      "type": "relatedTo",
      "properties": {
        "sourceFile": "terms.json",
        "meaning": "Related context; not a causal claim"
      }
    },
    {
      "id": "edge:relatedTo/term:kalman-filter/term:equivalent-circuit-model",
      "source": "term:kalman-filter",
      "target": "term:equivalent-circuit-model",
      "type": "relatedTo",
      "properties": {
        "sourceFile": "terms.json",
        "meaning": "Related context; not a causal claim"
      }
    },
    {
      "id": "edge:relatedTo/term:kalman-filter/term:state-of-charge",
      "source": "term:kalman-filter",
      "target": "term:state-of-charge",
      "type": "relatedTo",
      "properties": {
        "sourceFile": "terms.json",
        "meaning": "Related context; not a causal claim"
      }
    },
    {
      "id": "edge:relatedTo/term:kalman-filter/term:bms",
      "source": "term:kalman-filter",
      "target": "term:bms",
      "type": "relatedTo",
      "properties": {
        "sourceFile": "terms.json",
        "meaning": "Related context; not a causal claim"
      }
    },
    {
      "id": "edge:relatedTo/term:kalman-filter/term:fuzzy-logic",
      "source": "term:kalman-filter",
      "target": "term:fuzzy-logic",
      "type": "relatedTo",
      "properties": {
        "sourceFile": "terms.json",
        "meaning": "Related context; not a causal claim"
      }
    },
    {
      "id": "edge:relatedTo/term:kalman-filter/term:data-driven-soc-estimation",
      "source": "term:kalman-filter",
      "target": "term:data-driven-soc-estimation",
      "type": "relatedTo",
      "properties": {
        "sourceFile": "terms.json",
        "meaning": "Related context; not a causal claim"
      }
    },
    {
      "id": "edge:mentions/kalman-filter/coulomb",
      "source": "term:kalman-filter",
      "target": "term:coulomb",
      "type": "mentions",
      "properties": {
        "sourceFile": "terms.json",
        "method": "build_glossary.mention_index + mentions",
        "field": "definition",
        "meaning": "Text mention; not a causal claim"
      }
    },
    {
      "id": "edge:cites/term:kalman-filter/reference:plett-estimation",
      "source": "term:kalman-filter",
      "target": "reference:plett-estimation",
      "type": "cites",
      "properties": {
        "sourceFile": "wiki-references.json",
        "scope": "direct technical reference"
      }
    }
  ],
  "neighbors": [
    {
      "id": "workflow:native-battery-soc-ekf",
      "type": "Workflow",
      "label": "SOC EKF worked example",
      "properties": {
        "id": "native-battery-soc-ekf",
        "title": "SOC EKF worked example",
        "kind": "studio",
        "summary": "One-state extended Kalman observer with a calibrated fraction-to-OCV table, Joseph covariance update and explicit measurement validity.",
        "steps": [
          "Review the block inputs, units and model limits.",
          "Open the Studio example and run its bundled model.",
          "Compare the output channels with the numerical checks; change one input and run again."
        ],
        "example": "Use the defaults below with Signed battery current = 0 A, Measured voltage = 3.8 V, Voltage measurement valid = 1 true / false, Reset = 0 true / false. At 0 s, State of charge is 0.76 1 (fraction). Additional checks are listed below.",
        "observe": "Inspect the outputs and numerical checks on the block reference page.",
        "limits": "One-state extended Kalman observers, without an unscented transform, RC polarization states or automatic cell identification. SOE requires its own energy-fraction-to-OCV calibration. Synthetic filter settings are not accuracy guarantees. The example verifies numerical behavior for synthetic parameters. Cell characterization and validation for an intended use are separate tasks.",
        "url": "https://design.lemonergy.com/cosim.html?example=block-battery-soc-ekf",
        "label": "Open Studio example",
        "evidence": [
          "docs/glossary/native-block-verification.json"
        ]
      }
    },
    {
      "id": "workflow:native-battery-soc-ekf-variable-capacity",
      "type": "Workflow",
      "label": "SOC EKF with capacity input worked example",
      "properties": {
        "id": "native-battery-soc-ekf-variable-capacity",
        "title": "SOC EKF with capacity input worked example",
        "kind": "studio",
        "summary": "One-state extended Kalman observer with a calibrated fraction-to-OCV table, Joseph covariance update and explicit measurement validity.",
        "steps": [
          "Review the block inputs, units and model limits.",
          "Open the Studio example and run its bundled model.",
          "Compare the output channels with the numerical checks; change one input and run again."
        ],
        "example": "Use the defaults below with Signed battery current = 0 A, Measured voltage = 3.8 V, Voltage measurement valid = 1 true / false, Reset = 0 true / false, Charge capacity (Ah) = 2 Ah. At 0 s, State of charge is 0.76 1 (fraction). Additional checks are listed below.",
        "observe": "Inspect the outputs and numerical checks on the block reference page.",
        "limits": "One-state extended Kalman observers, without an unscented transform, RC polarization states or automatic cell identification. SOE requires its own energy-fraction-to-OCV calibration. Synthetic filter settings are not accuracy guarantees. The example verifies numerical behavior for synthetic parameters. Cell characterization and validation for an intended use are separate tasks.",
        "url": "https://design.lemonergy.com/cosim.html?example=block-battery-soc-ekf-variable-capacity",
        "label": "Open Studio example",
        "evidence": [
          "docs/glossary/native-block-verification.json"
        ]
      }
    },
    {
      "id": "workflow:native-battery-soc-adaptive-ekf",
      "type": "Workflow",
      "label": "SOC adaptive EKF worked example",
      "properties": {
        "id": "native-battery-soc-adaptive-ekf",
        "title": "SOC adaptive EKF worked example",
        "kind": "studio",
        "summary": "One-state extended Kalman observer with a calibrated fraction-to-OCV table, Joseph covariance update and explicit measurement validity. Innovation matching adapts bounded voltage-noise variance.",
        "steps": [
          "Review the block inputs, units and model limits.",
          "Open the Studio example and run its bundled model.",
          "Compare the output channels with the numerical checks; change one input and run again."
        ],
        "example": "Use the defaults below with Signed battery current = 0 A, Measured voltage = 3.8 V, Voltage measurement valid = 1 true / false, Reset = 0 true / false. At 0 s, State of charge is 0.76 1 (fraction). Additional checks are listed below.",
        "observe": "Inspect the outputs and numerical checks on the block reference page.",
        "limits": "One-state extended Kalman observers, without an unscented transform, RC polarization states or automatic cell identification. SOE requires its own energy-fraction-to-OCV calibration. Synthetic filter settings are not accuracy guarantees. The example verifies numerical behavior for synthetic parameters. Cell characterization and validation for an intended use are separate tasks.",
        "url": "https://design.lemonergy.com/cosim.html?example=block-battery-soc-adaptive-ekf",
        "label": "Open Studio example",
        "evidence": [
          "docs/glossary/native-block-verification.json"
        ]
      }
    },
    {
      "id": "workflow:native-battery-soc-adaptive-ekf-variable-capacity",
      "type": "Workflow",
      "label": "SOC adaptive EKF with capacity input worked example",
      "properties": {
        "id": "native-battery-soc-adaptive-ekf-variable-capacity",
        "title": "SOC adaptive EKF with capacity input worked example",
        "kind": "studio",
        "summary": "One-state extended Kalman observer with a calibrated fraction-to-OCV table, Joseph covariance update and explicit measurement validity. Innovation matching adapts bounded voltage-noise variance.",
        "steps": [
          "Review the block inputs, units and model limits.",
          "Open the Studio example and run its bundled model.",
          "Compare the output channels with the numerical checks; change one input and run again."
        ],
        "example": "Use the defaults below with Signed battery current = 0 A, Measured voltage = 3.8 V, Voltage measurement valid = 1 true / false, Reset = 0 true / false, Charge capacity (Ah) = 2 Ah. At 0 s, State of charge is 0.76 1 (fraction). Additional checks are listed below.",
        "observe": "Inspect the outputs and numerical checks on the block reference page.",
        "limits": "One-state extended Kalman observers, without an unscented transform, RC polarization states or automatic cell identification. SOE requires its own energy-fraction-to-OCV calibration. Synthetic filter settings are not accuracy guarantees. The example verifies numerical behavior for synthetic parameters. Cell characterization and validation for an intended use are separate tasks.",
        "url": "https://design.lemonergy.com/cosim.html?example=block-battery-soc-adaptive-ekf-variable-capacity",
        "label": "Open Studio example",
        "evidence": [
          "docs/glossary/native-block-verification.json"
        ]
      }
    },
    {
      "id": "workflow:native-battery-soe-ekf",
      "type": "Workflow",
      "label": "SOE EKF worked example",
      "properties": {
        "id": "native-battery-soe-ekf",
        "title": "SOE EKF worked example",
        "kind": "studio",
        "summary": "One-state extended Kalman observer with a calibrated fraction-to-OCV table, Joseph covariance update and explicit measurement validity.",
        "steps": [
          "Review the block inputs, units and model limits.",
          "Open the Studio example and run its bundled model.",
          "Compare the output channels with the numerical checks; change one input and run again."
        ],
        "example": "Use the defaults below with Signed battery power = 0 W, Signed battery current = 0 A, Measured voltage = 3.8 V, Voltage measurement valid = 1 true / false, Reset = 0 true / false. At 0 s, State of energy is 0.76 1 (fraction). Additional checks are listed below.",
        "observe": "Inspect the outputs and numerical checks on the block reference page.",
        "limits": "One-state extended Kalman observers, without an unscented transform, RC polarization states or automatic cell identification. SOE requires its own energy-fraction-to-OCV calibration. Synthetic filter settings are not accuracy guarantees. The example verifies numerical behavior for synthetic parameters. Cell characterization and validation for an intended use are separate tasks.",
        "url": "https://design.lemonergy.com/cosim.html?example=block-battery-soe-ekf",
        "label": "Open Studio example",
        "evidence": [
          "docs/glossary/native-block-verification.json"
        ]
      }
    },
    {
      "id": "workflow:native-battery-soe-ekf-variable-capacity",
      "type": "Workflow",
      "label": "SOE EKF with capacity input worked example",
      "properties": {
        "id": "native-battery-soe-ekf-variable-capacity",
        "title": "SOE EKF with capacity input worked example",
        "kind": "studio",
        "summary": "One-state extended Kalman observer with a calibrated fraction-to-OCV table, Joseph covariance update and explicit measurement validity.",
        "steps": [
          "Review the block inputs, units and model limits.",
          "Open the Studio example and run its bundled model.",
          "Compare the output channels with the numerical checks; change one input and run again."
        ],
        "example": "Use the defaults below with Signed battery power = 0 W, Signed battery current = 0 A, Measured voltage = 3.8 V, Voltage measurement valid = 1 true / false, Reset = 0 true / false, Energy capacity (J) = 7200 J. At 0 s, State of energy is 0.76 1 (fraction). Additional checks are listed below.",
        "observe": "Inspect the outputs and numerical checks on the block reference page.",
        "limits": "One-state extended Kalman observers, without an unscented transform, RC polarization states or automatic cell identification. SOE requires its own energy-fraction-to-OCV calibration. Synthetic filter settings are not accuracy guarantees. The example verifies numerical behavior for synthetic parameters. Cell characterization and validation for an intended use are separate tasks.",
        "url": "https://design.lemonergy.com/cosim.html?example=block-battery-soe-ekf-variable-capacity",
        "label": "Open Studio example",
        "evidence": [
          "docs/glossary/native-block-verification.json"
        ]
      }
    },
    {
      "id": "workflow:native-battery-soe-adaptive-ekf",
      "type": "Workflow",
      "label": "SOE adaptive EKF worked example",
      "properties": {
        "id": "native-battery-soe-adaptive-ekf",
        "title": "SOE adaptive EKF worked example",
        "kind": "studio",
        "summary": "One-state extended Kalman observer with a calibrated fraction-to-OCV table, Joseph covariance update and explicit measurement validity. Innovation matching adapts bounded voltage-noise variance.",
        "steps": [
          "Review the block inputs, units and model limits.",
          "Open the Studio example and run its bundled model.",
          "Compare the output channels with the numerical checks; change one input and run again."
        ],
        "example": "Use the defaults below with Signed battery power = 0 W, Signed battery current = 0 A, Measured voltage = 3.8 V, Voltage measurement valid = 1 true / false, Reset = 0 true / false. At 0 s, State of energy is 0.76 1 (fraction). Additional checks are listed below.",
        "observe": "Inspect the outputs and numerical checks on the block reference page.",
        "limits": "One-state extended Kalman observers, without an unscented transform, RC polarization states or automatic cell identification. SOE requires its own energy-fraction-to-OCV calibration. Synthetic filter settings are not accuracy guarantees. The example verifies numerical behavior for synthetic parameters. Cell characterization and validation for an intended use are separate tasks.",
        "url": "https://design.lemonergy.com/cosim.html?example=block-battery-soe-adaptive-ekf",
        "label": "Open Studio example",
        "evidence": [
          "docs/glossary/native-block-verification.json"
        ]
      }
    },
    {
      "id": "workflow:native-battery-soe-adaptive-ekf-variable-capacity",
      "type": "Workflow",
      "label": "SOE adaptive EKF with capacity input worked example",
      "properties": {
        "id": "native-battery-soe-adaptive-ekf-variable-capacity",
        "title": "SOE adaptive EKF with capacity input worked example",
        "kind": "studio",
        "summary": "One-state extended Kalman observer with a calibrated fraction-to-OCV table, Joseph covariance update and explicit measurement validity. Innovation matching adapts bounded voltage-noise variance.",
        "steps": [
          "Review the block inputs, units and model limits.",
          "Open the Studio example and run its bundled model.",
          "Compare the output channels with the numerical checks; change one input and run again."
        ],
        "example": "Use the defaults below with Signed battery power = 0 W, Signed battery current = 0 A, Measured voltage = 3.8 V, Voltage measurement valid = 1 true / false, Reset = 0 true / false, Energy capacity (J) = 7200 J. At 0 s, State of energy is 0.76 1 (fraction). Additional checks are listed below.",
        "observe": "Inspect the outputs and numerical checks on the block reference page.",
        "limits": "One-state extended Kalman observers, without an unscented transform, RC polarization states or automatic cell identification. SOE requires its own energy-fraction-to-OCV calibration. Synthetic filter settings are not accuracy guarantees. The example verifies numerical behavior for synthetic parameters. Cell characterization and validation for an intended use are separate tasks.",
        "url": "https://design.lemonergy.com/cosim.html?example=block-battery-soe-adaptive-ekf-variable-capacity",
        "label": "Open Studio example",
        "evidence": [
          "docs/glossary/native-block-verification.json"
        ]
      }
    },
    {
      "id": "workflow:native-battery-capacity-observer",
      "type": "Workflow",
      "label": "Capacity observer worked example",
      "properties": {
        "id": "native-battery-capacity-observer",
        "title": "Capacity observer worked example",
        "kind": "studio",
        "summary": "Scalar capacity Kalman update from independent SOC change and removed charge.",
        "steps": [
          "Review the block inputs, units and model limits.",
          "Open the Studio example and run its bundled model.",
          "Compare the output channels with the numerical checks; change one input and run again."
        ],
        "example": "Use the defaults below with Independent SOC decrease = 0.2 1 (fraction), Removed charge (Ah) = 0.4 Ah, Window valid = 1 true / false, Reset = 0 true / false. At 0 s, Estimated capacity (Ah) is 1.96 Ah. Additional checks are listed below.",
        "observe": "Inspect the outputs and numerical checks on the block reference page.",
        "limits": "Capacity is observable only with informative SOC changes. Feeding the same capacity-dependent SOC calculation back into the observer can create circular evidence. The example verifies numerical behavior for synthetic parameters. Cell characterization and validation for an intended use are separate tasks.",
        "url": "https://design.lemonergy.com/cosim.html?example=block-battery-capacity-observer",
        "label": "Open Studio example",
        "evidence": [
          "docs/glossary/native-block-verification.json"
        ]
      }
    },
    {
      "id": "workflow:native-battery-pack-soc-ekf",
      "type": "Workflow",
      "label": "Pack-average SOC EKF worked example",
      "properties": {
        "id": "native-battery-pack-soc-ekf",
        "title": "Pack-average SOC EKF worked example",
        "kind": "studio",
        "summary": "Homogeneous series-cell average observer. Voltage, resistance and observation slope scale by series count; output is an average, not individual cell SOC.",
        "steps": [
          "Review the block inputs, units and model limits.",
          "Open the Studio example and run its bundled model.",
          "Compare the output channels with the numerical checks; change one input and run again."
        ],
        "example": "Use the defaults below with Series pack current = 1 A, Measured pack voltage = 15 V, Voltage valid = 1 true / false, Reset = 0 true / false. At 0 s, Average SOC is 0.79 1 (fraction). Additional checks are listed below.",
        "observe": "Inspect the outputs and numerical checks on the block reference page.",
        "limits": "One-state extended Kalman observers, without an unscented transform, RC polarization states or automatic cell identification. SOE requires its own energy-fraction-to-OCV calibration. Synthetic filter settings are not accuracy guarantees. The estimate is a pack average, without independently estimated cell states. The example verifies numerical behavior for synthetic parameters. Cell characterization and validation for an intended use are separate tasks.",
        "url": "https://design.lemonergy.com/cosim.html?example=block-battery-pack-soc-ekf",
        "label": "Open Studio example",
        "evidence": [
          "docs/glossary/native-block-verification.json"
        ]
      }
    },
    {
      "id": "workflow:native-battery-pack-soc-adaptive-ekf",
      "type": "Workflow",
      "label": "Pack-average SOC adaptive EKF worked example",
      "properties": {
        "id": "native-battery-pack-soc-adaptive-ekf",
        "title": "Pack-average SOC adaptive EKF worked example",
        "kind": "studio",
        "summary": "Homogeneous series-cell average observer. Voltage, resistance and observation slope scale by series count; output is an average, not individual cell SOC.",
        "steps": [
          "Review the block inputs, units and model limits.",
          "Open the Studio example and run its bundled model.",
          "Compare the output channels with the numerical checks; change one input and run again."
        ],
        "example": "Use the defaults below with Series pack current = 1 A, Measured pack voltage = 15 V, Voltage valid = 1 true / false, Reset = 0 true / false. At 0 s, Average SOC is 0.79 1 (fraction). Additional checks are listed below.",
        "observe": "Inspect the outputs and numerical checks on the block reference page.",
        "limits": "One-state extended Kalman observers, without an unscented transform, RC polarization states or automatic cell identification. SOE requires its own energy-fraction-to-OCV calibration. Synthetic filter settings are not accuracy guarantees. The estimate is a pack average, without independently estimated cell states. The example verifies numerical behavior for synthetic parameters. Cell characterization and validation for an intended use are separate tasks.",
        "url": "https://design.lemonergy.com/cosim.html?example=block-battery-pack-soc-adaptive-ekf",
        "label": "Open Studio example",
        "evidence": [
          "docs/glossary/native-block-verification.json"
        ]
      }
    },
    {
      "id": "workflow:native-battery-cell-delta-soc-ekf",
      "type": "Workflow",
      "label": "Cell-delta SOC EKF worked example",
      "properties": {
        "id": "native-battery-cell-delta-soc-ekf",
        "title": "Cell-delta SOC EKF worked example",
        "kind": "studio",
        "summary": "Estimates deviation from a supplied average. Average-error variance enters voltage uncertainty under an explicit independent-error assumption.",
        "steps": [
          "Review the block inputs, units and model limits.",
          "Open the Studio example and run its bundled model.",
          "Compare the output channels with the numerical checks; change one input and run again."
        ],
        "example": "Use the defaults below with Series current = 1 A, Measured cell voltage = 3.73 V, Average SOC = 0.8 1 (fraction), Average SOC variance = 0 1, Aligned measurements valid = 1 true / false, Reset = 0 true / false. At 0 s, SOC deviation from average is -0.01 1. Additional checks are listed below.",
        "observe": "Inspect the outputs and numerical checks on the block reference page.",
        "limits": "One-state extended Kalman observers, without an unscented transform, RC polarization states or automatic cell identification. SOE requires its own energy-fraction-to-OCV calibration. Synthetic filter settings are not accuracy guarantees. No jointly estimated correlated covariance between the average and the cell deviation. The example verifies numerical behavior for synthetic parameters. Cell characterization and validation for an intended use are separate tasks.",
        "url": "https://design.lemonergy.com/cosim.html?example=block-battery-cell-delta-soc-ekf",
        "label": "Open Studio example",
        "evidence": [
          "docs/glossary/native-block-verification.json"
        ]
      }
    },
    {
      "id": "workflow:native-battery-cell-delta-soc-ekf-variable-resistance",
      "type": "Workflow",
      "label": "Cell-delta SOC EKF with resistance input worked example",
      "properties": {
        "id": "native-battery-cell-delta-soc-ekf-variable-resistance",
        "title": "Cell-delta SOC EKF with resistance input worked example",
        "kind": "studio",
        "summary": "Estimates deviation from a supplied average. Average-error variance enters voltage uncertainty under an explicit independent-error assumption.",
        "steps": [
          "Review the block inputs, units and model limits.",
          "Open the Studio example and run its bundled model.",
          "Compare the output channels with the numerical checks; change one input and run again."
        ],
        "example": "Use the defaults below with Series current = 1 A, Measured cell voltage = 3.73 V, Average SOC = 0.8 1 (fraction), Average SOC variance = 0 1, Aligned measurements valid = 1 true / false, Reset = 0 true / false, Cell resistance (ohm) = 0.05 1. At 0 s, SOC deviation from average is -0.01 1. Additional checks are listed below.",
        "observe": "Inspect the outputs and numerical checks on the block reference page.",
        "limits": "One-state extended Kalman observers, without an unscented transform, RC polarization states or automatic cell identification. SOE requires its own energy-fraction-to-OCV calibration. Synthetic filter settings are not accuracy guarantees. No jointly estimated correlated covariance between the average and the cell deviation. The example verifies numerical behavior for synthetic parameters. Cell characterization and validation for an intended use are separate tasks.",
        "url": "https://design.lemonergy.com/cosim.html?example=block-battery-cell-delta-soc-ekf-variable-resistance",
        "label": "Open Studio example",
        "evidence": [
          "docs/glossary/native-block-verification.json"
        ]
      }
    },
    {
      "id": "topic:topic-state",
      "type": "Topic",
      "label": "State estimation",
      "properties": {
        "id": "topic-state",
        "name": "State estimation",
        "lede": "The quantities a battery management system estimates but cannot measure directly.",
        "context": "Distinguish internal states from noisy measurement estimates.",
        "example": "Current-sensor bias accumulates in coulomb counting. Exact model SOC does not establish real estimator accuracy.",
        "lesson_url": "https://lemonergy.com/learn/fundamentals/capacity-and-c-rate/",
        "lesson_label": "Open charge balance"
      }
    },
    {
      "id": "term:coulomb-counting",
      "type": "Term",
      "label": "Coulomb counting",
      "properties": {
        "id": "coulomb-counting",
        "name": "Coulomb counting",
        "aka": [
          "ampere-hour counting"
        ],
        "section": "topic-state",
        "definition": "Estimating state of charge by integrating the measured current over time. Simple and fast, but sensor offset accumulates, so it is corrected against the OCV–SOC curve at rest or fused with it in a Kalman filter.",
        "formula": "SOC(t) = SOC₀ − ∫ I dt / Q",
        "related": [
          "state-of-charge",
          "ocv-soc-curve",
          "kalman-filter",
          "current-sensor"
        ],
        "example": {
          "title": "Integrate a discharge step",
          "text": "Starting at 80% SOC with a 5 Ah available capacity, an ideal 2 A discharge for 30 min removes 1 Ah and lowers SOC to 60%. This example takes discharge current as positive and ignores efficiency and sensor error."
        },
        "url": "https://lemonergy.com/learn/glossary/coulomb-counting/",
        "mentions": [
          "open-circuit-voltage"
        ]
      }
    },
    {
      "id": "term:equivalent-circuit-model",
      "type": "Term",
      "label": "Equivalent circuit model",
      "properties": {
        "id": "equivalent-circuit-model",
        "name": "Equivalent circuit model",
        "abbr": "ECM",
        "aka": [
          "Thevenin model"
        ],
        "section": "topic-transport",
        "definition": "A cell model built from a voltage source for OCV, a series resistor and one or more RC pairs for the slower dynamics. Its few parameters are fitted from pulse tests, and it is what most battery management systems run in real time.",
        "related": [
          "rc-pair",
          "open-circuit-voltage",
          "hppc",
          "kalman-filter",
          "single-particle-model"
        ],
        "url": "https://lemonergy.com/learn/glossary/equivalent-circuit-model/",
        "mentions": []
      }
    },
    {
      "id": "term:state-of-charge",
      "type": "Term",
      "label": "State of charge",
      "properties": {
        "id": "state-of-charge",
        "name": "State of charge",
        "abbr": "SOC",
        "section": "topic-state",
        "definition": "How full a cell is, as a fraction of its available capacity. State of charge, like temperature, affects how fast a stored cell ages.",
        "unit": "%",
        "related": [
          "depth-of-discharge",
          "ocv-soc-curve",
          "coulomb-counting",
          "state-of-health",
          "bms"
        ],
        "lesson": "fundamentals/battery-aging/#storage-soc",
        "example": {
          "title": "Interpret a charge inventory",
          "text": "If available capacity is 5 Ah and 3 Ah remains by the chosen estimator, SOC is 60%. A different estimate of available capacity changes this percentage, so compare SOC values only with the capacity convention recorded."
        },
        "url": "https://lemonergy.com/learn/glossary/state-of-charge/",
        "mentions": [
          "usable-capacity"
        ]
      }
    },
    {
      "id": "term:bms",
      "type": "Term",
      "label": "Battery management system",
      "properties": {
        "id": "bms",
        "name": "Battery management system",
        "abbr": "BMS",
        "section": "topic-pack",
        "definition": "The electronics and software that keep a battery inside its safe window: measuring every cell voltage and many temperatures, estimating SOC and SOH, balancing cells, computing current limits, controlling the contactors and reporting over the vehicle network.",
        "related": [
          "state-of-charge",
          "cell-balancing",
          "state-of-power",
          "cell-supervision-circuit",
          "contactor",
          "can-bus"
        ],
        "lesson": "fundamentals/battery-basics/#cell-module-pack",
        "url": "https://lemonergy.com/learn/glossary/bms/",
        "mentions": [
          "state-of-health",
          "cell-voltage"
        ]
      }
    },
    {
      "id": "term:fuzzy-logic",
      "type": "Term",
      "label": "Fuzzy logic",
      "properties": {
        "id": "fuzzy-logic",
        "name": "Fuzzy logic",
        "aka": [
          "fuzzy inference",
          "fuzzy controller"
        ],
        "section": "topic-data",
        "definition": "Reasoning with degrees of truth between 0 and 1, so that a temperature can be partly ‘warm’ and partly ‘hot’, combined through if–then rules. It has been applied to SOC and SOH estimation and to charge control because it encodes expert knowledge without a precise model, though its rules and membership functions still need tuning on test data.",
        "related": [
          "state-of-charge",
          "state-of-health",
          "kalman-filter",
          "pid-controller"
        ],
        "url": "https://lemonergy.com/learn/glossary/fuzzy-logic/",
        "mentions": []
      }
    },
    {
      "id": "term:data-driven-soc-estimation",
      "type": "Term",
      "label": "Data-driven SOC estimation",
      "properties": {
        "id": "data-driven-soc-estimation",
        "name": "Data-driven SOC estimation",
        "aka": [
          "machine-learning SOC estimation",
          "neural-network SOC estimation",
          "support vector machine",
          "SVM",
          "LSTM"
        ],
        "section": "topic-state",
        "definition": "Estimating SOC with a model learned from data — LSTM neural networks, support vector regression, Gaussian processes — that maps histories of voltage, current and temperature to charge. It needs no physical model, but is only as good as its training data across temperature and aging, and is harder to verify for functional safety than a Kalman filter.",
        "related": [
          "state-of-charge",
          "kalman-filter",
          "coulomb-counting",
          "functional-safety",
          "equivalent-circuit-model"
        ],
        "url": "https://lemonergy.com/learn/glossary/data-driven-soc-estimation/",
        "mentions": []
      }
    },
    {
      "id": "term:coulomb",
      "type": "Term",
      "label": "Coulomb",
      "properties": {
        "id": "coulomb",
        "name": "Coulomb",
        "abbr": "C",
        "section": "topic-units",
        "definition": "The SI unit of electric charge; one ampere flowing for one second. Battery engineers prefer the ampere-hour, which is 3600 coulombs, because cells deliver their charge over hours.",
        "unit": "C",
        "related": [
          "ampere-hour",
          "faradays-constant"
        ],
        "url": "https://lemonergy.com/learn/glossary/coulomb/",
        "mentions": [
          "ampere",
          "electric-charge"
        ]
      }
    },
    {
      "id": "reference:plett-estimation",
      "type": "Reference",
      "label": "Extended Kalman filtering for battery management systems of LiPB-based HEV battery packs: Part 3. State and parameter estimation",
      "properties": {
        "title": "Extended Kalman filtering for battery management systems of LiPB-based HEV battery packs: Part 3. State and parameter estimation",
        "publisher": "Journal of Power Sources",
        "url": "https://doi.org/10.1016/j.jpowsour.2004.02.033",
        "type": "Research article",
        "scope": "Model-based battery state-of-charge and parameter estimation with extended Kalman filtering, including uncertainty and model dependence.",
        "year": 2004,
        "authors": [
          "Gregory L. Plett"
        ],
        "accessed": "2026-10-27"
      }
    }
  ]
}
