Gelöste Aufgaben/JUMP/E-Motor and Drive-Train: Unterschied zwischen den Versionen

Aus numpedia
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Zeile 119: Zeile 119:




<!------------------------------------------------------------------------->The Virtual Work of d'Alembert forces, motor torque ''M<sub>M</sub>'' and wheel torque ''M<sub>W</sub>'' is
<!------------------------------------------------------------------------->


<math>\begin{array}{ll}
{{MyCodeBlock
|title=Mechanical Components
|text=
The Virtual Work of d'Alembert forces, motor torque ''M<sub>M</sub>'' and wheel torque ''M<sub>W</sub>'' is
 
::<math>\begin{array}{ll}
\delta W &= - J_M \cdot \ddot{\psi}_M(t)\cdot \delta \psi_M  
\delta W &= - J_M \cdot \ddot{\psi}_M(t)\cdot \delta \psi_M  
  + M_M \cdot \left(\psi_M + \phi(t) \right)
  + M_M \cdot \left(\psi_M + \phi(t) \right)
Zeile 130: Zeile 135:
Since the gearbox is built into the car, the wheel-side relative gear-box-angle is
Since the gearbox is built into the car, the wheel-side relative gear-box-angle is


<math>\tilde{\psi}_{W} = \psi_W(t) - \phi(t)</math>
::<math>\tilde{\psi}_{W} = \psi_W(t) - \phi(t)</math>


and on the motor-side
and on the motor-side


<math>\tilde{\psi}_{M} = \psi_M(t) + \phi(t)</math>.
::<math>\tilde{\psi}_{M} = \psi_M(t) + \phi(t)</math>.


With the gear transmission ratio
With the gear transmission ratio


<math>n_G = \frac{\displaystyle \tilde{\psi}_M}{\displaystyle  \tilde{\psi}_W}</math>
::<math>n_G = \frac{\displaystyle \tilde{\psi}_M}{\displaystyle  \tilde{\psi}_W}</math>


and
and


<math>\underline{q}_E = \left(  
::<math>\underline{q}_E = \left(  
\begin{array}{c}
\begin{array}{c}
\phi(t)\\
\phi(t)\\
Zeile 151: Zeile 156:
we find
we find


<math>\delta W = \delta \underline{q}_E \cdot \left(
::<math>\delta W = \delta \underline{q}_E \cdot \left(
- \underline{\underline{M}}_E \cdot  \underline{\ddot{q}}_E +  
- \underline{\underline{M}}_E \cdot  \underline{\ddot{q}}_E +  
\left(
\left(
Zeile 163: Zeile 168:
with
with


<math>\underline{\underline{M}}_E=\begin{pmatrix}\left( {{n}_{G}^{2}}+2 {n_G}+1\right) \, {J_M} & -\left( {{n}_{G}^{2}}+{n_G}\right) \, {J_M}\\
::<math>\underline{\underline{M}}_E=\begin{pmatrix}\left( {{n}_{G}^{2}}+2 {n_G}+1\right) \, {J_M} & -\left( {{n}_{G}^{2}}+{n_G}\right) \, {J_M}\\
-\left( {{n}_{G}^{2}}+{n_G}\right) \, {J_M} & {{n}_{G}^{2}}\, {J_M}\end{pmatrix}</math>.
-\left( {{n}_{G}^{2}}+{n_G}\right) \, {J_M} & {{n}_{G}^{2}}\, {J_M}\end{pmatrix}</math>.


We have thus "returned" all state variables to the [[Gelöste Aufgaben/JUMP/Car-Body|Car-Body]]-submodel.
We have thus "returned" all state variables to the [[Gelöste Aufgaben/JUMP/Car-Body|Car-Body]]-submodel.
|code=
<syntaxhighlight lang="lisp" line start=1>
/*******************************************************/
/* MAXIMA script                                      */
/* version: wxMaxima 16.04.2                          */
/* author: Andreas Baumgart                            */
/* last updated: 2021-02-08                            */
/* ref: Modelling and Simulation (TUAS)                */
/* description: virtual work of drive train mechanics  */
/*******************************************************/
/*******************************************************/
/* declarations                                        */
/*******************************************************/
declare("δ", alphabetic);
declare("φ", alphabetic);
declare("ψ", alphabetic);
/*******************************************************/
/* kinematics                                          */
/*******************************************************/
kin : [ψ[M,r] = n[G]*ψ[W,r],
      ψ[W,r] = ψ[W](t) - φ(t),
      ψ[M,r] = ψ[M](t) + φ(t)];
Q : [ψ[M](t),ψ[M,r],ψ[W,r]];
sol: ratsimp(solve(kin,Q))[1];
/* Principle of Virtual Work */
PVW: δW = - J[M]*diff(ψ[M](t),t,2)*δψ[M] + M[M]*(δψ[M]+δφ) - M[W]*δψ[W];
/* minimal coordinates */
q : [ φ(t), ψ[W](t)];
δq: [δφ  ,δψ[W]  ];


==tmp==
varia: [ψ[M](t)=δψ[M],ψ[M,r]=δψ[M,r],ψ[W,r]=δψ[W,r],
        ψ[W](t)=δψ[W], φ(t) =δφ];
sol : expand(append(sol, subst(varia,sol)));


{{MyCodeBlock
PVW : expand(subst(sol,PVW));
|title=Mechanical Components
PVW : ev(PVW,nouns);
|text=Text
 
|code=
eom : makelist(coeff(rhs(PVW),δq[i]),i,1,2);
<syntaxhighlight lang="lisp" line start=1>
eom : ratsimp(eom);
1+1=2
 
MM : funmake('matrix,makelist(makelist(ratsimp(coeff(-eom[i],'diff(q[j],t,2))),j,1,2),i,1,2));
 
rest : expand(eom + makelist(sum(MM[i,j]*diff(q[j],t,2),j,1,2),i,1,2));
 
print(δq, "*(-",MM,"*",transpose(diff(q,t,2)),"+",transpose(rest),") = 0")$
</syntaxhighlight>
</syntaxhighlight>
}}
}}

Version vom 10. März 2021, 14:33 Uhr

← Back to Start

Scope

Diagram: E-Motor and Drive Train

The Drive-Train consists of a DC/DC-converter, a DC Motor and a gear-box.

  • DC/DC-converter: is supplied with the battery voltage UB, the output voltage is controlled by the driver via setpoint “p“.
  • motor: is a standard DC brushed motor, the manufacturer provides only few information on its characteristics - we’ll need to improvise.
  • gearbox: has a gear ratio of ratio of nG=100, its shaft rotates at speed ωW and delivers a torque MW to the front wheels.

The task is: provide a mathematical model for the drive train that accounts for load-alterations imposed by the driver. And we assume losses in the two converters - DC/DC and gearbox - to be negligible.

Structure

Block diagram

The drive train receives a "gas"-pedal position "p" from the driver and a battery-voltage UB.

It delivers a torque MW on the wheel and creates an electric current IM through the motor.

Drive-train components.

The sub-model consists of  DC/DC-converter, Motor and gear-box:

DC/DC Converter

Losses in the DC/DC converter shall be small - so for input port “1“ and output port “2“ we obtain

U1I1=U2I2 .

Let the “gas”-pedal-indicator “p“ control

U2=pU10p1.

with

0p1 and U1=UB

Motor

Brushed-DC motor

We use a common electric circuit representation for a series wound motor, the field coils are connected electrically in series with the armature coils, resistance R sums up all electrical losses in the motor.

Gearbox

Losses in the gearbox shall be small - so for input (ωM, MM) and output (ωW, MW) we obtain the fixed relation

ωMMM=ωWMW.

And we have only one differential equation for the electrical components:

dIBdt=ULL,

the remaining equations are algebraic.

Model

Electrical Components

For the motor, we find with Kirchhoff's law that

UM=UR+UL+e

with UR, UL being the differential voltage over resistance R and inductance L respectively. “e” is the back electromagnetic force with

e=keωM

and the electromotive force constant ke. Note the ωM is the differential rotational velocity between rotor and stator, i.e.

ωM=ψ˙W(t)+ϕ˙(t).

Employing

UR=RIM,UL=LdIMdt

and using

MM=ktIM

with the armature constant kt, we have the complete set of equations.

From the above, we find

LddtIM(t)=UB(t)p(t)RIM(t)e

and additionally the algebraic equations

IB=IMp(t),UR=RIM(t),UL=UBp(t)RIM(t)e,UM=UBp(t).

/*******************************************************/
/* MAXIMA script                                       */
/* version: wxMaxima 16.04.2                           */
/* author: Andreas Baumgart                            */
/* last updated: 2021-02-08                            */
/* ref: Modelling and Simulation (TUAS)                */
/* description: virtual work of drive train electrics  */
/*******************************************************/

/*******************************************************/
/* declarations                                        */
/*******************************************************/
declare("φ", alphabetic);
declare("ψ", alphabetic);
declare("ω", alphabetic);

/*******************************************************/
/* kinematics                                          */
/*******************************************************/
kirchhoff : [U[M] = p(t)*U[B],
	     U[B]*I[B] = U[M]*I[M],
	     U[M] = U[R] + U[L] + e,
             e = k[e]*omega[M],
	     ω[M] = diff(ψ[M](t),t)+diff(φ(t),t),
	     U[R] = R*I[M](t),
	     U[L] = L * diff(I[M](t),t),
	     M[M] = k[t]*I[M](t)];

solve(kirchhoff[7], [diff(I[M](t),t)]);





Mechanical Components

The Virtual Work of d'Alembert forces, motor torque MM and wheel torque MW is

δW=JMψ¨M(t)δψM+MM(ψM+ϕ(t))MWδψW=0.

Since the gearbox is built into the car, the wheel-side relative gear-box-angle is

ψ~W=ψW(t)ϕ(t)

and on the motor-side

ψ~M=ψM(t)+ϕ(t).

With the gear transmission ratio

nG=ψ~Mψ~W

and

q_E=(ϕ(t)ψW(t))

we find

δW=δq_E(M__Eq¨_E+(nGMM+nGMMMW))

with

M__E=((nG2+2nG+1)JM(nG2+nG)JM(nG2+nG)JMnG2JM).

We have thus "returned" all state variables to the Car-Body-submodel.


/*******************************************************/
/* MAXIMA script                                       */
/* version: wxMaxima 16.04.2                           */
/* author: Andreas Baumgart                            */
/* last updated: 2021-02-08                            */
/* ref: Modelling and Simulation (TUAS)                */
/* description: virtual work of drive train mechanics  */
/*******************************************************/

/*******************************************************/
/* declarations                                        */
/*******************************************************/
declare("δ", alphabetic);
declare("φ", alphabetic);
declare("ψ", alphabetic);

/*******************************************************/
/* kinematics                                          */
/*******************************************************/
kin : [ψ[M,r] = n[G]*ψ[W,r],
       ψ[W,r] = ψ[W](t) - φ(t),
       ψ[M,r] = ψ[M](t) + φ(t)];
Q : [ψ[M](t),ψ[M,r],ψ[W,r]];
sol: ratsimp(solve(kin,Q))[1];


/* Principle of Virtual Work */
PVW: δW = - J[M]*diff(ψ[M](t),t,2)*δψ[M] + M[M]*(δψ[M]+δφ) - M[W]*δψ[W];

/* minimal coordinates */
q : [ φ(t), ψ[W](t)];
δq: [δφ   ,δψ[W]   ];

varia: [ψ[M](t)=δψ[M],ψ[M,r]=δψ[M,r],ψ[W,r]=δψ[W,r],
        ψ[W](t)=δψ[W], φ(t) =δφ];
sol : expand(append(sol, subst(varia,sol)));

PVW : expand(subst(sol,PVW));
PVW : ev(PVW,nouns);

eom : makelist(coeff(rhs(PVW),δq[i]),i,1,2);
eom : ratsimp(eom);

MM : funmake('matrix,makelist(makelist(ratsimp(coeff(-eom[i],'diff(q[j],t,2))),j,1,2),i,1,2));

rest : expand(eom + makelist(sum(MM[i,j]*diff(q[j],t,2),j,1,2),i,1,2));

print(δq, "*(-",MM,"*",transpose(diff(q,t,2)),"+",transpose(rest),") = 0")$




Variables

Parameter


>

Back to Start →


References

  • ...