半波整流电路后连接的滤波器输出波形

半波整流电路后连接的滤波器输出波形

我正在尝试生成半波整流电路的波形。我只能通过修改代码在这里给出如下:

  1. 第一次修改代码:

     \documentclass[border=2mm]{standalone}
     \usepackage{pgfplots}
     \pgfplotsset{compat=1.18}
    
     \begin{document}
     \begin{tikzpicture}
     \begin{axis}[
         domain=0:1.5*360,
         samples=4*360,
         xtick=\empty,
         width=10cm, height=4cm,
         axis x line=bottom,
         axis y line=left,
         axis line style={-},
         ymax=1.5,
         ymin=0,
         enlarge x limits=false,
     ]
     \addplot [densely dashed] {sin(x)};
     \addplot [thick] {max(sin(x), exp(-(0.0015*mod(x+90, 720)))};
     \end{axis}
     \end{tikzpicture}
     \end{document}
    

我从上面修改后的代码得到的输出是 第一次修改

  1. 现在,对上述代码进行进一步修改,具体如下

     \addplot [thick] {max(sin(x), exp(-(0.0015*mod(x+270, 720)))};
    

给我输出 第二次修改

然而,我想要这样的输出波形。有没有办法使用 pgfplots 或简单的 tikz 包来实现这样的波形? 预期输出波形

笔记:前半周期的充电部分应从0/初始值开始。

答案1

在此处输入图片描述

绘图取决于两个参数,\mainTW\secondT。第一个参数比略大,pi/2而后者小于pi/4。它们控制“波浪”。

代码

\documentclass[11pt, border=10pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{math, calc}
\begin{document}

\tikzmath{%
  real \mainTW, \secondT, \angleW, \piW, \boundW;
  \piW = 3.14159;
  \mainTW = \piW/2 +.1;
  \secondT = .22*\piW;
  \angleW = {atan(cos(\mainTW r))};
  \boundW = 5.3*\piW;
}
\begin{tikzpicture}[every node/.style={scale=.8}, xscale=.7]
  \draw[->, thin] (-.5, 0) -- (\boundW, 0) node[below=1ex] {$t$};
  \draw[->, thin] (0, -.5) -- (0, 1.5);
  \begin{scope}
    \clip (-.5, 0) rectangle (\boundW, 1.5);
    \draw[dashed, very thin,
    variable=\t, domain=-.5:\boundW, samples=80] plot (\t, {sin(\t r)});

  \draw[blue, thick, variable=\t]
  [domain=0:\secondT, samples=30] plot (\t, {sin(\t r)})
  \foreach \j in {0, 1, 2}{%
    [domain={2*\j*\piW +\secondT}:{2*\j*\piW +\mainTW}, samples=30]
    plot (\t, {sin(\t r)})
    to[out=\angleW, in=179]
    ($({2*(\j+1)*\piW +\secondT}, {sin(\secondT r)})$)
  };  
  \end{scope}
\end{tikzpicture}
\end{document}

答案2

我认为你的阶段是错误的(在链接的答案中,由于这并不重要abs(sin(...。我试图单独绘制斜坡(x 上的“重复”时间)以了解发生了什么,我有这个 --- 注意使用辅助函数来简化方程式:

\documentclass[border=2mm]{standalone}
 \usepackage{pgfplots}
 \pgfplotsset{compat=1.18}

 \begin{document}
 \begin{tikzpicture}[
     declare function={
        ramp(\x)=mod(\x+270, 360)/360;
     }
     ]
 \begin{axis}[
     domain=0:1.5*360,
     samples=4*360,
     % xtick=\empty,
     width=10cm, height=4cm,
     axis x line=bottom,
     axis y line=left,
     axis line style={-},
     ymax=1.5,
     ymin=0,
     enlarge x limits=false,
 ]
 \addplot [densely dashed] {sin(x)};
 \addplot [thick] {max(sin(x), exp(-ramp(x))};
 \addplot [thick, blue, dashed] {exp(-ramp(x))};
 \addplot [red] {ramp(x)};
 \end{axis}
 \end{tikzpicture}
 \end{document}

在此处输入图片描述

我使用 +270 而不是 -90,因为负 x 的模运算是对称的,而我们不希望在这里出现这种情况。

删除我添加的辅助信息以了解发生了什么,您有:

在此处输入图片描述

请注意,为了获得正确的“分离”(切线),您必须输入来自检测器的实数......

相关内容