mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Sollwert -100 % bis 100 % also -10V bis +10V


Autor: Brauche_Hilfe (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Erstmal danke fürs lesen !!!!

Hallo zusammen ich brauche wieder eure Hilfe, ich muss für meinen 
Regelkreis den Meßbereich softwaremäßig einstellen, d.h. bei -10V soll 
der Sollwert -100% sein und
bei 0 V = 0% und bei +10 V halt 100 %. Die Strecke ist schon vorgegeben 
ein kleiner Lüfter wird als Drehzahlstrecke benutzt und ich soll mit 
einem Atmega128 einen PID Regler bauen/programmieren.
Meine Frage kann man  über den ADC des Atmegas den Meßbereih so 
einstellen, dass z.B 0-511 0V bis -10V ist und von 512- 1023
0V bis +10 V ist.
Danke für eure Tips und Hilfe schonma.

Autor: Stefan M. (celmascant)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du brauchst eine geeignete Eingangbeschaltung.
Am ADC müssen bei -10V von deiner Quelle 0V anliegen.
Bei 0V müssen es 2,5V sein und bei +10V = 5V.
Dann kannst du recht einfach Programmieren wie das Messergebniss dann 
genutzt werden soll.

Gruss Stefan

Autor: Michael (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Am Sternpunkt kannst du die Spannung abgreifen 0-5V. Die 
Widerstandsverhältnisse kannst du im Verhältnis beliebig anpassen.

R3 ist der Eingang für die +/-10V Spannung.

Autor: Brauche_Hilfe (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

danke für die schnellen Antworten, die Eingangsbeschaltung habe ich 
schon mit einem Spannungsteiler realisiert, wäre echt nett wenn du mir 
vielleicht sagen könnest wie ich das Programmieren kann.

Danke

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich weiss nicht wieviel du von Regelungstechnik weisst, aber so mal eben 
ist das nicht. Es gibt zwei PID-Algorithmen, den Geschwindigkeits und 
den Stellungsalgorithmus. Der wesentliche Unterschied ist der Ort an dem 
die Integration durchgeführt wird. Beim Stellungsalgorithmus im Rechner 
beim Geschwindigkeitsalgorithmus am Stellglied. Da du wahrscheinlich die 
Drehzahl regeln möchtest, musst du den Stellungsalgorithmus verwenden.

Von Trapezregel und Überintegration verschone ich dich jetzt mal.

Du musst eine Berechnung in einer exakten Abtastzeit aufrufen.

yk=y(k-1)+kr*[(1+Tv/T)*xdk-(1-T/Tn+2*Tv/T)*xd(k-1)+Tv/T*xd(k-2)

mit

yk = Stellgröße
y(k-1) = die Stellgröße einen Abtastschritt vorher

xdk = aktueller Istwert
xd(k-1) = Istwert einen Abtatsschritt vorher
xd(k-2) = kommst du selber drauf

Regelparameter
kr = Proportionalanteil
Tv = D-Anteil
Tn = I-Anteil
T = deine Abtastzeit

Falls du das programmiert bekommst, musst du immer noch die 
Regelparameter finden. Kannst du nicht erstmal mit einer P-Regelung 
evtl. PI-Regelung anfangen? Der D-Anteil wird meiner Meinung nach eh 
überschätzt.

Autor: Brauche_Hilfe (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
HI zusammen

@Michael

Danke für deine Antwort, aber das ist nicht wirklich eine Antwort auf 
meine Frage. Stefan M. hatte ja in seinem Betrag geschrieben

>-Dann kannst du recht einfach Programmieren wie das Messergebniss dann 
>-genutzt werden soll.

@Stefan M. wenn du hier noch mal reinschaust wäre ich dir sehr dankbar 
wenn du mir ein Beispiel zeigen könnest.


Nochmal an alle die mir geantwortet haben viele Dank  !!!!!!

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie keine Antwort? Wie war denn die Frage?

Autor: Brauche_Hilfe (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Danke das du noch mal antwortest, meine Frage war ja wie kann ich den 
Sollwert softwaremäßig einstellen d.h. bei -10V soll
der Sollwert -100% sein und bei 0 V = 0% und bei +10 V halt 100 %, das 
halt per Software. Den Regelalgorithmus zu programmieren, das kommt erst 
im nächsten Schritt.
Also wenn ich einen Sollwert von -100 % haben möchte, will ich meine 
Spannungsquelle auf -10 V einstellen und diese wird von der Beschaltung 
vor dem ADC auf 0V gebracht. Wenn ich z.B 50 % Sollwert haben möchte, 
will ich 5 V vom meiner Spannungsquelle angeben und an den ADC soll halt 
2,5 V.

Ich hoffe mein Anliegen ist bei euch angekommen.

Vielen Dank

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie gesagt, du nimmst die Schaltung aus dem obigen Beitrag. Diese 
Schaltung liefert bei -10V -> 0V bis +10V -> 5V. Den Ausgang dieser 
Schaltung schliesst du an einen der ADC Eingänge des µC an. Im Programm 
kannst du nun den 10-Bit ADC verwenden.

-10V -> 0    Digital
0V   -> 511  Digital
+10V -> 1024 Digital

Autor: Brauche_Hilfe (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi danke nochmal für die Antworten

aber wie programmiere ich das,

bei -10V ->   - 100% Sollwert
bei 0V   -> bei -0%  Sollwert
bei +10V -> + 100% Sollwert

ist.

Bei

-10V -> 0    Digital ist -10V gleich 0 % Sollwert
0V   -> 511  Digital  ist 50 % Sollwert
+10V -> 1024 Digital  gleich 100 % Sollwert

und das will ich ja so nicht haben.

Autor: ... ... (docean) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was willst du genau machen? Erkläre mal ein bisschen mehr...

Willst du das deine 0V den digitalen Wert 0 ergibt? Wenn ja dann zieh 
einfach 511 ab und schon passt es...

Autor: Michael (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
In deinen ersten Post klang das aber noch anders!

Nimm dir eine signed int Variable(Variable mit Vorzeichen)
unsigned int getADC(unsigned int _channel)
{
 ....

 return adcwert;
}

void main (void)
{
...

signed int sollwert;

sollwert = getADC(0)-511;

...

}

Autor: Brauche_Hilfe (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen

Erstmal sorry das ich jetzt erst antworte, ich war etwas beschäftigt. 
Also ich dachte es war von Anfang an klar das ich wissen wollte wie ich 
das Programmieren kann.Wie dem auch sei, vielen dank für deine Antwort. 
Ich werde mich bestimmt noch mal melden.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.