Forum: Mikrocontroller und Digitale Elektronik uC Sprungantwort (Drehzahl) aufzeichen


von dennis (Gast)


Angehängte Dateien:

Lesenswert?

Hallo uC-Community,

ich benötige euren Rat ;-) weil ich nicht weiß wie ich den nächsten 
Schritt meines Projektes angehen soll, zu wenig Erfahrung allgemein und 
im Umgang mit uC -.- ...
also ich muss fuer eine Drehzahlregelung eine Sprungantwort aufzeichen.
Ich benutze einen AtMega644 und programmiere in C.
Mein Problem besteht darin das ich über die Serielle-Schnittstelle 
(verwende HTerm) ein Befehl auf mein uC gebe. Mit diesem Befehl steuere 
ich mein PWM-Signal, das einen BL-Motor ansteuert. Ich gebe also einen 
Sprung auf mein PWM-Signal und somit auf die Drehzahl des Motors. Jetzt 
habe ich einen Magnetsensor der die RPS aufnimmt. Nur leider stellen 
sich jetzt folgende Fragen:

1. Langt die Zeit nach dem Sprung um alle Daten aufzunehmen ?
2. Wenn ja soll ich die Daten in einem Array-Speichern und dann über die 
Serielle Schnittstelle ausgeben oder kann/sollte ich gleich die Daten 
auf die Serielle Schnittstelle geben ?
3. Wenn die Zeit nicht langt, was gibt es für eine Lösung ? zweiten uC 
Parallel verwenden ? Oszi anschließen und die Signale des Sensors 
aufzeichenen/speichern ?

Das sind jetzt nur einige Ideen, vllt habt ihr ja eine 
einfacherer,saubere Lösung parat würde mich sehr auf eine Antwort 
freuen.

Habe auch meinen C-Code angehängt.. aus dem einfachen Grund: Ich benutze 
alle Timer0-2 und meine UART-Schnittstelle.. ab und zu kommt es mir vor 
als ob der Motor ein bisschen schwingt, vllt durch die vielen ISR bzw. 
wird vllt ein Signalfluss unterbrochen???

Vielen Dank schon mal im vorraus

dennis

von tom (Gast)


Lesenswert?

die interessante dauer deiner sprungantwort hängt von der zeitkonstante 
deines gesamten bewegten systems ab (motor + last).
wie lange das ca. ist kannst du relativ einfach experimentell ermitteln.

falls du schon einen digitalen regler per sw realisiert hast und genug 
RAM übrig, lege ein array an, das ab zeitpunkt der PWM-Ausgabe im sample 
intervall des reglers mit dem jeweiligen geschwindigkeitswert befüllt 
wird.
z.B. immer die anzahl von inkrementalgeberpulsen die im letzten 
sample-intervall eingelaufen sind.
einen breakpoint auf das erreichen einer sollgeschwindigkeit setzen und 
dann das array im debugger anschauen->verwerten=liniendiagramm in 
spreadsheet.

alternativ diese werte per uart ausgeben, als zahl und mit einem komma 
getrennt z.B.
baudrate möglichst hoch einstellen und je nachdem wie hoch die auflösung 
deines gebers und wie klein die sample-rate ist gibt es dann ein limit 
für die zeichen die du per sample-intervall pünktlich gesendet bekommst.

;o), fiel fergnügen.

von Willi W. (Gast)


Lesenswert?

dennis schrieb:
> 1. Langt die Zeit nach dem Sprung um alle Daten aufzunehmen ?

Das mußt du doch wissen, wie dein System reagiert und welche 
Zeitauflösung du brauchst, damit die Sprungantwort sich aus deinen 
Abtastwerten rekonstruieren läßt. Voraussetzung ist natürlich, dass die 
Grenzfrequenz deines RPS-Sensor hoch genug ist, um den Einschwingvorgang 
richtig zu messen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.