Synopsys, Inc. · NASDAQ:SNPS
Synopsys — Technical Presentation (June 2013)
19 slides from Synopsys's technical presentation, Jun 19, 2013
Slide 1: Using Chip Simulation to Optimize Engine Control
Using Chip Simulation to Optimize Engine Control Matthias Simons - Daimler AG Mihai Feier, Jakob Mauss - QTronic GmbH 7th Conference on Design of Experiments (DoE) in Engine Development Berlin, 18.–19.06.2013
Slide 2: Outline of the talk
Outline of the talk Using Chip Simulation to Optimize Engine Control 1. Motivation 2. Running ECU functions on PC via chip simulation 3. Coupling with least-squares optimization 4. Conclusion Using Chip Simulation to Optimize Engine Control - DoE in Engine Development - Berlin 19.06.2013
Slide 3: Motivation
Motivation number of engine control parameters Number of parameters doubles every few years and required memory budget for engine calibration does not Idea increase degree of automation move calibration tasks from test rigs to PC and apply mathematical optimization source: presentation of S. Ullmann
Slide 4: Motivation: Model-based engine calibration
Motivation: Model-based engine calibration vehicle model objective engine plant model optimization function algorithm f(maps) ecu code maps ECU source (C, Ascet, or Simulink model) typically not available for OEM Challenge: how to simulate the ECU on PC? Options: - reverse engineer the ECU function
Slide 5: Simulating a hex file
Simulating a hex file :020000040000FA :0200000480007A :200000003000000004FD00000000028000FD0080080200801C0200800507AFAFAFAFAFAF62 :20002000AFAFAFAFAFAFAFAFAFAFAFAF02000000D35A48223004020000000080FFFC0080C2 :20004000FECADEFAFEAFFECA0000000074FC008000100000310412007800008003020080C7 :20006000FECADEFAF
Slide 6: TriCore Simulation in Silver 2.5
TriCore Simulation in Silver 2.5 INCA or CANape for on-line calibration: measure and tune running simulation virtual ECU TriCore ECU functions emulation 40 MIPS RTOS emulation 4GB virtual memory TCP/IP A2L XCP conversion vehicle simulation or measurements Silver Using Chip Simulation to Optimize Eng
Slide 7: Setting up a TriCore simulation
Setting up a TriCore simulation 1. write spec.txt to specify what functions to run 2. step and debug the simulation in Silver debug mode 3. generate fast running SFunction or Silver module: runs without a2l and hex 01 # specification of sfunction or Silver module 02 hex_file(m12345.hex, TriCore_1.3.
Slide 8: Virtual ECU running in Silver: MED17
Virtual ECU running in Silver: MED17 Using Chip Simulation to Optimize Engine Control - DoE in Engine Development - Berlin 19.06.2013
Slide 9: Generated SFunction in MATLAB/Simulink
generated SFunction in MATLAB/Simulink spec.txt .hex .map characteristics turned into MATLAB workspace variables .a2l frame.s - read by S-function - may be modified by script tcbuild .mexw32 MATLAB/Simulink S-function 40 MIPS default values for characteristics from .mask.txt HEX file as m script, ma
Slide 10: Performance and Limitations
Performance and Limitations Run complex function for a measured scenario, 3.5 minutes target execution time MIPS Silver in debug mode 919.15 sec 0.41 generated Silver module or 9.30 sec 40.80 MATLAB/Simulink SFunction MED17 with TC1797, 180 Mhz 210.00 sec 270 Limitations - instruction accurate, but
Slide 11: Optimization problem
Optimization problem Engine controller contains steady-state model of the engine Objective Tune parameters of the engine model such that it fits given measurements Least-squares optimization Minimize goal function m g x=∑ f x 2 i i=1 where ● x is a vector of n real parameters ● f (x) = model(x
Slide 12: A problem with chip simulation
A problem with chip simulation goal function: Simulink model chip simulation Using Chip Simulation to Optimize Engine Control - DoE in Engine Development - Berlin 19.06.2013
Slide 13: A problem with chip simulation
A problem with chip simulation goal function: Simulink model chip simulation Using Chip Simulation to Optimize Engine Control - DoE in Engine Development - Berlin 19.06.2013
Slide 14: A problem with chip simulation
A problem with chip simulation Optimization methods often require gradients to guide search Engine control often implemented using fixed-point integer code → gradients of the goal function are zero (or undefined) → no guidance → optimization terminates early at local optimum Using Chip Simulation to
Slide 15: Idea 1: construct a smooth goal function
Idea 1: construct a smooth goal function gradient f(x) pass to optimization procedure is zero - discrete goal function f(x) gradient non-zero - gradient info, e.g. Jacobian Jij but noisy gradient is less noisy grid size h x f(x) goal function implemented using chip simulation: zero gradient f(x) use
Slide 16: Idea 2: pre-compute grid sizes
Idea 2: pre-compute grid sizes m time points, n parameter → m x n matrix Hij of grid sizes → must be computed at each step x0, x1, x2, ... expensive! x4 x3 Observation Hij does not change much solution during the solution process: compute only for x0 and reuse start x2 x0 x1 Using Chip Simulation to
Slide 17: Idea 3: Stochastic model of grid sizes
Idea 3: Stochastic model of grid sizes For large problems, do not compute all elements of matrix Hij Use stochastic model: for parameter xj - compute Hij for x0 and some (not all) time points ti - estimate average µj and standard deviation σj - use hj = 10 (µj +3σj) to compute gradient of xj to be u
Slide 18: Numerical experiment
Numerical experiment Example: Tune engine model used by engine controller ● m = 202 measurement time points ● n = 20 parameters ● solver: lsqnonlin from MATLAB optimization toolbox ● goal function implemented using chip simulation - gradient info passed using option FinDiffRelStep - stochastic model
Slide 19: Conclusion
Conclusion Using Chip Simulation to Optimize Engine Control - chip simulation can be used to port ECU functions to PC - the resulting model - runs much faster than real time - can be coupled with optimization procedures to automate engine calibration - derivative-free optimization: no problem - othe