使用 pgfplots 的 atan 问题

使用 pgfplots 的 atan 问题

我正在尝试使用 pgfplots 绘制简单的 Bode 图。经过大量研究,我放弃了 Bodegraph 包,因为它的文档很差,而且 gnuplot 有很多问题。因此,我使用激活了对数 x 轴的轴环境。下一个代码是显示问题的 tikzpicture 示例。

\begin{tikzpicture}
\begin{axis}[
    width=0.8\linewidth,
    height = 3cm,
    xmode = log,   
    axis x line*=box,
    axis y line*=box,
    xmin=1e-2, xmax=1e2,% range for the x axis
    ymin=-100, ymax = 100,
    scale only axis ,
    ytick distance=40,
    xmajorgrids = true,
    ymajorgrids = true,
    title = Fase,
    ylabel = $\phi$,
    xlabel = $\omega$
]
    \addplot[smooth, 
             blue,
             ultra thick,
             mark=none,
             domain=1e-2:1e2,
             samples=400,
             trig format plots = deg]
    {atan((2*0.1*(x/2))/(1-(x/2)^2))};   
\end{axis}
\end{tikzpicture}

问题是我得到了以下错误的情节: 糟糕的结果

我期望得到如下信息: 应该绘制什么

请注意,我使用trig format plots=true来设置三角函数的度数。有人能帮我吗?这只是二阶系统的相角图。

提前致谢

答案1

我认为您展示的图是正确的,因为它正确地显示了您输入的公式。正如评论中提到的,您在 的参数中除以 1-x/2 atan,并且当 x 趋近于无穷大时,atan(x) 的极限是 90 度。

percusse 在另一条评论中提到,你想使用它atan2来代替。atan2需要两个值,atan2(y,x)。我不知道你应该使用什么样的表达方式,但作为一个例子,它(atan2(1,x)-45)*2给出了类似于你期望的东西,尽管中间部分的曲线不那么陡峭。不过,我对这些东西不熟悉,所以我无法帮你找到更合适的公式。

在此处输入图片描述

\documentclass{standalone}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
    width=0.8\linewidth,
    height = 3cm,
    xmode = log,   
    axis x line*=box,
    axis y line*=box,
    xmin=1e-2, xmax=1e2,% range for the x axis
    ymin=-100, ymax = 100,
    scale only axis ,
    ytick distance=40,
    xmajorgrids = true,
    ymajorgrids = true,
    title = Fase,
    ylabel = $\phi$,
    xlabel = $\omega$
]
    \addplot[smooth, 
             blue,
             ultra thick,
             mark=none,
             domain=1e-2:1e2,
             samples=400,
             trig format plots = deg]
    {(atan2(1,x)-45)*2};   
\end{axis}
\end{tikzpicture}
\end{document}

相关内容