Modellbasierte Softwareentwicklung mit MATLAB für Embedded …€¦ · • Software in the Loop,...

81
Modellbasierte Softwareentwicklung mit MATLAB für Embedded Controller SMT32F4-Discovery Jörg Thomasberger, Igor Lewin, Christof Kötting, Daniel Hartung, Benedikt Geib 24.09.2015 Modellbasierte Softwareentwicklung mit MATLAB für Embedded Controller SMT32F4-Discovery 1

Transcript of Modellbasierte Softwareentwicklung mit MATLAB für Embedded …€¦ · • Software in the Loop,...

Page 1: Modellbasierte Softwareentwicklung mit MATLAB für Embedded …€¦ · • Software in the Loop, d. h. C-Code für Regler mit Simulink Coder generieren und testen. • Processor

Modellbasierte Softwareentwicklung mit MATLAB für Embedded

Controller SMT32F4-Discovery Jörg Thomasberger, Igor Lewin, Christof Kötting,

Daniel Hartung, Benedikt Geib

24.09.2015 Modellbasierte Softwareentwicklung mit MATLAB für

Embedded Controller SMT32F4-Discovery 1

Page 2: Modellbasierte Softwareentwicklung mit MATLAB für Embedded …€¦ · • Software in the Loop, d. h. C-Code für Regler mit Simulink Coder generieren und testen. • Processor

Inhalt

• Einleitung

• Projektmanagment

• Hardware Design

• Software Design

• Systemanalyse

• Reglerentwürfe

• SIL und PIL

• Visualisierung und Datenverarbeitung

• Test und Validierung

• Zusammenfassung

24.09.2015 Modellbasierte Softwareentwicklung mit MATLAB für

Embedded Controller SMT32F4-Discovery 2

Page 3: Modellbasierte Softwareentwicklung mit MATLAB für Embedded …€¦ · • Software in the Loop, d. h. C-Code für Regler mit Simulink Coder generieren und testen. • Processor

Aufgabenstellung

• Die Regelstrecke (Antenne) beschreiben, simulieren und testen.

• Mit Model in the Loop unter Simulink den Regelkreis simulieren und testen

• Für den simulierten Regelkreis eine Visualisierung mit Matlab erstellen und testen

• Software in the Loop, d. h. C-Code für Regler mit Simulink Coder generieren und testen.

• Processor in the Loop, d. h. Regler mit dem Simulink Modell der Strecke testen.

• C-Code unter Simulink für die Regler mit Embedded Coder generieren, herunterladen und diesen auf

dem Discovery Board implementieren.

• Antenne mit dem STM32F4 Discovery Board regeln.

24.09.2015 Modellbasierte Softwareentwicklung mit MATLAB für

Embedded Controller SMT32F4-Discovery 3

Page 4: Modellbasierte Softwareentwicklung mit MATLAB für Embedded …€¦ · • Software in the Loop, d. h. C-Code für Regler mit Simulink Coder generieren und testen. • Processor

Projektmanagement

• Spezifikationsliste

• Risikoanalyse

• Anwendungsfälle

• Netz-/Projektplan

• Pflichtenheft

• Meilensteine

• Wöchentliche Teamabsprachen

24.09.2015

Modellbasierte Softwareentwicklung mit MATLAB für Embedded Controller SMT32F4-Discovery

4

Wahrscheinlichkeit (X) 1 2 3 4 5 6 7 8 9 10

Schweregrad (O) 1 2 3 4 5 6 7 8 9 10

Nr. Bezeichung

1. technische Risiken X O

2. personelle Risiken O X

3. finanzielle Risiken X/O

4. klimatische Risiken X/O

5. Zeitplan Risiken X O

6. vertragliche Risiken X/O

7. rechtliche Risiken X/O

7a. werksvertragliche X/O

7b. kaufvertragliche X/O

7c. baurechtliche X/O

7d. gewerbliche X/O

7e. sicherheitsrechtliche X/O

7f. emmisionsrechtliche X/O

7g. arbeitsrechtliche X/O

AT5 Risikoanalyse

Wahrscheinlichkeit und SchweregradtabelleRelease Datum

Modellbasierte Softwareentwicklung mit MATLAB

für Embedded Controller SMT32F4-Discovery 28.04.2015

Projektbezeichnung:

keine Risiken

Revision

0

wahrscheinlich relativ wahrscheinlich sehr wahrscheinlich

weniger ernst relativ ernst sehr gravierend

Schäden oder Mängel in der Umsetzung

Jobbedingter ausfall eines Kollegen.

keine Risiken

keine Risiken

keine Risiken

keine Risiken

keine Risiken

keine Risiken

keine Risiken

keine Risiken

keine Risiken

Einhaltung von Normen.

Page 5: Modellbasierte Softwareentwicklung mit MATLAB für Embedded …€¦ · • Software in the Loop, d. h. C-Code für Regler mit Simulink Coder generieren und testen. • Processor

Systemanalyse

• 2 Ansätze

– Mit a-priori-Kenntnissen

– Ohne Vorkenntnisse

• Ergebnis: Systemmodell

24.09.2015 Modellbasierte Softwareentwicklung mit MATLAB für

Embedded Controller SMT32F4-Discovery 5

𝐺𝑆 = 7,308

0,13 ∗ 𝑠2 + 𝑠

Page 6: Modellbasierte Softwareentwicklung mit MATLAB für Embedded …€¦ · • Software in the Loop, d. h. C-Code für Regler mit Simulink Coder generieren und testen. • Processor

Systemanalyse a-priori

• Systembestandteile analysieren

• Strecke: IT1

• Gleichung:

24.09.2015 Modellbasierte Softwareentwicklung mit MATLAB für

Embedded Controller SMT32F4-Discovery 6

J

KI *s T1,Totzeit /s

0,01841929 nicht erkennbar

0,02059889 nicht erkennbar

0,02106379 0,15

0,02130367 0,12

0,02125811 0,1

KI *s T1,Totzeit /s

0,01829324 nicht erkennbar

0,01950922 nicht erkennbar

0,02054102 nicht erkennbar

0,02119348 0,05

0,02108164 0,05

𝐺𝑆 = 0,0203

0,12 ∗ 𝑠2 + 𝑠

Page 7: Modellbasierte Softwareentwicklung mit MATLAB für Embedded …€¦ · • Software in the Loop, d. h. C-Code für Regler mit Simulink Coder generieren und testen. • Processor

Systemanalyse

Systemanalyse ohne Vorkenntnisse Feste Potentiometer Versorgung von 3 V

Rot= Eingangsprung Blau = Potentiometerausgangsspannung

24.09.2015 Modellbasierte Softwareentwicklung mit MATLAB für

Embedded Controller SMT32F4-Discovery 7

Page 8: Modellbasierte Softwareentwicklung mit MATLAB für Embedded …€¦ · • Software in the Loop, d. h. C-Code für Regler mit Simulink Coder generieren und testen. • Processor

Systemanalyse: Systemanalyse ohne Vorkenntnisse

Filterentwurf mit fdatool von Matlab

24.09.2015 Modellbasierte Softwareentwicklung mit MATLAB für

Embedded Controller SMT32F4-Discovery 8

Page 9: Modellbasierte Softwareentwicklung mit MATLAB für Embedded …€¦ · • Software in the Loop, d. h. C-Code für Regler mit Simulink Coder generieren und testen. • Processor

Systemanalyse: Systemanalyse ohne Vorkenntnisse

Ermittlung Ki, T1 und Abweichung bei einem Eingangssprung von 0 auf 2 V

24.09.2015 Modellbasierte Softwareentwicklung mit MATLAB für

Embedded Controller SMT32F4-Discovery 9

Page 10: Modellbasierte Softwareentwicklung mit MATLAB für Embedded …€¦ · • Software in the Loop, d. h. C-Code für Regler mit Simulink Coder generieren und testen. • Processor

Systemanalyse: Systemanalyse ohne Vorkenntnisse Zusammentragung der Ergebnisse für unterschiedliche Eingangssprünge

24.09.2015 Modellbasierte Softwareentwicklung mit MATLAB für

Embedded Controller SMT32F4-Discovery 10

Eingangssprung

in V

Abweichung in V KI in sec-1 T1 in

sec

Zeit bis 350°

in sec.

Zeit bis 360°

in sec.

0 auf 2V 3V – 2,9V=0,1V 0,05523 0,26 25,4 25,78

0 auf 4V 3V – 2,903V=0,097V 0,06154 0,24 11,63 11,79

0 auf 6V 3V – 2,899 V=0,101V 0,06248 0,196 7,58 7,68

0 auf 8V 3V – 2,901V=0,099V 0,06421 0,152 5,476 5,544

0 auf 10V 3V – 2,896V=0,104V 0,0638 0,152 4,356 4,424

Mittelwert 0,1002 V 0,061452 0,2

Page 11: Modellbasierte Softwareentwicklung mit MATLAB für Embedded …€¦ · • Software in the Loop, d. h. C-Code für Regler mit Simulink Coder generieren und testen. • Processor

Systemanalyse: Systemanalyse ohne Vorkenntnisse

Ohne Umpolung des GM Motors: 0 auf 2 V T1 = 0,26

Ohne Umpolung des GM Motors: 0 auf 10 V T1 = 0,152

Mit Umpolung des Gleichstrommotors

24.09.2015 Modellbasierte Softwareentwicklung mit MATLAB für

Embedded Controller SMT32F4-Discovery 11

Eingangssprung in V Abweichung in V KI in sec-1 T1 in sec Zeit bis

360° in

sec.

Zeit bis

350° in sec.

0 auf 2V 3V – 2,911V=0,089V 0,0585 0,16 23,58 24,2

0 auf 10V 3V – 2,906V=0,094V 0,0665 0,184 4,188 4,276

Page 12: Modellbasierte Softwareentwicklung mit MATLAB für Embedded …€¦ · • Software in the Loop, d. h. C-Code für Regler mit Simulink Coder generieren und testen. • Processor

Systemanalyse: Systemanalyse ohne Vorkenntnisse

Zusammentragung der Ergebnisse aus beiden Tabellen

Es ergibt sich folgende Übertragungsfunktion der Strecke

𝐺𝑠 𝑠 =𝐾𝐼

𝑠(1 + 𝑠𝑇1)=0,061452 𝑠𝑒𝑐.−1

𝑠(1 + 𝑠0,2 𝑠𝑒𝑐. )

24.09.2015 Modellbasierte Softwareentwicklung mit MATLAB für

Embedded Controller SMT32F4-Discovery 12

Page 13: Modellbasierte Softwareentwicklung mit MATLAB für Embedded …€¦ · • Software in the Loop, d. h. C-Code für Regler mit Simulink Coder generieren und testen. • Processor

STM32F4 Discovery Board

24.09.2015 Modellbasierte Softwareentwicklung mit MATLAB für

Embedded Controller SMT32F4-Discovery 13

• Cortex M4 ARM Processor (up to 168Mhz) • 1 MB internal Flash • 12bit ADCs • DMA Controller • 17 Timers • Integrated Debugger • All Pins accessable

Page 14: Modellbasierte Softwareentwicklung mit MATLAB für Embedded …€¦ · • Software in the Loop, d. h. C-Code für Regler mit Simulink Coder generieren und testen. • Processor

Hardware Design

24.09.2015 Modellbasierte Softwareentwicklung mit MATLAB für

Embedded Controller SMT32F4-Discovery 14

• Stiftleiste als Konnektor zum Discovery Board • Spannungsversorgung Discovery Board • Strommessung Hal Sensor (Optional) • Motor Vollbrücken Ansteuerung • Kommunikationsinterface USB/Uart

Page 15: Modellbasierte Softwareentwicklung mit MATLAB für Embedded …€¦ · • Software in the Loop, d. h. C-Code für Regler mit Simulink Coder generieren und testen. • Processor

Software Design

24.09.2015 Modellbasierte Softwareentwicklung mit MATLAB für

Embedded Controller SMT32F4-Discovery 15

Page 16: Modellbasierte Softwareentwicklung mit MATLAB für Embedded …€¦ · • Software in the Loop, d. h. C-Code für Regler mit Simulink Coder generieren und testen. • Processor

Visualisierung Datenverarbeitung

24.09.2015 Modellbasierte Softwareentwicklung mit MATLAB für

Embedded Controller SMT32F4-Discovery 16

STM32F4

• Schnittstelle USART

• Wandler für USB FT232RL

Matlab GUIDE

• USB Integration

FT232RL

Mini USB

USART PC 10 & 11

Page 17: Modellbasierte Softwareentwicklung mit MATLAB für Embedded …€¦ · • Software in the Loop, d. h. C-Code für Regler mit Simulink Coder generieren und testen. • Processor

Visualisierung Datenverarbeitung

24.09.2015 Modellbasierte Softwareentwicklung mit MATLAB für

Embedded Controller SMT32F4-Discovery 17

Datenübertragung

• Serielle Datenübertragung

• Char-Array mit Semikolon als Trennzeichen “;“

Rec_all;0;175.2;12.2;8.22;200.0;24.8;0

Page 18: Modellbasierte Softwareentwicklung mit MATLAB für Embedded …€¦ · • Software in the Loop, d. h. C-Code für Regler mit Simulink Coder generieren und testen. • Processor

Visualisierung Datenverarbeitung

24.09.2015 Modellbasierte Softwareentwicklung mit MATLAB für

Embedded Controller SMT32F4-Discovery 18

1

2

3

4

5

5

Page 19: Modellbasierte Softwareentwicklung mit MATLAB für Embedded …€¦ · • Software in the Loop, d. h. C-Code für Regler mit Simulink Coder generieren und testen. • Processor

Smith Prädiktor

• Modellbasiertes Regelverfahren

• Einsatz für Regelstrecken mit großen Laufzeitanteilen

24.09.2015 Modellbasierte Softwareentwicklung mit MATLAB für

Embedded Controller SMT32F4-Discovery 19

Page 20: Modellbasierte Softwareentwicklung mit MATLAB für Embedded …€¦ · • Software in the Loop, d. h. C-Code für Regler mit Simulink Coder generieren und testen. • Processor

Smith Prädiktor

24.09.2015 Modellbasierte Softwareentwicklung mit MATLAB für

Embedded Controller SMT32F4-Discovery 20

1. Modell Approximation 2. Aufbau Smith Prädiktor

Herangehensweise zur Entwicklung des Smith-Prädiktors

Page 21: Modellbasierte Softwareentwicklung mit MATLAB für Embedded …€¦ · • Software in the Loop, d. h. C-Code für Regler mit Simulink Coder generieren und testen. • Processor

Smith Prädiktor

24.09.2015 Modellbasierte Softwareentwicklung mit MATLAB für

Embedded Controller SMT32F4-Discovery 21

3. Simulation & Optimierung

Herangehensweise zur Entwicklung des Smith-Prädiktors

4. Digitalisierung des Regelkreises

Page 22: Modellbasierte Softwareentwicklung mit MATLAB für Embedded …€¦ · • Software in the Loop, d. h. C-Code für Regler mit Simulink Coder generieren und testen. • Processor

Smith Prädiktor

24.09.2015 Modellbasierte Softwareentwicklung mit MATLAB für

Embedded Controller SMT32F4-Discovery 22

5. Test und Validierung

Page 23: Modellbasierte Softwareentwicklung mit MATLAB für Embedded …€¦ · • Software in the Loop, d. h. C-Code für Regler mit Simulink Coder generieren und testen. • Processor

ASA-Regler

24.09.2015 Modellbasierte Softwareentwicklung mit MATLAB für

Embedded Controller SMT32F4-Discovery 23

• Modellbasierter Regler

Page 24: Modellbasierte Softwareentwicklung mit MATLAB für Embedded …€¦ · • Software in the Loop, d. h. C-Code für Regler mit Simulink Coder generieren und testen. • Processor

ASA-Regler

24.09.2015 Modellbasierte Softwareentwicklung mit MATLAB für

Embedded Controller SMT32F4-Discovery 24

𝐺𝑀 𝑠 =𝐺0𝑀 𝑠

1 + 𝐺0𝑀(𝑠)=

1

1 + 0,2 ∗ 𝑠

𝐺0𝑀 𝑠 =𝐺𝑀 𝑠

1 − 𝐺𝑀(𝑠)=5

𝑠

Page 25: Modellbasierte Softwareentwicklung mit MATLAB für Embedded …€¦ · • Software in the Loop, d. h. C-Code für Regler mit Simulink Coder generieren und testen. • Processor

ASA-Regler

• Quasikontinuierlich

• Strecke: 𝑦 𝑡 = 7,303 ∗ 𝑢 𝑡 𝑑𝑡 − 𝑇 ∗𝑑𝑦

𝑑𝑡

• GM0: 𝑦 𝑡 = 5 ∗ 𝑢(𝑡) 𝑑𝑡

24.09.2015 Modellbasierte Softwareentwicklung mit MATLAB für

Embedded Controller SMT32F4-Discovery 25

Page 26: Modellbasierte Softwareentwicklung mit MATLAB für Embedded …€¦ · • Software in the Loop, d. h. C-Code für Regler mit Simulink Coder generieren und testen. • Processor

ASA-Regler

24.09.2015 Modellbasierte Softwareentwicklung mit MATLAB für

Embedded Controller SMT32F4-Discovery 26

Page 27: Modellbasierte Softwareentwicklung mit MATLAB für Embedded …€¦ · • Software in the Loop, d. h. C-Code für Regler mit Simulink Coder generieren und testen. • Processor

Predictive Functional Control

• Prädiktive Regelung

24.09.2015 Modellbasierte Softwareentwicklung mit MATLAB für

Embedded Controller SMT32F4-Discovery 27

Page 28: Modellbasierte Softwareentwicklung mit MATLAB für Embedded …€¦ · • Software in the Loop, d. h. C-Code für Regler mit Simulink Coder generieren und testen. • Processor

Predictive Functional Control

Drei tragende Bestandteile

• Internes Modell

• Referenztrajektorie

• Optimale Stellstrategie:

Regelgröße → Referenztrajektorie

24.09.2015 Modellbasierte Softwareentwicklung mit MATLAB für

Embedded Controller SMT32F4-Discovery 28

Page 29: Modellbasierte Softwareentwicklung mit MATLAB für Embedded …€¦ · • Software in the Loop, d. h. C-Code für Regler mit Simulink Coder generieren und testen. • Processor

Predictive Functional Control

• Ursprünglich für PTn-Prozesse

• Anpassung des Modells für Regelung der IT1-Prozesse

• 𝑀0 = 𝑀1

1+𝑀2, 𝑀1 = 𝑀11 +𝑀12

24.09.2015 Modellbasierte Softwareentwicklung mit MATLAB für

Embedded Controller SMT32F4-Discovery 29

Page 30: Modellbasierte Softwareentwicklung mit MATLAB für Embedded …€¦ · • Software in the Loop, d. h. C-Code für Regler mit Simulink Coder generieren und testen. • Processor

Predictive Functional Control

• Berechnung der Stellgröße

• 𝑙ℎ = 1 − 𝜆ℎ = 1 − 𝑒−𝑇𝑠∙3∙ℎ

𝑇𝐴𝑢𝑠 - Referenztrajektorie

24.09.2015 Modellbasierte Softwareentwicklung mit MATLAB für

Embedded Controller SMT32F4-Discovery 30

Page 31: Modellbasierte Softwareentwicklung mit MATLAB für Embedded …€¦ · • Software in the Loop, d. h. C-Code für Regler mit Simulink Coder generieren und testen. • Processor

Predictive Functional Control

24.09.2015 Modellbasierte Softwareentwicklung mit MATLAB für

Embedded Controller SMT32F4-Discovery 31

𝑇𝐴𝑢𝑠 = 10𝑠, ℎ =𝑇𝐴𝑢𝑠3

Page 32: Modellbasierte Softwareentwicklung mit MATLAB für Embedded …€¦ · • Software in the Loop, d. h. C-Code für Regler mit Simulink Coder generieren und testen. • Processor

Simplified PFC

• Vereinfachung des PFC-Algorithmus

Annahme: 𝑇λ = 𝑇ℎ, somit α = λ

24.09.2015 Modellbasierte Softwareentwicklung mit MATLAB für

Embedded Controller SMT32F4-Discovery 32

Page 33: Modellbasierte Softwareentwicklung mit MATLAB für Embedded …€¦ · • Software in the Loop, d. h. C-Code für Regler mit Simulink Coder generieren und testen. • Processor

Simplified PFC

• Vereinfachung des Blockschaltbildes

𝐺𝑤 𝑠 = 1 + 𝐺𝑀(𝑠)𝐺𝑂(𝑠)

1 + 𝐺𝑂(𝑠),

24.09.2015 Modellbasierte Softwareentwicklung mit MATLAB für

Embedded Controller SMT32F4-Discovery 33

Page 34: Modellbasierte Softwareentwicklung mit MATLAB für Embedded …€¦ · • Software in the Loop, d. h. C-Code für Regler mit Simulink Coder generieren und testen. • Processor

Simplified PFC

• Vorfilter für das gewünschte Verhalten 𝐺𝑊 𝑠

𝐺𝑉 𝑠 = 𝐺𝑊 𝑠1 + 𝐺𝑂 𝑠

𝐺𝑂 𝑠,

• Für PT2-Verhalten und IT1-Strecken:

𝐺𝑉 𝑠 =𝐾𝑊

(1 + 𝑠 ∙ 𝑇𝑊)2∙𝐾𝑆 ∙ 𝐾𝑃 + 𝑠 ∙ (𝑠 ∙ 𝑇𝑆 + 1)

𝐾𝑆 ∙ 𝐾𝑃

24.09.2015

Modellbasierte Softwareentwicklung mit MATLAB für Embedded Controller SMT32F4-Discovery

34

Page 35: Modellbasierte Softwareentwicklung mit MATLAB für Embedded …€¦ · • Software in the Loop, d. h. C-Code für Regler mit Simulink Coder generieren und testen. • Processor

Simplified PFC

• Simulation: PT2-Verhalten, T=0.3

24.09.2015 Modellbasierte Softwareentwicklung mit MATLAB für

Embedded Controller SMT32F4-Discovery 35

Page 36: Modellbasierte Softwareentwicklung mit MATLAB für Embedded …€¦ · • Software in the Loop, d. h. C-Code für Regler mit Simulink Coder generieren und testen. • Processor

Simplified PFC

24.09.2015 Modellbasierte Softwareentwicklung mit MATLAB für

Embedded Controller SMT32F4-Discovery 36

Page 37: Modellbasierte Softwareentwicklung mit MATLAB für Embedded …€¦ · • Software in the Loop, d. h. C-Code für Regler mit Simulink Coder generieren und testen. • Processor

Reglerentwürfe: Kompensationsregler

𝐺𝑅(𝑠) =

1

𝐺𝑠(𝑠)

𝐺𝑀(𝑠)

1−𝐺𝑀(𝑠) Annahme: 𝐺𝑀(𝑠) =

1

1+𝑠𝑇𝑀 𝐺𝑀(𝑠) =

1

1+𝑠0,2𝑠𝑒𝑐.

𝐺𝑠 𝑠 =𝐾𝐼

𝑠(1+𝑠𝑇1)=

0,061452 𝑠𝑒𝑐.−1

𝑠(1+𝑠0,2𝑠𝑒𝑐.)

24.09.2015 Modellbasierte Softwareentwicklung mit MATLAB für

Embedded Controller SMT32F4-Discovery 37

Page 38: Modellbasierte Softwareentwicklung mit MATLAB für Embedded …€¦ · • Software in the Loop, d. h. C-Code für Regler mit Simulink Coder generieren und testen. • Processor

Reglerentwürfe: Kompensationsregler

Berechnung Kompensationsregler

𝐺𝑅 𝑠 =𝑠(1 + 𝑠0,2 𝑠𝑒𝑐. )

0,061452 𝑠𝑒𝑐−1

11 + 𝑠0,2𝑠𝑒𝑐.

1 −1

1 + 𝑠0,2𝑠𝑒𝑐.

𝐺𝑅(𝑠) =𝑠(1+𝑠0,2 𝑠𝑒𝑐.)

0,061452 𝑠𝑒𝑐−1

1

1+𝑠0,2𝑠𝑒𝑐.1+𝑠0,2𝑒𝑐.−1

1+𝑠0,2𝑠𝑒𝑐.

24.09.2015 Modellbasierte Softwareentwicklung mit MATLAB für

Embedded Controller SMT32F4-Discovery 38

Page 39: Modellbasierte Softwareentwicklung mit MATLAB für Embedded …€¦ · • Software in the Loop, d. h. C-Code für Regler mit Simulink Coder generieren und testen. • Processor

Reglerentwürfe: Kompensationsregler

Berechnung Kompensationsregler

𝐺𝑅(𝑠) =𝑠(1 + 𝑠0,2 𝑠𝑒𝑐. )

0,061452 𝑠𝑒𝑐−1

1

𝑠0,2𝑠𝑒𝑐. 𝐺𝑅(𝑠) =

𝑠(1 + 𝑠0,2 𝑠𝑒𝑐. )

𝑠0,0122904

𝐺𝑅(𝑠) =(1 + 𝑠0,2 𝑠𝑒𝑐. )

0,0122904 𝐺𝑅(𝑠) = 81,364 + 𝑠16,273𝑠𝑒𝑐.

𝑮𝑹(𝒔) = 𝟖𝟏, 𝟑𝟔𝟒 𝟏 + 𝒔𝟎, 𝟐𝐬𝐞𝐜. = 𝑲𝑷𝑹 (𝟏 + 𝒔𝑻𝒗)

24.09.2015 Modellbasierte Softwareentwicklung mit MATLAB für

Embedded Controller SMT32F4-Discovery 39

Page 40: Modellbasierte Softwareentwicklung mit MATLAB für Embedded …€¦ · • Software in the Loop, d. h. C-Code für Regler mit Simulink Coder generieren und testen. • Processor

Reglerentwürfe: Kompensationsregler

Berechnung offener Regelkreis Unabhängigkeit von der Strecke

𝐺0(𝑠) = 𝐺𝑅(𝑠) 𝐺𝑆 𝑠 = 1

𝐺𝑠(𝑠)

𝐺𝑀(𝑠)

1 − 𝐺𝑀(𝑠) 𝐺𝑆 𝑠

𝐺𝑀(𝑠)

1 − 𝐺𝑀(𝑠)=

11 + 𝑠𝑇𝑀

1 − 1

1 + 𝑠𝑇𝑀

=

11 + 𝑠𝑇𝑀

1 + 𝑠𝑇𝑀 − 11 + 𝑠𝑇𝑀

= 1

𝑠𝑇𝑀=

5

𝑠𝑠𝑒𝑐.

24.09.2015 Modellbasierte Softwareentwicklung mit MATLAB für

Embedded Controller SMT32F4-Discovery 40

Page 41: Modellbasierte Softwareentwicklung mit MATLAB für Embedded …€¦ · • Software in the Loop, d. h. C-Code für Regler mit Simulink Coder generieren und testen. • Processor

Reglerentwürfe: Kompensationsregler digital Abtastzeit: 1ms

24.09.2015 Modellbasierte Softwareentwicklung mit MATLAB für

Embedded Controller SMT32F4-Discovery 41

Page 42: Modellbasierte Softwareentwicklung mit MATLAB für Embedded …€¦ · • Software in the Loop, d. h. C-Code für Regler mit Simulink Coder generieren und testen. • Processor

Reglerentwürfe: Kompensationsregler Kennlinien digitaler Regler

24.09.2015 Modellbasierte Softwareentwicklung mit MATLAB für

Embedded Controller SMT32F4-Discovery 42

Page 43: Modellbasierte Softwareentwicklung mit MATLAB für Embedded …€¦ · • Software in the Loop, d. h. C-Code für Regler mit Simulink Coder generieren und testen. • Processor

Reglerentwürfe: Kompensationsregler Kennlinien digitaler Regler

24.09.2015 Modellbasierte Softwareentwicklung mit MATLAB für

Embedded Controller SMT32F4-Discovery 43

Page 44: Modellbasierte Softwareentwicklung mit MATLAB für Embedded …€¦ · • Software in the Loop, d. h. C-Code für Regler mit Simulink Coder generieren und testen. • Processor

Reglerentwürfe: Kompensationsregler Kennlinien digitaler Regler

24.09.2015 Modellbasierte Softwareentwicklung mit MATLAB für

Embedded Controller SMT32F4-Discovery 44

Page 45: Modellbasierte Softwareentwicklung mit MATLAB für Embedded …€¦ · • Software in the Loop, d. h. C-Code für Regler mit Simulink Coder generieren und testen. • Processor

Reglerentwürfe: Kompensationsregler Kennlinien digitaler Regler

24.09.2015 Modellbasierte Softwareentwicklung mit MATLAB für

Embedded Controller SMT32F4-Discovery 45

Page 46: Modellbasierte Softwareentwicklung mit MATLAB für Embedded …€¦ · • Software in the Loop, d. h. C-Code für Regler mit Simulink Coder generieren und testen. • Processor

SIL

• Signale kommen vom Top Modell

• Zu Beginn jeder Abtastperiode werden Signale vom Top Modell zu SIL

Blöcken gesendet und verarbeitet

• C Code für den Host PC kompiliert

• C Code läuft auf Host PC

• Non Real Time

24.09.2015 Modellbasierte Softwareentwicklung mit MATLAB für

Embedded Controller SMT32F4-Discovery 46

Page 47: Modellbasierte Softwareentwicklung mit MATLAB für Embedded …€¦ · • Software in the Loop, d. h. C-Code für Regler mit Simulink Coder generieren und testen. • Processor

SIL zuerst ohne Anbindung an die Visualisierung

24.09.2015 Modellbasierte Softwareentwicklung mit MATLAB für

Embedded Controller SMT32F4-Discovery 47

Page 48: Modellbasierte Softwareentwicklung mit MATLAB für Embedded …€¦ · • Software in the Loop, d. h. C-Code für Regler mit Simulink Coder generieren und testen. • Processor

SIL die wichtigsten Einstellungen

Rechter Mausklick auf das Subsystem Controller Block Parameters (Subsystem)

24.09.2015 Modellbasierte Softwareentwicklung mit MATLAB für

Embedded Controller SMT32F4-Discovery 48

Page 49: Modellbasierte Softwareentwicklung mit MATLAB für Embedded …€¦ · • Software in the Loop, d. h. C-Code für Regler mit Simulink Coder generieren und testen. • Processor

SIL die wichtigsten Einstellungen

24.09.2015 Modellbasierte Softwareentwicklung mit MATLAB für

Embedded Controller SMT32F4-Discovery 49

Page 50: Modellbasierte Softwareentwicklung mit MATLAB für Embedded …€¦ · • Software in the Loop, d. h. C-Code für Regler mit Simulink Coder generieren und testen. • Processor

SIL die wichtigsten Einstellungen

24.09.2015 Modellbasierte Softwareentwicklung mit MATLAB für

Embedded Controller SMT32F4-Discovery 50

Page 51: Modellbasierte Softwareentwicklung mit MATLAB für Embedded …€¦ · • Software in the Loop, d. h. C-Code für Regler mit Simulink Coder generieren und testen. • Processor

SIL Durchführung der Codegenerierung Abtastzeit: 1ms

24.09.2015 Modellbasierte Softwareentwicklung mit MATLAB für

Embedded Controller SMT32F4-Discovery 51

Rechter Mausklick auf Subsystem

1.

2.

Page 52: Modellbasierte Softwareentwicklung mit MATLAB für Embedded …€¦ · • Software in the Loop, d. h. C-Code für Regler mit Simulink Coder generieren und testen. • Processor

SIL Erzeugung Abtastzeit: 1ms

24.09.2015 Modellbasierte Softwareentwicklung mit MATLAB für

Embedded Controller SMT32F4-Discovery 52

Page 53: Modellbasierte Softwareentwicklung mit MATLAB für Embedded …€¦ · • Software in the Loop, d. h. C-Code für Regler mit Simulink Coder generieren und testen. • Processor

SIL Erzeugung Abtastzeit: 1ms

24.09.2015 Modellbasierte Softwareentwicklung mit MATLAB für

Embedded Controller SMT32F4-Discovery 53

Page 54: Modellbasierte Softwareentwicklung mit MATLAB für Embedded …€¦ · • Software in the Loop, d. h. C-Code für Regler mit Simulink Coder generieren und testen. • Processor

SIL Vergleich MIL mit SIL

24.09.2015 Modellbasierte Softwareentwicklung mit MATLAB für

Embedded Controller SMT32F4-Discovery 54

Page 55: Modellbasierte Softwareentwicklung mit MATLAB für Embedded …€¦ · • Software in the Loop, d. h. C-Code für Regler mit Simulink Coder generieren und testen. • Processor

SIL Vergleich MIL mit SIL hier: ASA Controller

24.09.2015 Modellbasierte Softwareentwicklung mit MATLAB für

Embedded Controller SMT32F4-Discovery 55

Page 56: Modellbasierte Softwareentwicklung mit MATLAB für Embedded …€¦ · • Software in the Loop, d. h. C-Code für Regler mit Simulink Coder generieren und testen. • Processor

SIL Vergleich MIL mit SIL hier: SPFC Regler

24.09.2015 Modellbasierte Softwareentwicklung mit MATLAB für

Embedded Controller SMT32F4-Discovery 56

Page 57: Modellbasierte Softwareentwicklung mit MATLAB für Embedded …€¦ · • Software in the Loop, d. h. C-Code für Regler mit Simulink Coder generieren und testen. • Processor

SIL mit Anbindung an die Visualisierung

24.09.2015 Modellbasierte Softwareentwicklung mit MATLAB für

Embedded Controller SMT32F4-Discovery 57

Page 58: Modellbasierte Softwareentwicklung mit MATLAB für Embedded …€¦ · • Software in the Loop, d. h. C-Code für Regler mit Simulink Coder generieren und testen. • Processor

SIL mit Anbindung an die Visualisierung hier: Kompensationsregler

24.09.2015 Modellbasierte Softwareentwicklung mit MATLAB für

Embedded Controller SMT32F4-Discovery 58

Page 59: Modellbasierte Softwareentwicklung mit MATLAB für Embedded …€¦ · • Software in the Loop, d. h. C-Code für Regler mit Simulink Coder generieren und testen. • Processor

SIL mit Anbindung an die Visualisierung hier: Smith Predictor

24.09.2015 Modellbasierte Softwareentwicklung mit MATLAB für

Embedded Controller SMT32F4-Discovery 59

Page 60: Modellbasierte Softwareentwicklung mit MATLAB für Embedded …€¦ · • Software in the Loop, d. h. C-Code für Regler mit Simulink Coder generieren und testen. • Processor

SIL mit Anbindung an die Visualisierung hier: PFC Regler

24.09.2015 Modellbasierte Softwareentwicklung mit MATLAB für

Embedded Controller SMT32F4-Discovery 60

Page 61: Modellbasierte Softwareentwicklung mit MATLAB für Embedded …€¦ · • Software in the Loop, d. h. C-Code für Regler mit Simulink Coder generieren und testen. • Processor

PIL

• Signale kommen vom Top Modell

• Zu Beginn jeder Abtastperiode werden Signale vom Top Modell zu PIL

Blöcken gesendet und verarbeitet

• C Code läuft auf Hardware Target

• Non Real Time

• Hier Realisierung über ST-Link Kommunikation

• ST-Link Kommunikation langsamer als Kommunikation über serielle Schnittstelle, daher Erhöhung

der Abtastzeit auf 10ms

• Vorgehensweise SIL und PIL identisch bis auf wenige Unterschiede

• Im Folgenden wird nur noch auf die Unterschiede eingegangen

24.09.2015 Modellbasierte Softwareentwicklung mit MATLAB für

Embedded Controller SMT32F4-Discovery 61

Page 62: Modellbasierte Softwareentwicklung mit MATLAB für Embedded …€¦ · • Software in the Loop, d. h. C-Code für Regler mit Simulink Coder generieren und testen. • Processor

PIL explizite Unterschiede zu SIL

24.09.2015 Modellbasierte Softwareentwicklung mit MATLAB für

Embedded Controller SMT32F4-Discovery 62

Page 63: Modellbasierte Softwareentwicklung mit MATLAB für Embedded …€¦ · • Software in the Loop, d. h. C-Code für Regler mit Simulink Coder generieren und testen. • Processor

PIL explizite Unterschiede zu SIL

24.09.2015 Modellbasierte Softwareentwicklung mit MATLAB für

Embedded Controller SMT32F4-Discovery 63

Deaktivieren

Page 64: Modellbasierte Softwareentwicklung mit MATLAB für Embedded …€¦ · • Software in the Loop, d. h. C-Code für Regler mit Simulink Coder generieren und testen. • Processor

PIL explizite Unterschiede zu SIL

24.09.2015 Modellbasierte Softwareentwicklung mit MATLAB für

Embedded Controller SMT32F4-Discovery 64

Page 65: Modellbasierte Softwareentwicklung mit MATLAB für Embedded …€¦ · • Software in the Loop, d. h. C-Code für Regler mit Simulink Coder generieren und testen. • Processor

PIL explizite Unterschiede zu SIL

24.09.2015 Modellbasierte Softwareentwicklung mit MATLAB für

Embedded Controller SMT32F4-Discovery 65

Page 66: Modellbasierte Softwareentwicklung mit MATLAB für Embedded …€¦ · • Software in the Loop, d. h. C-Code für Regler mit Simulink Coder generieren und testen. • Processor

PIL Durchführung der Codegenerierung hier: explizite Unterschiede

• Rechter Mausklick auf das Subsystem aus dem PIL Code erzeugt werden soll

• C/C++ Code

• Deploy this Subsystem to Hardware

• Build

• alten Block löschen neuen generierten PIL Block einsetzen

24.09.2015 Modellbasierte Softwareentwicklung mit MATLAB für

Embedded Controller SMT32F4-Discovery 66

Page 67: Modellbasierte Softwareentwicklung mit MATLAB für Embedded …€¦ · • Software in the Loop, d. h. C-Code für Regler mit Simulink Coder generieren und testen. • Processor

PIL Vergleich MIL mit PIL hier: Kompensationsregler

24.09.2015 Modellbasierte Softwareentwicklung mit MATLAB für

Embedded Controller SMT32F4-Discovery 67

Page 68: Modellbasierte Softwareentwicklung mit MATLAB für Embedded …€¦ · • Software in the Loop, d. h. C-Code für Regler mit Simulink Coder generieren und testen. • Processor

PIL Vergleich MIL mit PIL hier: ASA Controller

24.09.2015 Modellbasierte Softwareentwicklung mit MATLAB für

Embedded Controller SMT32F4-Discovery 68

Page 69: Modellbasierte Softwareentwicklung mit MATLAB für Embedded …€¦ · • Software in the Loop, d. h. C-Code für Regler mit Simulink Coder generieren und testen. • Processor

PIL mit Anbindung an die Visualisierung hier: ASA Controller

24.09.2015 Modellbasierte Softwareentwicklung mit MATLAB für

Embedded Controller SMT32F4-Discovery 69

Page 70: Modellbasierte Softwareentwicklung mit MATLAB für Embedded …€¦ · • Software in the Loop, d. h. C-Code für Regler mit Simulink Coder generieren und testen. • Processor

Test

• Frühzeitiges Testen wichtig

• Teststufen

– Test der Reglerentwürfe im Bildbereich

– Test der Reglerentwürfe nach der Digitalisierung

– SIL und PIL

– Test der Reglerentwürfe am Modell

24.09.2015 Modellbasierte Softwareentwicklung mit MATLAB für

Embedded Controller SMT32F4-Discovery 70

Page 71: Modellbasierte Softwareentwicklung mit MATLAB für Embedded …€¦ · • Software in the Loop, d. h. C-Code für Regler mit Simulink Coder generieren und testen. • Processor

Test am Modell

Testszenario:

• Anfahren von 20° auf 120°

• Anfahren von 120° auf 20°

• Anfahren von 120° auf 130°

• Anfahren von 130° auf 120°

• Genauigkeit der Positionierung: 2°

• Geschwindigkeit der Positionierung: ca. 10 s für 350°.

24.09.2015

Modellbasierte Softwareentwicklung mit MATLAB für Embedded Controller SMT32F4-Discovery

71

Page 72: Modellbasierte Softwareentwicklung mit MATLAB für Embedded …€¦ · • Software in the Loop, d. h. C-Code für Regler mit Simulink Coder generieren und testen. • Processor

Test am Modell

24.09.2015 Modellbasierte Softwareentwicklung mit MATLAB für

Embedded Controller SMT32F4-Discovery 72

Testreihe Zeit Position Auslastung

Ko

mp

.

20° → 120° 1,35 120 2,7%

120° → 20° 1,55 20 Sm

ith

20° → 120° 1,55 120 5,4%

120° → 20° 1,65 20

ASA

20° → 120° 1,50 120 3,2%

120° → 20° 1,8 20

PFC

20° → 120° ca. 2,85 119,26 13,9%

120° → 20° ca.3,2 20,91

SPFC

20° → 120° 3,3 120 8,6%

120° → 20° ca. 3,75 20,91

Page 73: Modellbasierte Softwareentwicklung mit MATLAB für Embedded …€¦ · • Software in the Loop, d. h. C-Code für Regler mit Simulink Coder generieren und testen. • Processor

Ausblick

• Störgrößenbetrachtung für die einzelnen Regler

• Verwendung des Simulink HDL Coders zur Generierung von VHDL Code

und dem Einsatz eines FPGA oderASIC

• Verwendung des Simulink PLC Coders zur Generierung von strukturiertem Text

nach Norm IEC 61131 und dem Einsatz einer SPS

24.09.2015 Modellbasierte Softwareentwicklung mit MATLAB für

Embedded Controller SMT32F4-Discovery 73

Page 74: Modellbasierte Softwareentwicklung mit MATLAB für Embedded …€¦ · • Software in the Loop, d. h. C-Code für Regler mit Simulink Coder generieren und testen. • Processor

24.09.2015 Modellbasierte Softwareentwicklung mit MATLAB für

Embedded Controller SMT32F4-Discovery 74

ENDE

Page 75: Modellbasierte Softwareentwicklung mit MATLAB für Embedded …€¦ · • Software in the Loop, d. h. C-Code für Regler mit Simulink Coder generieren und testen. • Processor

Risikoanalyse AT5 Risikoanalyse

Wahrscheinlichkeit und Schweregradtabelle

Projektbezeichnung: Release Datum Revision

Modellbasierte Softwareentwicklung mit MATLAB für Embedded Controller SMT32F4-Discovery

28.04.2015 0

wahrscheinlich relativ wahrscheinlich sehr wahrscheinlich

Wahrscheinlichkeit (X) 1 2 3 4 5 6 7 8 9 10

weniger ernst relativ ernst sehr gravierend

Schweregrad (O) 1 2 3 4 5 6 7 8 9 10

Nr. Bezeichung

1. technische Risiken X O

Schäden oder Mängel in der Umsetzung

2. personelle Risiken O X

Jobbedingter ausfall eines Kollegen.

3. finanzielle Risiken X/O

keine Risiken

4. klimatische Risiken X/O

keine Risiken

5. Zeitplan Risiken X O

6. vertragliche Risiken X/O

keine Risiken

7. rechtliche Risiken X/O

keine Risiken

7a. werksvertragliche X/O

keine Risiken

7b. kaufvertragliche X/O

keine Risiken

7c. baurechtliche X/O

keine Risiken

7d. gewerbliche X/O

keine Risiken

7e. sicherheitsrechtliche X/O

Einhaltung von Normen.

7f. emmisionsrechtliche X/O

keine Risiken

7g. arbeitsrechtliche X/O

keine Risiken

24.09.2015 Modellbasierte Softwareentwicklung mit MATLAB für

Embedded Controller SMT32F4-Discovery 75

Page 76: Modellbasierte Softwareentwicklung mit MATLAB für Embedded …€¦ · • Software in the Loop, d. h. C-Code für Regler mit Simulink Coder generieren und testen. • Processor

Systemmodell Ebene 1

24.09.2015 Modellbasierte Softwareentwicklung mit MATLAB für

Embedded Controller SMT32F4-Discovery 76

Page 77: Modellbasierte Softwareentwicklung mit MATLAB für Embedded …€¦ · • Software in the Loop, d. h. C-Code für Regler mit Simulink Coder generieren und testen. • Processor

Systemmodell Ebene 2 Antenne

24.09.2015 Modellbasierte Softwareentwicklung mit MATLAB für

Embedded Controller SMT32F4-Discovery 77

Page 78: Modellbasierte Softwareentwicklung mit MATLAB für Embedded …€¦ · • Software in the Loop, d. h. C-Code für Regler mit Simulink Coder generieren und testen. • Processor

Systemmodell Ebene 2 Regler

24.09.2015 Modellbasierte Softwareentwicklung mit MATLAB für

Embedded Controller SMT32F4-Discovery 78

Page 79: Modellbasierte Softwareentwicklung mit MATLAB für Embedded …€¦ · • Software in the Loop, d. h. C-Code für Regler mit Simulink Coder generieren und testen. • Processor

Systemanalyse a-priori Diagramm

24.09.2015 Modellbasierte Softwareentwicklung mit MATLAB für

Embedded Controller SMT32F4-Discovery 79

Page 80: Modellbasierte Softwareentwicklung mit MATLAB für Embedded …€¦ · • Software in the Loop, d. h. C-Code für Regler mit Simulink Coder generieren und testen. • Processor

Backup

24.09.2015 Modellbasierte Softwareentwicklung mit MATLAB für

Embedded Controller SMT32F4-Discovery 80

Page 81: Modellbasierte Softwareentwicklung mit MATLAB für Embedded …€¦ · • Software in the Loop, d. h. C-Code für Regler mit Simulink Coder generieren und testen. • Processor

Visualisierung Datenverarbeitung

24.09.2015 Modellbasierte Softwareentwicklung mit MATLAB für

Embedded Controller SMT32F4-Discovery 81