first-order-model-fitting

v0.1.0

Fit first-order dynamic models to experimental step response data and extract K (gain) and tau (time constant) parameters.

0· 73·0 current·0 all-time

Install

OpenClaw Prompt Flow

Install with OpenClaw

Best for remote or guided setup. Copy the exact prompt, then paste it into OpenClaw for wu-uk/hvac-control-first-order-model-fitting.

Previewing Install & Setup.
Prompt PreviewInstall & Setup
Install the skill "first-order-model-fitting" (wu-uk/hvac-control-first-order-model-fitting) from ClawHub.
Skill page: https://clawhub.ai/wu-uk/hvac-control-first-order-model-fitting
Keep the work scoped to this skill only.
After install, inspect the skill metadata and help me finish setup.
Use only the metadata you can verify from ClawHub; do not invent missing requirements.
Ask before making any broader environment changes.

Command Line

CLI Commands

Use the direct CLI path if you want to install manually and keep every step visible.

OpenClaw CLI

Bare skill slug

openclaw skills install hvac-control-first-order-model-fitting

ClawHub CLI

Package manager switcher

npx clawhub@latest install hvac-control-first-order-model-fitting
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
high confidence
Purpose & Capability
The name and description (first-order model fitting for step responses) match the SKILL.md content. All instructions and formulae are consistent with the stated purpose and there are no unrelated requirements.
Instruction Scope
The SKILL.md stays within the expected scope (derivation, model function, fitting tips, quality metrics). It includes Python snippets that reference numpy (np) but does not declare dependencies or show an explicit fitting call (e.g., scipy.optimize.curve_fit). This is a documentation/instruction artifact, not an access or exfiltration issue, but users should note the implicit dependency on typical Python scientific libraries and that the skill provides guidance rather than a complete runnable script.
Install Mechanism
No install spec is provided (instruction-only). Nothing is downloaded or written to disk by the skill itself, which minimizes install-time risk.
Credentials
The skill declares no environment variables, no credentials, and no config paths. That is proportional to a purely instructional fitting guide.
Persistence & Privilege
always:false and default invocation settings are used. The skill requests no persistent presence or system-wide configuration changes.
Assessment
This skill is a coherent, instruction-only guide for extracting K and tau from step response data and does not request credentials or install code. Before using it in an agent workflow: ensure you have the usual Python scientific packages (numpy, and typically scipy for curve fitting), treat the snippets as examples rather than a complete script, and avoid sending any sensitive or proprietary experimental data to an external agent unless you trust where the data will be processed. If you want runnable code, ask the skill author (or generate) a full script that includes explicit imports and a fitting routine so you can run it locally and inspect results.

Like a lobster shell, security has layers — review code before you run it.

latestvk97fbhkczr78p5yjxy44dzrqt584xm9f
73downloads
0stars
1versions
Updated 1w ago
v0.1.0
MIT-0

First-Order System Model Fitting

Overview

Many physical systems (thermal, electrical, mechanical) exhibit first-order dynamics. This skill explains the mathematical model and how to extract parameters from experimental data.

The First-Order Model

The dynamics are described by:

tau * dy/dt + y = y_ambient + K * u

Where:

  • y = output variable (e.g., temperature, voltage, position)
  • u = input variable (e.g., power, current, force)
  • K = process gain (output change per unit input at steady state)
  • tau = time constant (seconds) - characterizes response speed
  • y_ambient = baseline/ambient value

Step Response Formula

When you apply a step input from 0 to u, the output follows:

y(t) = y_ambient + K * u * (1 - exp(-t/tau))

This is the key equation for fitting.

Extracting Parameters

Process Gain (K)

At steady state (t -> infinity), the exponential term goes to zero:

y_steady = y_ambient + K * u

Therefore:

K = (y_steady - y_ambient) / u

Time Constant (tau)

The time constant can be found from the 63.2% rise point:

At t = tau:

y(tau) = y_ambient + K*u*(1 - exp(-1))
       = y_ambient + 0.632 * (y_steady - y_ambient)

So tau is the time to reach 63.2% of the final output change.

Model Function for Curve Fitting

def step_response(t, K, tau, y_ambient, u):
    """First-order step response model."""
    return y_ambient + K * u * (1 - np.exp(-t / tau))

When fitting, you typically fix y_ambient (from initial reading) and u (known input), leaving only K and tau as unknowns:

def model(t, K, tau):
    return y_ambient + K * u * (1 - np.exp(-t / tau))

Practical Tips

  1. Use rising portion data: The step response formula applies during the transient phase
  2. Exclude initial flat region: Start your fit from when the input changes
  3. Handle noisy data: Fitting naturally averages out measurement noise
  4. Check units: Ensure K has correct units (output units / input units)

Quality Metrics

After fitting, calculate:

  • R-squared (R^2): How well the model explains variance (want > 0.9)
  • Fitting error: RMS difference between model and data
residuals = y_measured - y_model
ss_res = np.sum(residuals**2)
ss_tot = np.sum((y_measured - np.mean(y_measured))**2)
r_squared = 1 - (ss_res / ss_tot)
fitting_error = np.sqrt(np.mean(residuals**2))

Comments

Loading comments...