Forum: Offtopic Bastelmotor Gleichstrommotor Modell


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Christoph M. (mchris)


Angehängte Dateien:

Lesenswert?

Vor einigen Jahren hatte ich mal einen Lernbausatz für einen 
Elektromotor gekauft. Ich überlege, ob man dazu ein elektromechanisches 
Modell machen könnte.
Hier hat Joe G. das Modell einer Gleichstromaschine in LtSpice abgelegt, 
das eventuell als Grundlage dienen könnte.
Beitrag "Re: LTSpice – Mechatronik"

Für das Modell werden die mechanischen und elektrischen Daten benötigt.
Statorwicklung:
R=1.6Ohm, L=3.14mH
Rotorwicklung:
R=1.75Ohm, L=3.4mH

Im Moment habe ich die beiden Spulen in Reihe geschaltet, so dürfte der 
Motor ein "Reihenschlussmotor" sein:
https://de.wikipedia.org/wiki/Einphasen-Reihenschlussmotor

von Christoph M. (mchris)


Angehängte Dateien:

Lesenswert?

Hier die Geschwindigkeitsmessung im Leerlauf.
Bei 7V zieht der Motor etwas 130mA. Die sind aber stark schwankend, weil 
der Kommutator während eine Umlaufs für Unterbrechungen sorgt.
1
encoderTicks=24;
2
measuredFrequency_Hz=510;
3
rounds_per_sec=measuredFrequency_Hz/encoderTicks
4
RPM=rounds_per_sec*60
rounds_per_sec =  21.250
RPM =  1275

Über das Gewicht des Rotors lässt sich wahrscheinlich das 
Trägheitsmoment gut abschätzen. Ich überlege, ob es sinnvoll ist, den 
Rotor als Quader zu modellieren und das Trägheitsmoment der Mittelachse 
zu vernachlässigen.

: Bearbeitet durch User
von Christoph M. (mchris)


Angehängte Dateien:

Lesenswert?

So, jetzt habe ich mal das Trägheitsmoment "abgeschätzt".
Das Ergebnis ist ca. 8.95e-6 Kgm2

von Christoph M. (mchris)


Angehängte Dateien:

Lesenswert?

Hmm .. die gesammelten Werte reichen für das Modell von Joerg nicht aus.

Es fehlen mir die Reibverluste. Die könnte man vielleicht über 
Geschwindigkeitsverlauf beim Auslaufen des Motors bestimmen (Einheit?).
Was der Kreuzkoeffizient ist, ist mir aber völlig unklar.

von Christoph M. (mchris)



Lesenswert?

Der Motor ist etwas empfindlich auf den Bürstendruck am Kommutator.
Bei besserer Kontaktierung läuft er schon mit 3.4V und 560mA recht 
ordentlich.
Im Anhang das Arduino-Script zur Encoderauswertung, die Messdaten, die 
Analyse mit Octave und der Geschwindigkeitsgraph mit Beschleunigung und 
Verzögerung. Es gibt ein paar Störungspeaks die man bestimmt mit einem 
Tiefpass am Eingang etwas unterdrücken könnte.

von Giovanni (Gast)


Angehängte Dateien:

Lesenswert?

gibt es auch Messungen vom Strom? Wäre hilfreich.

Habe versucht Messungen auszuwerten.
1) nach 1 Umdrehung  = 24 samples gibt es immer einen Sprung
2) Die großen Sprünge kommen offensichtlich von Einstreuungen da tw. 25 
Impuls/Umdrehung.
3) Wir reden von Reihenschluss? Korrekt?
4) Vorschlag: Nebenschluss mit konstantem Erregerstrom
    a) Leerlaufversuch (Spannung vs. Drehzahl)
    b) Kurzschlussversuch (Strom vs. Drehzahl)

Dann wird die Sache etwas klarer.

von Christoph M. (mchris)



Lesenswert?

Giovanni schrieb:
> Habe versucht Messungen auszuwerten.
Super Analyse. Vielen Dank :-)

> gibt es auch Messungen vom Strom? Wäre hilfreich.
Ich habe mal im Stillstand mit zwei verschiedenen Spannungen gemessen.
1
Stillstand Strom und Spannung (vom Labornetzteil abgelesen):
2
2V, 920mA
3
oder 
4
3.4V 1.4A
5
6
Mittlerer Widerstand
7
>> (2/.92+3.4/1.4)/2
8
ans =  2.3012

Die Schwankungen kommen von den Bürsten des Motors und hängen ein wenig 
vom Druck auf den Kommutator ab. Der berechnete mittlere Widerstand 
2.3Ohm irritiert ein wenig, weil ich ja vor einiger Zeit den 
Rotorwiderstand und den Stator Widerstand mit dem Multimeter vermessen 
habe (1.6Ohm+ 1.75Ohm=3.35Ohm). Aber vielleicht hätte man das bei den 
niedrigen Widerständen als Vierleitermessung ausführen müssen.

Bei einer Drehzahl von 1700U/min zeigt das Labornetzteil
1
3.4V, 600mA

> 1) nach 1 Umdrehung  = 24 samples gibt es immer einen Sprung
Das ist sehr interessant. Mechanisch hat der Rotor eine leichte Unwucht, 
vielleicht ist die der Grund für den Sprung. Besonders bemerkenswert 
finde ich die Wiederholung des Signals. Ich vermute, die kommen von den 
Ungenauigkeiten des 3D-gedruckten Encoderrades.

https://www.thingiverse.com/thing:1679204

Das Encoderrad hat wie schon weiter oben beschrieben 24 Ticks.

> 2) Die großen Sprünge kommen offensichtlich von Einstreuungen da tw. 25
Die Störungen habe ich bis jetzt ignoriert. Der elektrische Aufbau 
müsste da noch etwas optimiert werden.
> Impuls/Umdrehung.
> 3) Wir reden von Reihenschluss? Korrekt?
Ja, Rotorwicklung und Statorwicklung sind in Reihe geschaltet.

Ich habe noch mal eine weitere Messung angehängt, aus der ich die 1700 
RPM und die 3.4V/600mA gemessen habe. Man sieht die starken Schwankungen 
der Drehzahl, die davon herrühren, dass ich die Bürsten manuell noch 
etwas auf den Kommutator gedrückt habe.

: Bearbeitet durch User
von Christoph M. (mchris)


Angehängte Dateien:

Lesenswert?

Es ist gar nicht so einfach, das Eincoderrad zu photographieren. Man 
sieht aber schon die Ungleichheiten der Ticks ein wenig.

von Christoph M. (mchris)



Lesenswert?

Man kann die Encodersignale optisch verbessern, wenn man Zeiten kleiner 
1000us als Ausreißer herausnimmt. Mit einem gleitenden Mittelwert über 
24 Encoderticks wird das Ganze dann einigermaßen glatt.

von Giovanni (Gast)


Angehängte Dateien:

Lesenswert?

alles klar.

Das Encoderrad mit 24 ticks bringt keinen Gewinn, da unregelmäßig. Man 
könnte jetzt mit etwas Aufwand und einer Tabelle die Fehler korrigieren, 
gewinnt aber keine Genauigkeit.
Ich habe nur jeden 24. Wert verwendet. Sollte hier reichen.

Die Spitzen kommen von einem FALSCHEN Interrupt. Siehe Zeile 337.
1
335: 2248
2
336: 2228
3
337: 912   ==> FEHLER - Zeile Löschen
4
338: 1324  ==> korrekt ist 1324+912
5
339: 2216

Ein Versuch einer Identifikation mit eine Eingangssprung von 3.4 ergibt:
1
   375.2572592976723
2
-----------------------
3
1.0s + 0.63822946917954
4
5
Continuous-time transfer function model

Wie gesagt. Der dynamische Strom wäre interessant. Die Fehler in der 
Drehzahlmessung kann man korrigieren, besser wäre es das EMV Problem im 
Aufbau zu beseitigen (Schirmung, Massenbindung, Filter, ...)

von Christoph M. (mchris)


Angehängte Dateien:

Lesenswert?

>Die Spitzen kommen von einem FALSCHEN Interrupt. Siehe Zeile 337.
Ja, habe ich mir auch so gedacht. Man müsste einen Schmittrigger mit 
leichtem Tiefpassverhalten davor bauen. Aber für die Modellierung wird 
es reichen, denke ich.

Ich habe mal versucht, das Reibungsmoment abzuschätzen. Die Verzögerung 
ist ja quasi konstant und die Geschwindigkeit fällt linear.
1
a_mm=47.8; % Durchmesser Rotor
2
b_mm=20;% Laenge Pol
3
m_g=40; % Gewicht Rotor
4
5
a=a_mm/1000;
6
b=b_mm/1000;
7
m=m_g/1000;
8
9
# Trägheitsmoment
10
J=1/12*m*(a*a+b*b)
11
format short eng
12
disp(J)
13
14
decelaration_RPM_per_sec=(1592-344)/4
15
decelaration_rounds_per_sec2=(1592-344)/60/4
16
dOmega=decelaration_rounds_per_sec2*2*pi
17
18
# F=m*a
19
# T=J*dw
20
21
% friction torque
22
T=J*dOmega
23
frictionTorque_mNm=T*1000

Das Ergebnis in Milli-Newton-Meter ist ca. 0,3.
Wenn ich das recht sehe, wären das ca. 30g auf 1mm Hebel, was mir zu 
groß vorkommt. Mache ich etwas falsch?

von Giovanni (Gast)


Angehängte Dateien:

Lesenswert?

Wenn das Trägheitsmoment stimmt (8.95e-6), dann ist auch die 
Größenordnung vom Moment mit 0.3mNm OK.

Habe eine Näherung rpm(t) mit Ordnung 2 versucht (stop1.png).

Was nicht klar ist, ist der Verlauf vom Moment über der Drehzahl 
(stop2.png). Bei hoher Drehzahl sollte das Moment größer sein 
(Luftreibung). Ist es aber nicht.

Frage: Wird beim Abschalten der Motor von der Quelle getrennt, oder nur 
die Spannung auf Null gesetzt. Dann würde nämlich Strom weiterfließen 
und die Energie vom Feld würde als Drehmoment dann sichtbar.

von Christoph M. (mchris)


Lesenswert?

>Was nicht klar ist, ist der Verlauf vom Moment über der Drehzahl
>(stop2.png). Bei hoher Drehzahl sollte das Moment größer sein
>(Luftreibung). Ist es aber nicht.

Das mit der Luftreibung habe ich mich auch schon gefragt. Die Gerade, 
die ich über die Abbremsung gelegt habe, scheint aber relativ gut zu 
passen. Der Rotor fühlt sich relativ schwer an, obwohl es ja nur 40g 
sind ( wäre aber fast schon 1/2 Tafel Schokolade). Da spielt der 
Luftwiderstand bei 1700 U/min wahrscheinlich ein kleinere Rolle.

>Frage: Wird beim Abschalten der Motor von der Quelle getrennt, oder nur
>die Spannung auf Null gesetzt. Dann würde nämlich Strom weiterfließen
>und die Energie vom Feld würde als Drehmoment dann sichtbar.

Ich habe das Netzteil über den Frontschalter ausgeschaltet. Ob dann noch 
Strom fließt, weiß ich nicht. Vielleicht sollte ich das Experiment noch 
mal mit Abklemmen machen ..
Darf ich fragen, wie Dein Modell aussieht und welch Parameter es alle 
beinhaltet?

von Joe G. (feinmechaniker) Benutzerseite


Angehängte Dateien:

Lesenswert?

Christoph M. schrieb:
> Es fehlen mir die Reibverluste. Die könnte man vielleicht über
> Geschwindigkeitsverlauf beim Auslaufen des Motors bestimmen (Einheit?).
> Was der Kreuzkoeffizient ist, ist mir aber völlig unklar.

Die Reibverluste kannst du über die Messung der Drehzahl, des Stromes 
und des ohmschen Widerstandes bestimmen (siehe mechanische Verluste im 
Skript).

Die Motorkonstante ist der Zweitorparameter H12. Der Kreuzkoeffizient 
ist der Zweitorparameter H21 und weil so ein Motor reziprok ist (Motor = 
Generator) ist H21 = -H12.

Um die Motorkonstante bzw. den ohmschen Widerstand aus sehr verrauschten 
Messreihen zu bestimmen, ist mein Python Skript [1] wunderbar geeignet. 
Die Parameter a und b sind gerade der ohmsche Widerstand und die 
Motorkonstante.

[1] Beitrag "Re: Parameterschätzung, überbestimmtes LGS, Kalman-Filter"

von Giovanni (Gast)


Lesenswert?

!!!

Christoph M. schrieb:
>> 3) Wir reden von Reihenschluss? Korrekt?
> Ja, Rotorwicklung und Statorwicklung sind in Reihe geschaltet.

Ich denke LAB_17 bezieht sich auf Permanentmagnet-Motor?

von Joe G. (feinmechaniker) Benutzerseite


Angehängte Dateien:

Lesenswert?

Das dynamische Verhalten wird ja hauptsächlich durch das 
Massenträgheitsmoment bestimmt. Hier mal eine Simulation mit deinen 
Daten (so wie ich sie hier entnehmen konnte). Der Motor wird zunächst 
bestromt und trudelt dann aus (kein Bremsstrom). Um auf Deine Messungen 
zu kommen, müßte das Trägheitsmoment jedoch ca. 6x größer sein.

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Giovanni schrieb:
> Ich denke LAB_17 bezieht sich auf Permanentmagnet-Motor?

Das Modell ist tatsächlich für eine fremderregte Gleichstrommaschine 
oder Nebenschlussmaschine. Der magnetische Fluss ist dabei konstant. Bei 
einer Reihenschlussmaschine ist der mag. Fluss vom Ankerstrom abhängig. 
Das müßte im derzeitigen Modell erweitert werden.

von Uwe (neuexxer)


Lesenswert?

> Das müßte im derzeitigen Modell erweitert werden.

Nicht: "erweitert",
sondern völlig abgeändert.

von Christoph M. (mchris)


Lesenswert?

Joe G.
>Der Motor wird zunächst bestromt und trudelt dann aus (kein Bremsstrom).

Die E-förmige Austrudelkurve erscheint mir hier etwas seltsam. Wenn die 
Anschlüsse des Motors offen sind, sollte die Abbremsung nur durch die 
Reibung kommen. Bei meinem Motor dürfte das vor allen Dingen die 
Gleitreibung der Bürsten sein. Wie man in den Messreihen sieht

Beitrag "Re: Bastelmotor Gleichstrommotor Modell"

läuft die Geschwindigkeit annähernd linear gegen Null, was konform zur 
Gleitreibungstheorie wäre.

Apropos .. vor einiger Zeit habe ich mir mal diesen Bausatz gekauft, 
aber nie zusammengebaut:

https://eschke-shop.de/p/elektro-bausatzmotor

Der ist viel kleiner als mein aktueller Versuchsmotor, könnte aber für 
solche Experimente auch geeignet sein, wenn man einen Encoder 
anflanscht.

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Christoph M. schrieb:
> Die E-förmige Austrudelkurve erscheint mir hier etwas seltsam. Wenn die
> Anschlüsse des Motors offen sind, sollte die Abbremsung nur durch die
> Reibung kommen.

Die gespeicherte mechanische Rotationsenergie steckt im Rotor, einem 
Massenträgheitsmoment. Das Massenträgheitsmoment ist vergleichbar mit 
einer elektrischen Kapazität. Die Rotationsenergie wird nun über Reibung 
(Widerstand) abgebaut. Somit wird die Kapazität über einen Widerstand 
entladen. Diese Kombination ergibt die e-Funktion.

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Irgendwas kommt mir komisch vor bei deiner Messung. Die Anlaufkurve 
sieht nach einer geschwindigkeitsproportionalen Reibung aus (E-Funktion) 
und die Bremskurve nach einer reinen Gleitreibung (konstantes 
Bremsmoment). Wie passt das zusammen? Wenn Gleitreibung vorherrschen 
würde, müsste der Anlauf ja auch linear sein.

von Christoph M. (mchris)



Lesenswert?

>Irgendwas kommt mir komisch vor bei deiner Messung. Die Anlaufkurve
>sieht nach einer geschwindigkeitsproportionalen Reibung aus (E-Funktion)

Das Anlaufen und das Abbremsen muss beim Elektromotor unterschieden 
werden. Das Drehmoment beim Reihenschlussmotor ist im Gegensatz zum 
Nebenschlussmotor nichtlinear, sondern geht quadratisch mit dem Strom.

Dazu das Bild aus https://www.youtube.com/watch?v=Fp9avUMRTyM
(Minute 5:10)

Aber selbst beim Nebenschlussmotor wäre der Drehzahlanstieg beim 
Anlaufen nur linear, wenn der Motor an einer Konstantstromquelle (also 
mit konstantem Drehmoment mit M~I) und nicht an einer 
Konstantspannungsquelle betrieben wird. Wird ein Nebenschlussmotor an 
einer Konstantspannungsquelle betrieben wird (was vermutlich meistens 
der Fall ist) steigt die Drehzahl E-förmig. Der Grund dafür ist die mit 
steigender Drehzahl ansteigende Gegen-EMK, die dann für einen sinkenden 
Strom und damit sinkendem Drehmoment führt.

>und die Bremskurve nach einer reinen Gleitreibung (konstantes
>Bremsmoment). Wie passt das zusammen? Wenn Gleitreibung vorherrschen
>würde, müsste der Anlauf ja auch linear sein.

Die Bremskurve sieht genau so aus, wie ich sie bei einem Reibungsmodell 
mit reiner Coulomb-Reibung (also ohne durch Öllager erzeugte viskosse 
Reibung) erwarten würde. Sie wird ausschließlich durch die mechanischen 
Eigenschaften Trägheitsmoment des Rotors und Reibung bestimmt. Die 
elektrischen Eigenschaften des Motors spielen bei offenen 
Anschlussklemmen keine Rolle.

https://de.mathworks.com/help/simscape/ref/translationalfriction.html

von Giovanni (Gast)


Angehängte Dateien:

Lesenswert?

Uwe schrieb:
>> Das müßte im derzeitigen Modell erweitert werden.
>
> Nicht: "erweitert",
> sondern völlig abgeändert.

Ich denke der "Transformation"-Ansatz passt hier nicht ganz.

Real gibt es eine Messung Drehzahl vs. Zeit auf der diese Diskussion 
hier aufbaut.
* Dann noch Ohmsche Widerstände
* Induktivitäten (Frage wie gemessen - eingebaut? - in welcher 
Rotorposition?)
* Trägheitsmoment - als grobe Abschätzung

Mein Versuch der Start-Simulation
1
    equations = :[
2
        vTerminal = voltageSource(time)
3
        vR = (Ra+Rf)*current
4
        vL = (La+Lf)*der(current)
5
        vR + vL + emf = vTerminal
6
        T-Tfriction(speed) = inertia*der(speed)
7
        flux = Kphi * current
8
        T = Kt*current*flux
9
        emf = speed*Ke      ],

Da das System unterbestimmt ist, habe ich alle Parameter angenommen um 
die Randbedingungen halbwegs einzuhalten.

PS: Beim Bastelmotor ändern sich die Induktivitäten mit der Position. 
Nicht so beim einem realen Motor

PPS: Ich habe noch nie LTspice verwendet.

von Christoph M. (mchris)


Lesenswert?

>steigt die Drehzahl E-förmig.
Kleine Anmerkung: Mit E-förmig meine ich die Kurvenform, die beim 
Aufladen eines Kondensators entsteht, also in etwa y=x(1-e^-kt).

von Christoph M. (mchris)


Lesenswert?

>PPS: Ich habe noch nie LTspice verwendet.
Was verwendest Du für Deine Berechnungen?

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Christoph M. schrieb:
> Das Anlaufen und das Abbremsen muss beim Elektromotor unterschieden
> werden. Das Drehmoment beim Reihenschlussmotor ist im Gegensatz zum
> Nebenschlussmotor nichtlinear, sondern geht quadratisch mit dem Strom.

Ja, das ist mir schon klar... Ich baue mal das Zweitormodell mit den 
H-Parametern auf einen Reihenschlussmotor um.

von Giovanni (Gast)


Lesenswert?

Christoph M. schrieb:
>>PPS: Ich habe noch nie LTspice verwendet.

> Was verwendest Du für Deine Berechnungen?

Nach >20 Jahren MODELICA (Dymola, JModelica, OpenModelica) jetzt auf der 
JULIA-Schiene.
* Für Modelica braucht man meist auch noch Python für pre- und 
postprocessing.
* JULIA Simulation bietet für fast alle mathematischen Aufgaben recht 
effiziente Lösungen. Erfordert jedoch ein Umdenken. (Modia, 
ModelingToolkit)

==> https://juliacon.org/2024/  Die Vorträge gibt es danach auf youtube

Grundsätzlich bevorzuge ich "acausal modeling", daher nicht so 
begeistert von MATLAB,Simulink.

Spice hat sicher Vorteile bei schaltenden Systemen in der Elektronik, da 
eine große Bauteilbibliothek existiert.

wie schon gesagt: Ein dynamischer Versuch mit einer Messung von Strom, 
Spannung, Drehzahl/Position) wäre nicht schlecht um weiterzukommen.

von Christoph M. (mchris)



Lesenswert?

>wie schon gesagt: Ein dynamischer Versuch mit einer Messung von Strom,
>Spannung, Drehzahl/Position) wäre nicht schlecht um weiterzukommen.

Schon klar. Das Problem ist ein wenig die Stabilität des Messaufbaus und 
die Messtechnik an sich. Eigentlich müsste ich alles umbauen.

Was aber vielleicht weiterhelfen könnte, sind die zwei Messungen im 
Anhang. Die eine zeigt das Encodersignal und die Spannung an einem 1 Ohm 
Widerstand gegen Masse in der Stromzuführung und 3.4V Spannung. Was man 
daraus ablesen kann: Im Mittel ist die Stromaufnahme 600mA, die 
Bürstenkontakte sorgen aber am Wendepunkt für einen Kurzschluss. Beim 
Kurzschluss geht der Strom auf 1 Amper, das liegt aber an der 
Spannungsversorgung, die den Strom auf 1 Amper beschränkt. Wie man am 
Kurzschlusspeak sieht, wird jeweils korrekt nach 12 Encoderschritten 
umgepolt.
Das zweite Bild zeigt den grob gemessen Umpolwinkel. Idealerweise sollte 
der wohl an eine besseren Stelle liegen und führt zu einer zu hohen 
Stromaufnahme.
Die Messung ist nicht ganz mit den vorigen 3.4V Messungen vergleichbar, 
weil ja der 1 Ohm Messwiderstand in Serie liegt.

von Christoph M. (mchris)


Lesenswert?

>Grundsätzlich bevorzuge ich "acausal modeling", daher nicht so
>begeistert von MATLAB,Simulink.

Klar, das "akausale Modellieren" erspart einem ein wenig die Denkarbeit 
über "Loop Verzögerungen" hat aber das Problem, dass die Solver oft 
nicht konvergieren. Was Matlab Simulink angeht, gäbe es von Mathworks ja 
noch SimScape. Ist aber "sau teuer" und man muss für jeden Käse eine 
Zusatzbibliothek kaufen.
LtSpice sollte das "akausale Modellieren" zum Nullkosten Preis 
ermöglichen. Hat aber den Nachteil, dass man viel in E-Technik Symbolen 
denken muss.

von Christoph M. (mchris)


Lesenswert?

Hier mal ein Beispiel, was man mit LtSpice simulieren kann: Die 
Heizungsregelung eines Hauses:
https://hackaday.com/2024/07/01/modeling-home-heating-systems-with-circuit-simulation-software/

von Joe G. (feinmechaniker) Benutzerseite


Angehängte Dateien:

Lesenswert?

Ich habe jetzt mal das Modell mit deinen Parametern zum 
Reihenschlussmotor umgearbeitet. Nur das von dir beobachtete 
Reibverhalten ist etwas schwierig. Die konstante Reibung ist doch nicht 
so drehzahlkonstant und setzt erst bei einer bestimmten Drehzahl ein. 
Wie dem auch sei, ein Reihenschlussmotor läßt sich auch wunderbar als 
(nichtlineares) 2-Tor in Matrixform aufbauen :-)

von Uwe (neuexxer)


Lesenswert?

> Die konstante Reibung ist doch nicht
> so drehzahlkonstant und setzt erst bei einer bestimmten Drehzahl ein.

Und zwar gleich oberhalb der Drehzahl "0" (Losbrechmoment);
erst bei grösserer Drehzahl wird der (ca. quadratische?) Einfluss
der Luftreibung relevant.

: Bearbeitet durch User
von Christoph M. (mchris)


Angehängte Dateien:

Lesenswert?

>Die konstante Reibung ist doch nicht so drehzahlkonstant und setzt erst bei einer 
bestimmten Drehzahl ein.

Meiner Meinung nach sollte die Gleitreibung einfach mit einer 
Signum-Funktion beschrieben werden können.
Ich habe das hier mal in einem LtSpice-Modell versucht. Es ist einfach 
ein Rotor der mit einem konstanten Drehmoment beschleunigt wird und dann 
losgelassen.
Das Problem mit LtSpice hier: der Solver rechnet sich zu Tode und es 
konvergiert nicht. Hat jemand eine Idee?

von Joe G. (feinmechaniker) Benutzerseite


Angehängte Dateien:

Lesenswert?

Christoph M. schrieb:
> Hat jemand eine Idee?

1. Beim Pulse für die Flankenzeit (Anstieg und Abfall) keine 0 eintragen 
sondern 1E-9 oder kleiner.
2. Die Signumfunktion zickt rum, schneller rechnet 
I={friction}*buf(V(Omega)+0.5)

von Joe G. (feinmechaniker) Benutzerseite


Angehängte Dateien:

Lesenswert?

Die Reibung wird eine Kombination aus Gleitreibung und 
geschwindigkeitsproportionaler Reibung sein. Nur mit reiner Gleitreibung 
siehts auch merkwürdig aus.

von Giovanni (Gast)


Angehängte Dateien:

Lesenswert?

also ich bin zufrieden. Ich hoffe ich komme mit meiner Simulation jetzt 
ins Halbfinale.

* Die Drehzahlkurve für Start & Auslauf ist soweit OK.
* Der Strom bei max. Drehzahl ist etwa 600mA.
* Das Lastmoment (Kollektor + Luftreibung) habe ich als weitgehend 
konstant angenommen => nahezu linearer Drehzahlabfall beim Auslauf.

Meine Unklarheiten zu LAB_19
* Der Leerlaufpunkt beim Reihenschlussmotor (ohne Last) : Drehzahl: 
+INF, Strom: 0.0


enjoy the summer

von Christoph M. (mchris)


Lesenswert?

>also ich bin zufrieden. Ich hoffe ich komme mit meiner Simulation jetzt
>ins Halbfinale.

Na auf jeden Fall. Die Ergebnisse sehen ja viel versprechend aus und das 
Durchhaltevermögen solch ein Projekt durchzuziehen hat ja auch nicht 
jeder :-)
Also Glückwunsch erst einmal zu Deinem Ergebnis.

Apropos:
>* Induktivitäten (Frage wie gemessen - eingebaut? - in welcher
Rotorposition?)

Die Induktivitäten habe ich mit einem "Bm4070 Digital LCD LCR Meter" 
gemessen, die sind eher günstig und leicht im Internet zu finden.
Ich habe es gerade noch mal für den Rotor gemacht: wenn er senkrecht 
steht (also möglichst weit weg vom Ankerblech) dann sind es 2.8mH und 
wenn er waagrecht steht 3.4mH.
Da die Kommutierungsfrequenzen aber relativ niedrig sind, würde ich 
sagen, man kann die Induktivitäten für diese Simulation weglassen.
Es sein denn, man würde den Zeitverlauf nach der Kommutierung wie in dem 
Oszillogramm

Beitrag "Re: Bastelmotor Gleichstrommotor Modell"

simulieren wollen.

Was natürlich spannend sein kann: Bei allen bisherigen Simulationen 
fehlt die Position des Kommutierungswinkels, die einen ganz gewaltigen 
Einfluss auf die Effizienz und die Stromaufnahme haben dürfte.

von Christoph M. (mchris)


Angehängte Dateien:

Lesenswert?

Joe schrieb:
>2. Die Signumfunktion zickt rum, schneller rechnet 
I={friction}*buf(V(Omega)+0.5)

Vielen Dank für diesen wertvollen Hinweis. Damit läuft die Simulation in 
vernünftiger Geschwindigkeit. Die "buf" Funktion kannte ich noch nicht.
Ich habe ursprünglich gedacht, die Probleme der Signum-Funktion kommen 
durch ihre Unstetigkeit. Die "buf" Funktion ist ja eigentlich auch 
unstetig (Sprungfunktion), deshalb wundert mich, dass es LtSpice damit 
schafft. Als Problem sehe ich ein wenig an, dass mit der Funktion keinen 
Nullpunkt hat, damit die Reibung zur Ruhe kommt.

Im Internet findet man den Tangenshyperbolicus als sehr gute Näherung 
für "sgn" (wenn man den Skalierungsfaktor hochdreht).

https://math.stackexchange.com/questions/1264681/how-to-smoothly-approximate-a-sign-function

Ich habe es mal ausprobiert und funktioniert auch super.

Apropos: im letzten Post hast Du das Bild von "Lab19" aber den Code von 
"Lab_17_1" gepostet.

von Joe G. (feinmechaniker) Benutzerseite


Angehängte Dateien:

Lesenswert?

Christoph M. schrieb:
> Apropos: im letzten Post hast Du das Bild von "Lab19" aber den Code von
> "Lab_17_1" gepostet.

Oh, sorry. Hier die Korrektur.

@Giovanni
Interessant wäre dein Gleichungssystem mit den zugehörigen Parametern

P.S: Ich habe mal den tanh übernommen :-)

: Bearbeitet durch User
von Christoph M. (mchris)



Lesenswert?

>Oh, sorry. Hier die Korrektur.

Danke für die Korrektur.
Die große Kunst bei der Modellierung ist natürlich, die Parameter auf 
ein Minimum zu reduzieren und an die Realität anzupassen.
Ich habe das mal manuell versucht und es ergibt sich ein Ergebnis, 
welches die Anhänger der freien Energie in einen Freudentaumel versetzen 
dürfte: Der Reihenschlussmotor als Perpetum Mobile :-)
Beim Anlaufen sehen die Werte noch ähnlich aus wie die von Giovanni, 
aber dann wird's obskur.
Wenn man die Spannung ausschaltet, wird die BEMF so groß, dass sich der 
Motor selbst versorgt und durchgeht. Irgendwas ist da vermutlich falsch 
:-)

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Du hast nur einen kleinen Flüchtigkeitsfehler eingebaut ;-) Dir fehlt in 
der BEFM der Faktor mit dem Strom I(B1).

V={BEMF_CONST}*V(Omega)*I(B1)

von Joe G. (feinmechaniker) Benutzerseite


Angehängte Dateien:

Lesenswert?

Versuch und Theorie stimmen nun prima überein. Die Motorparameter lassen 
sich sehr gut aus dem Leerlaufversuch bestimmen (siehe Rechnung und 
Simulation).

So macht das Forum hier Freude, abseits von oft auftretenden 
Befindlichkeiten.  Christoph M. hat mit seinem „Bastelmotor“ eine 
wirklich tolle Vorlage gegeben – vielen vielen Dank für die Idee, die 
Umsetzung, Messung und Simulation!

Ich habe mir nun auch gleich einen ähnlichen Bausatz bestellt 
(zweipoliger Gleichstrommotors mit Permanenterregung und 
elektromagnetischer Erregung). Natürlich muß jetzt auch noch der Versuch 
als Nebenschlussmaschine erfolgen :-)

Studenten, welche nun im nächsten Semester Modellbildung und Simulation 
an mehreren Motorvarianten im Praktikum durchführen müssen, mögen sich 
hier beim Forum beschweren ;-)

von Giovanni (Gast)


Angehängte Dateien:

Lesenswert?

Noch zur Frage nach dem verwendeten Modell + Bemerkungen zu einigen 
diskutierten Fragen.


**Funktion sign(x):** ist nicht differenzierbar. Näherung durch tanh(x) 
möglich (aber wozu? es gibt keine stateevents)

**Kommutierungswinkel:** Hat Einfluss auf Parameter und Wirkungsgrad - 
hier egal, der Motor dreht sich


**Datensatz:** korrigiert (nur 24 Impulse/Umdrehung) - Beilage 
"cleanTicks.txt"

**Modell** - selbsterklärend, da nur Parameter und Gleichungen
1
#
2
# MIT License
3
# Copyright (c) 2024: sqrt_minus_eins (Giovanni)
4
#
5
6
function VoltageSource(t::Float64)::Float64
7
    3.6>t>0.08 ? 3.4 : 0.0
8
end
9
10
@show Friction = Polynomial([0.25, 0.0, 0.10]*1e-3)
11
12
DCmotor = Model(
13
    Ra = 1.6,
14
    Rf = 1.75,
15
    La = 3.4e-3,
16
    Lf = 3.0e-3,
17
    Inertia = 9e-6,
18
    Kt = 17e-4,
19
    Ke = 0.0150,
20
    ratedSpeed = Par(value=:(1760.0/30.0*π)),
21
    speed = Var(start=0.0),
22
    current = Var(start=0.0),
23
24
    equations = :[
25
        vTerminal = VoltageSource(time)
26
        vR = (Ra+Rf)*current
27
        vL = (La+Lf)*der(current)
28
        vR + vL + emf = vTerminal
29
        tFriction = Friction(speed/ratedSpeed)
30
        tMotor-tFriction = Inertia*der(speed)
31
        flux = current      # der Absolutwert ist hier egal
32
        tMotor = Kt*current*flux
33
        emf = Ke*speed*flux         ],
34
)

**Simulation**
1
Friction = Polynomial([0.25, 0.0, 0.1] * 0.001) = Polynomial(0.00025 + 0.0001*x^2)
2
3
... Simulate model DCmotor
4
 # │ state    init  unit
5
───┼─────────────────────
6
 1 │ current  0.0
7
 2 │ speed    0.0

von Christoph M. (mchris)



Lesenswert?

Super, danke euch :-)
Sehr schöne Arbeiten und genügend Stoff, um sich noch ein wenig damit zu 
beschäftigen.
Ich habe es auch noch mal etwas weiter versucht und poste mal das 
Zwischenergebnis.

Joe schrieb:
>Du hast nur einen kleinen Flüchtigkeitsfehler eingebaut ;-) Dir fehlt in
>der BEFM der Faktor mit dem Strom I(B1).
V={BEMF_CONST}*V(Omega)*I(B1)

Wie schade, wieder kein Perpetuum Mobile und die Lösung aller 
Energieprobleme ;-)

Zur besseren Darstellung und didaktischen Klarheit des 
Reihenschlusmotors habe ich mal das Erregerfeld separiert. Es ist ja 
stromabhängig und ist für die großen Unterschiede zu den üblichen, im 
Bastelbereich verwendeten Motoren mit Permanentmagneten verantwortlich.

Bei den Grenzwerten stimmt die Simulation, aber ob die Krümmung der 
Beschleunigungskurve so stimmt, müsste mit einem Datenfitt nachgeprüft 
werden.

Die Diode verhindert den Rücklaufstrom beim Ausschalten, ansonsten ist 
die Verzögerungskurve E-förmig und fällt nicht linear, das dürfte der 
Grund für die Kurvenform in dieser Simulation gewesen sein:
Beitrag "Re: Bastelmotor Gleichstrommotor Modell"

Bei meiner Simulation scheinen die Parameter kritisch und man kommt 
schnell in Bereiche, bei denen die Simulation nicht mehr konvergiert. So 
wundert es mich z.B. wenn ich die Diode kurzschließe und der Bremsstrom 
durch die Spannungsversorgung zurückfließen kann, dass die Simulation 
ein Konvergenzproblem bekommt.

Giovanni schrieb
>**Funktion sign(x):** ist nicht differenzierbar. Näherung durch tanh(x)
>möglich (aber wozu? es gibt keine stateevents)

Der Solver von LtSpice scheint damit besser zurecht zu kommen. Woran 
immer das intern liegt ..

: Bearbeitet durch User
von Giovanni (Gast)


Lesenswert?

Christoph M. schrieb:
> Bei meiner Simulation scheinen die Parameter kritisch und man kommt
> schnell in Bereiche, bei denen die Simulation nicht mehr korrigiert. So
> wundert es mich z.B. wenn ich die Diode kurzschließe und der Bremsstrom
> durch die Spannungsversorgung zurückfließen kann, dass die Simulation
> ein Konvergenzproblem bekommt.

Fehler im Modell!  Mit meinen Parametern ist das System nicht "steif" 
und damit sollte kein Solver ein Problem haben.

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Christoph M. schrieb:
> So wundert es mich z.B. wenn ich die Diode kurzschließe und der Bremsstrom
> durch die Spannungsversorgung zurückfließen kann, dass die Simulation
> ein Konvergenzproblem bekommt.

schreibe mal beim Fluss: V={PHI_CONST}*I(B1)

Ich denke, die Diode kannst du sparen. Beim Abschalten der Pulse 
Spannungsquelle fließt kein Rückstrom. In der Visualisierung schaltet 
sie zwar auf 0 Volt, es fließt jedoch kein Strom.

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Giovanni schrieb:
> **Modell** - selbsterklärend, da nur Parameter und Gleichungen

Vielen Dank! Das Modell entspricht genau dem LTSpice-Modell. Somit 
sollte das gleiche Ergebnis erscheinen :-)

von Christoph M. (mchris)


Lesenswert?

Joe G.
>schreibe mal beim Fluss: V={PHI_CONST}*I(B1)

Findest Du I(B1) besser als I(R1)? Der Strom ist ja im selben Pfad und 
damit gleich. Mir schien es verständlicher, den Strom im Widerstand 
statt in der Spannungsquelle zu nehmen. Aber da wäre ich flexibel, wenn 
es anders besser ist.

>Ich denke, die Diode kannst du sparen. Beim Abschalten der Pulse
>Spannungsquelle fließt kein Rückstrom. In der Visualisierung schaltet
>sie zwar auf 0 Volt, es fließt jedoch kein Strom.

Das man die Diode nicht benötigt, dachte ich auch, aber ich habe ohne 
sie eine exponentiell abfallende Drehzahlkurve bekommen.
Wenn der Rotor sich noch dreht (und das tut er ja bis er ausgelaufen 
ist) erzeugt er ja einen Strom (durch die BEMF verursacht). Deshalb 
fließt tatsächlich ein Strom durch die Versorgungsspannungsquelle, auch 
wenn diese auf 0 Volt eingestellt  ist. Der Strom wird vom sich 
drehenden Rotor erzeugt, was der Realität ziemlich entsprechen dürfte.

von Christoph M. (mchris)


Lesenswert?

Giovanni schrieb
>Noch zur Frage nach dem verwendeten Modell

Bis jetzt habe ich keine Erfahrung mit Julia, aber habe mal versucht, 
Dein Modell laufen zu lassen.
Als erstes braucht man wohl am Anfang des Files "using Polynomials".

Dann aber wird bei mir folgende Meldung geworfen:
1
julia> christoph@computer:~/Entwicklung/Modell$ julia modelJulia.jl  
2
3
Friction = Polynomial([0.25, 0.0, 0.1] * 0.001) = Polynomial(0.00025 + 0.0001*x^2)
4
ERROR: LoadError: UndefVarError: Par not defined
5
Stacktrace:
6
 [1] top-level scope at /home/christoph/Entwicklung/Modell/modelJulia.jl:15
7
 [2] include(::Module, ::String) at ./Base.jl:377
8
 [3] exec_options(::Base.JLOptions) at ./client.jl:288
9
 [4] _start() at ./client.jl:484
10
in expression starting at /home/christoph/Entwicklung/Modell/modelJulia.jl:15

Hast Du einen Hinweis?

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Christoph M. schrieb:
> Findest Du I(B1) besser als I(R1)?

Dann konvergiert die Rechnung, jedenfalls bei mir.

> Das man die Diode nicht benötigt, dachte ich auch, aber ich habe ohne
> sie eine exponentiell abfallende Drehzahlkurve bekommen.

Jetzt weiß ich, warum ich bei LTSpice seit Jahren kein Update mache ;-)
Stimmt, bei den neuen Versionen ist 0V tatsächlich Masse und es fließt 
ein Strom. In meiner Version (November 2018), ist 0 einfach offen. Die 
Messung in der Spannungsquelle zeigt auch tatsächlich keinen Strom.

von Christoph M. (mchris)


Lesenswert?

>Das man die Diode nicht benötigt, dachte ich auch, aber ich habe ohne
>sie eine exponentiell abfallende Drehzahlkurve bekommen.

Ich glaube, das muss ich wieder zurück nehmen. Ich habe es gerade 
nochmal mit der Simulation versucht und konnte den Effekt nicht mehr 
sehen. Dann habe ich den Motor in Betrieb genommen und konnte (ohne die 
Drehzahl genau zu messen) auch keinen Effekt sehen. Wahrscheinlich 
bricht der Strom so schnell zusammen, dass es keine BEMF mehr gibt.

Joe schrieb:
>So macht das Forum hier Freude, abseits von oft auftretenden
>Befindlichkeiten.  Christoph M. hat mit seinem „Bastelmotor“ eine
>wirklich tolle Vorlage gegeben – vielen vielen Dank für die Idee, die
>Umsetzung, Messung und Simulation!

Vielen Dank für die positiven Worte :-)
Ich hoffe, es kommt wieder einmal so ein "Thread" zusammen.

von Giovanni (Gast)


Lesenswert?

Christoph M. schrieb:
> Bis jetzt habe ich keine Erfahrung mit Julia, aber habe mal versucht,
> Dein Modell laufen zu lassen.

In meinem Beitrag stehen nur die Gleichungen und Parameter.
Das vollständige Script ist nicht geheim, aber um es zum Laufen zu 
bringen müsste man die gesamte Projektumgebung bereitstellen, und das 
ist für einen Anfänger ziemlich aufwendig.

ABER:
Ich bin mir nicht sicher ob das Projekt jetzt beendet ist. Falls noch 
Interesse besteht, kann ich ein äquivalentes MODELICA Modell erstellen, 
mit dem man dann mit OpenModelica "spielen" kann.

https://openmodelica.org/   Die WIN Version ist etwas groß.

* Variante 1: Modell nur mit Gleichungen (wie schon gezeigt). Braucht 
keine Bibliothek.
* Variante 2: Mit Elementen aus der MODELICA Bibliothek. Für ein 
besseres Verständnis, aber mit dem selben Ergebnis.

let me know

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Giovanni schrieb:
> Ich bin mir nicht sicher ob das Projekt jetzt beendet ist.

Für mich noch nicht :-) Wenn mein Motor geliefert wurde will ich mal 
alle drei Varianten des Gleichstrommotors experimentell vermessen und 
die zugehörige Simulation erstellen.
Ob Modelica oder Matlab oder, oder, oder... ist eigentlich immer sehr 
ähnlich. ich werde es mal kurz in Jupyter Notebook aufschreiben.

von Peter D. (peda)


Lesenswert?

Diese einfachen Modelle haben einen unterirdischen Wirkungsgrad und 
laufen nicht in jeder Stellung an.
Je nach Aufbau des Kollektors gibt es entweder Funken bei Unterbrechung 
oder periodische Kurzschlüsse. Daher findet man in der Praxis nur 
Motoren mit mindestens 3 Polen. Und mit ordentlichen Kohlen für einen 
unterbrechungsfreien Stromfluß. Diese Drahtbügel sind nicht geeignet.

von Martin H. (horo)


Lesenswert?

Peter D. schrieb:
> unterirdischen Wirkungsgrad

Peter D. schrieb:
> laufen nicht in jeder Stellung an

Peter D. schrieb:
> Diese Drahtbügel sind nicht geeignet.

Derjenige, der sagt: „Es geht nicht“, soll den nicht stören, der’s 
gerade tut:

Joe G. schrieb:
> Versuch und Theorie stimmen nun prima überein. Die Motorparameter lassen
> sich sehr gut aus dem Leerlaufversuch bestimmen (siehe Rechnung und
> Simulation).
>
> So macht das Forum hier Freude, abseits von oft auftretenden
> Befindlichkeiten.  Christoph M. hat mit seinem „Bastelmotor“ eine
> wirklich tolle Vorlage gegeben – vielen vielen Dank für die Idee, die
> Umsetzung, Messung und Simulation!

Danke! Sehr interessanter Thread, auch für mich sind diese 
„Expert-Talks“ einer der Gründe, warum man es bei µC.net noch aushält.

von Christoph M. (mchris)


Lesenswert?

Martin H.
>Derjenige, der sagt: „Es geht nicht“, soll den nicht stören, der’s
>gerade tut:

Eigentlich hast Du recht, aber der technische Einwand von Peter ist 
nicht ganz ungerechtfertigt. In diesem Thread haben wir wirklich Glück 
und ich würde sagen, wir haben ziemlich produktiv gearbeitet :-)
Insofern ja, im Mikrocontrollernetz laufen die Diskussionen sehr oft aus 
dem Ruder aber in dem Fall finde ich Peters Einwand nicht so störend.

Peter schrieb:
>Diese einfachen Modelle haben einen unterirdischen Wirkungsgrad und
>laufen nicht in jeder Stellung an.

Das ist richtig, aber der Motor ist für didaktische Zwecke super, weil 
die Schüler und Studenten, wenn sie mit dem Motor spielen sehr viel 
lernen (und ich habe auch viel dabei gelernt). Man lernt, dass es auf 
den Kommutatorwinkel ankommt und man merkt selbst, dass man den Motor 
anschupsen muss und kommt dann vielleicht selbst auf die Idee, dass das 
mit einem Motor mit mehr Polen besser funktioniert. Es ist wirklich so, 
dass die praktische Erfahrung am Motor hier einen ziemlich 
eindrücklichen Lerneffekt gibt. Der Motor, den ich habe ist auch 
ausreichend groß, sodass man alles gut mit den Händen bewegen kann. Den 
Motor habe ich schon vor über 10 Jahren gekauft und leider habe ich 
genau dieses Modell nicht mehr gefunden, sonst hätte ich vielleicht 
einen zweiten für Modifikationen gekauft.

>Je nach Aufbau des Kollektors gibt es entweder Funken bei Unterbrechung
>oder periodische Kurzschlüsse. Daher findet man in der Praxis nur
>Motoren mit mindestens 3 Polen.

(kleine Anmerkung am Rande: zwei Pole reichen, wie man an Schrittmotoren 
sieht)

> Und mit ordentlichen Kohlen für einen
>unterbrechungsfreien Stromfluß. Diese Drahtbügel sind nicht geeignet.

Das ist tatsächlich der Grund, warum ich mit dem Motor (obwohl Giovanni 
gerne mehr Messungen gehabt hätte), nicht mehr Messungen gemacht habe. 
Ich habe festgestellt, dass während des Betriebes oft ein kleiner, 
blauer Funke an einer Stelle entsteht und wenn ich die Bürstendrähte mit 
den Fingern etwas angedrückt habe, die Kontaktierung etwas besser wurde. 
Mehr Messungen mit veränderten Parameter hätten vermutlich zu 
Widersprüchen im Modell geführt.

Ich hatte mir überlegt, die Bürstendrähte durch echte Kohlen (aus einem 
alten Motor) zu ersetzen und mit dem 3D-Drucker einen Verstellring zu 
drucken, mit dem man den Kommutatorwinkel verdrehen kann. Das war mir 
aber dann doch zu aufwändig.

Die zweite und technisch modernere Lösung wäre eine elektronische 
Kommutierung. Dann könnte man die Erregerspule und die Rotorspule 
getrennt ansteuern und viel über die Optimierung der Maximaldrehzahl 
lernen. Zusätzlich würde ich den optischen Encoder durch einen 
magnetischen Encoder mit hoher Winkelauflösung wie den AS5600 ersetzen.
Diese Lösung könnte ich sehr schnell umsetzen .. ist jemand an so was 
interessiert?

von Christoph M. (mchris)


Angehängte Dateien:

Lesenswert?

>https://openmodelica.org/   Die WIN Version ist etwas groß.
> let me know

Wir hatten mal OpenModellica auf einem Windows System getestet, aber es 
war ziemlich problematisch. Ständig war die Schrift zu groß oder zu 
klein und die Größer hat sich bei jedem Aufruf geändert. Außerdem schien 
mir OpenModellica ziemlich komplex, weil es ständig irgendwelche 
Parameter gibt, die irgendwo eingestellt werden müssen und wir nicht 
wussten wo.

Aber nichts desto trotz, ich hab's mal auf meinem Ubuntu installiert und 
mit Begeisterung muss ich feststellen, dass die Beispiele Out-Of-the-Box 
laufen. Wenn Du das Reihenschlussmotormodell hättest, könnte ich es 
laufen lassen und würde mich freuen, etwas zu lernen.

von Martin H. (horo)


Lesenswert?

Christoph M. schrieb:
> der Motor ist für didaktische Zwecke super

Mein Einstieg in die Elektrotechnik war in den 60ern der „Elektromann“, 
dort gab es auch verschiedene Motorenbausätze (2-Pol, 3-Pol jeweils mit 
Permanent- wie auch Elektromagnet), der 3-Pol lief sehr ordentlich.

https://www.sarganserland-walensee.ch/KOSMOS_Experimentierbaukaesten/Elektromann/Elektromann_1965.jpg

So sah der Motor in den 50ern aus, besser kann man ein Lehrmodell nicht 
bauen.
https://www.elektronik-labor.de/Lernpakete/Elektromann6.jpg

von Giovanni (Gast)


Angehängte Dateien:

Lesenswert?

Christoph M. schrieb:
> Wenn Du das Reihenschlussmotormodell hättest, könnte ich es
> laufen lassen und würde mich freuen, etwas zu lernen.

Hier mal die Variante 1 - nur Gleichungen.

Variante 2 (mit Elementen aus der Bibliothek) läuft, es sind aber noch 
ein paar kosmetische Eingriffe notwendig bevor ich es verteile.

von Christoph M. (mchris)



Lesenswert?

>Hier mal die Variante 1 - nur Gleichungen.

Danke :-)
Ich habe naiverweise mal auf den grünen Knopf "Instanziere Modell" 
gedrückt.

von Giovanni (Gast)


Lesenswert?

Schnellkurs MODELICA:

Ich habe die beiden Modelle in ein Paket gepackt.
1
* package Reihenschluss
2
  ** model ReihenDCvar1  -> lauffähig
3
  ** function Friction

Das lauffähige Modell ist "ReihenDCvar1".  Dieses kann dann direkt auf 
"Friction" zugreifen, da es im selben Paket ist.

Also "ReihenDCvar1" öffnen und Simulieren "->"

von Christoph M. (mchris)


Angehängte Dateien:

Lesenswert?

>Schnellkurs MODELICA:

Super, geht!
Danke :-)

von Giovanni (Gast)


Angehängte Dateien:

Lesenswert?

Teil 2.

Modell mit Elementen der Bibliothek + neue Elemente. Ist etwas klarer 
für das Verständnis.

Hinweis für die Lehre: Es ist ja ein Universalmotor, der auch mit AC 
funktioniert. Interessant, wenn man die Frequenz nahe der el-mech 
Eigenfrequenz in dem Betriebspunkt erwischt. Gibt dann eine Schwebung.

Kommt vielleicht als Teil 3.

von Christoph M. (mchris)


Lesenswert?

>Modell mit Elementen der Bibliothek + neue Elemente. Ist etwas klarer
>für das Verständnis.

Ich habe es ausprobiert und es funktioniert gut. Mit Graphik ist es auf 
jeden Fall anschaulicher.
Der Drehzahlsensor scheint aber nur Omega als Output. Für mich ist die 
Drehzahl als RPM verständlicher. Als Kind hatte ich einen Legomotor, von 
dem ich gelesen hatte dass er 3000 U/min hat. Aus diesem Grund ist das 
für mich eine anschauliche Größe.

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Hier für alle Python-Fans als Jupyter Notebook

https://github.com/Feinmechaniker/Mechatronik/blob/Mechatronik/00 AB/99 
Tools/02 Python/LAB_19.ipynb

: Bearbeitet durch User
von Uwe (neuexxer)


Lesenswert?

> Für mich ist die Drehzahl als RPM verständlicher.

Das sollte ja nun keine unüberwindbare Hürde sein!

ω = 2  Pi  f           ;-)

von Giovanni (sqrt_minus_eins)


Lesenswert?

Christoph M. schrieb:
> Als Kind hatte ich einen Legomotor, von
> dem ich gelesen hatte dass er 3000 U/min hat. Aus diesem Grund ist das
> für mich eine anschauliche Größe.

Man kann im PLOT Fenster die Einheit der Größen ändern.
zB. statt rad/s => rpm

@Uwe : Wie reden von einem Gleichstrommotor f=0.000Hz

ω[rad/s] = 2 * π / 60.0 * rpm[U/min]


@Joe G.
Warum muss man beim Abschalten (U = 3.4V => 0.0V) den Strom auf Null 
setzen?

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Giovanni schrieb:
> Warum muss man beim Abschalten (U = 3.4V => 0.0V) den Strom auf Null
> setzen?

Das war noch eine Altlast im Code ;-) Danke für den Hinweis, ist 
entfernt.

von Uwe (neuexxer)


Lesenswert?

> @Uwe : Wie reden von einem Gleichstrommotor f=0.000Hz

Ausser bei Stillstand hat der auch eine Drehfrequenz (bzw. -Zahl) >0 
;-)

von Giovanni (sqrt_minus_eins)


Angehängte Dateien:

Lesenswert?

Hier noch Bilder zur Dynamik.
Spannungssprung +/- 0.1V von 3.4V ausgehend

* Lösung der(speed)=0.0 und der(current)=0.0
* Linearisieren
* Eigenwerte
** el. EW = 0.93ms
** mech. EW = 2.93s
* Bilder mit Zeitkonstante.

jetzt kommt dann noch AC Betrieb. Da gibt es dann richtig Frequenz 
(elektrisch und mechanisch)  ;-)

von Giovanni (sqrt_minus_eins)


Angehängte Dateien:

Lesenswert?

Nachtrag:
es gibt ja noch die elektrische Zeitkonstante (Bild).
Die ist natürlich nicht L/R - eh klar.

von Joe G. (feinmechaniker) Benutzerseite


Angehängte Dateien:

Lesenswert?

Man kann auch beide Zeitkonstanten ausrechnen,allerdings nur, wie 
Giovannis Simulation zeigt, in einem ausgewählten Arbeitspunkt.

von Christoph M. (mchris)


Lesenswert?

Joe G.
>Hier für alle Python-Fans als Jupyter Notebook

Super, so schön reduziert :-)
1
def motor_dynamics(y, t, R, L, k_E, k_M, J, T_R):
2
    I, omega = y
3
    U = voltage(t)
4
    dIdt = (U - I * R - k_E * I * omega) / L
5
    dOmegadt = (k_M * I**2 - T_R) / J
6
    return [dIdt, dOmegadt]

Was mir am Modell auffällt: Die Gleitreibung T_R wäre eigentlich von der 
Drehrichtung abhängig. Bei dem Modell fällt das nicht auf, weil der 
Motor nur in eine Richtung läuft.

Eigentlich war mein Ziel bei dieser Modellierung, einen Regelkreis in 
LtSpice zu simulieren (also das Motormodell zusammen mit einem Regler) 
und danach den Regler zu implementieren und zu schauen, ob die Auslegung 
stimmt. Ich befürchte nur, dass der Motor durch den Funkenkommutator 
etwas zu instabil für diesen Versuche sein könnte.

Wie ist das bei dem Motor, den Du bestellt hast? Welches Modell ist es 
denn und dreht er sich schon?

von Joe G. (feinmechaniker) Benutzerseite


Angehängte Dateien:

Lesenswert?

Christoph M. schrieb:
> Was mir am Modell auffällt: Die Gleitreibung T_R wäre eigentlich von der
> Drehrichtung abhängig.

Das steckt im Drehimpulssatz (Drallsatz).
Die Änderung des Drehimpulses eines Körpers ist gleich der Summe aller 
von außen angreifenden Momente. Im Falle unseres Motors haben die 
Drehimpulsänderung und das Reibmoment immer ein entgegengesetztes 
Vorzeichen.

> Welches Modell ist es denn und dreht er sich schon?

Er ist leider noch auf dem Postweg. Die beiden Permanentmagnete möchte 
ich wahlweise noch die eine Erregerspule ersetzen.

von Christoph M. (mchris)



Lesenswert?

Hier mal der Versuch der "elektronischen Kommutierung".
Die Versorgungsspannung ist 8V. Die Sensitivität der ACS712x05B 
(Versorgung 4.75V) Hall Stromsensoren liegt bei ca. 56LSB/Amper. Die 
Sensoren sind über RC-Tiefpässe (10k,10nF) an die ADCs des Pipico 
angeschlossen. Der Winkel wird mit einem AS5600 Hallencoder gemessen und 
abhängig davon die Feldspule umgeschaltet.

Die PWM-Frequenz für den L298 ist auf 1Khz eingestellt.

Die Einstellungen für die Messung sind:
1
          state = STATE_COMMUTEFIELD;
2
          VALUE_field = 255; //( max. value)
3
          VALUE_rotor = 180;
4
          VALUE_angle = 2300; //(0..4095)

: Bearbeitet durch User
von Giovanni (sqrt_minus_eins)


Lesenswert?

Joe G. schrieb:
> Man kann auch beide Zeitkonstanten ausrechnen

Ich bin beeindruckt!
Was ich immer gesagt habe. KI wird NI (Natürliche Intelligenz) niemals 
ersetzten.

von Joe G. (feinmechaniker) Benutzerseite


Angehängte Dateien:

Lesenswert?

Der Motor ist angekommen, zusammengebaut und läuft ;-)
Er hat derzeit einen Ankerwiderstand von 5.88 Ohm und eine 
Ankerinduktivität von 8.05 mH bei 100 Hz. Der Polmagnet kann sehr 
einfach entfernt und durch eine Feldspule ersetzt werden. Jetzt noch 
eine Gabellichtschranke für die Drehzahlmessung angebaut, dann kann es 
mit den Experimenten losgehen. Im ersten Versuch hat er bei 5 V ca. 1.4A 
im Leerlauf gezogen und ist ordentlich auf Drehzahl gekommen.

von Christoph M. (mchris)


Lesenswert?

>Der Motor ist angekommen, zusammengebaut und läuft ;-)
>Er hat derzeit einen Ankerwiderstand von 5.88 Ohm und eine
>Ankerinduktivität von 8.05 mH bei 100 Hz.

Ich bin sehr begeistert und freue mich, dass Du auch einen Motor hast 
und es jetzt einen "Zweitmotor" gibt :-)

Vom Rotordurchmesser scheint er etwas kleiner, aber die Roboterpole von 
der Fläche her größer. Die Induktivität ist mehr als doppelt so groß wie 
bei meinem Modell.
Ich bin gespannt, wie gut die Schleifkontakte funktionieren und ob 
Funken sichtbar sind.
Bei meinem Experiment mit dem L298 habe ich den mechanischen Kommutator 
nicht verwendet. Statt dessen habe ich die beiden Metallbleche, die die 
Lager bilden als Kontakte zum Rotor verwendet und kommutiere 
elektronisch.  Leider stellt sich heraus, dass der elektrischen Kontakt 
über die beiden Lager nicht so ganz stabil ist, wie man aus den 
Strommessungen des Rotors sieht (man sieht auch manchmal leichte Funken 
an den Lagern).
Im Experiment habe ich deshalb statt dessen die Feldspule kommutiert und 
den Rotor konstant bestromt, weil die Feldspule die stabilere 
elektrische Verbindung hat.

von Giovanni (sqrt_minus_eins)


Angehängte Dateien:

Lesenswert?

Auf Basis von dem Modell von Joe G.
1
eqs = [
2
    U ~ U0 + ΔU
3
    L*D(I) ~ U-I*R-k_E*I*omega
4
    J*D(omega) ~ k_M*I^2-T_R
5
    ]
6
7
Statespace ABCD
8
  input:  ΔU
9
  output: omega
Die Einfachheit des Modells bietet sich an um neue Werkzeuge 
(ModelingToolkit) zu testen.
Hier die "symbolische" Systemdarstellung mit Input/Output von oben.

: Bearbeitet durch User
von Christoph M. (mchris)


Angehängte Dateien:

Lesenswert?

>Hier die "symbolische" Systemdarstellung mit Input/Output von oben.

Tja, das schöne an der Theorie ist, dass sie sich elegant reduzieren 
lässt.
Ich kämpfe in der Praxis mit den Widrigkeiten der Messtechnik.
Wie man im obigen Diagramm sieht aus meinem L298 Aufbau sieht, scheint 
der Hallencoder bezüglich der Positionskurve sehr glatt zu sein (nach 
leichtem "Outlier Removal"). Nur beim Umschalten vom Beschleunigen auf's 
Bremsen gibt es eine größeren Sprung, der dem Umstand geschuldet zu sein 
scheint, dass die Kommunikation

PC<==>PiPico

eine kurze Unterbrechung des Datenstroms beim Senden des Bremskommandos 
erzeugt. Eigentlich wäre es am Besten, die gesamte Mess-State-Machine im 
Controller zu halten.
Im gefilterten Resultat meine ich Schwingungen zu sehen. Diese können 
tatsächlich von einer Schwingung des Rotors oder doch von 
Ungleichmäßigkeiten des Hallencoders kommen. Gefühlsmäßig würde ich sie 
dem Rotor zuordnen.

: Bearbeitet durch User
von Joe G. (feinmechaniker) Benutzerseite


Angehängte Dateien:

Lesenswert?

Giovanni schrieb:
> Hier die "symbolische" Systemdarstellung mit Input/Output von oben.

Da die Zustandsbeschreibung vielleicht nicht für jeden zum Handwerkszeug 
gehört ;-) hier etwas ausführlicher. Außerdem läßt sich gleich die 
Übertragungsfunktion berechnen, wenn man schon die Zustandsbeschreibung 
hat. Auf wundersame Weise stimmen auch die Zeitkonstanten wieder ;-)

Jetzt ist Christoph M mit einem Zustandsregler dran… Die Messungen sehen 
doch schon recht gut aus.

von Giovanni (sqrt_minus_eins)


Angehängte Dateien:

Lesenswert?

Wie schon gesagt. Ich verwende das Projekt nur um einen Testfall für 
Julia-Symbolic zu haben.

Hier noch ABCD für Output: Drehmoment, Drehzahl

Zusätzlich das Script für die Erzeugung des PNG als Beilage für 
Interessenten.

@Christoph M: Jetzt bist Du dran  ;-)

: Bearbeitet durch User
von Christoph M. (mchris)



Lesenswert?

Zur Auflockerung mal eine kleine Filmdoku :-)

Nikola Tesla - Magier der Elektrizität
( Terra-X, 43Min, Video verfügbar bis 03.07.2034 )
https://www.zdf.de/dokumentation/terra-x/nikola-tesla-magier-der-elektrizitaet-doku-100.html

Was ich beim Elektrotechnikstudium an einer Universität immer etwas 
schade fand, dass es im wesentlichen ein Studium der "mathematischen 
Modellbildung" war. Es wäre schön gewesen, wenn das Studium auch die 
Historie und der Entwicklungsgeschichte der Elektrotechnik und der 
Persönlichkeit und Lebenswege der maßgeblichen Personen beinhaltet 
hätte. Am Ende des Studiums konnte man fast der Ansicht sein, dass sich 
die Welt vollständig in mathematischen Formeln erfassen und berechnen 
lässt.
Besonders empfehlen kann ich in der Doku die Stelle, an der die 
unterschiedliche Herangehensweise von Nikola Tesla und Thomas Alva 
Edison erklärt wird und warum Edison seine Art der Entwicklung 
bevorzugt.

Peter D. schrieb
>Je nach Aufbau des Kollektors gibt es entweder Funken bei Unterbrechung
>oder periodische Kurzschlüsse. Daher findet man in der Praxis nur
>Motoren mit mindestens 3 Polen. Und mit ordentlichen Kohlen für einen
>unterbrechungsfreien Stromfluß. Diese Drahtbügel sind nicht geeignet.

Lustigerweise wird das Problem des Kommutators in der Doku behandelt und 
war zur damaligen Zeit ein Problem, was viele versucht hatten zu lösen. 
Tesla hat es dann als erster geschafft. (Das Bild zeigt den zugehörigen 
Screenshot aus der Doku). Ich dachte eigentlich, Tesla hätte nur das 
Prinzip des dreiphasigen Wechselstroms erfunden. Das Bild sieht aber 
eher nach einem zweiphasigen Motor aus.

: Bearbeitet durch User
von Christoph M. (mchris)


Lesenswert?

Joe schrieb
>Da die Zustandsbeschreibung vielleicht nicht für jeden zum Handwerkszeug
>gehört ;-) hier etwas ausführlicher.
https://www.mikrocontroller.net/attachment/640167/H_s_.pdf

Das PDF gefällt mir optisch sehr gut und es macht einen übersichtlichen 
Eindruck.
Das schöne an mathematischen Modellen ist ja, dass man sie auf einem 
Computer implementieren und die Berechnung mit einem Kommando laufen 
lassen kann. Es ist quasi ein vom Computer ausführbarer Algorithmus.
Ein Computer ist hierbei ein ziemlich unbestechliches Gerät, wenn es um 
die Vollständigkeit und syntaktischen Korrektheit einer 
Algorithmusvorgabe geht. Fehlt eine Variable, ist etwas ungenau 
formuliert, oder ist ein Parameter undefiniert, läuft ein Programm 
nicht.
In einigen wissenschaftlichen Veröffentlichen (leider nicht den 
meisten), ist es mittlerweile brauch, ans Formelwerk die 
Begriffserklärung anzuhängen. Im besten Falle passiert das tabellarisch 
(so dass man durch einen schnellen Blick in die Tabelle die Bedeutung 
der Parameter direkt ablesen kann) und im zweitbesten Fall im Fließtext 
(bei dem man dann mühselig die Bedeutung herausfieseln muss).

Ich fände es toll, wenn es zum PDF einen Anhang mit der vollständige 
Begriffserklärung gäbe ( ausreichend für die algorithmische Verarbeitung 
) und für die Studenten ein Hinweis, wie einige der Parameter praktisch 
messtechnisch zu ermitteln sind.
Was hältst Du davon?

von Christoph M. (mchris)


Angehängte Dateien:

Lesenswert?

>In einigen wissenschaftlichen Veröffentlichen (leider nicht den
>meisten), ist es mittlerweile brauch, ans Formelwerk die
>Begriffserklärung anzuhängen.

Um zu illustrieren, was ich damit meine, habe ich hier mal das 
Hodgkin-Huxley Modell für das Aktionspotential eines biologischen 
Neurons angehängt und die Werte der Eingangsparameter und die Kommentare 
entfernt.
( Ich vermute, dass der ein- oder andere sich mit Thema 
Neuronensimulation noch nicht befasst hat :-) )

Nichtsdestotrotz sei die Aufgabe:
1. Finde die Werte für die Parameter, um das Modell lauffähig zu 
bekommen.
2. Finde für diese Parameter die Grenze für die Länge des 
Eingangspulses, bei dem das Aktionspotential gerade so triggert
3. Ändere die Leitfähigkeit des Natriumkanals so, dass das 
Aktionspotential wieder getriggert wird.

: Bearbeitet durch User
von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Christoph, ich verstehe schon was du meinst. Ich hatte die Diskussion 
hier im Forum mehr als Austausch von Interessenten gesehen, die genau 
wissen, was sie machen und nicht als Skript für Lernende. In diesem 
Zusammenhang hatte ich die Zustandsgleichung mit den bekannten Matrizen 
A,B,C und D von Giovanni in eine Form gebracht, die diese Matrizen in 
ihren Gleichungen erklärt.

Ich bin mir nicht sicher, ob eine ausführlichere Form hier auf Anklang 
stößt. Dazu existiert ja ausreichend Literatur für die Regelungstechnik. 
Wenn meine Gabellichtschranke da ist, warte noch auf die Lieferung, 
werde ich mein Motormodell mal statisch und dynamisch vermessen. In 
diesem Zusammenhang kann ich ja die komplette Kette, also Aufnahme der 
Messwerte, Herleitung der Gleichungen, Zuordnung zum Modell, Überprüfung 
in der Simulation, etwas ausführlicher aufschreiben. Am Beispiel ist es 
oft einfacher als nur in abstrakten mathematischen Beziehungen.

von Christoph M. (mchris)


Lesenswert?

>Ich bin mir nicht sicher, ob eine ausführlichere Form hier auf Anklang
>stößt. Dazu existiert ja ausreichend Literatur für die Regelungstechnik.

Für mich wäre es super. Es ist halt wie in meinem Beispiel zum Neuron: 
Das Hodgkin-Huxley Aktonspotential ist wirklich ausführlich in der 
Literatur breit getreten. Ich denke, meine Aufgabenstellung oben würde 
sich für jemanden ohne Vorkenntnisse und Deinem oder Giovannis Niveau 
mit etwas Einlesen in 4-16 Stunden lösen. Wenn ich den Code mit 
Kommentaren und Startparametern gepostet hätte, würde diese Zeit auf 
30-60 Minuten schrumpfen.

> Ich hatte die Diskussion
> hier im Forum mehr als Austausch von Interessenten gesehen, die genau
> wissen, was sie machen und nicht als Skript für Lernende.

Damit hast Du schon recht. Bei mir sind die Kenntnisse zur 
Zustandsregelung aber etwas angestaubt (sagen wir, es ist 30 Jahre her 
..), deshalb muss ich Aufwand betreiben, um das Problem zu lösen (was 
ich hoffentlich tun werde, wenn mein Messaufbau das hergibt, was er 
soll).

Aber lass uns mal zurück zu den interessanten Fragestellungen kehren und 
diese Diskussion etwas beiseite schieben.

: Bearbeitet durch User
von Christoph M. (mchris)


Angehängte Dateien:

Lesenswert?

Hier die neuesten Messungen.
Das Encoder Interface ist jetzt auf I2C umgestellt und nicht mehr 
analog. Dadurch fallen die Störungen des ADC weg und man erhält ein 
wirklich sauberes Signal. Der Motor läuft mit den eingestellten 
Parameter rückwärts und man sieht schön das Einschwingen des Rotors beim 
Anlauf.
Ich habe jetzt etwas Entlötlitze, die mit schwachen Feder gespannt sind, 
als Rotorschleifringe verwendet. Leider entsteht dadurch deutlich mehr 
Reibung und die Verzögerungskurve ist relativ steil im Vergleich zum 
Aufbau vorher. Die Kommutierung findet elektronisch statt und es wird 
wieder der Rotor kommutiert.
Ich habe noch mal die Widerstände mit Vierleitermessung vermessen und 
sie sollten jetzt sehr genau sein, wobei der Rotorwiderstand durch die 
Schleifringe nicht ganz so stabil wie der Feldspulenwidertand ist.
Die Induktivitäten habe ich auch noch mal neu vermessen und man sieht 
schön die Abhängigkeit vom Rotorwinkel mit einer Schwankung von ca. 14% 
( Die Abhängikeit der Induktivität vom Roboterwinkel wir bei BLDC 
Motoren über hochfrequenzmessungen bisweilen zur Bestimmung der 
Absolutposition verwendet).
1
commtation strategy: rotor commutation
2
3
measurement setup:
4
210 PWM field (max.255)
5
255 PWM rotor (max.255)
6
1500 LSB commutation angle (span 4095)
7
1s tstart
8
4s taccel
9
6s tdecel
10
11
coil resistance measrements:
12
coil wires diameter 0.35mm
13
rotor coil resistance path: 
14
2.1 Ohm
15
field coil resistance path:
16
1.65 Ohm
17
( four wire resistance measurement )
18
19
Inductance measurement device: Bm4070 Digital LCD LCR Meter
20
21
fiel inductance
22
1024 LSB 90° : 2.96mH
23
691 LSB 61°  : 2.99mH
24
25
rotor inductance
26
1200 LSB 105°: 2.91mH
27
410 LSB 36°  : 3.33mH
28
29
calculate rotor inductance tolerance
30
>> percent=(3.33-2.91)/2.91*100
31
percent =  14.433

von Giovanni (sqrt_minus_eins)


Lesenswert?

Joe G. schrieb:
> Christoph, ich verstehe schon was du meinst. Ich hatte die Diskussion
> hier im Forum mehr als Austausch von Interessenten gesehen, die genau
> wissen, was sie machen und nicht als Skript für Lernende. In diesem
> Zusammenhang hatte ich die Zustandsgleichung mit den bekannten Matrizen
> A,B,C und D von Giovanni in eine Form gebracht, die diese Matrizen in
> ihren Gleichungen erklärt.

Stimme 100% zu.
In diesem Beitrag (Bastelmotor) schätzte ich vor Allem die Umgangsformen 
und die unterschiedlichen fachlichen Zugänge zu einem an sich simplem 
Thema.
Ich sehe es eher sportlich. Der Eine macht was, ein Anderer beschäftigt 
sich auch damit und bringt seine Version in die Diskussion, und so gibt 
es eine gewisse Dynamik.

Hodgkin-Huxley Modell: Als menschliches Wesen bin ich jede ms mit dem 
Thema konfrontiert. Simulation (und das fachliche Verständnis) ist mir 
komplett neu.

Habe kurz in den Python-Code reingeschaut. Homemade Euler geht gar 
nicht.

Frage: Welche Parameter soll ich für den Versuch wählen: Tintenfisch 
oder meine.  ;-)

Muss mich jetzt auf das Finale vorbereiten.

: Bearbeitet durch User
von Christoph M. (mchris)


Lesenswert?

Giovanni
>Frage: Welche Parameter soll ich für den Versuch wählen: Tintenfisch
>oder meine.  ;-)

Oh, das ist jetzt ein "Seitenthema", zwar hochspannend, aber nicht ganz 
im Bereich der Mechatronik, eher Biochemie.
Aber wenn Du Dich damit beschäftigen magst: Es gibt ziemlich 
interessante Fragestellungen bei dem Thema. Gestern beim rumspielen mit 
dem Hodgkin-Huxley Modell habe ich festgestellt, das wenn man den 
Natriumkanal durchlässiger macht, das Neuron selbständig zu feuern 
beginnt, was wohl auch einigen realen Neuronen entspricht. Sehr viel 
weitergehende Fragen sind die nach der maximalen Feuerrate und warum ein 
Mensch trotz dieser Langsamkeit Richtungshören kann, obwohl dort eine 
Auflösung im Mikrosekundenbereich benötigt wird.
Aber wie gesagt, ein sehr endloses, spannendes, interessantes Feld was 
aber nicht ganz in dieses Motorenthema passt.

von Christoph M. (mchris)


Angehängte Dateien:

Lesenswert?

Im Moment versuche ich gerade, die Schaltung der letzten Messung in 
LtSpice zu simulieren.

von Christoph M. (mchris)



Lesenswert?

Bei den Messungen ist mir aufgefallen, dass die Feldspule auf die 
Rotorspule überzusprechen scheint.
Eigentlich ist es ja logisch: Die beiden Spulen bilden einen 
Transformator, bei dem die Spulen am besten gekoppelt sind, wenn der 
Rotor bei 0° oder bei 180° steht. Am schlechtesten sind sie gekoppelt, 
wenn der Rotor bei 90° oder 270° steht.
Um das zu messen, habe ich das Oszi als Bodeplotter verwendet. Dabei ist 
der Oszi-interne Signalgenerator über einen 100 Ohm Widerstand an die 
Feldspule angeschlossen (siehe LtSpice Simulation).
Es wäre interessant, das Messergebnis und die Simulation zu diskutieren.

: Bearbeitet durch User
von Jörg K. (joergk)


Lesenswert?

Christoph M. schrieb:
> Bei den Messungen ist mir aufgefallen, dass die Feldspule auf die
> Rotorspule überzusprechen scheint.

Nennt sich Ankerrückwirkung und wird bei großen Maschinen durch 
Kompensationswicklungen bekämpft. Im ersten Semester Elektrische 
Maschinen wird das üblicherweise ignoriert und das dort verwendete 
Modell der Gleichstrommaschine berücksichtigt diesen Effekt auch nicht. 
Dann wird es nämlich übelst kompliziert und auf Grund der 
Magnetisierungskurve des Eisens Nichteinhaltung.

Jörg

von Christoph M. (mchris)


Angehängte Dateien:

Lesenswert?

Jörg K.
>Dann wird es nämlich übelst kompliziert und auf Grund der
>Magnetisierungskurve des Eisens Nichteinhaltung.

Ja, das glaube ich. Man merkt schon bei der Messung der Bodeplots, dass 
bei höheren Frequenzen die Übertragungscharakteristik schwierig zu 
modellieren wird und ein einfaches Transformatormodell mit 
Spulenmodellen nur aus Widerständen und Induktivitäten nicht mehr 
ausreichen.
Eine offene Frage ist auch, wie homogen das Magnetfeld ist und wie 
homogen die Kraftwirkung. Ich habe den Eindruck, dass es stark vom 
Luftspalt abhängt und man sieht im Bild, dass ab 45° der Luftspalt dann 
deutlich größer wird.

von Joe G. (feinmechaniker) Benutzerseite


Lesenswert?

Die mechanische Konfiguration und damit Luftspalt und Induktivitäten 
bzw. Kopplungen zwischen den Induktivitäten ändern sich ja dynamisch mit 
der Drehfrequenz.
Für die Parameterbestimmung sind ja Experimente wie Leerlauf oder 
Kurzschluss gut geeignet. In diesen Fällen liegt ein statischer Zustand 
vor, so dass für die oben genannten Parameter ein Mittelwert ermittelt 
wird. Dieser fließt dann in das einfache Modell ein.
Die Frage sollte ja immer lauten: Was möchte ich mit einem Modell 
machen? Für eine Regelung, auch Zustandsregelung wird das Modell 
ausreichend sein, Für eine Optimierung des Wirkungsgrades oder 
Verminderung des Streufeldes sicherlich nicht.

von Christoph M. (mchris)


Angehängte Dateien:

Lesenswert?

Joe G.
>Die Frage sollte ja immer lauten: Was möchte ich mit einem Modell
>machen? Für eine Regelung, auch Zustandsregelung wird das Modell
>ausreichend sein, Für eine Optimierung des Wirkungsgrades oder
>Verminderung des Streufeldes sicherlich nicht.

An dem Punkt hast Du sicherlich recht. Wahrscheinlich bin ich schon 
ziemlich vom ursprünglichen Ziel abgedriftet und verrenne mich ein wenig 
in Details.

Heute habe ich mich ein wenig damit beschäftigt, wie ich die Feldspule 
vermessen könnte. Dazu habe ich das Oszilloskop mit dem eingebauten 
Signalgenerator verwendet und ein paar Frequenzen manuell angefahren.
Ein manueller Fit bei 250Hz bring im Ergebnis eine Spuleninduktivität 
von 4.2mH und bei 1KHz 3.2mH.

Edit: Der Rotor stand bei ca. -20°

: Bearbeitet durch User
von Jörg K. (joergk)


Lesenswert?

Christoph M. schrieb:
> Eine offene Frage ist auch, wie homogen das Magnetfeld ist und wie
> homogen die Kraftwirkung. Ich habe den Eindruck, dass es stark vom
> Luftspalt abhängt und man sieht im Bild, dass ab 45° der Luftspalt dann
> deutlich größer wird

Leider nicht nur vom Luftspalt: Das Läuferfeld verbiegt das Ständerfeld 
an den Polen, so daß nicht mehr überall die gleiche Flußdichte herrscht. 
Das bekämpft man üblicherweise mit Wendepolwicklungen, die vom 
Ankerstrom durchflossen wird.

Ich finde Eure Arbeit hochinteressant. Sieht man doch, daß der 
eigentlich (zumindest bei Großmaschinen) ausgestorbene GS-Motor ein fast 
unerschöpfliches Feld der Untersuchung darstellt.

Von mir ein "Daumen hoch" und macht weiter. Ich lese gespannt mit.

Jörg

von Christoph M. (mchris)


Angehängte Dateien:

Lesenswert?

>Ich finde Eure Arbeit hochinteressant.

Das freut mich sehr, wo ich doch langsam das Gefühl bekomme, wieder mal 
ein neues Thema anfangen zu müssen.
Früher war im Mikrocontrollernetz eine Anzeige unter den Files, wie oft 
sie heruntergeladen wurden. Daran konnte man sehen, ob Interesse an 
einem Thema besteht. Leider gibt es das nicht mehr, sodass man nicht 
mehr sehen kann, ob sich überhaupt noch jemand für so ein Thema 
interessiert.

> Sieht man doch, daß der
> eigentlich (zumindest bei Großmaschinen) ausgestorbene GS-Motor ein fast
> unerschöpfliches Feld der Untersuchung darstellt.


Durch das Encoderrad fühlt sich der Motor fast wie eine Großmaschine :-)

von Christoph M. (mchris)


Angehängte Dateien:

Lesenswert?

Hier ein Versuch, die Winkelabhängigkeit des Übersprechens zwischen 
Feld- und Rotorspule zu messen.
Zu diesem Zweck wurde die Feldspule mit 1kHz Rechteck vom L298 bestromt 
(PWM über ENA pin, also "Fast Decay"). Die Rotorspule wurde 
kurzgeschlossen.
Es wurden zwei Umdrehungen von Hand gemacht. Die Messungen scheinen 
nicht so ganz stabil, wie man aus den zwei unterschiedlichen Umdrehungen 
sieht. Die Messungen würde ich so interpretieren, dass die Kopplung bei 
45° und 225 am stärksten ist. Das ist etwas seltsam, da ich das eher bei 
0° und 180° erwarten würde. Vielleicht hat es etwas mit der Konstruktion 
des Rotors zu tun, der im Gegensatz zum Stator aus 2 Blechen mit jeweils 
1mm Dicke besteht. Außerdem sind die Messungen leicht asymmetrisch, was 
aber daran liegen könnte, dass der Rotor leicht "eiert" und damit die 
Abstände der Luftspalte variieren. Das "eiern" kommt durch die nicht 
ganz zentrischen Bohren in der Holzachse des Rotors.

von Giovanni (sqrt_minus_eins)


Angehängte Dateien:

Lesenswert?

Christoph M. schrieb:
> nichtsdestotrotz sei die Aufgabe:
> 1. Finde die Werte für die Parameter, um das Modell lauffähig zu
> bekommen.
> 2. Finde für diese Parameter die Grenze für die Länge des
> Eingangspulses, bei dem das Aktionspotential gerade so triggert
> 3. Ändere die Leitfähigkeit des Natriumkanals so, dass das
> Aktionspotential wieder getriggert wird.

bin etwas verspätet mit meiner Antwort.
Punkt 1) habe Daten im Netz gefunden. siehe Bild & Code
Punkt 2) hier habe ich die Aufgabe nicht verstanden. Dazu wäre es 
notwendig fachlich in das Thema einzusteigen.

Zurück zum Motor:
Die Kopplung ist schon mal interessant. Die unerwarteten Änderungen mit 
dem Winkel kommen vom "variablen Luftspalt" - überrascht mich nicht. 
Sowohl der stehende als auch der rotierende Teil sind nicht wirklich 
perfekt.

Wie von Joe G. schon vorgeschlagen würde ich einen Leerlauf + einen 
Kurzschlussversuch machen. ABER nicht mit 1kHz sondern mit 50Hz (die hat 
jeder zu Hause).
LL: U_field, I_field, U_rotor
KS: U_field, I_field, I_rotor

Mit unterschiedlichen Positionen.

Dann noch LL mit Winkel = 0°  und unterschiedlicher Amplitude 
(LL-Kennlinie/Sättigung).

zu Rechteck 1kHz: Hier gibt es dann noch Stromverdrängung, Verluste im 
Eisen, kapazitive Kopplungen zwischen den Windungen , ...

: Bearbeitet durch User
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.