
    \h                     h    S SK Js  Js  Jr  S SKJrJrJrJrJ	r	  S SK
Jr  S SKJr  S rS rS rS rg)	    N)cossinMatrixsymbolszeros)simplify)dynamicsymbolsc                     [        S5      u  pn[        S5      n[        S5      u  pEn[        R                  " S5      n[	        U//5      n[	        U * U-  X-  -
  //5      n	[        XR                  -
  5      [	        S/5      :X  d   e[        XR                  -
  5      [	        S/5      :X  d   e[        R                  " SS5      n
[	        U//5      n[	        U * U-  X2-  -   X-  -
  //5      n[        XR                  -
  5      [	        S/5      :X  d   e[        XR                  -
  5      [	        S/5      :X  d   e[        R                  " SSS5      n[	        U//5      n[	        U * U-  X2-  -   X-  -
  U-   //5      n[        XR                  -
  5      [	        S/5      :X  d   e[        XR                  -
  5      [	        S/5      :X  d   e[        R                  " SSS5      n[	        U//5      n[	        U * U-  X-  -
  U-   //5      n[        UUR                  -
  5      [	        S/5      :X  d   e[        UUR                  -
  5      [	        S/5      :X  d   eg )Nc0 k0 m0gzv0 x0 f0   r   TF)r   r	   modelsmulti_mass_spring_damperr   r   mass_matrixforcing)c0k0m0r   v0x0f0kane1massmatrix1forcing1kane2massmatrix2forcing2kane3massmatrix3forcing3kane4massmatrix4forcing4s                      a/var/www/auris/envauris/lib/python3.13/site-packages/sympy/physics/mechanics/tests/test_models.py$test_multi_mass_spring_damper_inputsr%      s9   $JBBA
+JBB++A.E2$.KB'()HK"3"334sCCCH}},-<<<++At4E2$.KB-./0HK"3"334sCCCH}},-<<<++AtT:E2$.KB-2345HK"3"334sCCCH}},-<<<++Aud;E2$.KB+,-.HK%"3"334sCCCHu}},-<<<    c                     [        S5      u  pn[        S5      u  p4n[        S5      u  pgn[        S5      u  p[        S5      u  p[        S5      u  p[        R                  " S5      n[	        X%-   U-   XX-   U/XX-   XX-   U/XU//5      n[	        U * U	-  X-  -
  /U* U-  XL-  -
  /U* U-  X~-  -
  //5      n[        UUR                  -
  5      [        S5      :X  d   e[        UUR                  -
  5      [	        / SQ5      :X  d   eg )	Nr   zc1 k1 m1zc2 k2 m2zv0 x0zv1 x1zv2 x2   r   r   r   )	r   r	   r   r   r   r   r   r   r   )r   r   r   c1k1m1c2k2m2r   r   v1x1v2x2r   r   r   s                     r$   *test_multi_mass_spring_damper_higher_orderr4   &   s    $JBB$JBB$JBBG$FBG$FBG$FB++A.E27R<"57BGR02,( )K B'B'B') *H K%"3"334a@@@Hu}},-	1BBBBr&   c                  <   [        S5      u  p[        S5      n[        S5      n[        S5      u  pEpg[        S5      u  p[        R                  " S5      n
[	        X-   U * U-  [        U5      -  /U * U-  [        U5      -  U S-  U-  //5      n[	        U * U-  U	S-  -  [        U5      -  U-   /X0-  U-  [        U5      -  //5      n[        XR                  -
  5      [        S5      :X  d   e[        XR                  -
  5      [	        SS/5      :X  d   e[        R                  " SS	5      n[	        X-   U * U-  [        U5      -  /U * U-  [        U5      -  U S-  U-  //5      n[	        U * U-  U	S-  -  [        U5      -  /X0-  U-  [        U5      -  //5      n[        XR                  -
  5      [        S5      :X  d   e[        XR                  -
  5      [	        SS/5      :X  d   e[        R                  " SS	S
5      n[	        X-   U * U-  [        U5      -  /U * U-  [        U5      -  U S-  U-  //5      n[	        U * U-  U	S-  -  [        U5      -  /X0-  U-  [        U5      -  U-   //5      n[        UUR                  -
  5      [        S5      :X  d   e[        UUR                  -
  5      [	        SS/5      :X  d   e[        R                  " SS
S	5      n[	        X-   U * U-  [        U5      -  /U * U-  [        U5      -  U S-  U-  //5      n[	        U * U-  U	S-  -  [        U5      -  U-   /X0-  U-  [        U5      -  //5      n[        UUR                  -
  5      [        S5      :X  d   e[        UUR                  -
  5      [	        SS/5      :X  d   eg )Nl0 m0r,   r   z
q0 q1 F T1zu0 u1r      r   FTr   r	   r   n_link_pendulum_on_cartr   r   r   r   r   r   r   )l0r   r,   r   q0q1FT1u0u1r   r   r   r   r   r   r   r   r    r!   r"   r#   s                         r$   #test_n_link_pendulum_on_cart_inputsrA   9   s   WFB	BA"<0MBAG$FB**1-E27RCF3r7N33r6#b'>2q5846 7KBr1uSW,q01ADGCGO3DEFHK"3"334a@@@H}},-A???**1e4E27RCF3r7N33r6#b'>2q5846 7KBr1uSW,-RB/@ABHK"3"334a@@@H}},-A???**1eT:E27RCF3r7N33r6#b'>2q5846 7KBr1uSW,-RB"0D/EFGHK%"3"334a@@@Hu}},-A???**1dE:E27RCF3r7N33r6#b'>2q5846 7KBr1uSW,q01ADGCGO3DEFHK%"3"334a@@@Hu}},-A???r&   c                     [        S5      u  p[        S5      u  p#[        S5      n[        S5      n[        S5      u  pgn[        S5      u  pn[        S5      u  p[        R                  " S5      n[	        X-   U-   U * U-  [        U5      -  X-  [        U5      -  -
  U* U-  [        U5      -  /U * U-  [        U5      -  X-  [        U5      -  -
  U S-  U-  U S-  U-  -   X-  U-  [        U5      [        U5      -  [        U5      [        U5      -  -   -  /U* U-  [        U5      -  X-  U-  [        U5      [        U5      -  [        U5      [        U5      -  -   -  US-  U-  //5      n[	        U * U-  U
S-  -  [        U5      -  X-  U
S-  -  [        U5      -  -
  X$-  US-  -  [        U5      -  -
  U-   /XP-  U-  [        U5      -  XP-  U-  [        U5      -  -   X-  U-  [        U5      [        U5      -  [        U5      [        U5      -  -
  -  US-  -  -
  /XR-  U-  [        U5      -  X-  U-  [        U5      * [        U5      -  [        U5      [        U5      -  -   -  U
S-  -  -
  //5      n[        XR                  -
  5      [        S	5      :X  d   e[        UUR                  -
  5      [	        / S
Q5      :X  d   eg )Nr6   zl1 m1r/   r   zq0 q1 q2zu0 u1 u2zF T1r7   r(   r)   r8   )r:   r   l1r,   r/   r   r;   r<   q2r?   r@   u2r=   r>   r   r   r   s                    r$   )test_n_link_pendulum_on_cart_higher_orderrF   ]   s   WFBWFB	BA
+JBB
+JBB6"EA**1-E27R<"RB"%B-)G3r6#b'>+3r6#b'>BE#b'M92q58b!eBh;N58SWSW_s2ws2w%FGI3r6#b'>58SWSW_s2ws2w%FGq58%	& 'K Br1uSW,ruRU{3r7/BBb!eCG+,./0 1RB!$r'#b'/9b#b'#b'/CGCGO"CDRUJK LRB"%(SWHSW4D47GCGO5D +EEGU+K K L	M NH K"3"334a@@@Hu}},-	1BBBBr&   )sympy.physics.mechanics.modelsphysics	mechanicsr   sympyr   r   r   r   r   sympy.simplify.simplifyr   sympy.physics.mechanicsr	   r%   r4   rA   rF    r&   r$   <module>rN      s/    / / 4 4 , 4=>C&!@HCr&   