25
1 © 2016 The MathWorks, Inc. Model-Based Design: Generating Embedded Code for Prototyping or Production Ruth-Anne Marchant Application Engineer MathWorks

Model-Based Design: Generating Embedded Code for ... › content › dam › mathworks › mathworks-… · Application Engineer MathWorks. 2. 3 ABB Accelerates Application Control

  • Upload
    others

  • View
    9

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Model-Based Design: Generating Embedded Code for ... › content › dam › mathworks › mathworks-… · Application Engineer MathWorks. 2. 3 ABB Accelerates Application Control

1© 2016 The MathWorks, Inc.

Model-Based Design:

Generating Embedded Code for Prototyping or

Production

Ruth-Anne Marchant

Application Engineer

MathWorks

Page 2: Model-Based Design: Generating Embedded Code for ... › content › dam › mathworks › mathworks-… · Application Engineer MathWorks. 2. 3 ABB Accelerates Application Control

2

Page 3: Model-Based Design: Generating Embedded Code for ... › content › dam › mathworks › mathworks-… · Application Engineer MathWorks. 2. 3 ABB Accelerates Application Control

3

ABB Accelerates Application Control

Software Development for Power

Electronic Controller

“Our system engineers can

program, simulate, and verify

the AC 800PEC controller’s

regulation software very rapidly

in MATLAB and Simulink.”

Fritz Wittwer

ABB

ChallengeAdopt a more efficient development process using tools

that accelerate the design of new application software

for a high-powered electronic controller for power

converters

SolutionUse MathWorks tools to design and validate their control

algorithms while streamlining the application software

development process for the controller

Results Development times and costs reduced

Development process improved

Highly accurate code generated

AC 800PEC controller.

Link to user story

Page 4: Model-Based Design: Generating Embedded Code for ... › content › dam › mathworks › mathworks-… · Application Engineer MathWorks. 2. 3 ABB Accelerates Application Control

4

Outline

Recap of Model-Based Design

Generating code for rapid prototyping

Generating code for production software

– Preparing Model for Embedded Code Generation

– Evolving Model for Fixed Point Implementation

Summary

Page 5: Model-Based Design: Generating Embedded Code for ... › content › dam › mathworks › mathworks-… · Application Engineer MathWorks. 2. 3 ABB Accelerates Application Control

5

INTEGRATION

IMPLEMENTATION

DESIGN

TE

ST

& V

ER

IFIC

AT

ION

RESEARCH REQUIREMENTS

Environment Models

Mechanical Electrical

Structured

TextVHDL, Verilog

TEST

SYSTEM

MCU DSP FPGA ASIC PLC

Adopting Model-Based Design

Executable Specifications

Supervisory Logic

Control Algorithms

C, C++

Continuous Test and Verification

Design with Simulation

Automatic Code Generation

Page 6: Model-Based Design: Generating Embedded Code for ... › content › dam › mathworks › mathworks-… · Application Engineer MathWorks. 2. 3 ABB Accelerates Application Control

6

Embedded System

Motor Control System Design

System Simulation

Motor

Model

Motor

Hardware

Software

Project

Controller

Model

Controller

C Code

Page 7: Model-Based Design: Generating Embedded Code for ... › content › dam › mathworks › mathworks-… · Application Engineer MathWorks. 2. 3 ABB Accelerates Application Control

7

Prototype Embedded System

Automatic Code Generation: Prototype on real-time hardware

System Simulation

Motor

Model

Motor

Hardware

Real-Time

System

Controller

Model

Controller

C Code

Page 8: Model-Based Design: Generating Embedded Code for ... › content › dam › mathworks › mathworks-… · Application Engineer MathWorks. 2. 3 ABB Accelerates Application Control

8

Production Embedded System

Automatic Code Generation: Generate code for production

System Simulation

Motor

Model

Motor

Hardware

Hand-Coded

Software Project

Controller

Model

Controller

C Code

Page 9: Model-Based Design: Generating Embedded Code for ... › content › dam › mathworks › mathworks-… · Application Engineer MathWorks. 2. 3 ABB Accelerates Application Control

9

Outline

Recap of Model-Based Design

Generating code for rapid prototyping

Generating code for production software

– Preparing Model for Embedded Code Generation

– Evolving Model for Fixed Point Implementation

Summary

Page 10: Model-Based Design: Generating Embedded Code for ... › content › dam › mathworks › mathworks-… · Application Engineer MathWorks. 2. 3 ABB Accelerates Application Control

10

Prototype Embedded System

Automatic Code Generation with SimulinkPrototype on real-time hardware

System Simulation

Motor

Model

Motor

Hardware

Real-Time System

Controller

Model

Controller

C Code

Page 11: Model-Based Design: Generating Embedded Code for ... › content › dam › mathworks › mathworks-… · Application Engineer MathWorks. 2. 3 ABB Accelerates Application Control

11

Rapid Prototyping Model for Texas Instrument C2000 F28069M

LaunchPadTM Development Kit

Controller model

Rapid prototyping

system

I/O driver blocks

Rapid prototyping

system

I/O driver blocks

Page 12: Model-Based Design: Generating Embedded Code for ... › content › dam › mathworks › mathworks-… · Application Engineer MathWorks. 2. 3 ABB Accelerates Application Control

12

DEMO: Motor control using Embedded Coder

Support Package for Texas Instruments C2000

Processors

Page 13: Model-Based Design: Generating Embedded Code for ... › content › dam › mathworks › mathworks-… · Application Engineer MathWorks. 2. 3 ABB Accelerates Application Control

13

Outline

Recap of Model-Based Design

Generating code for rapid prototyping

Generating code for production software

– Preparing Model for Embedded Code Generation

– Evolving Model for Fixed Point Implementation

Summary

Page 14: Model-Based Design: Generating Embedded Code for ... › content › dam › mathworks › mathworks-… · Application Engineer MathWorks. 2. 3 ABB Accelerates Application Control

14

Controller Model for Production Code Generation

Current

Control

Velocity

Control

Voltage

Convert

PWM

Driver

Current

Convert

ADC

Driver

Position

Velocity

Convert

Encoder

Driver

Open

Loop

Disabled

Encoder

Calibration

Mode

Scheduler

Controller Model

Model Hand

Page 15: Model-Based Design: Generating Embedded Code for ... › content › dam › mathworks › mathworks-… · Application Engineer MathWorks. 2. 3 ABB Accelerates Application Control

15

Embedded Software Project Pseudo-Code

Integrate generated controller code with your

hand-coded software project

interruptServiceRountine()

{

readAdcCountFromDriver();

readEncoderCountFromDriver();

controller();

writePwmCountToDriver();

}

main()

{

adcInit();

encoderInit();

pwmInit();

controllerInit();

while(1) {

}

}

Model Hand

Page 16: Model-Based Design: Generating Embedded Code for ... › content › dam › mathworks › mathworks-… · Application Engineer MathWorks. 2. 3 ABB Accelerates Application Control

16

DEMO: Prepare algorithm model to generate

embedded code and specify code interface

Page 17: Model-Based Design: Generating Embedded Code for ... › content › dam › mathworks › mathworks-… · Application Engineer MathWorks. 2. 3 ABB Accelerates Application Control

17

Outline

Recap of Model-Based Design

Generating code for rapid prototyping

Generating code for production software

– Preparing Model for Embedded Code Generation

– Evolving Model for Fixed Point Implementation

Summary

Page 18: Model-Based Design: Generating Embedded Code for ... › content › dam › mathworks › mathworks-… · Application Engineer MathWorks. 2. 3 ABB Accelerates Application Control

18

Design for fixed-point implementation

Current

Control

Velocity

Control

Voltage

Convert

Current

Convert

Position

Velocity

Convert

Open

Loop

Disabled

Encoder

Calibration

Mode

Scheduler

Controller Model

Page 19: Model-Based Design: Generating Embedded Code for ... › content › dam › mathworks › mathworks-… · Application Engineer MathWorks. 2. 3 ABB Accelerates Application Control

19

Design for fixed-point implementation at component level

Velocity

Control

Controller Model

Page 20: Model-Based Design: Generating Embedded Code for ... › content › dam › mathworks › mathworks-… · Application Engineer MathWorks. 2. 3 ABB Accelerates Application Control

20

Design for Fixed-Point Implementation - Workflow

Set up model to use Fixed-Point Tool

– Specify minimum and maximum values on model

inputs

Using Fixed-Point Tool:

– Select system under design

– Derive minimum and maximum values

– Propose data types

Determined based on range data

– Apply proposed data types

Page 21: Model-Based Design: Generating Embedded Code for ... › content › dam › mathworks › mathworks-… · Application Engineer MathWorks. 2. 3 ABB Accelerates Application Control

21

Design for Fixed-Point Implementation - Workflow

Compare against baseline floating point

design

– Simulate fixed-point design and compare against

floating-point design

Explore trade-offs in design decisions

– Test 16 vs 32 bit fixed point designs

Integrate component design into

system-level simulation to validate

design decisions

Page 22: Model-Based Design: Generating Embedded Code for ... › content › dam › mathworks › mathworks-… · Application Engineer MathWorks. 2. 3 ABB Accelerates Application Control

22

Outline

Recap of Model-Based Design

Generating code for rapid prototyping

Generating code for production software

– Preparing Model for Embedded Code Generation

– Evolving Model for Fixed Point Implementation

Summary

Page 23: Model-Based Design: Generating Embedded Code for ... › content › dam › mathworks › mathworks-… · Application Engineer MathWorks. 2. 3 ABB Accelerates Application Control

23

Key Points

Simulink is a multi-domain modelling and simulation environment that

supports Model-Based Design

Code generation technology can be used to

– Quickly perform design iterations and deploy to prototyping hardware

– Eliminate hand-coding errors in production code

– Remove barriers to communication between teams

Page 24: Model-Based Design: Generating Embedded Code for ... › content › dam › mathworks › mathworks-… · Application Engineer MathWorks. 2. 3 ABB Accelerates Application Control

24

Call to Action

Learn more about Model-Based Design

with Simulink

Explore our website

– au.mathworks.com

Contact me:

– Ruth-Anne Marchant

[email protected]

Page 25: Model-Based Design: Generating Embedded Code for ... › content › dam › mathworks › mathworks-… · Application Engineer MathWorks. 2. 3 ABB Accelerates Application Control

25

Q & A