Your AI concierge can guide you through the entire calibration pipeline. Use the quick actions or ask anything.
AI Smart Recommendations
Upload your model for FMU generation or validation. Supported: C source code (.c, .h), project archives (.zip with sources), pre-built FMU files (.fmu), and static libraries (.a, .lib). For Simulink or MATLAB models, first export as C-code using Embedded Coder, then upload the generated .c/.h files here.
Model Fidelity CheckThe AI fidelity engine validates your model against ETAS lessons learned and best practices. It continuously learns from new patterns and curated feedback.
Upload your source files and select target platform(s). The system will compile your model into FMI 2.0 compliant FMUs.
Turbo_Boost_Model.c), the tool will auto-generate the FMI 2.0 wrapper (_FMU.c) for you — including fmi2Instantiate, fmi2DoStep, fmi2GetReal/SetReal, and correct causality classification.If you already have an FMI wrapper file (a
_FMU.c that includes fmi2Functions.h), upload it alongside your model code and the tool will use yours instead.
ASCMO-MOCA Project SetupDetailed MOCA Guide (for novice users — click to expand)
Understanding Gaussian Process Models
MOCA uses Gaussian Process (GP/Kriging) regression — a non-parametric modeling approach that provides both a prediction AND an uncertainty estimate at every point. Key properties:
- Interpolating: Passes exactly through training data points
- Uncertainty quantification: Shows wider confidence bands far from data
- Automatic Relevance Determination (ARD): Identifies which inputs matter most
- Kernel options: Squared Exponential (RBF), Matérn 3/2, Matérn 5/2
Target accuracy: R² > 0.95 for good optimization results. If R² < 0.90, add more data points.
Design of Experiments (DoE) — Recommended Sizes
| Factors | Min Points | Recommended | DoE Type |
|---|---|---|---|
| 2-3 | 30 | 40-50 | Latin Hypercube |
| 4-5 | 50 | 60-80 | Latin Hypercube |
| 6-8 | 80 | 100-150 | D-optimal or LHS |
| 9+ | 120+ | 150-200+ | Space-filling + Adaptive |
Rule of thumb: Minimum = 10 × number_of_factors. Add 15-25 adaptive points after initial model for improved accuracy at boundaries.
Multi-Objective Optimization (Pareto Front)
When objectives conflict (fuel vs NOx), MOCA finds the Pareto front — the set of solutions where no objective can be improved without worsening another.
- Algorithm: NSGA-II (Non-dominated Sorting Genetic Algorithm)
- Population size: 100-500 (larger = better coverage, slower)
- Generations: 200-1000 (more = finer Pareto resolution)
- You select your preferred trade-off point from the Pareto curve
FMU Virtual Calibration Workflow
Instead of running physical tests, MOCA can optimize using an FMU (simulation model):
- Load FMU (your plant model from Step 5)
- Define FMU inputs as: operating conditions + calibration parameters
- Define FMU outputs as: responses to optimize (NOx, BSFC, etc.)
- Run space-filling DoE on FMU (automated, no test bench needed)
- Train GP surrogate models from FMU responses
- Optimize on GP surrogates (1000× faster than running FMU)
- Validate optimal points by running them back through FMU
- Export optimized calibration maps (DCM/CDFX)
Map Generation & Export
- Convert scattered optimized points → regular grid calibration map
- Apply smoothing (gradient constraints for drivability)
- Export as: DCM (INCA format), CDFX (A2L compatible), or CSV
Common Troubleshooting
| Problem | Cause | Solution |
|---|---|---|
| R² < 0.90 | Not enough data / poor coverage | Add 20+ adaptive DoE points at high-uncertainty regions |
| Optimization finds infeasible solutions | Constraint boundaries too tight | Add margin to constraints (e.g., NOx < 55 instead of < 60) |
| Maps not smooth | Smoothing weight too low | Increase smoothing parameter in map generation (0.3-0.7) |
| Very long training time | Too many data points (>5000) | Use subset selection or sparse GP approximation |
| Pareto front is flat | Objectives not truly conflicting | Check if single-objective optimization is sufficient |
Before uploading data to the cloud, use ETAS Data Operator on your desktop to filter, clean, and reduce your measurement files. This saves cloud storage costs and ensures only relevant data enters the pipeline. The AI Sidekick can help you identify which channels to keep.
10 files, 500+ ch
Recommend channels
DO FilterSelect & process
1 file, 25-40 ch
Step 8
Additional measurements are optional. Upload them from your PC or pull from a connected cloud server when needed. Uploaded data is processed through the Medallion architecture (Bronze → Silver → Gold) before being made available to the LLM and optimization tools.
EATB Pre-Optimization Visualization
EATB Dashboard Setup Guide (for novice users — click to expand)
What is EATB?
ETAS Automation Toolbox (EATB) is a web-based visualization and automation platform for calibration data. It runs locally on port 9231 and provides interactive dashboards, reports, and scripting capabilities.
Setting Up EATB on Your PC
- Install: EATB is included with ETAS Tool Suite. Verify: Start Menu → ETAS → EATB
- Configuration: Edit
eatbconfiguration.propertiesto set port (default: 9231) - Start: Run EATB service — it will serve dashboards at
http://localhost:9231 - Verify: Open browser →
http://localhost:9231→ you should see the EATB home page
EATB Dashboard Features
EATB Python Scripting (Automation)
import eatb
session = eatb.connect('localhost', 9231)
# Load measurement data
data = session.load_file('measurement.mf4')
# Create time-series plot
plot = session.create_plot('TimeSeries')
plot.add_signal('EngineSpeed')
plot.add_signal('ExhaustTemp_Bank1')
plot.show()
# Generate traffic light report
report = session.create_report('TrafficLight')
report.add_criterion('NOx', max=60, unit='mg/km')
report.add_criterion('Soot', max=4.5, unit='mg/km')
report.generate()
Demo Templates
The inline dashboard above uses Plotly.js charts that mirror EATB's visualization style. Available chart types:
- Line (Time Series): Select time on X-axis, any signal(s) on Y-axis
- Scatter (X vs Y): Any two signals as X and Y (e.g., RPM vs NOx)
- Histogram: Distribution of any single signal
- Box Plot: Statistical summary across operating conditions
To use with your data: Upload measurement files in Step 8 (Data Upload). The Custom Plot Builder above will auto-populate with your actual signal names.
ASCMO-MOCA Optimization
| Timestamp | User | Action | Tokens | Cost | Agent |
| Jul 15, 14:32 | suresh.s | Chat query | 2,847 | $0.043 | ASCMO-MOCA |
| Jul 15, 14:28 | jerry.c | FMU Build (8-core) | — | $3.20 | FMU Builder |
| Jul 15, 14:15 | suresh.s | Python analytics | 8,421 | $0.126 | Python |
| Jul 15, 13:52 | jerry.c | MOCA optimization | — | $12.80 | ASCMO-MOCA |
| Jul 15, 13:30 | suresh.s | Data ingest (50MB) | 1,205 | $0.018 | Data Operator |
Project workflow state and final reports remain available according to your customer retention policy. File expiry is calculated by the server for this project.
Resume restores saved steps, current execution state, and linked files while the project is active. After expiry, the project becomes read-only and files are unavailable.
ETAS Engineering Sidekick