Bascom Single vs. Integer

Gast #2553367
Guten Morgen zusammen!

Ich programmiere in Bascom und möchte einen PID-Regler realisieren.
Das ganze soll in möglichst kurzer Zeit ablaufen und da ist mir der 
Gedanke gekommen, bevor ich groß in Single und Double rechne kann ich 
die Zeit ja auch als Kehrwert 1/0,002s in die Berechnung nehmen und 
komplett in Integer rechnen.

Jetzt ist die Frage wie hoch ist der Zeitgewinn und ob ich überhaupt 
Zeit damit spare.

PID-Regler läuft nach dieser Formel
1
Abweichung = Soll - Ist;
2
 Summe_Abweichungen = Summe_Abweichungen + Abweichung;
3
 Differenz_zur_letzten_Abweichung = Abweichung - Abweichung_alt;
4
 
5
 Gegensteuern = Verstärkungsfaktor_Prop * Abweichung 
6
 + Verstärkungsfaktor_Inte * Zeit * Summe_Abweichungen
7
 + (Verstärkungsfaktor_Diff * Differenz_zur_letzten_Abweichung) / Zeit;
8
 
9
 Abweichung_alt = Abweichung;
Grüße
Marco
Gast #2554329
Marco P. schrieb:
> Weißt du vielleicht auch wieviele Prozessortakte für Single berechnungen
> und wieviele für integer benötigt werden?
1
$regfile = "m32def.dat"
2
Dim Abweichung As Integer
3
Dim Soll As Integer , Ist As Integer
4
Dim Summe_abweichungen As Integer
5
Dim Differenz_zur_letzten_abweichung As Integer
6
Dim Abweichung_alt As Integer
7
Dim Gegensteuern As Integer
8
Dim Gegensteuern_temp As Integer
9
Dim Verstaerkungsfaktor_prop As Integer
10
Dim Verstaerkungsfaktor_inte As Integer
11
Dim Zeit As Integer
12
Dim Verstaerkungsfaktor_diff As Integer
13

14
nop
15
Abweichung = Soll - Ist
16
Summe_abweichungen = Summe_abweichungen + Abweichung
17
Differenz_zur_letzten_abweichung = Abweichung - Abweichung_alt
18

19
Gegensteuern = Verstaerkungsfaktor_prop * Abweichung
20

21
Gegensteuern_temp = Verstaerkungsfaktor_inte * Zeit
22
Gegensteuern_temp = Gegensteuern_temp * Summe_abweichungen
23
Gegensteuern = Gegensteuern + Gegensteuern_temp
24

25
Gegensteuern_temp = Verstaerkungsfaktor_diff * Differenz_zur_letzten_abweichung
26
Gegensteuern_temp = Gegensteuern_temp / Zeit
27
Gegensteuern = Gegensteuern + Gegensteuern_temp
28

29
Abweichung_alt = Abweichung
30

31
Nop
Codelänge: 606 Byte
Prozessortakte: 335


1
$regfile= "m32def.dat"
2
Dim Abweichung As Single
3
Dim Soll As single , Ist As single
4
Dim Summe_abweichungen As single
5
Dim Differenz_zur_letzten_abweichung As single
6
Dim Abweichung_alt As single
7
Dim Gegensteuern As single
8
Dim Gegensteuern_temp As single
9
Dim Verstaerkungsfaktor_prop As single
10
Dim Verstaerkungsfaktor_inte As single
11
Dim Zeit As single
12
Dim Verstaerkungsfaktor_diff As single
13

14
nop
15
Abweichung = Soll - Ist
16
Summe_abweichungen = Summe_abweichungen + Abweichung
17
Differenz_zur_letzten_abweichung = Abweichung - Abweichung_alt
18

19
Gegensteuern = Verstaerkungsfaktor_prop * Abweichung
20

21
Gegensteuern_temp = Verstaerkungsfaktor_inte * Zeit
22
Gegensteuern_temp = Gegensteuern_temp * Summe_abweichungen
23
Gegensteuern = Gegensteuern + Gegensteuern_temp
24

25
Gegensteuern_temp = Verstaerkungsfaktor_diff * Differenz_zur_letzten_abweichung
26
Gegensteuern_temp = Gegensteuern_temp / Zeit
27
Gegensteuern = Gegensteuern + Gegensteuern_temp
28

29
Abweichung_alt = Abweichung
30

31
Nop
Codelänge: 1110 Byte
Prozessortakte: 1153

Mit besten Grüßen
screwdriver

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.