26.06.22 Beispiel: Roboterarm Dipl. Inf. Andreas Fürtig
11.04.23
Beispiel: Roboterarm
Dipl. Inf. Andreas Fürtig
Beispiel: Roboterarm
● Humanoider Roboter NAO der Firma Aldebaran Robotics
● 24 Freiheitsgrade
● DC Motoren mit Positionssensoren (12 Bit Auflösung)
Abstraktion
Beschreibung eines Motors und einer Masse, die direkt an der Drehachse montiert ist.
● Keinerlei Begrenzung des Eingangsstroms (Linearität)● Kein Getriebe
Abstraktion
Beschreibung eines Motors und einer Masse, die direkt an der Drehachse montiert ist.
● Keinerlei Begrenzung des Eingangsstroms (Linearität)● Kein Getriebe
Vereinfacht: Umwandlung von elektrischer Energie in Rotationsenergie mittels einer Spule und einem Eisenkern als Drehachse.
Abstraktion
A MU = R I +L I +U
M MU = K t
Elektrischer Teil des Motors:
Drehmomente:
T Masse=T Dämpfung+T Motor
Masse MT = d +K I
Matlab
Erste Tests mit MATLAB Simscape, ein Tool zur Simulation physikalischer Systeme.
Matlab
Ebenfalls: Modellierung eines einfachen Reglers mit P, I und D- Anteil, der die Eingangsspannung des Motors bereitstellt:
Matlab
Visualisierung von zwei Motoren mit SimMechanics:
DGLDer gesamte Motor mit PID Regler kann mit 4 DGLs beschrieben werden:
Solver: ode15s (Matlab)
Verifikation
SpaceEx: State Space Explorer
● Java Tool zur Eingabe der DGLs, Zustände und Übergange zwischen den einzelnen States● Visualisierung mit weiterer Software wie Matlab
Verifikation
SpaceEx: State Space Explorer
• Reachability Tests• Berechnung von Polyedern • Kann keine Nichtlinearitäten• Schrittweitenberechnung lieferte bei unserem Beispiel schlechte Ergebnisse
Verifikation
SpaceEx: State Space ExplorerVisualisierung von zwei Zuständen (I und Position)
Verifikation
Beschreibung des Motors mit Verilog:module motor(p1,p2,sens); inout p1,p2,sens; electrical p1,p2,sens; rotational_omega t1; parameter real R_fric = 1.0e-8, R_inertia = 1E-3, k_m = 1.0e-3, r_m = 1;
branch (p1,p2) res; analog begin P_fric = R_fric * Omega(t1); Ires = (V(res) - Omega(t1) * k_m) / r_m; P_el = V(res)*Ires; I(res) <+ Ires; Tau(t1) <+ k_m* (-1.0) * Ires;
Tau(t1) <+ P_fric; Tau(t1) <+ ddt(R_inertia*Omega(t1)); omega = Omega(t1); I(sens) <+ V(sens)/1e-6; I(sens) <+ omega/1e-6; end endmodule
Verifikation
PD Regler und Simulation in GNUCAP
GNUCAP:• Freier Schaltungssimulator. • Vielzahl an Bauteilen.• Nichtlinearitäten!
Verifikation
Die Ausgabe von GNUCAP kann mit VERA weiter verwendet werden:
• Punktweise Auswertung des Zustandsraums. • Analyse der Zustände, eventuelle Reduktion möglich!• Equality Checking, Model Checking, Reachability.
Ergebnisse unseres Beispiels:• Reduktion der Zustände auf 2 Stück!• ca. 6500 Punkte
• Reachability Analyse mit AMCVIS
Verifikation
Visualisierung der VERA Ergebnisse mit AMCVIS:
Verifikation
AMCVIS einer einzelnen Trajektorie: