+
    ‹°³jB  ã                   óX  € ^ RI Ht ^ RIHtHt ^ RIHt ^ RIHtH	t	 ^ RI
Ht ^ RIHt ^ RIHtHtHt ^ RIHt ^ R	IHt ^ R
IHtHtHtHtHtHtHtHtHtH t H!t!H"t"H#t# ^ RI$H%t%H&t&H't'H(t( ^ RI)H*t*H+t+ ]! RRR./],3R7      t-]! R4      t.]%! ^]^,          R],          ,           ^,           ]4      t/]%! ]^]^,          ,          ^],          ,           ^,           ]4      t0]%! ]]^,          ^,
          ]4      t1]%! ^
]^,          ]4      t2]%! ^]^,          ^],          ,           ^
,           ]4      t3]%! ^^]4      t4]%! ^],          ^,          ^	]^,          ,          ,           R],          ,           ^,           ^]^,          ,          ^	]^,          ,          ,           ^,           ]4      t5]%! ^]^,          ^],           ],          ,           ^
,           ]4      t6]&! ]2]%! ^]^,
          ]4      4      t7]&! ]1]%! ]]^,           ]4      4      t8]'! ]/]04      t9R t:R t;R t<R t=R t>R t?R t@R tAR tBR tCR tDR tER # )!é    ©Úisclose)ÚIÚ	all_close)ÚDummy)ÚAbsÚarg)Úlog)Úsqrt)ÚsÚpÚa)Úpi)Úimport_module)Úpole_zero_numerical_dataÚpole_zero_plotÚstep_response_numerical_dataÚstep_response_plotÚimpulse_response_numerical_dataÚimpulse_response_plotÚramp_response_numerical_dataÚramp_response_plotÚbode_magnitude_numerical_dataÚbode_phase_numerical_dataÚ	bode_plotÚnyquist_plot_exprÚnichols_plot_expr)ÚTransferFunctionÚSeriesÚParallelÚTransferFunctionMatrix)ÚraisesÚskipÚ
matplotlibÚfromlistÚpyplot)Úimport_kwargsÚcatchÚnumpyç      à?çš™™™™™¹?c                 ó.   € \        V 4      \        V4      3# ©N)Útuple©r   Úbs   &&Úo/home/luca/screen-checking/.venv/lib/python3.14/site-packages/sympy/physics/control/tests/test_control_plots.pyÚ	_to_tupler2   +   s   € Ü�‹8”U˜1“XÐÐó    c           	      óP  € \        W4      w  r\        V R ,          V \        V 4      ^,          \        V 4      ^,          ^,            ,           V RR ,           4      \        VR ,          V\        V4      ^,          \        V4      ^,          ^,            ,           VRR ,           4      3# ):r   é   NNéþÿÿÿ)r2   r.   Úlenr/   s   &&r1   Ú_trim_tupler8   .   s…   € Ü�Q‹?�D€AÜ��4•˜1œS ›V Q�Y¬¨Q«°­°Q­Ð7Õ7¸!¸B¸C¸&Õ@ÓAÜˆa��g˜œ#˜a›& !�)¤c¨!£f¨a¥i°!¥mÐ4Õ4°q¸¸°vÕ=Ó>ð?ð ?r3   c                ó(  aa€ V ! S4      w  r4\        W44      w  r4\        ;QJ d    . VV3R lV 4       F  NK  	  5M! VV3R lV 4       4      p\        ;QJ d%    R \        WT4       4       F  '       d   K   R# 	  R# ! R \        WT4       4       4      # )zxChecks whether the y-coordinate value of the plotted
data point is equal to the value of the function at a
particular x.c              3   ó6   <"  € T F  pS! SV4      x € K  	  R # 5ir-   © )Ú.0Úx_iÚ
evalf_funcÚsystems   & €€r1   Ú	<genexpr>Ú(y_coordinate_equality.<locals>.<genexpr>9   s   øé € Ð7±Q¨c‘*˜V S×)Ð)³Qùs   ƒc              3   óN   "  € T F  w  r\        W,
          4      R 8  x € K  	  R# 5i)g:Œ0âŽyE>N)r   )r<   Úy_exp_iÚy_is   &  r1   r@   rA   :   s   é € ÐK¹]©\¨WŒs�7•=Ó! DÖ(»]ùs   ‚#%FT)r8   r.   ÚallÚzip)Úplot_data_funcr>   r?   ÚxÚyÚy_exps   &ff   r1   Úy_coordinate_equalityrK   3   sl   ù€ ñ ˜&Ó!�D€AÜ�qÓ�D€AßŒEÕ7±QÓ7�E‰EÕ7±QÓ7Ó7€Eß‹3ÑK¼SÀ¼]ÓK�3Œ3ÐKŠ3ÐKˆ3ÑK¼SÀ¼]ÓKÓKÐKr3   c                  óŽ  a aa€ \         '       g   \        R 4       \        \        \        .\        \        ..4      o^\
        ^,          ^,
          ,          o \        \        V3R l4       \        \        V 3R l4       \        \        V 3R l4       \        \        V3R l4       \        \        V3R l4       \        \        V 3R l4       \        \        V 3R l4       \        \        V3R l4       \        \        V3R	 l4       \        \        \
        ^,           \
        4      o\        \        V3R
 l4       \        \        V3R l4       \        \        V3R l4       \        \        V3R l4       \        \        V3R l4       \        \        V3R l4       \        \        V3R l4       \        \        V3R l4       \        \        V3R l4       \        \        R 4       \        \        R 4       \        \        R 4       \        \        R 4       \        \        R 4       \        \        R 4       R# )z"Matplotlib not the default backendc                  ó   <€ \        S 4      # r-   ©r   ©Útfms   €r1   Ú<lambda>Útest_errors.<locals>.<lambda>D   s
   ø€ ¬°sÔ(;r3   c                  ó   <€ \        S 4      # r-   ©r   ©Úexprs   €r1   rQ   rR   E   s   ø€ Ô(@ÀÔ(Fr3   c                  ó   <€ \        S 4      # r-   ©r   rU   s   €r1   rQ   rR   F   s   ø€ Ô(=¸dÔ(Cr3   c                  ó   <€ \        S 4      # r-   ©r   rO   s   €r1   rQ   rR   G   s   ø€ Ô(GÈÔ(Lr3   c                  ó   <€ \        S 4      # r-   ©r   rO   s   €r1   rQ   rR   H   s   ø€ Ô(:¸3Ô(?r3   c                  ó   <€ \        S 4      # r-   ©r   rU   s   €r1   rQ   rR   I   s   ø€ Ô(DÀTÔ(Jr3   c                  ó   <€ \        S 4      # r-   ©r   rU   s   €r1   rQ   rR   J   s   ø€ Ô(:¸4Ô(@r3   c                  ó   <€ \        S 4      # r-   ©r   rO   s   €r1   rQ   rR   K   s   ø€ Ô(DÀSÔ(Ir3   c                  ó   <€ \        S 4      # r-   ©r   rO   s   €r1   rQ   rR   L   s	   ø€ ¬	°#¬r3   c                  ó   <€ \        S 4      # r-   rN   ©Útf_as   €r1   rQ   rR   P   s
   ø€ œ~¨dÔ3r3   c                  ó   <€ \        S 4      # r-   rT   rf   s   €r1   rQ   rR   Q   s   ø€ Ô7¸Ô=r3   c                  ó   <€ \        S 4      # r-   rX   rf   s   €r1   rQ   rR   R   s   ø€ Ô4°TÔ:r3   c                  ó   <€ \        S 4      # r-   rZ   rf   s   €r1   rQ   rR   S   s   ø€ Ô>¸tÔDr3   c                  ó   <€ \        S 4      # r-   r\   rf   s   €r1   rQ   rR   T   ó   ø€ Ô1°$Ô7r3   c                  ó   <€ \        S 4      # r-   r^   rf   s   €r1   rQ   rR   U   ó   ø€ Ô;¸DÔAr3   c                  ó   <€ \        S 4      # r-   r`   rf   s   €r1   rQ   rR   V   rl   r3   c                  ó   <€ \        S 4      # r-   rb   rf   s   €r1   rQ   rR   W   rn   r3   c                  ó   <€ \        S 4      # r-   rd   rf   s   €r1   rQ   rR   X   s	   ø€ œy¨œr3   c                  ó$   € \        \        RR7      # )é   ©Úlower_limitéÿÿÿÿ)r   Útf1r;   r3   r1   rQ   rR   [   s   € Ô4´SÀbÕIr3   c                  ó$   € \        \        RR7      # )r+   rt   çš™™™™™¹¿)r   rw   r;   r3   r1   rQ   rR   \   ó   € Ô1´#À4ÕHr3   c                  ó$   € \        \        RR7      # )é   rt   gUUUUUUõ¿©r   rw   r;   r3   r1   rQ   rR   ]   rz   r3   c                  ó$   € \        \        RR7      # )r+   )Úslopery   r}   r;   r3   r1   rQ   rR   `   s   € Ô1´#¸TÕBr3   c                  ó$   € \        \        R R7      # )Úhz)Ú	freq_unit©r   rw   r;   r3   r1   rQ   rR   c   s   € œy¬¸Õ>r3   c                  ó$   € \        \        R R7      # )Údegree)Ú
phase_unitrƒ   r;   r3   r1   rQ   rR   d   s   € œy¬¸(ÕCr3   N)r$   r#   r!   Útf6Útf5r   r"   ÚNotImplementedErrorr   r   Ú
ValueError)rV   rg   rP   s   @@@r1   Útest_errorsr‹   =   sf  ú€ ß‹:ÜÐ1Ô2ô !¤3¬ *¬s´C¨jÐ!9Ó
:€CØŒa��d�Q�h�<€DÜ
ÔÔ ;Ô<Ü
ÔÔ FÔGÜ
ÔÔ CÔDÜ
ÔÔ LÔMÜ
ÔÔ ?Ô@Ü
ÔÔ JÔKÜ
ÔÔ @ÔAÜ
ÔÔ IÔJÜ
ÔÔ 6Ô7ô œAœq 1�u¤aÓ(€DÜ
Œ:Ô3Ô4Ü
Œ:Ô=Ô>Ü
Œ:Ô:Ô;Ü
Œ:ÔDÔEÜ
Œ:Ô7Ô8Ü
Œ:ÔAÔBÜ
Œ:Ô7Ô8Ü
Œ:ÔAÔBÜ
Œ:Ô.Ô/ô Œ:ÑIÔJÜ
Œ:ÑHÔIÜ
Œ:ÑHÔIô Œ:ÑBÔCô Œ:Ñ>Ô?Ü
Œ:ÑCÖDr3   c                  óX  € R  p . RR..pR.RR..pR.. RO.p. . RO.p. R	O. R
O.p. RR..pV ! \         V4      '       g   Q hV ! \        V4      '       g   Q hV ! \        V4      '       g   Q hV ! \        V4      '       g   Q hV ! \        V4      '       g   Q hV ! \
        V4      '       g   Q hR# )c                 ó|   € \        V 4      w  r#\        W!^ ,          4      p\        W1^,          4      pT;'       d    T# )r   )r   r   )ÚsysÚexpected_valueÚ_zÚ_pÚz_checkÚp_checks   &&    r1   Ú	pz_testerÚ!test_pole_zero.<locals>.pz_testeri   s:   € Ü)¨#Ó.‰ˆÜ˜B¨qÕ 1Ó2ˆÜ˜B¨qÕ 1Ó2ˆØ×"Ð"˜7Ð"r3   ç        NyþÿÿÿÿÿÏ¿ÃÁhdEö¿yþÿÿÿÿÿÏ¿ÃÁhdEö?y      Ð¿‘4ŠËé§Ô¿y      Ð¿‘4ŠËé§Ô?)yþÿÿÿÿÿï?        y     à¿²LXèz¶ë¿y     à¿²LXèz¶ë?)r–   r–   r–   g      @)gv|éÔ?•Àg     à¿g°8h±¬Ö¿)yûÿÿÿÿÿÏ¿�4ŠËé§Ô¿yùÿÿÿÿÿÏ¿�4ŠËé§Ô?yûÿÿÿÿÿÏ¿ÂÁhdEö¿yùÿÿÿÿÿÏ¿ÂÁhdEö?y¬¬ZEf ò¿;êÄÐ]Ày´¦Ju3¿ê¿;êÄÐ]@)rw   Útf2Útf3Úser1Úpar1Útf8)r”   Úexp1Úexp2Úexp3Úexp4Úexp5Úexp6s          r1   Útest_pole_zeror¢   g   sã   € ò#ð Ð9Ð;cÐdÐe€DØˆEÐ-Ð/HÐIÐJ€DØˆEò 1ð 2€DàÒ$Ð%€DÚJò	2ð3€Dð
 Ð7Ø
1ð3ð 4€Dñ ”S˜$×ÒÐÐÙ”S˜$×ÒÐÐÙ”S˜$×ÒÐÐÙ”T˜4× Ò Ð Ð Ù”T˜4× Ò Ð Ð Ù”S˜$×ÒÐÒr3   c                  ó  aa€ \         '       g   \        R 4       R oR oVV3R lp V ! \        4      '       g   Q hV ! \        4      '       g   Q hV ! \        4      '       g   Q hV ! \
        4      '       g   Q hV ! \        4      '       g   Q hR# )úNumPy is required for this testc                 óÞ   € V P                  4       p\        R RR7      pVP                  V P                  \        V,          /4      p\        V4      P                  W1/4      P                  4       # ©ÚwT)Úreal)Úto_exprr   ÚsubsÚvarr   r	   Úevalf©r?   ÚpointrV   Ú_wÚw_exprs   &&   r1   Úbode_phase_evalfÚ#test_bode.<locals>.bode_phase_evalfˆ   sU   € Ø�~‰~ÓˆÜ�3˜TÔ"ˆØ—‘˜FŸJ™J¬¨"­Ð-Ó.ˆÜ�6‹{×Ñ  Ó,×2Ñ2Ó4Ð4r3   c                 ó   € V P                  4       p\        R RR7      pVP                  V P                  \        V,          /4      p^\        \        V4      ^
4      P                  W1/4      P                  4       ,          # r¦   )r©   r   rª   r«   r   r
   r   r¬   r­   s   &&   r1   Úbode_mag_evalfÚ!test_bode.<locals>.bode_mag_evalfŽ   sa   € Ø�~‰~ÓˆÜ�3˜TÔ"ˆØ—‘˜FŸJ™J¬¨"­Ð-Ó.ˆØ”#”c˜&“k 2Ó&×+Ñ+¨R¨KÓ8×>Ñ>Ó@Õ@Ð@r3   c                 óX   <€ \        \        SV 4      ;'       d    \        \        SV 4      # r-   )rK   r   r   )rŽ   r´   r±   s   &€€r1   Útest_bode_dataÚ!test_bode.<locals>.test_bode_data”   s2   ø€ Ü$Ô%BÀNÐTWÓX÷ Xð XÜ%Ô&?ÐAQÐSVÓWð	Xr3   N)r)   r#   rw   r—   r˜   Útf4rˆ   )r·   r´   r±   s    @@r1   Ú	test_boderº   „   sy   ù€ ß‹5ÜÐ.Ô/ò5òAöXñ œ#×ÒÐÐÙœ#×ÒÐÐÙœ#×ÒÐÐÙœ#×ÒÐÐÙœ#×ÒÐÒr3   c                 óŽ   € \         ;QJ d%    R  \        W4       4       F  '       d   K   R# 	  R# ! R  \        W4       4       4      # )c              3   ó<   "  € T F  p\        VR RRR/ x € K  	  R# 5i)Úrel_tolr+   Úabs_tolg�íµ ÷Æ°>Nr   )r<   Ú_s   & r1   r@   Ú'check_point_accuracy.<locals>.<genexpr>    s,   é € ð Ùˆaô ˜ð 
 4ð 
°ö 
Ûùs   ‚FT)rE   rF   r/   s   &&r1   Úcheck_point_accuracyrÁ   Ÿ   sE   € ß‹3ñ Ü�q”9ó�3Œ3ð Š3ð ˆ3ñ Ü�q”9óó ð r3   c                  ó|  € \         '       g   \        R 4       R p RpRpRpRpRpRpR	pV ! \        V4      '       g   Q hV ! \        V4      '       g   Q hV ! \        V4      '       g   Q hV ! \
        V4      '       g   Q hV ! \        V4      '       g   Q hV ! \        V4      '       g   Q hV ! \        V4      '       g   Q hR# )
r¤   c                 ó�   € \        \        V R ^
R7      !  w  r#\        W!^ ,          4      p\        W1^,          4      pT;'       d    T# ©F)ÚadaptiveÚn)r2   r   rÁ   ©rŽ   r�   rH   rI   Úx_checkÚy_checks   &&    r1   Úimpulse_res_testerÚ1test_impulse_response.<locals>.impulse_res_tester¨   sI   € ÜÔ9¸#Ø˜bô"ñ #‰ˆä& q¸Õ*;Ó<ˆÜ& q¸Õ*;Ó<ˆØ×"Ð"˜7Ð"r3   N)©
r–   grÇqÇñ?grÇqÇ@g«ªªªªª
@grÇqÇ@gŽã8Žã8@g«ªªªªª@gÈqÇq@grÇqÇ!@ç      $@)
r–   gÏ¡(œhá?g �éÁj”?gò°yîÓ¿gTÆH¸f—¿g˜—œ'ÃÆ?g*Vrv»”?gÇ>�ï¹¿g)c «Ž¿g�k·ýz­?)rÌ   )
g“vWUUÅ?gVù!öyµ?g°7ñ—?gŠfïê¦Ž¿gJI§P½¡¿gÒW�MJÄ¤¿g›ì"çýG£¿ga¥•6ƒßž¿gÂûiÞƒ«•¿gP=)ŸŠ¿)rÌ   )
g   ¤¿Ä2>g¶··ïÌò?gxëL#‚V
@gøÄ®UÝ"@gž™„™ø^<@gôÁT»ã‹U@g|�/u^p@gj²D#;Ýˆ@gi²Åóûá¢@gNUÕ(®¼@)rÌ   )
r–   gfàéÖü°@gfàéÖü°8@gsÇqÇK@gfàéÖü°X@gO·æ‡EJc@gsÇqÇk@gÎ‹”�çr@gfàéÖü°x@g     @@)rÌ   )
r–   gÙµ: /Äº¿g�”y%µL±?g�2Æœ� ¿gGLK&Ñ‹?gy•bÅ”™u¿gµÎ•”â¹_?gˆ-~×HF¿gÎo¾f.?g¡&;™¿)rÌ   )
g   `n×9¾g&¹ÑëlÖ?g´q„É”û
@g(w\=(@gãl%)kÜ9@g‡Á+<Z=@gƒlÞ‡¨~>ÀgL“�òqÀgö„ÇÅçùŠÀg‹f}ØL›À)rÌ   )
r–   gµ6qDï2@g7†Õ´îâ´@gOë/ß¡ 5Agés¨æYµAgz³C’5BglÔÌ¹ËµBgC²¡/ï6CgÊJ‡À@¶Cgè"®ð-|6D)	r)   r#   rw   r—   r˜   r¹   rˆ   Útf7r™   )rÊ   rœ   r�   rž   rŸ   r    r¡   Úexp7s           r1   Útest_impulse_responserÐ   ¤   sÑ   € ß‹5ÜÐ.Ô/ò#ð^€Dðe€DðC€Dð#€Dðg€Dð€Dð
 €Dñ œc 4×(Ò(Ð(Ð(Ùœc 4×(Ò(Ð(Ð(Ùœc 4×(Ò(Ð(Ð(Ùœc 4×(Ò(Ð(Ð(Ùœc 4×(Ò(Ð(Ð(Ùœc 4×(Ò(Ð(Ð(Ùœd D×)Ò)Ð)Ò)r3   c                  óN  € \         '       g   \        R 4       R p RpRpRpRpRpRpV ! \        V4      '       g   Q hV ! \        V4      '       g   Q hV ! \        V4      '       g   Q hV ! \
        V4      '       g   Q hV ! \        V4      '       g   Q hV ! \        V4      '       g   Q hR# )	r¤   c                 ó�   € \        \        V R ^
R7      !  w  r#\        W!^ ,          4      p\        W1^,          4      pT;'       d    T# rÄ   )r2   r   rÁ   rÇ   s   &&    r1   Ústep_res_testerÚ+test_step_response.<locals>.step_res_testerÛ   sI   € ÜÔ6°sØ˜bô"ñ #‰ˆä& q¸Õ*;Ó<ˆÜ& q¸Õ*;Ó<ˆØ×"Ð"˜7Ð"r3   N)rÌ   )
g   jÏ›T¾gÚ´WºÛ?g˜Àíé?gógä	ù¿á?gû—M¬²Õ?gø#J�Ý?g"@teéâ?gýÇ ˆ„Êà?g‘�/P·Ü?g¯†cÎøÞ?)rÌ   )
r–   gR¤ul†’Á?gø¬qlíÈ?gì."ÚaGÉ?g»¥¬ŽÅ?gbò…–À?gò°V±ß´?g¡-b[S¦?g7 Ï—ÞŽ?g\£7' Êm¿)rÌ   )
r–   gNôÛwß4ä?güh&7|@g°ûÉ.Á"@gòÇôÉs<@g�Hv�U@gšrnTÇ^p@gh¤Úø%Ýˆ@gsÚöõá¢@g{îct'®¼@)rÌ   )
r–   gÛ�^’6J@gÛ�^’6J2@gb�ÿ<ÝN@gÛ�^’6Jb@g‡VðJyÜq@gb�ÿ<Ý~@g°o�ˆ@gÛ�^’6J’@gù g³ª
š@)rÌ   )
g   è.1¾gÑŠÚQ�å?góÏUÆZÜ?g—up•à?gr™Bz¤ß?g5“µkà?gëŽ¸­’øß?g(%
-ò à?gjöþ”ÿß?g9Á×U à?)rÌ   )
g   ØÎƒ¾gù†
V—ñÕ?g€öˆ}{ò?g.ócRßz	@g Ä¯"^ó"@g²y;Ñ+º<@g¯¾¯NÕÒU@gŠ@ö l“p@gÛ&O-‰@gÛN2qÆ£@)r)   r#   rw   r—   r˜   r¹   rˆ   Úser2)rÓ   rœ   r�   rž   rŸ   r    r¡   s          r1   Útest_step_responserÖ   ×   sµ   € ß‹5ÜÐ.Ô/ò#ð1€Dð
 €Dð
i€DðM€Dð2€Dð
€Dñ œ3 ×%Ò%Ð%Ð%Ùœ3 ×%Ò%Ð%Ð%Ùœ3 ×%Ò%Ð%Ð%Ùœ3 ×%Ò%Ð%Ð%Ùœ3 ×%Ò%Ð%Ð%Ùœ4 ×&Ò&Ð&Ò&r3   c                  óf  € \         '       g   \        R 4       RR lp RpRpRpR	pR
pRpV ! \        ^V4      '       g   Q hV ! \        ^
VR4      '       g   Q hV ! \        ^
VR4      '       g   Q hV ! \
        ^
V^4      '       g   Q hV ! \        ^
V^	4      '       g   Q hV ! \        ^
V4      '       g   Q hR# )r¤   c           	      ó’   € \        \        V VR VR7      !  w  rE\        WB^ ,          4      p\        WR^,          4      pT;'       d    T# )F)r   rÅ   rÆ   )r2   r   rÁ   )rŽ   Ú
num_pointsr�   r   rH   rI   rÈ   rÉ   s   &&&&    r1   Úramp_res_testerÚ+test_ramp_response.<locals>.ramp_res_tester  sK   € ÜÔ6°sØ %¨:ô7ñ 8‰ˆä& q¸Õ*;Ó<ˆÜ& q¸Õ*;Ó<ˆØ×"Ð"˜7Ð"r3   g333333ó?g      ø?N)rs   ))r–   g       @g      @g      @g       @rÍ   )r–   g¸óë+^pç?g CùŽÛÿ?gšåmX‚]@g˜’BOBa@gNµÊ¡f@)rÌ   )
g    (Z>g�órº?gº8gÃ((Õ?gŒo!(ïã?g»ÙŠ2ûê?gz$¶ÆY£ð?gxM�žw×ò?gÿÖ5^)ô?g—v]ûÅô?g†Ç“Äüßô?)rÌ   )
g   ˜We¾gD/lç3Ö?g† ø�Âÿ@g7CÐƒª(@g!%’8D@gÚìlZÚõ_@gëRÃ—¬vx@gJÌ³  ’@gÜs;4öO¬@gñk<0Ý�Å@)rÌ   )
r–   gÆ?°{þ?gÆ?°{>@gQ·æ‡EJc@gÆ?°{~@g(|Rþš’@gQ·æ‡EJ£@gåöÿ`Þ±@gÆ?°{¾@g     jÈ@)rÌ   )
r–   g™ÂgGS@gU-Xø˜H"@gEB­T1,@gÞ�n3@gzj8@g¢ÜSÜ\=@g«ª}ÚA@g5jÙ‡ÇŒC@gÿ>6ÅÎF@)rÌ   rÌ   )r)   r#   rw   r—   r˜   r¹   rˆ   r‡   )rÚ   rœ   r�   rž   rŸ   r    r¡   s          r1   Útest_ramp_responserÜ     sÊ   € ß‹5ÜÐ.Ô/ô#ðC€Dð€Dð
V€Dð%€Dð/€DðA€Dñ œ3  4×(Ò(Ð(Ð(Ùœ3  D¨#×.Ò.Ð.Ð.Ùœ3  D¨#×.Ò.Ð.Ð.Ùœ3  D¨!×,Ò,Ð,Ð,Ùœ3  D¨!×,Ò,Ð,Ð,Ùœ3  D×)Ò)Ð)Ò)r3   c                  óÄ  € \        \        4      w  rp\        \        4      w  r4p\        \        4      w  rgp\        \        4      w  ršpV ^V^,          ,
          RV^,          ,          ^V^,          ,
          ^,          ,           ,          8X  g   Q hVRV,          RV^,          ,          ^V^,          ,
          ^,          ,           ,          8X  g   Q hV^V^,          ,          ^	V^,          ,          ^^V^,          ,          ,
          ^,          ,           ,          8X  g   Q hWE^^V^,          ,          ,
          ,          ^	V^,          ,          ^^V^,          ,          ,
          ^,          ,           ,          8X  g   Q hWh^,          ) V^,          ^,           ,          8X  g   Q hWx) V^,          ^,           ,          8X  g   Q hV	^ 8X  g   Q hV
^
V^,          ,          8X  g   Q hR# )r5   g      Ð?Ng      à¿)r   rw   r—   r˜   r¹   )Úr1Úi1Úw1Úr2Úi2Úw2Úr3Úi3Úw3Úr4Úi4Úw4s               r1   Útest_nyquist_plot_exprrê   1  so  € Ü"¤3Ó'�J€BˆBÜ"¤3Ó'�J€BˆBÜ"¤3Ó'�J€BˆBÜ"¤3Ó'�J€BˆBØ�!�b˜!•e•)˜d 2 q¥5�j¨A°°Aµ­I¸­>Õ9Õ:Ô:Ð:Ð:Ø��b•˜$˜r 1�u�*¨¨B°­E­	°A¥~Õ5Õ6Ô6Ð6Ð6Ø��2�q•5•˜!˜B �E�' Q¨¨2¨q­5­¥[°1Õ$4Õ4Õ5Ô5Ð5Ð5Ø�Q˜˜2˜q�5�•[Õ! 1 R¨¥U¥7¨a°!°B¸µEµ'­k¸AÕ-=Õ#=Õ>Ô>Ð>Ð>Ø�a•%�˜˜Q� �Õ#Ô#Ð#Ð#Ø��b˜!•e˜a•i•Ô Ð Ð Ø�Œ7€Nˆ7Ø��B˜•E•Œ>ÐŠ>r3   c                  óÎ  € \        \        4      w  rp\        \        4      w  r4p\        \        4      w  rgp\        \        4      w  ršpV ^\        ^\        V^,          RV^,          ,          ,
          ^,           4      ,          4      ,          \        ^
4      ,          8X  g   Q hV^´\        ^V^,          ) RV,          \        ,          ,           ^,           ,          4      ,          \        ,          8X  g   Q hV^\        \        V4      \        ^$V^,          ,          ^V^,          ,          ,
          ^,           4      ,          4      ,          \        ^
4      ,          8X  g   Q hV^´\        V\        ,          RV^,          ,          ^V,          \        ,          ,           ^,           ,          4      ,          \        ,          8X  g   Q hV^\        \        V4      \        V^,          ^,           4      ,          4      ,          \        ^
4      ,          8X  g   Q hV^´\        V) \        ,          V^,          \        ,          ^,           ,          4      ,          \        ,          8X  g   Q hV	^\        ^
V^,          \        V4      ,          ,          4      ,          \        ^
4      ,          8X  g   Q hV
^´\        \        V^,          ,          4      ,          \        ,          8X  g   Q hR# )é   g      @r*   Niúÿÿÿ)r   rw   r—   r˜   r¹   r
   r   r	   r   r   r   )Úm1Úp1rà   Úm2Úp2rã   Úm3Úp3ræ   Úm4Úp4ré   s               r1   Útest_nichols_exprrõ   @  sþ  € Ü"¤3Ó'�J€BˆBÜ"¤3Ó'�J€BˆBÜ"¤3Ó'�J€BˆBÜ"¤3Ó'�J€BˆBØ�”C˜œ$˜r 1�u t¨B°­E¥zÕ1°AÕ5Ó6Õ6Ó7Õ7¼¸B»Õ?Ô?Ð?Ð?Ø�”S˜˜R �U˜F S¨¥V¬A¥XÕ-°Õ1Õ2Ó3Õ3´BÕ6Ô6Ð6Ð6Ø�”Cœ˜B›¤ R¨¨A­¥X°°"°aµ%µÕ%7¸!Õ%;Ó <Õ<Ó=Õ=¼cÀ"»gÕEÔEÐEÐEØ�”S˜œA�˜r " a¥%�x¨!¨B­$¬q­&Õ0°1Õ4Õ5Ó6Õ6´rÕ9Ô9Ð9Ð9Ø�”Cœ˜B›¤ R¨¥U¨Q¥Y£Õ/Ó0Õ0´°R³Õ8Ô8Ð8Ð8Ø�”S˜"˜œQ�  A¥¤a¥¨!¥Õ,Ó-Õ-¬bÕ0Ô0Ð0Ð0Ø�”C˜˜B �E¤# b£'�MÕ*Ó+Õ+¬C°«GÕ3Ô3Ð3Ð3Ø�”Sœ˜2˜q�5�“\Õ!¤"Õ$Ô$Ð$Ò$r3   N)FÚmathr   Úsympy.core.numbersr   r   Úsympy.core.symbolr   Ú$sympy.functions.elementary.complexesr   r	   Ú&sympy.functions.elementary.exponentialr
   Ú(sympy.functions.elementary.miscellaneousr   Ú	sympy.abcr   r   r   Úsympyr   Úsympy.externalr   Ú#sympy.physics.control.control_plotsr   r   r   r   r   r   r   r   r   r   r   r   r   Úsympy.physics.control.ltir   r   r    r!   Úsympy.testing.pytestr"   r#   ÚRuntimeErrorr$   r)   rw   r—   r˜   r¹   rˆ   r‡   rÎ   r›   r™   rÕ   rš   r2   r8   rK   r‹   r¢   rº   rÁ   rÐ   rÖ   rÜ   rê   rõ   r;   r3   r1   Ú<module>r     sï  ðÝ ß +Ý #ß ;Ý 6Ý 9ß Ñ Ý Ý (÷÷ ÷ õ ÷.ó .ç -áØ Z°(°Ð$<Øˆoô€
ñ 	�gÓ€á�q˜!˜Q�$  Q¥�,¨Õ*¨AÓ.€Ù�q˜!˜A˜q�D�& 1 Q¥3�,¨Õ*¨AÓ.€Ù�q˜!˜Q�$ �( AÓ&€Ù�r˜1˜a�4 Ó#€Ù�q˜!˜Q�$  1¥�* r�/¨1Ó-€Ù�q˜!˜QÓ€Ù�q˜•s˜1•u˜q  A¥�v•~¨¨A­Õ-°Õ2°A°a¸µdµF¸Q¸qÀ!½t½VµOÀbÕ4HÈ!ÓL€Ù�q˜!˜Q�$ ! A¥# q¥�.¨2Õ-¨qÓ1€áˆcÑ# A q¨1¥u¨aÓ0Ó1€ÙˆcÑ# A q¨1¥u¨aÓ0Ó1€á��SÓ€òò?ò
Lò'EòT ò:ò6ò
0*òf-'ò`'*òTô%r3   