baelzkm - Hochschule Bremerhaven

Werbung
Bälz-Seminar / Embedded Systems
Hochschule Bremerhaven
Bälz-Seminar 2004
Embedded Systems in der Gebäudetechnik
S Lüfter- / Pumpenregelung mit Mikrocontroller
I
Einleitung
I.I
Embedded Systems
I
Hochschule Bremerhaven --- IAE
Man versteht unter einem “Embedded System” ein spezielles Rechnersystem, das Teil
eines Gerätes oder einer Maschine ist. Diese Einheit aus Rechner und Gerät hat eine
Generation von Anlagen hervorgebracht, die in Bezug auf Sicherheit, Qualität und
Energieeffizienz neue Maßstäbe setzt.
Unter den Begriff “Embedded System” fallen beispielsweise mikrorechnergeregelte
Waschmaschinen, ABS-/ESP-Regelungen in der Fahrzeugtechnik, medizintechnische
Geräte (EKG, EEG, MRT), DVD-Spieler, PDAs, Mobiltelefone, Ampelanlagen und viele
militärische Anwendungen.
In der Gebäudetechnik sind “Embedded Systems” Elemente zur Gebäudeautomation,
Heizungs-, Klimaanlagen sowie neuartige Komponenten wie moderne, geregelte Lüfter
und Pumpen.
I.II Pumpen-/Lüftersteuerung mit Mikrocontroller
Revision:
V0.0a (neues Dokument)
Datum:
September 2004
Prof. Dr.-Ing. Kai Müller
Hochschule Bremerhaven
Institut für Automatisierungs- und Elektrotechnik
An der Karlstadt 8
D---27568 Bremerhaven
Tel:
FAX:
+49 471 48 23 --- 415
+49 471 48 23 --- 418
E---Mail:
[email protected]
Die Anschaffungskosten für Pumpen oder Lüfter in der Gebäudetechnik sind häufig im
Vergleich zu den Betriebs- und Wartungskosten unbedeutend. Es liegt somit nahe,
moderne, wartungsfreie Drehstromantriebe oder evtl. EC-Motoren (electronically
commutated motors) für diese Aufgabe einzusetzen. Im Fall von Drehstromantrieben wird
ohnehin ein Mikrorechner eingesetzt, der gleichzeitig Steuerungs- und Regelaufgaben
übernehmen kann. Es lässt sich nun auch der Energiebedarf minimieren, indem der
Antrieb nur jeweils mit der gerade benötigten Leistung betrieben wird.
Weiterhin können Rechner Kommunikationsaufgaben zwischen Anlagenteilen übernehmen; Gebäudekomponenten lassen sich auf diese Weise einfach vernetzen (CAN-Bus, EIB
oder vermehrt Ethernet).
Eine sehr preisgünstige Rechnerlösung sind Mikrocontroller. Ein Mikrocontroller
(MCU = microcontroller unit) ist ein vollständiges Rechnersystem auf einem Chip, das die
gesamte Peripherie zur Ansteuerung eines Gerätes sowie Schnittstellen zur Kommunikation enthält. Der hier eingesetzte Mikrorechner kostet ca. 6 € (Einzelstück).
Im Rahmen der Veranstaltung soll als Beispiel für ein typisches “Embedded System” eine
Lüfterregelung mit einem modernen RISC-Mikrocontroller verwirklicht werden.
Bälz-Seminar / Embedded Systems
II
Hochschule Bremerhaven --- IAE
Ich wünsche allen Teilnehmern dieser Veranstaltung viel Freude an dem faszinierenden
Fachgebiet “Embedded Systems”.
Bälz-Seminar / Embedded Systems
Kai Müller
<kmueller@hs ---bremerhaven.de>
Tel: (0471) 4823 --- 415
Hochschule Bremerhaven --- IAE
II Inhalt
1
Bremerhaven, September 2004
III
Mikroprozessoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
1.1
Historische Entwicklung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
2
CISC und RISC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2
3
Mikrocontroller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
4
Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
4.1
Lüftermodell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
4.2
Interface zwischen Mikrocontroller und Lüfter . . . . . . . . . . . . . . . . . . . .
7
Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9
5.1
Softwareentwicklung (GNU WinAVR) . . . . . . . . . . . . . . . . . . . . . . . . . . .
9
Programmierung eines PI-Reglers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9
6.1
Kontinuierlicher PI-Regler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9
6.2
Diskreter PI-Regler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
6.3
Praktische Verwirklichung des diskreten PI-Reglers in “C” . . . . . . . . . .
11
6.4
Aufgaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12
Literatur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
5
6
7
Bälz-Seminar / Embedded Systems
1
1
Hochschule Bremerhaven --- IAE
2
Bälz-Seminar / Embedded Systems
Mikroprozessoren
Hauptspeicher
Mikroprozessoren sind sequenzielle (getaktete) Systeme, deren Funktion durch ein
Programm (Software) bestimmt wird. Der große Vorteil besteht darin, dass der
Mikroprozessor als Standardbauelement günstig in großen Stückzahlen herstellbar ist. Der
Entwickler kann durch Programmierung dann nahezu beliebige Funktionen realisieren.
Dies ist oft günstiger, als für eine bestimme Anwendung spezielle ICs zu entwickeln [6], [8].
Befehlsregister
Befehlszähler
Die Komplexität der logischen Funktion eines Mikroprozessorsystems ist nur noch durch
den verfügbaren Speicher bzw. den Adressraum begrenzt. Die Programmierung von
Mikroprozessoren ist durch die Verwendung von Hochsprachen (C, C++, Java, Ada) sehr
komfortabel und effizient geworden.
Steuerwerk
Akkumulator
Eine schnellere und teilweise kostengünstigere Alternative zu Mikroprozessoren sind
programmierbare Digitalbausteine (CPLDs, FPGAs), die keine Programmsequenz
abarbeiten, sondern deren Funktion fest programmierbar ist [10]. Auch hierfür existieren
inzwischen Hochsprachen (VHDL, Verilog), jedoch ist die Programmierung deutlich
aufwendiger als bei Mikroprozessoren.
Durch die Möglichkeiten der heutigen Digitaltechnik kann zwischen beiden Ansätzen
jedoch nicht mehr einfach getrennt werden, da moderne FPGAs eine Größe besitzen (ca.
8 Millionen Gatterfunktionen) die eine Integration eines kompletten Mikroprozessors in
ein FPGA gestatten.
1.1
Historische Entwicklung
Die grundlegenden Ideen zum Bau eines universellen Computers stammen von Charles
Babbage, dessen Konzept aus dem Jahre 1833 auch heute noch Gültigkeit hat. man kann
zeigen, mit sich mit einem sogenannten Universalrechner beliebige Probleme lösen lassen.
Hochschule Bremerhaven --- IAE
Operanden---Reg.
Transfer---Reg.
Rechenwerk
Bild 3.1:
Universalrechner (ohne Ein-/Ausgabeeinheiten)
Der Hauptspeicher enthält das Programm und die Operanden. In dem Steuerwerk wird ein
Befehl aus dem Hauptspeicher in das Befehlsregister geladen und dort interpretiert. Der
Befehlszähler wird inkrementiert, so dass der folgende Befehl aus dem Hauptspeicher
geladen werden kann. Bei Sprüngen im Programm wird der Befehlszeiger auf den nächsten
zu bearbeitenden Befehl gesetzt.
Das Rechenwerk führt die arithmetischen und logischen Funktionen mit Daten aus, die
ebenfalls aus dem Hauptspeicher geladen und auch dort wieder abgelegt werden.
Gewöhnlich enthält das Rechenwerk mehrere Operanden-Register, die einen schnellen
Zugriff auf die zu verarbeitenden Daten gestatten. Das Ergebnis einer Verknüpfung steht
gewöhnlich im sogenannten Akkumulator.
Der erste elektronische Rechner nach diesem Prinzip, Univac1 (1950), wurde vollständig
in Röhrentechnik aufgebaut. Moderne Prozessoren bestehen aus Silizium und Metall
(Aluminium oder Kupfer) und sind in der sogenannten CMOS-Technologie aufgebaut
(Complementary Metal Oxyde Semiconductor). Oft weicht die Struktur auch von der
klassischen Form in Bild 3.1 ab.
2
CISC und RISC
Die Leistungsfähigkeit eines Prozessors lässt sich einfach über den Kehrwert der Laufzeit
für ein Programm definieren
Bälz-Seminar / Embedded Systems
3
Hochschule Bremerhaven --- IAE
Laufzeit = Zeit × Takte × Instruktionen .
Programm
Takt Instruktion
(3.1)
Die gesamte Laufzeit ist also das Produkt aus der Zeit für einen Takt (die Periodendauer
des Taktsignals) der Zahl der Takte pro Instruktion mal der Anzahl der Instruktionen für
eine bestimme Aufgabe, d.h. für ein Programm. Um also einen leistungsfähigen Prozessor
zu entwerfen, müssen im Prinzip alle drei Faktoren minimiert werden. Es hat sich jedoch
gezeigt, dass dies nicht unabhängig voneinander erfolgen kann.
In frühen Architekturen wurde die Laufzeit durch eine möglichst geringe Anzahl
notwendiger Operationen zu verringern, d.h. man minimiert den letzten Teil der Gleichung
Laufzeit = Zeit × Takte × Instruktionen .
Programm
Takt Instruktion
(3.2)
Eine auf Minimierung der Zahl der Instruktionen optimierte Architektur bezeichnet man
als CISC (Complex Instruction Set Computer). Möchte man mit einer geringen Anzahl
von Instruktionen auskommen, so müssen diese Befehle zwangläufig sehr komplex
ausfallen und benötigen folglich auch viele Takte pro Instruktion.
Laufzeit = Zeit × Takte × Instruktionen .
Programm
Takt Instruktion
Bälz-Seminar / Embedded Systems
(3.3)
4
Hochschule Bremerhaven --- IAE
Ein Mikrocontroller MCU (MicroController Unit) ist ein Computer auf einem Chip,
d.h. der Chip enthält neben der CPU auch Programm- (Flash) und Datenspeicher
(RAM, EEPROM).
Daneben kann der Mikrocontroller auch weitere Peripherie enthalten wie beispielsweise
S
Digitale Ein- und Ausgänge (Ports),
S
ADC/DAC (analoge Ein- und Ausgänge),
S
Serielle Schnittstellen (z.B. USB, USART, CAN),
S
Timer,
S
Zähler,
S
PWM (Pulsweitenmodulation).
Atmel AVR ATmega16 (RISC 8-Bit Mikrocontroller)
In dieser Veranstaltung wird exemplarisch der ATmega16 von Atmel [2], [3] verwendet.
Der RISC-Befehlssatz erlaubt die einfache und effiziente Implementierung von
C-Compilern, so dass auf eine Assemblerprogrammierung in den meisten Fällen verzichtet
werden kann. Der ATmega16 weist folgende Merkmale auf:
S
131 Instruktionen (werden fast vollständig in einem Taktzyklus abgearbeitet)
S
32 universelle Register (8 Bit)
Bei RISC-Architekturen (Reduced Instruction Set Computer) verwendet man ganz
einfache Instruktionen, die sich in einem Takt ausführen lassen. Zwangsläufig steigt damit
aber auch die Anzahl der für Programm benötigte Anzahl an Instruktionen. Die
RISC-Architektur ist CISC-Rechnern deutlich überlegen, da eine genaue Analyse von
Programmen zeigt, dass wenige einfache Befehle sehr häufig auftreten. RISC-Rechner
setzen sich in den Bereichen durch, in denen hohe Rechenleistung oder geringer
Leistungsbedarf (z.B. Batteriebetrieb) maßgeblich sind.
S
On-Chip Multiplizierer (2 Takte)
S
16KByte Flash-Speicher (> 10.000 Schreib-Lese-Zyklen)
S
512 Bytes EEPROM (> 100.000 Schreib-Lese-Zyklen)
S
1KByte internes RAM
S
3 Timer/Counter
S
4 PWM-Kanäle
Ein wesentlich Grund in der langen Lebensdauer der veralteten CISC-Rechner ist die
starke Marktposition von Intel in Zusammenhang mit dem Betriebssystem Windows, das
bis Windows/NT wenig für RISC-Rechner geeignet ist.
S
10 Bit Analog-Digital-Umsetzer (ADC), 8 Kanäle
S
USART (universal synchronous/asynchronous receiver transmitter = serielle Schnittstelle)
S
Watchdog
S
Analog-Komparator
S
32 digitale I/O (programmierbar)
S
16MHz Taktfrequenz
S
Serial in-circuit Programing Interface (SPI --- Serial Peripheral Interface). Der
Mikrocontroller kann neu programmiert werden, nachdem er bereits in die Schaltung
eingebaut wurde.
3
Mikrocontroller
Es existieren viele Definitionen für Mikrocontroller, die sich alle an der Zahl und Art der
auf einen Chip integrierten Funktionen orientieren. Wir wollen uns im Rahmen dieser
Veranstaltung auf folgende Definition einigen:
Bälz-Seminar / Embedded Systems
Bild 1.1:
5
Hochschule Bremerhaven --- IAE
Bälz-Seminar / Embedded Systems
6
Hochschule Bremerhaven --- IAE
Pinout der PDIP-Version
Man erkennt an der Anschlussbelegung des Mikrocontrollers, dass nicht alle Funktionen
gleichzeitig genutzt werden können, da alle Ein-/Ausgänge doppelt belegt sind. Bei der
Entwicklung einer Steuerung/Regelung mit dem Mikrocontroller ist also darauf zu achten,
ob alle benötigten Funktionen auch wirklich konfliktfrei zur Verfügung stehen.
Bild 1.2:
Blockschaltbild des Mikrocontrollers ATmega16
Bälz-Seminar / Embedded Systems
7
Hochschule Bremerhaven --- IAE
Bälz-Seminar / Embedded Systems
8
Hochschule Bremerhaven --- IAE
Das Blockschaltbild 1.2 des Mikrocontrollers zeigt den Mikroprozessorkern und die
gesamten Peripheriekomponenten, die sich über spezielle Register konfigurieren lassen.
4
Hardware
4.1
Lüftermodell
Als Labormodell für eine Lüfteranlage dient ein PC-Ventilator (EC-Motor), der durch
einen Impulsausgang eine genaue (digitale) Bestimmung der Drehzahl gestattet. Der
Lüfter arbeitet in einem Spannungsbereich von ca. 3,5V-12V und benötigt lediglich kleine
Ströme im Bereich von wenigen Milliampere.
4.2
Interface zwischen Mikrocontroller und Lüfter
Der Lüfter kann nicht direkt mit dem Mikrocontroller verbunden werden, da die
Spannungspegel von Rechner und Lüfter nicht übereinstimmen. Weiterhin benötigt der
Lüfter eine Gleichspannung, die der Mikrocontroller nicht erzeugen kann. Die Struktur
des Aufbaus zeigt das Blockschaltbild 1.3.
Tiefpass
Lüfter
PWM
D
A
CTR
Drehzahl-Pulse
Sollwert
Bild 1.3:
Aufbau des Lüftermodells mit Mikrocontroller
Der Sollwert wird über ein Potentiometer vorgegeben. Die Messung der Spannung erfolgt
über den internen AD-Umsetzer des Mikrocontrollers.
Da der Mikrocontroller nicht über einen DA-Umsetzer verfügt, wird eine kontinuierliche
Spannung durch eine digitale Pulsweitenmodulation (14,4kHz) mit nachgeschaltetem
Tiefpassfilter erzeugt. Die gesamte Interfaceschaltung zeigt Bild 1.4.
Bild 1.4:
Interfaceschaltung Mikrocontroller ↔ Lüftermotor
Bälz-Seminar / Embedded Systems
9
Hochschule Bremerhaven --- IAE
5
Software
5.1
Softwareentwicklung (GNU WinAVR)
10
Bälz-Seminar / Embedded Systems
Hochschule Bremerhaven --- IAE
Die Parameter des PI-Reglers sind die Proportionalverstärkung
Integralverstärkung ki .
Da die AVR-Mikrocontroller-Familie über eine moderne RISC-Architektur verfügt, die
sich für den effizienten Einsatz von Hochsprachen eignet, kann die gesamte
Programmierung in “C” erfolgen. Als Entwicklungsumgebung wird der GNU-C-Compiler
gcc und die Entwicklungsumgebung PN (Programmers Notepad) eingesetzt [5]. Mit
diesem Werkzeug kann das Programm editiert, übersetzt und in den Mikrocontroller
geladen werden.
6.2
kp
sowie die
Diskreter PI-Regler
Aufgrund der zeitdiskreten Arbeitsweise eine Mikrocontrollers muss die diskrete Version
zur Anwendung kommen [1], [7]
k−1
u(k) = k p e(k) + k i
 e(i) ,
k = 0, 1, 2, 
(1.2)
i=0
6
Die diskrete Integralverstärkung unterscheidet sich von dem kontinuierlichen Parameter,
was an dieser Stelle jedoch nicht weiter interessieren soll. Zur Berechnung eignet sich ein
rekursiver Algorithmus, bei dem der zweite Term in folgender Form bestimmt wird
Programmierung eines PI-Reglers
Die Entwicklung eines vollständigen Programms für den Mikrocontroller übersteigt etwas
die zur Verfügung stehende Zeit. Es soll deshalb im Rahmen des Kurses ein Kernelement
der Regelung, der PI-Regler, in einem eigenen Modul programmiert werden.
Regelungstechnisch ist der PI-Regler häufig eine guter Kompromiss zwischen
Geschwindigkeit und Genauigkeit. Das Blockschaltbild 1.5 zeigt die Signale und Prozesse
des geschlossenen Kreises.
PI-Regler
e
Sollwert w
k−2
i=0
i=0
 e(i) =  e(i) + e(k − 1) .
∆
k
 e(i) ,
Spannung u
so lautet (1.2)
u(k) = k p e(k) + k i I(k − 1) .
I(k) = I(k − 1) + e(k) .
u
aus der
t
 e(τ)dτ .
0
(1.6)
Die Gleichungen (1.5) und (1.6) beschreiben den rekursiven Regelalgorithmus für einen
diskreten PI-Regler. Als Pseudo-Code für den Algorithmus erhält man
Kontinuierlicher PI-Regler
u(t) = k p e(t) + k i
(1.5)
In einem zweiten Schritt folgt gemäß (1.3) und (1.4)
Regelungstechnisches Blockschaltbild
Bei dem bekannten kontinuierlichen PI-Regler folgt die Stellgröße
Regelabweichung e gemäß
(1.4)
i=0
Drehzahl y
6.1
(1.3)
Die Summe auf der linken Seite ergibt sich also aus der Summe im vorhergehenden Schritt
plus der Regelabweichung e(k-1). Definiert man
I(k) =
Lüfter
---
Bild 1.5:
k−1
(1.1)
u_k := k_p * e_k + I_Anteil ,
(1.7)
I_Anteil := I_Anteil + e_k .
(1.8)
Man beachte das Zuweisungssymbol “:=”, da (1.7) und (1.8) keine Gleichungen im
mathematischen Sinne darstellen.
11
Bälz-Seminar / Embedded Systems
Hochschule Bremerhaven --- IAE
12
Bälz-Seminar / Embedded Systems
Hochschule Bremerhaven --- IAE
#include <math.h>
#include "picontrol.h"
2
kontinuierlicher PI-Regler
static float
static float
1.5
1
/*
** PI controller parameter
*/
void PIsetParams(float pgain, float igain)
{
Par_Pgain = pgain;
Par_Igain = igain;
}
diskreter PI-Regler
0.5
0
Bild 1.6:
6.3
0
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
1.8
2
/*
** PI controller (floating version)
*/
float PiControl_FP(float ww, float yy)
{
Int_State = 0.0;
return(ww);
}
Sprungantworten des kontinuierlichen und des diskreten PI-Reglers
Praktische Verwirklichung des diskreten PI-Reglers
in “C”
Die Rechengeschwindigkeit des verwendeten Mikrocontrollers erlaubt eine Berechnung
des Reglers in Single-Precision Floating-Point (float), d.h. alle Parameter und Signale sind
Fließkomma-Größen.
Die Ein- und Ausgangsgrößen sind bereits normiert, d.h. Sollwert und Drehzahl sind Werte
im Bereich 0,0 ... 1,0. Das folgende Modul enthält bereits die Funktion PiControl_FP(),
die allerdings noch keinen PI-Regler enthält, sondern lediglich den Sollwert (Variable uu)
unverändert der Stellgröße (Rückgabewert) zuweist. Die Regelgröße (Variable yy) muss
in der Verwirklichung des diskreten PI-Reglers natürlich verwendet werden.
*
**
**
**
**
**
**
**
**
**
**
**
*/
Baelz-Seminar 2004, Hochschule Bremerhaven
(c) 2004, Kai Mueller IAE, HS Bremerhaven
Int_State = 0.0;
Par_Pgain, Par_Igain;
6.4
Aufgaben
S
Ergänzen Sie die Funktion PiControl_FP um den PI-Algorithmus.
S
Der Sollwert wird in der Variablen ww übergeben; der Istwert ist yy.
S
Die Parameter des Reglers stehen in den Variablen Par_Pgain (P-Verstärkung) sowie
Par_Igain (I-Verstärkung)
S
Die Variable für den Integralanteil lautet Int_State.
S
Begrenzen Sie den Ausgang und den Integralanteil auf Werte von 0,0 ... 1,0.
Dies erhöht die Geschwindigkeit von Regelvorgängen deutlich.
Microcontroller based fan control
This example illustrates the design of high
performance and low-cost embedded systems
for facility management tasks.
Revision history:
KPM/21-AUG-2004: initial coding
#include <inttypes.h>
#include <avr/io.h>
#include <stdio.h>
:
:
:
Bälz-Seminar / Embedded Systems
7
13
Hochschule Bremerhaven --- IAE
Literatur
[1]
Ackermann. J.: Abtastregelung --- Band I: Analyse und Synthese.
Springer, Berlin, 1983
[2]
Atmel Corp.: Atmel AVR Brings RISC to 8-Bit World.
Atmel, 1997
[3]
Atmel Corp.: ATmega16 Complete User’s Guide
Atmel, 2004
[4]
Atmel Corp.: STK500 User Guide
Atmel, 2003
[5]
WinAVR Documentation from the GNUPL “WinAVR” project.
Eric Weddington, Colin O’Flynn, WinAVR development team, 2004
[6]
Heesel, N. und W. Reichstein: Mikrocontroller Praxis.
Vieweg, 1996
[7]
Isermann, R.: Digitale Regelsysteme --- Band I: Grundlagen, Deterministische
Regelungen.
Springer, Berlin, 1987
[8]
Limbach, S.: Kompaktkurs Mikrocontroller.
Vieweg, 2002
[9]
K. Urbanski u. R. Woitowitz: Digitaltechnik.
Springer, 2000
[10]
J. Wakerly: Digital Design: Principles and Practices.
Prentice-Hall, 1999
Herunterladen