27.03.2015 Beispiel: Roboterarm Dipl. Inf. Andreas Fürtig

Preview:

Citation preview

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:

Recommended