INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Servomotor regeln



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

29.11.2010, 09:40 (Dieser Beitrag wurde zuletzt bearbeitet: 29.11.2010 16:30 von jg.)
Beitrag #1

johnnyP Offline
LVF-Neueinsteiger


Beiträge: 4
Registriert seit: Nov 2010

8.0
2010
de


Deutschland
Servomotor regeln
Hallo zusammen,

ich muss für eine Arbeit an der Uni die Regelung eines Servomotors programmieren. Ich hab aber die Ansteuerung von Geräten noch nie gemacht über Labview und wäre dankbar, wenn jemand von euch über meinen Programmentwurf schaun könnte, ob das so funktionieren könnte!

Folgende Problemstellung:
Ich erfasse über eine Lichtschranke (Diode) die Geschwindigkeit meines Motors. Diese gibts mir ein digitales Signal zurück (High wenn belichtet). Ich würde dann gerne kontinuierlich die Pulsdauer von den Highs erfassen und daraus dann mittels eines PID - Reglers den neuen Stellwert für den Motor errechnen. Der Motor soll dann über PWM angesteuert werden.

Als Messkarte steht mir eine NI PCI 6025 E zur Verfügung.

Wie gesagt, ich hab in der Hinsicht in Labview noch keine Erfahrung und die Hardware steht mir noch nicht zur Verfügung um sie zu testen. Ich würde gerne mein Programm schon im Groben fertig haben, damit die Anpassung für das Programm nachher nicht mehr so lang dauert wenn die Hardware dann da ist.
Lv80_img
Sonstige .vi  Steuerung_Motor.vi (Größe: 46,12 KB / Downloads: 348)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
25.01.2011, 16:31
Beitrag #2

RHeil Offline
LVF-Grünschnabel
*


Beiträge: 26
Registriert seit: Nov 2010

2011 SP1
2001
EN

81737
Deutschland
Servomotor regeln
Auf den ersten Blick würde ich sagen, das könnte so klappen.

Aber natürlich habe ich ein paar Ideen zur Verbesserung:
Wieso misst Du die Pulsweite? Wäre es nicht besser die Frequenz oder die Periodendauer zu messen? Ich vermute, dass damit bessere Ergebnisse herauskämen, insbes. falls der Motor unruhig läuft. Wenn Du nur die High-Zeiten betrachtest, berücksichtigst Du ja nur die Hälfte des Signals.

Ich würde hier keine zwei parallelen Schleifen verwenden, sondern eine. In dieser wird dann pro Durchlauf ein kompletter Regelzyklus durchgeführt (also Input - Berechnung - Output). Dann kannst Du Dir die lokalen Variablen sparen, was deutlich saubereren LV-Code ergibt.

Falls Du unbedingt die zwei Schleifen beibehalten willst, dann pack wenigstens ein Timing in die Schreib-Schleife. In der aktuellen Form lastet die einen CPU-Kern zu 100% aus. Ich glaube nicht dass Du das möchtest.

Was ich noch garnicht verstehe ist, was Du mit den ineinander verschachtelten Schleifen erreichen willst.
In der aktuellen Fassung gibt es hier zwei "Modi":
Motor = TRUE: Die Tasks werden initialisiert und es wird dauerhaft immer wieder gelesen und geschrieben.
Motor = FALSE: Die Tasks werden initialisiert, es wird je einmal gelesen und geschrieben, dann werden die Tasks sofort wieder gelöscht, um anschließend sofort wieder initialisiert zu werden.
Vermutlich ist auch das nicht ganz das gewünschte Verhalten.
Evtl. fehlt Dir nur noch eine Case-Struktur, die auf "Motor" reagiert zu Deinem Glück?
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Strom regeln Zadomo 20 12.435 18.03.2019 16:44
Letzter Beitrag: GerdW
  Servomotor steuern mit Ni my DaQ Hydrogencarbonat 11 11.008 20.05.2014 17:29
Letzter Beitrag: jg
  AO-Sollwerte im Takt ausgeben und zwischendurch Regeln m.l.e 11 9.145 25.04.2009 16:18
Letzter Beitrag: m.l.e

Gehe zu: