53
1 © 2018 The MathWorks, Inc. 玩转 Simulink 之智能硬件 Simulink 设计和部署 PARROT 四旋翼无人机飞行控制 胡乐华 MathWorks中国

玩转 Simulink 之智能硬件download.ilovematlab.cn/meetup/2018GXTU/iLoveMATLAB... · 2018-12-14 · 50 自动代码生成 Simulink Coder –为Simulink模型,Stateflow流程图和

  • Upload
    others

  • View
    11

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 玩转 Simulink 之智能硬件download.ilovematlab.cn/meetup/2018GXTU/iLoveMATLAB... · 2018-12-14 · 50 自动代码生成 Simulink Coder –为Simulink模型,Stateflow流程图和

1© 2018 The MathWorks, Inc.

玩转 Simulink 之智能硬件

Simulink 设计和部署 PARROT 四旋翼无人机飞行控制

胡乐华

MathWorks中国

Page 2: 玩转 Simulink 之智能硬件download.ilovematlab.cn/meetup/2018GXTU/iLoveMATLAB... · 2018-12-14 · 50 自动代码生成 Simulink Coder –为Simulink模型,Stateflow流程图和

2

内容

▪ Simulink 建模与仿真快速入门

▪ Simulink 项目实践 – 为PARROT Mambo四旋翼无人机设计并部署飞行控制系统

Page 3: 玩转 Simulink 之智能硬件download.ilovematlab.cn/meetup/2018GXTU/iLoveMATLAB... · 2018-12-14 · 50 自动代码生成 Simulink Coder –为Simulink模型,Stateflow流程图和

3

Simulink仿真以及基于模型设计

MATLAB科学计算语言

数学,统计,优化 应用程序 数据库和报告

快速原型与HIL仿真

验证、确认和测试

仿真图示和报告

基于事件的建模 物理建模

代码生成并行计算

控制系统

信号处理和通讯

图像和视频处理

测试测量

金融计算

生物计算

应用

MATLAB 产品家族

基于 MATLAB 和 Simulink 的近百种工具箱和扩展模块 正应用于当下的各行各业

Page 4: 玩转 Simulink 之智能硬件download.ilovematlab.cn/meetup/2018GXTU/iLoveMATLAB... · 2018-12-14 · 50 自动代码生成 Simulink Coder –为Simulink模型,Stateflow流程图和

4

MATLABSimulink

Aerospace BlocksetAntenna Toolbox

Automated Driving System Toolbox

Communications Toolbox

Computer Vision System Toolbox

Control System Toolbox DO Qualification Kit

Deep Learning Toolbox

Embedded Coder

Financial Toolbox

GPU Coder

HDL Coder

IEC Certification Kit LTE Toolbox MATLAB Report Generator

Model Predictive Control Toolbox

Optimization Toolbox Model-Based Calibration Toolbox

Optimization Toolbox

Polyspace Code Prover

Predictive Maintenance Toolbox

Powertrain Blockset

Signal Processing Toolbox

Sensor Fusion and Tracking Toolbox

Simscape

Simulink Control DesignSimulink Test

Stateflow

Vehicle Dynamics Blockset

Vehicle Dynamics Blockset

SimBiology

Simulink Coverage

System Identification Toolbox

Simulink Design Verifier

Simulink Code Inspector

Parallel Computing Toolbox

Page 5: 玩转 Simulink 之智能硬件download.ilovematlab.cn/meetup/2018GXTU/iLoveMATLAB... · 2018-12-14 · 50 自动代码生成 Simulink Coder –为Simulink模型,Stateflow流程图和

5

内容提要

▪ Simulink 建模与仿真快速入门

▪ Simulink 项目实践 – 为PARROT Mambo四旋翼无人机设计并部署飞行控制系统

Page 6: 玩转 Simulink 之智能硬件download.ilovematlab.cn/meetup/2018GXTU/iLoveMATLAB... · 2018-12-14 · 50 自动代码生成 Simulink Coder –为Simulink模型,Stateflow流程图和

6

什么是 Simulink?

Page 7: 玩转 Simulink 之智能硬件download.ilovematlab.cn/meetup/2018GXTU/iLoveMATLAB... · 2018-12-14 · 50 自动代码生成 Simulink Coder –为Simulink模型,Stateflow流程图和

7

什么是 Simulink?

Page 8: 玩转 Simulink 之智能硬件download.ilovematlab.cn/meetup/2018GXTU/iLoveMATLAB... · 2018-12-14 · 50 自动代码生成 Simulink Coder –为Simulink模型,Stateflow流程图和

8

什么是 Simulink?

Page 9: 玩转 Simulink 之智能硬件download.ilovematlab.cn/meetup/2018GXTU/iLoveMATLAB... · 2018-12-14 · 50 自动代码生成 Simulink Coder –为Simulink模型,Stateflow流程图和

9

什么是 Simulink?

Page 10: 玩转 Simulink 之智能硬件download.ilovematlab.cn/meetup/2018GXTU/iLoveMATLAB... · 2018-12-14 · 50 自动代码生成 Simulink Coder –为Simulink模型,Stateflow流程图和

10

Page 11: 玩转 Simulink 之智能硬件download.ilovematlab.cn/meetup/2018GXTU/iLoveMATLAB... · 2018-12-14 · 50 自动代码生成 Simulink Coder –为Simulink模型,Stateflow流程图和

11

Simulink 在多领域的应用

11

Page 12: 玩转 Simulink 之智能硬件download.ilovematlab.cn/meetup/2018GXTU/iLoveMATLAB... · 2018-12-14 · 50 自动代码生成 Simulink Coder –为Simulink模型,Stateflow流程图和

12

Page 13: 玩转 Simulink 之智能硬件download.ilovematlab.cn/meetup/2018GXTU/iLoveMATLAB... · 2018-12-14 · 50 自动代码生成 Simulink Coder –为Simulink模型,Stateflow流程图和

13

Page 14: 玩转 Simulink 之智能硬件download.ilovematlab.cn/meetup/2018GXTU/iLoveMATLAB... · 2018-12-14 · 50 自动代码生成 Simulink Coder –为Simulink模型,Stateflow流程图和

14

Page 15: 玩转 Simulink 之智能硬件download.ilovematlab.cn/meetup/2018GXTU/iLoveMATLAB... · 2018-12-14 · 50 自动代码生成 Simulink Coder –为Simulink模型,Stateflow流程图和

15

Simulink 建模与仿真基础

Page 16: 玩转 Simulink 之智能硬件download.ilovematlab.cn/meetup/2018GXTU/iLoveMATLAB... · 2018-12-14 · 50 自动代码生成 Simulink Coder –为Simulink模型,Stateflow流程图和

16

Page 17: 玩转 Simulink 之智能硬件download.ilovematlab.cn/meetup/2018GXTU/iLoveMATLAB... · 2018-12-14 · 50 自动代码生成 Simulink Coder –为Simulink模型,Stateflow流程图和

17

Page 18: 玩转 Simulink 之智能硬件download.ilovematlab.cn/meetup/2018GXTU/iLoveMATLAB... · 2018-12-14 · 50 自动代码生成 Simulink Coder –为Simulink模型,Stateflow流程图和

18

Page 19: 玩转 Simulink 之智能硬件download.ilovematlab.cn/meetup/2018GXTU/iLoveMATLAB... · 2018-12-14 · 50 自动代码生成 Simulink Coder –为Simulink模型,Stateflow流程图和

19

Page 20: 玩转 Simulink 之智能硬件download.ilovematlab.cn/meetup/2018GXTU/iLoveMATLAB... · 2018-12-14 · 50 自动代码生成 Simulink Coder –为Simulink模型,Stateflow流程图和

20

演示代数系数建模

Page 21: 玩转 Simulink 之智能硬件download.ilovematlab.cn/meetup/2018GXTU/iLoveMATLAB... · 2018-12-14 · 50 自动代码生成 Simulink Coder –为Simulink模型,Stateflow流程图和

34

Page 22: 玩转 Simulink 之智能硬件download.ilovematlab.cn/meetup/2018GXTU/iLoveMATLAB... · 2018-12-14 · 50 自动代码生成 Simulink Coder –为Simulink模型,Stateflow流程图和

35

演示逻辑系统建模

Page 23: 玩转 Simulink 之智能硬件download.ilovematlab.cn/meetup/2018GXTU/iLoveMATLAB... · 2018-12-14 · 50 自动代码生成 Simulink Coder –为Simulink模型,Stateflow流程图和

36

练习

Page 24: 玩转 Simulink 之智能硬件download.ilovematlab.cn/meetup/2018GXTU/iLoveMATLAB... · 2018-12-14 · 50 自动代码生成 Simulink Coder –为Simulink模型,Stateflow流程图和

37

速度和精度

Page 25: 玩转 Simulink 之智能硬件download.ilovematlab.cn/meetup/2018GXTU/iLoveMATLAB... · 2018-12-14 · 50 自动代码生成 Simulink Coder –为Simulink模型,Stateflow流程图和

38

影响速度的三大因素

Page 26: 玩转 Simulink 之智能硬件download.ilovematlab.cn/meetup/2018GXTU/iLoveMATLAB... · 2018-12-14 · 50 自动代码生成 Simulink Coder –为Simulink模型,Stateflow流程图和

39

求解器

Page 27: 玩转 Simulink 之智能硬件download.ilovematlab.cn/meetup/2018GXTU/iLoveMATLAB... · 2018-12-14 · 50 自动代码生成 Simulink Coder –为Simulink模型,Stateflow流程图和

40

演示

Page 28: 玩转 Simulink 之智能硬件download.ilovematlab.cn/meetup/2018GXTU/iLoveMATLAB... · 2018-12-14 · 50 自动代码生成 Simulink Coder –为Simulink模型,Stateflow流程图和

44

Simulink Onramp

Page 29: 玩转 Simulink 之智能硬件download.ilovematlab.cn/meetup/2018GXTU/iLoveMATLAB... · 2018-12-14 · 50 自动代码生成 Simulink Coder –为Simulink模型,Stateflow流程图和

45

如何开始学习

下载安装R2018b

下载安装Simulink

Onramp安装包

启动Simulink,登陆MathWorks

ID

从开始页面进入,开始Simulink学

习之旅

Page 30: 玩转 Simulink 之智能硬件download.ilovematlab.cn/meetup/2018GXTU/iLoveMATLAB... · 2018-12-14 · 50 自动代码生成 Simulink Coder –为Simulink模型,Stateflow流程图和

46

你能学到什么?

概述

Simulink 图形界面介绍

查看信号

基本算法搭建

如何使用帮助

在Simulink中使用MATLAB

动态系统建模(连续、离散)

仿真时间设置

练习

Page 31: 玩转 Simulink 之智能硬件download.ilovematlab.cn/meetup/2018GXTU/iLoveMATLAB... · 2018-12-14 · 50 自动代码生成 Simulink Coder –为Simulink模型,Stateflow流程图和

47

Page 32: 玩转 Simulink 之智能硬件download.ilovematlab.cn/meetup/2018GXTU/iLoveMATLAB... · 2018-12-14 · 50 自动代码生成 Simulink Coder –为Simulink模型,Stateflow流程图和

48

玩转Simulink

▪ Simulink 建模与仿真快速入门

▪ Simulink 项目实践 – 为PARROT Mambo四旋翼无人机设计并部署飞行控制系统

Page 33: 玩转 Simulink 之智能硬件download.ilovematlab.cn/meetup/2018GXTU/iLoveMATLAB... · 2018-12-14 · 50 自动代码生成 Simulink Coder –为Simulink模型,Stateflow流程图和

49

基于项目的学习

以项目为基础的学习是一种综合性的课堂教学方法,它旨在使学生参与真实问题的研究。

* Motivating Project-Based Learning: Sustaining the Doing, Supporting the Learning, Educational Psychologist

Volume 26, Issue 3-4, 1991

Page 34: 玩转 Simulink 之智能硬件download.ilovematlab.cn/meetup/2018GXTU/iLoveMATLAB... · 2018-12-14 · 50 自动代码生成 Simulink Coder –为Simulink模型,Stateflow流程图和

50

自动代码生成

Simulink Coder

– 为Simulink模型,Stateflow流程图和

MATLAB函数生成C/C++代码

– 可用于实时和非实时应用

– 可用于加速仿真,快速原型和硬件加速

Embedded Coder:

– 优化的 C/C++ 代码(内存、速度和可读性)

– SIL、PIL 仿真

– 数据对象用于数据管理和定制化

– 针对指定硬件深层次优化

– 适用于 MCU 和 DSP (定点、浮点支持)

验证

Simulink

Coder

Embedded

Coder代码生成

C++

C

Page 35: 玩转 Simulink 之智能硬件download.ilovematlab.cn/meetup/2018GXTU/iLoveMATLAB... · 2018-12-14 · 50 自动代码生成 Simulink Coder –为Simulink模型,Stateflow流程图和

51

Simulink 和硬件实现

乐高机器人MINDSTORMS

NXT/EV3

PARROT Mambo 树莓派 Pi,Pi2,Pi3

C 代码生成

代码部署

Page 36: 玩转 Simulink 之智能硬件download.ilovematlab.cn/meetup/2018GXTU/iLoveMATLAB... · 2018-12-14 · 50 自动代码生成 Simulink Coder –为Simulink模型,Stateflow流程图和

52

多种硬件支持

BeagleBoard /PandaBoard

LEGO MINDSTORMS NXT

Arduino® Nano, Uno, Mega 2560Raspberry PiTM

Raspberry PiTM2

KINECTTM for Windows®

Digilent® Analog DiscoveryTM

Apple® iOS Devices

PARROT ® Mambo Minidroes

LEGO® MINDSTORMS® EV3

RTL-SDR Radio

所有支持硬件:http://mathworks.com/hardware-support

KINECTTM for Windows® V2TurtleBot™

Page 37: 玩转 Simulink 之智能硬件download.ilovematlab.cn/meetup/2018GXTU/iLoveMATLAB... · 2018-12-14 · 50 自动代码生成 Simulink Coder –为Simulink模型,Stateflow流程图和

53

概况介绍

▪ 软件要求

– MATLAB R2018B

– Simulink®

– Simulink Support Package for

PARROT® Minidrones

– Embedded Coder™

– Aerospace Blockset™

– Simulink 3D Animation™

Page 38: 玩转 Simulink 之智能硬件download.ilovematlab.cn/meetup/2018GXTU/iLoveMATLAB... · 2018-12-14 · 50 自动代码生成 Simulink Coder –为Simulink模型,Stateflow流程图和

54

硬件要求

Page 39: 玩转 Simulink 之智能硬件download.ilovematlab.cn/meetup/2018GXTU/iLoveMATLAB... · 2018-12-14 · 50 自动代码生成 Simulink Coder –为Simulink模型,Stateflow流程图和

55

概述

1) 什么是基于模型设计?

2) 什么是Simulink Coder™

3) 什么是 PARROT® 迷你无人机?

4) 什么是 Simulink Support for PARROT Minidrones?

5) 什么是Aerospace Blockset?

Page 40: 玩转 Simulink 之智能硬件download.ilovematlab.cn/meetup/2018GXTU/iLoveMATLAB... · 2018-12-14 · 50 自动代码生成 Simulink Coder –为Simulink模型,Stateflow流程图和

56

什么是基于模型设计?

Page 41: 玩转 Simulink 之智能硬件download.ilovematlab.cn/meetup/2018GXTU/iLoveMATLAB... · 2018-12-14 · 50 自动代码生成 Simulink Coder –为Simulink模型,Stateflow流程图和

57

基于模型设计

• 自动回归测试

• 检验设计错误

• 支持认证和标准

• 生成高效、优化的代码

• 优化、权衡软硬件实现

• 多域系统建模

• 探索并优化浮点和定点的系统特性

• 跨团队协作开发

集成

实现

设计

测试

与验

研究 需求

ARM FPGA

VHDL, VerilogC, C++

环境模型

物理组件

算法

Page 42: 玩转 Simulink 之智能硬件download.ilovematlab.cn/meetup/2018GXTU/iLoveMATLAB... · 2018-12-14 · 50 自动代码生成 Simulink Coder –为Simulink模型,Stateflow流程图和

58

什么是Simulink Coder™

Page 43: 玩转 Simulink 之智能硬件download.ilovematlab.cn/meetup/2018GXTU/iLoveMATLAB... · 2018-12-14 · 50 自动代码生成 Simulink Coder –为Simulink模型,Stateflow流程图和

59

什么是 PARROT® 迷你无人机?

Page 44: 玩转 Simulink 之智能硬件download.ilovematlab.cn/meetup/2018GXTU/iLoveMATLAB... · 2018-12-14 · 50 自动代码生成 Simulink Coder –为Simulink模型,Stateflow流程图和

60

什么是 Simulink Support for PARROT Minidrones?

Page 45: 玩转 Simulink 之智能硬件download.ilovematlab.cn/meetup/2018GXTU/iLoveMATLAB... · 2018-12-14 · 50 自动代码生成 Simulink Coder –为Simulink模型,Stateflow流程图和

61

基于Aerospace Blockset™飞行动力学建模和仿真

▪ 如何在软件例子中查找并打开Quadcopter项目

▪ 四旋翼飞行仿真模型介绍

▪ 如何在Simulink中仿真模型

Page 46: 玩转 Simulink 之智能硬件download.ilovematlab.cn/meetup/2018GXTU/iLoveMATLAB... · 2018-12-14 · 50 自动代码生成 Simulink Coder –为Simulink模型,Stateflow流程图和

62

例子介绍演示

Page 47: 玩转 Simulink 之智能硬件download.ilovematlab.cn/meetup/2018GXTU/iLoveMATLAB... · 2018-12-14 · 50 自动代码生成 Simulink Coder –为Simulink模型,Stateflow流程图和

63

配置无人机硬件和无线通信

▪ 下载并硬件支持包(Hardware Support Package, HSP)

▪ 安装蓝牙驱动,配置蓝牙通信,并建立连接

▪ 代码生成并部署到无人机上

Page 48: 玩转 Simulink 之智能硬件download.ilovematlab.cn/meetup/2018GXTU/iLoveMATLAB... · 2018-12-14 · 50 自动代码生成 Simulink Coder –为Simulink模型,Stateflow流程图和

64

蓝牙连接无人机

Page 49: 玩转 Simulink 之智能硬件download.ilovematlab.cn/meetup/2018GXTU/iLoveMATLAB... · 2018-12-14 · 50 自动代码生成 Simulink Coder –为Simulink模型,Stateflow流程图和

65

配置无人机硬件和无线通信

Page 50: 玩转 Simulink 之智能硬件download.ilovematlab.cn/meetup/2018GXTU/iLoveMATLAB... · 2018-12-14 · 50 自动代码生成 Simulink Coder –为Simulink模型,Stateflow流程图和

66

演示

自动悬停

Page 51: 玩转 Simulink 之智能硬件download.ilovematlab.cn/meetup/2018GXTU/iLoveMATLAB... · 2018-12-14 · 50 自动代码生成 Simulink Coder –为Simulink模型,Stateflow流程图和

67

飞行测试 : 悬停

Page 52: 玩转 Simulink 之智能硬件download.ilovematlab.cn/meetup/2018GXTU/iLoveMATLAB... · 2018-12-14 · 50 自动代码生成 Simulink Coder –为Simulink模型,Stateflow流程图和

68

流程总结

被控对象和控制算法建

模型在环仿真测试验证

安装支持包和蓝牙驱动

配置蓝牙和无人机通信

下载控制系统代码到无

人机

使用控制界面启动无人

Page 53: 玩转 Simulink 之智能硬件download.ilovematlab.cn/meetup/2018GXTU/iLoveMATLAB... · 2018-12-14 · 50 自动代码生成 Simulink Coder –为Simulink模型,Stateflow流程图和

69© 2018 The MathWorks, Inc.© 2018 The MathWorks, Inc. MATLAB and Simulink are registered trademarks of The MathWorks, Inc. See www.mathworks.com/trademarks for

a list of additional trademarks. Other product or brand names may be trademarks or registered trademarks of their respective holders.