Um die wütende Mathematik von Oleg Stepanovich Kozlovs Vorlesungen " Kontrolle in technischen Systemen " zu verwässern , veröffentlichen wir hier ein Beispiel für die praktische Anwendung des Wissens aus diesen Vorlesungen.
In diesem Artikel beschreibt Alexander Shchekaturov, ein Schüler von Oleg Stepanovich, die Erstellung eines Modells eines Oktokopters, der gleichzeitig die Geheimnisse enthüllt und die Techniken des Arbeitens in der Umgebung der strukturellen Modellierung physikalischer Systeme demonstriert.
Dieser Artikel enthält eine Beschreibung eines logisch abgeschlossenen, aber nur einen Teil der gesamten Modellierungsarbeit. Dieser Teil reicht jedoch für eine Einführung in das Thema der dynamischen Modellierung eines UAV vom Typ Drohne aus.
, , : , . ( ), , , — , , , / , , .. .., — .
1
: 10…25 , 4, 6 8- (), , , 8, 12 16 T-motors Antigravity 6007 KV320 ( 2 50% ). .
: , , .

2
, - . , — ( , , ). [1] [2].
, ( ), , :
- ( ) , , – () . , - . ( , 0), :
FM(t)=CT⋅ω2(t),MM(t)=CQ⋅ω2(t),
, ( ):
CT=2.02268⋅10−4H⋅c2,
MM≈0 ⋅⋅2 — ,
ω(t) – , /. - () , , , . (4 , 4 ) . , - – , . , F.M.(t) [], , , . , , ( ) .
- : ) , ) , . I B ( inertial – body – ). : xich-, yich- , zich-, xB. — , yB.- , zB.- (. ):
, B :
→rM.1=(l1,0,0)T., →rM.2=1√2(l2,l2,0)T.→rM.3=(0,l1,0)T., →rM.4=1√2(- -l2,l2,0)T.→rM.fünf=(l1,0,0)T., →rM.6=1√2(- -l2,- -l2,0)T.→rM.7=(0,- -l1,0)T., →rM.8=1√2(l2,- -l2,0)T.
l1 – 1, 3, 4 5- , l2 – 2, 4, 6 8- .
( ) , , ( 1…5 , – ). γ, :
→eM.1=(0,- -sichn(γ),- -cÖs(γ))T., →eM.2=(- -sichn(γ)√2,sichn(γ)√2,- -cÖs(γ))T.,→eM.3=(sichn(γ),0,- -cÖs(γ))T., →eM.4=(- -sichn(γ)√2,- -sichn(γ)√2,- -cÖs(γ))T.,→eM.fünf=(0,sichn(γ),- -cÖs(γ))T., →eM.6=(sichn(γ)√2,- -sichn(γ)√2,- -cÖs(γ))T.,→eM.7=(- -sichn(γ),0,- -cÖs(γ))T., →eM.8=(sichn(γ)√2,sichn(γ)√2,- -cÖs(γ))T....
(, B, ) , . , , .
[1]. - , . :
4.1) . zich. – , . ( , , ).
4.2) – 8, , .
4.3) (/ ) – . , ( ). – , « » ( ).
4.4) – . .
- , :
5.1) . , - – . .
5.2) – , .
5.3) – , , .
5.4) .
5.5) – .
5.6) Momente aus den Schubkräften der VMG. Da sich die Propeller nicht im Schwerpunkt des Hubschraubers befinden, erzeugt jeder Propeller sein eigenes Drehmoment. Dies ist vielleicht der Hauptfaktor, der die Ausrichtung der Drohne im Weltraum bestimmt.
3 Nichtlineare Gleichungen der Oktokopterdynamik
Unter Berücksichtigung der getroffenen Annahmen und der Tatsache, dass der Copter als ein einziger starrer Körper modelliert wird, ist die Grundlage des Copter-Dynamikmodells sehr einfach - dies ist Newtons zweites Gesetz, das in Vektorform so aussieht, dass es nur zwei einfache Gleichungen gibt:
d→p(t)dt=→F.(t),d→L.(t)dt=→M.(t),
Wo →p(t))=m⋅→v(t)Ist der Impuls des Hubschraubers, und →L.(t)=ich(t)⋅→ω(t) - der Drehimpuls des Hubschraubers, m - seine Masse, ich(t) - Trägheitstensor (linearer Operator des Trägheitsmoments). →F.(t) und →M.(t) die Essenz der Summe aller Kräfte und aller Momente, die auf den Hubschrauber wirken.
, , , ( ). - , - , , , , . – , , B, , ( ) . [1], .
Wenn wir die Werte für den Impuls und den Drehimpuls des Copters in die gegebenen Gleichungen des zweiten Newtonschen Gesetzes einsetzen, erhalten wir für das Trägheitskoordinatensystem:
d→vich(t)dt=1m→F.ich(t),d→ωich(t)dt=ich- -1(→M.ich(t)- -dichichdt⋅→ωich)...
In diesen Gleichungen sind die rechten Seiten sehr mathematisch komplex, und die Dynamikgleichungen im zugehörigen Koordinatensystem B (wo die rechten Seiten einfacher sind) können nicht so einfach erhalten werden, da sich das dem Copter zugeordnete Koordinatensystem dreht.
– . , – . . : φ (roll), θ (pitch) / ψ (yaw), I B R.ichB. R.B.ich=R.T.ichB., I, B, , , : →F.ich(t)=R.B.ich→F.B.(t), →F.B.(t)=R.ichB.→F.ich(t).
, : I , , B. , , →F.(t) ( ), . – . – , , . , , . .
- , , , B. , →ωB.(t) →vB.(t), ( – ) I , , .
I B, cos() = c() sin() = s():
R.ichB.==(c(θ)⋅s(ψ)c(θ)⋅s(ψ)- -s(θ)s(φ)⋅s(θ)⋅c(ψ)- -c(φ)⋅s(ψ)s(φ)⋅s(θ)⋅s(ψ)+c(φ)⋅C.(ψ)s(φ)⋅c(θ)c(φ)⋅s(θ)⋅c(ψ)+s(φ)⋅s(ψ)s(φ)⋅s(θ)⋅s(ψ)- -s(φ)⋅c(ψ)c(φ)⋅c(θ))
Beachten Sie erneut, dass diese Matrix zu jedem Zeitpunkt offensichtlich anders sein wird Die Orientierungswinkel des Copters ändern sich. Dies sind jedoch nur algebraische Berechnungen ohne Differentialgleichungen. Die Matrix selbst ist keine Konstante und hat eine Zeitableitung.
Durch die Methode der Strukturmodellierung implementiert, sieht die Matrix in der SimInTech-Umgebung wie in Abbildung 1 dargestellt aus.

Abbildung 1. Rotationsmatrix von System I zu Koordinatensystem B.
Dann können Sie für den Vektor der linearen Geschwindigkeit schreiben:
→vB.(t)=R.ichB.⋅→vich(t),
→L.B.(t)=R.ichB.⋅→L.ich(t)...
d→vB.dt=- -→ωB.(t)×→vB.(t)+1m→F.B.(t),
und für die zweite Gleichung unter Berücksichtigung dessen →L.B.(t)=ichB.⋅→ωB.(t),
Und da in einem rotierenden Koordinatensystem , das gebundene Trägheitstensor eine Konstante ist und dessen zeitliche Ableitung gleich Null ist , undd→L.B.(t)dt=ichB.⋅d→ωB.(t)dt wir bekommen:
d→ωB.dt=ich- -1B.(→M.B.(t)- -→ωB.(t)×(ichB.⋅→ωB.(t)))...
Insgesamt wurde die Aufzeichnung II des Newtonschen Gesetzes für den rotierenden Rahmen B im Vergleich zu den ursprünglichen Gleichungen durch zwei Vektorprodukte ergänzt.
( 6 ) – . 6 – . 6 , SimInTech Simulink Scilab .
( B), I, , , , .
Das einzige, was wir mit den Gleichungen noch nicht gemacht haben, ist, dass wir keine Ausdrücke für die Kräfte und Momente geschrieben haben, die auf den Hubschrauber wirken. Lassen Sie es uns unten im B- Koordinatensystem tun . Gemäß den Annahmen berücksichtigen und bezeichnen wir durch Indizes: M - die Arbeit der Motoren, nur in Bezug auf die erzeugte Schubkraft und die daraus resultierenden Momente, D - die Kraft des Luftwiderstands (zusammen mit dem Wind), O - äußere Störung, im Allgemeinen Null, und vom Benutzer willkürlich die Schwerkraft eingestellt - Es entsteht kein Drehmoment der Kräfte:
→F.B.(t)=→F.M.(t)+→F.D.(t)+→F.Ö(t)+m⋅G⋅R.ichB.⋅→eichZ.→M.B.(t)=→M.M.(t)+→M.D.(t)+→M.Ö(t)
Die Schwerkraft im verknüpften Koordinatensystem "dreht" sich basierend auf der Ausrichtung des Flugzeugs.
Lassen Sie uns genauer schreiben, was die Begriffe bedeuten:
→F.M.(t)=C.T.⋅ω2M.1(t)⋅→eM.1+C.T.⋅ω2M.2(t)⋅→eM.2+C.T.⋅ω2M.3(t)⋅→eM.3++C.T.⋅ω2M.4(t)⋅→eM.4+C.T.⋅ω2M.fünf(t)⋅→eM.fünf+C.T.⋅ω2M.6(t)⋅→eM.6++C.T.⋅ω2M.7(t)⋅→eM.7+C.T.⋅ω2M.8(t)⋅→eM.8
Die Winkeldrehgeschwindigkeiten des VMG, nicht des Copters, sind hier bereits erwähnt. Denken Sie daran, dass die Einheitsvektoren der Zugkräfte für das Koordinatensystem B geschrieben sind und dort Konstanten sind - es ist offensichtlich, dass sie einmal berechnet werden können, der Gesamtkoeffizient hier aus der Klammer genommen wird und die Berechnungen stark vereinfacht werden können. Wenn wir die Gleichungen der Dynamik in System I aufschreiben würden , würde dieser Ausdruck über 8 weitere Multiplikationen mit der Rotationsmatrix jedes Ortes wachsen und dies müsste bei jedem Schritt der Berechnung berücksichtigt werden.
Luftwiderstandskraft (bei Windstille):
→F.D.=- -0,5ρ⋅C.D.⋅(EINyz⋅vx⋅|vx|EINxz⋅vy⋅|vy|EINxy⋅vz⋅|vz|)
Externe Störung - Null, auf Wunsch des Benutzers kann er diesen oder jenen Wert später, vor der Berechnung oder während der Simulation einstellen.
Wir schreiben den Moment der Schubkräfte der Motoren wie folgt:
→M.M.(t)=→rM.1×→eM.1⋅C.T.⋅ω2M.1(t)+→rM.2×→eM.2⋅C.T.⋅ω2M.2(t)++→rM.3×→eM.3⋅C.T.⋅ω2M.3(t)+→rM.4×→eM.4⋅C.T.⋅ω2M.4(t)++→rM.fünf×→eM.fünf⋅C.T.⋅ω2M.fünf(t)+→rM.6×→eM.6⋅C.T.⋅ω2M.6(t)+→rM.7×→eM.7⋅C.T.⋅ω2M.7(t)+→rM.8×→eM.8⋅C.T.⋅ω2M.8(t)
Luftwiderstandsmoment (weitere Einzelheiten siehe [1]):
→M.D.=- -0,5ρ⋅C.D.⋅(EINyz⋅vx⋅|vx|⋅lxEINxz⋅vy⋅|vy|⋅ly8EINxy⋅vz⋅|vz|⋅lz)
Beachten Sie noch einmal, dass die Berechnung der Präzession und der reaktiven Momente der HMG in diesem Artikel der Kürze halber weggelassen wird.
Um Fehler beim Übergang von Vektor- zu Skalargleichungen zu vermeiden, die auf die Achsen geschrieben sind, ist es einfacher, das Paket MathCAD oder Maple zu nutzen, bei dem die meisten Konvertierungen in symbolischer Form automatisiert durchgeführt werden können, und die erforderlichen 6 Gleichungen der Dynamik zu erhalten, die von den Achsen des sich bewegenden Koordinatensystems Bed und aufgezeichnet werden .
In der kompaktesten Form sehen die erhaltenen und gelösten Gleichungen der Dynamik folgendermaßen aus:
d→vB.dt=1m(→F.M.(t)+→F.D.(t)+→F.Ö(t))+GR.ichB.→eichz- -→ωB.(t)×→vB.(t),d→ωB.dt=ich- -1B.(→M.M.(t)+→M.D.(t)- -→ωB.(t)×(ichB.⋅→ωB.(t))...
Indem man sie integriert und die Werte der Geschwindigkeiten im B-System erhält, kann man die Geschwindigkeits- und Orientierungswinkel im Trägheitskoordinatensystem I berechnen:
→vich(t)=R.B.ich⋅→vB.(t),(˙φ˙θ˙ψ)=W.B.ich⋅→ωB.(t)...
Über die Transformationsmatrix von der Winkelgeschwindigkeit des Copters zur Drehgeschwindigkeit um die Eulerwinkel W.B.ich siehe Details in [1].
3
– SimInTech. , , – . , , – . , , .
, – B 2 , ( ) 6 , 6 : . 6DOF , .. . , 6 , 6 ( ). . , ( ) – . , 12 . , , 18 . , 12 6 ( ) .
3.1
– , «», , . – 6- , . 2.
2 «» , 6+3+3 «». , ( ) – einB.x,einB.y,einB.z,ωB.x,ωB.y,ωB.z, – (, ).
I ( B ) , ,
, «» , ( ) I, B W.B.ich. .

2.
« » « » – , 1 .
– ( a = F/m), x, 3:

3.
, .. - , – . , SimInTech ( , ).
W(B->I) B , . 4 [1] .

4. W.B.ich
3.2
, 2 xB.,yB.,zB.und zeichnen Sie das Ergebnis in die SimInTech-Schaltung. Ohne die Berechnungen (der Leser kann sie unabhängig auf einem Blatt Papier oder mit Hilfe einer symbolischen mathematischen Software ausführen) präsentieren wir die endgültige Form der Gleichungen. Aufgrund der Umständlichkeit geben wir auf der rechten Seite Begriffe an.
Zugkraft der Propellergruppen →F.M.(t)::
F.M.x(t)=1√2(- -F.M.2(t)- -F.M.4(t)+F.M.6(t)+F.M.8(t))⋅sichn(γ)++(F.M.3(t)- -F.M.7(t))⋅sichn(γ),F.M.beim(t)=1√2(F.M.2(t)- -F.M.4(t)- -F.M.6(t)+F.M.8(t))⋅sichn(γ)++(F.M.fünf(t)- -F.M.1(t))⋅sichn(γ),F.M.z(t)=(F.M.1(t)+F.M.2(t)+F.M.3(t)+F.M.4(t)++F.M.fünf(t)+F.M.6(t)+F.M.8(t)+F.M.8(t))⋅cÖs(γ),
Wo F.M.ich(t) Ist die Zugkraft des i-ten VMG zum aktuellen Zeitpunkt.
Luftwiderstandskraft →F.D.(t) Bei Windstille - die oben angegebenen Formeln sind die Projektionen gleich:
Die Schwerkraft, in der Projektion auf die Achse des sich bewegenden Koordinatensystems, der Begriff G⋅R.ichB.⋅→eichz wird offensichtlich gleich sein:
G⋅R.ichB.⋅→eichz=(- -sichn(θ)sichn(ϕ)⋅cÖs(θ)cÖs(ϕ)⋅cÖs(θ))
– :
- -→ωB.(t)×→vB.(t)=(vB.z⋅ωB.y- -vB.y⋅ωB.zvB.x⋅ωB.z- -vB.z⋅ωB.xvB.y⋅ωB.x- -vB.x⋅ωB.y)...
, SimInTech, , , 5, 6 7 ( xB., ):

5. xB..

6. xB..

7. xB..
, ( 2 – ). . , – :
→M.m(t)+→M.D.(t)- -→ωB.(t)×(ichB.⋅→ωB.)
Die Summe der Momente der Zugkräfte aller VMGs:
M.M.x(t)=[l2√2(- -F.M.2(t)- -F.M.4(t)+F.M.6(t)+F.M.8(t))++l1(F.M.7(t)- -F.M.3(t))]]⋅cÖs(γ),M.M.beim(t)=[l2√2(F.M.2(t)- -F.M.4(t)- -F.M.6(t)+F.M.8(t))++l1(F.M.1(t)- -F.M.fünf(t))]]⋅cÖs(γ),M.M.z(t)=[l2(F.M.2(t)+F.M.4(t)+F.M.6(t)+F.M.8(t))+- -l1(F.M.1(t)+F.M.3(t)+F.M.fünf(t)+F.M.7(t))]]⋅sichn(γ)...
Luftwiderstandsmoment (bei Windstille):
M.D.x(t)=- -0,5⋅ρ⋅C.D.⋅EINyz⋅ωB.x⋅|ωB.x|⋅lx,M.D.beim(t)=- -0,5⋅ρ⋅C.D.⋅EINxz⋅ωB.y⋅|ωB.y|⋅ly,M.D.z(t)=- -0,5⋅ρ⋅C.D.⋅8⋅EINxy⋅⋅ωB.z⋅|ωB.z|⋅lz...
Das Vektorprodukt der Winkelgeschwindigkeit und das Produkt des Trägheitstensors und der Winkelgeschwindigkeit:
- -→ωB.(t)×(ichB.⋅→ωB.(t))=((ichyy- -ichzz)⋅ωB.y⋅ωB.z(ichzz- -ichxx)⋅ωB.x⋅ωB.z(ichxx- -ichyy)⋅ωB.x⋅ωB.y)...
Nachdem wir diese Terme in die Differentialgleichung für die Winkelgeschwindigkeit eingesetzt und die in der SimInTech-Umgebung erhaltene implementiert haben, erhalten wir die folgenden Strukturdiagramme:

Abbildung 8. Winkelbeschleunigung des Copters um die Achse xB....

Abbildung 9. Moment der Schubkräfte von VMG um die Achse xB....

Abbildung 10. Widerstandskraft der Luft beim Drehen xB....
3.3 Gleichungssystem für die Dynamik von Oktokoptern in struktureller Form
, , ( 11). , , . (, , ), 6+ , , , . 12.

11. .

12. , .
, SimInTech, .
( , ), ( ) . , // - — , .
, () – B I, – I ( B .. – ).
, .
- Design, Modeling and Control of an Octocopter, Oscar Oscarson, Royal Institute of Technology 2015
- Development, Modelling and Control of a Multirotor Vehicle, Markus Mikkelsen, Umeå University 2015.