<< All versions
Skill v1.0.1
currentAutomated scan100/100benchflow-ai/skillsbench/simulation-metrics
3 files
──Details
PublishedJuly 9, 2026 at 12:21 PM
Content Hashsha256:9e145fd19a2c4e7c...
Git SHA44cdda48f6e8
Bump Typepatch
──Files
Files (1 file, 2.1 KB)
SKILL.md2.1 KBactive
SKILL.md · 87 lines · 2.1 KB
version: "1.0.1" name: simulation-metrics description: Use this skill when calculating control system performance metrics such as rise time, overshoot percentage, steady-state error, or settling time for evaluating simulation results.
Control System Performance Metrics
Rise Time
Time for system to go from 10% to 90% of target value.
python
def rise_time(times, values, target):"""Calculate rise time (10% to 90% of target)."""t10 = t90 = Nonefor t, v in zip(times, values):if t10 is None and v >= 0.1 * target:t10 = tif t90 is None and v >= 0.9 * target:t90 = tbreakif t10 is not None and t90 is not None:return t90 - t10return None
Overshoot
How much response exceeds target, as percentage.
python
def overshoot_percent(values, target):"""Calculate overshoot percentage."""max_val = max(values)if max_val <= target:return 0.0return ((max_val - target) / target) * 100
Steady-State Error
Difference between target and final settled value.
python
def steady_state_error(values, target, final_fraction=0.1):"""Calculate steady-state error using final portion of data."""n = len(values)start = int(n * (1 - final_fraction))final_avg = sum(values[start:]) / len(values[start:])return abs(target - final_avg)
Settling Time
Time to stay within tolerance band of target.
python
def settling_time(times, values, target, tolerance=0.02):"""Time to settle within tolerance of target."""band = target * tolerancelower, upper = target - band, target + bandsettled_at = Nonefor t, v in zip(times, values):if v < lower or v > upper:settled_at = Noneelif settled_at is None:settled_at = treturn settled_at
Usage
python
times = [row['time'] for row in results]values = [row['value'] for row in results]target = 30.0print(f"Rise time: {rise_time(times, values, target)}")print(f"Overshoot: {overshoot_percent(values, target)}%")print(f"SS Error: {steady_state_error(values, target)}")