IPG_CarMaker Programmers Guide

  • View
    2.473

  • Download
    83

Embed Size (px)

DESCRIPTION

IPG_CarMaker

Transcript

CarMaker

Cover

Programmers GuideVersion 2.1

2

The information in this document is furnished for informational use only, may be revised from time to time, and should not be construed as a commitment by IPG Automotive GmbH. IPG Automotive GmbH assumes no responsibility or liability for any errors or inaccuracies that may appear in this document. This document contains proprietary and copyrighted information and may not be copied, reproduced, translated, or reduced to any electronic medium without prior consent, in writing, from IPG Automotive GmbH. 1999 - 2006 by IPG Automotive GmbH www.ipg-automotive.com All rights reserved. FailSafeTester, IPG-CAR, IPG-CONTROL, IPG-DRIVER, IPG-ENGINE, IPG-GRAPH, IPGKINEMATICS, IPG-LOCK, IPG-MOTORCYCLE, IPG-MOVIE, IPG-ROAD, IPG-ROADDATA, IPG-TIRE, IPG-TRAILER, IPG-TRUCK are trademarks of IPG Automotive GmbH. CarMaker, TruckMaker, MotorcycleMaker, MESA VERDE are registered trademarks of IPG Automotive GmbH. All other product names are trademarks of their respective companies.

CarMaker Programmers Guide

Version 2.1.6

3

Contents

1

The CarMaker Environment1.1

10

CarMaker architectural breakdown . . . . . . . . . . . . . . . . . . . . . . 10 CarMaker user interface programs . . . . . . . . . . . . . . . . . . . . . . 10 CarMaker simulation program . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Data le organisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Program interaction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Interaction of HIL systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

1.2 1.3 1.4

Inside the CarMaker simulation program . . . . . . . . . . . . . . . . . 14 User accessible modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 CarMaker Flow Process Charts . . . . . . . . . . . . . . . . . . . . . . . . 17 Modied Cycle Clock Generation if Oversampling is used . . . . 18 The main cycle explained . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 An pseudo code excerpt from HilMain.c . . . . . . . . . . . . . . . . . . 22 Basic tasks of the main routine . . . . . . . . . . . . . . . . . . . . . . . . . 23 The event loop of the main routine . . . . . . . . . . . . . . . . . . . . . . 23

1.5 1.6 1.7 1.8

A stripped down CM_Main.c . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 Main Loop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 SimStart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 SimStop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

2

Logging Module2.1 2.2

30

General information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 Recommended use . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 List of functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

CarMaker Programmers Guide

Version 2.1.6

4

3

Infole Module3.1 3.2 3.3 3.4

33

Infole format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 Access functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 Error handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 C Function List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 General Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 Read Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 Write Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 Add/Move Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 Help Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 Additional Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

3.5

Tcl/Tk Procedure List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 ile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

4

Data Dictionary4.1

53

Dening DataDict Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

5

Integrating Simulink models5.1 5.2

57

Starting Matlab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 Step-by-step: Integrating a Simulink model . . . . . . . . . . . . . . . . 59 Creating the Simulink model . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 Setting simulation parameters . . . . . . . . . . . . . . . . . . . . . . . . . . 59 Generating and compiling the model C code . . . . . . . . . . . . . . 62 Integrating the model into CarMaker . . . . . . . . . . . . . . . . . . . . . 62 Running the model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

5.3

The CarMaker interface blockset . . . . . . . . . . . . . . . . . . . . . . . 65 Accessing the CarMaker dictionary . . . . . . . . . . . . . . . . . . . . . . 65 Dening CarMaker dictionary variables . . . . . . . . . . . . . . . . . . 66 Accessing C variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

5.4

The CarMaker target for Real-Time Workshop . . . . . . . . . . . . . 70 Code generation with the CarMaker target . . . . . . . . . . . . . . . . 70 Choosing the right model wrapper . . . . . . . . . . . . . . . . . . . . . . 70 Customizing the wrapper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 Integrating the model library . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

5.5

CarMakers tunable parameter interface . . . . . . . . . . . . . . . . . . 74 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 Enabling tunable parameters in a Simulink model . . . . . . . . . . 75

CarMaker Programmers Guide

Version 2.1.6

5

Modifying tunable parameters in the model wrapper . . . . . . . . 76 Parameter values in Infoles . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 Adding tunable parameters to the CarMaker dictionary . . . . . . 78 Known limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 Tunable parameter interface functions . . . . . . . . . . . . . . . . . . . 80 5.6 Miscellaneous . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 Upgrading to a new CarMaker version . . . . . . . . . . . . . . . . . . . 87 Integration of more than one model . . . . . . . . . . . . . . . . . . . . . 87 Using blocks from the CarMaker for Simulink blockset . . . . . . . 87 CarMaker and Matlab installed on different computers . . . . . . . 87 Troubleshooting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 5.7 Demonstration examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 Contents of the examples directory . . . . . . . . . . . . . . . . . . . . . . 90 Preparing the examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 Rebuilding an example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91

6

CarMaker for Simulink6.1

92

CarMaker for Simulink basics . . . . . . . . . . . . . . . . . . . . . . . . . . 93 Creating a new CarMaker project directory . . . . . . . . . . . . . . . . 93 Starting Matlab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 Creating a new model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 Starting the CarMaker GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 Running a simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 Switching between several Simulink models . . . . . . . . . . . . . . . 96 Switching between several CarMaker project directories . . . . . 96 Dealing with the start values of your model . . . . . . . . . . . . . . . 96 Working in a non-default model directory . . . . . . . . . . . . . . . . . 97 Upgrading to a new CarMaker version . . . . . . . . . . . . . . . . . . . 97 Troubleshooting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97

6.2

Using the C language interface . . . . . . . . . . . . . . . . . . . . . . . . . 99 Rebuilding the model library . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 Identifying which model library you are using . . . . . . . . . . . . . . 99 Integrating model C code built with Real-Time Workshop . . . 100

6.3

The CarMaker for Simulink blockset . . . . . . . . . . . . . . . . . . . . 101 General information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 Utility blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 CarMaker dictionary blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 General purpose blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106

CarMaker Programmers Guide

Version 2.1.6

6

CarMaker subsystem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 6.4 Demonstration examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 ABSdemo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 BodyCtrl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 ESPTemplate . . . . . . . . . . . . . . . . . .