{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# 2nd Order PLL Modeling" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [], "source": [ "from scipy.signal import freqs\n", "import numpy as np\n", "log_freqs = np.logspace(4,9,1000)\n", "%matplotlib inline\n", "import matplotlib.pyplot as plt\n", "import ipywidgets" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "f_gain = 7.96e+05, f_zero = 3.18e+04, f_3dB = 8.28e+05, Peaking = 0.27, f_3dB_ojtf = 7.64e+05\n" ] }, { "data": { "image/png": "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\n8Fzth0rQAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Convert w_nat & damping factor to gain, zero, 3dB\n", "def calc_plot_pll_from_w_nat_damp_fact(w_nat, damp_fact):\n", " f_gain = (2*w_nat*damp_fact)/(2*np.pi)\n", " f_zero = (w_nat/(2*damp_fact))/(2*np.pi)\n", " f_3dB = (w_nat*np.sqrt(1+2*damp_fact**2+np.sqrt((1+2*damp_fact**2)**2+1)))/(2*np.pi)\n", " f_3dB_ojtf = (w_nat*np.sqrt((2*damp_fact**2)-1+np.sqrt(((2*damp_fact**2)-1)**2+1)))/(2*np.pi)\n", " b_pll,a_pll = [2*damp_fact*w_nat, w_nat**2], [1, 2*damp_fact*w_nat, w_nat**2]\n", " w_pll,jtf_pll = freqs(b_pll,a_pll, worN = 2*np.pi*log_freqs)\n", " ojtf_pll = 1-jtf_pll\n", " plt.semilogx(w_pll/(2*np.pi),20*np.log10(abs(jtf_pll)))\n", " plt.semilogx(w_pll/(2*np.pi),20*np.log10(abs(ojtf_pll)))\n", " plt.grid(1, which = \"both\")\n", " peaking = max(20*np.log10(np.abs(jtf_pll)))\n", " print \"f_gain = %.2e, f_zero = %.2e, f_3dB = %.2e, Peaking = %.2f, f_3dB_ojtf = %.2e\" %(f_gain,f_zero,f_3dB,peaking,f_3dB_ojtf)\n", "\n", "w_nat = ipywidgets.FloatSlider(value = 1e6,min = 1e6,max = 1e7, step = 1e6, description = \"Natural Frequency\")\n", "damp_fact = ipywidgets.FloatSlider(value = 0.1, min = 0.1, max = 10, step = 0.1, description = \"Damping Factor\")\n", "ipywidgets.interact(calc_plot_pll_from_w_nat_damp_fact, w_nat = w_nat, damp_fact = damp_fact)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "f_gain = 1.28e+05, f_zero = 3.20e+06, w_nat 4.02e+06, Peaking = 14.19, f_3dB_ojtf = 4.14e+05\n" ] }, { "data": { "text/plain": [ "" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\nIZn8hRAiCv0/Q5rSKf92/HMAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Convert 3dB & Damping to Gain, Zero & w_nat\n", "def calc_plot_pll_from_f_3dB_damp_fact(f_3dB, damp_fact):\n", " w_nat = 2*np.pi*f_3dB/np.sqrt(1+2*damp_fact**2+np.sqrt((1+2*damp_fact**2)**2+1))\n", " f_gain = (2*w_nat*damp_fact)/(2*np.pi)\n", " f_zero = (w_nat/(2*damp_fact))/(2*np.pi)\n", " f_3dB_ojtf = (w_nat*np.sqrt((2*damp_fact**2)-1+np.sqrt(((2*damp_fact**2)-1)**2+1)))/(2*np.pi)\n", " b_pll,a_pll = [2*damp_fact*w_nat, w_nat**2], [1, 2*damp_fact*w_nat, w_nat**2]\n", " w_pll,jtf_pll = freqs(b_pll,a_pll, worN = 2*np.pi*log_freqs)\n", " ojtf_pll = 1-jtf_pll\n", " plt.semilogx(w_pll/(2*np.pi),20*np.log10(abs(jtf_pll)))\n", " plt.semilogx(w_pll/(2*np.pi),20*np.log10(abs(ojtf_pll)))\n", " plt.grid(1, which = \"both\")\n", " peaking = np.max(20*np.log10(np.abs(jtf_pll)))\n", " print \"f_gain = %.2e, f_zero = %.2e, w_nat %.2e, Peaking = %.2f, f_3dB_ojtf = %.2e\" %(f_gain,f_zero,w_nat,peaking,f_3dB_ojtf)\n", " \n", "f_3dB = ipywidgets.FloatSlider(value = 1e6,min = 1e6,max = 1e7, step = 1e6, description = \"3dB Frequency\")\n", "damp_fact = ipywidgets.FloatSlider(value = 0.1, min = 0.1, max = 10, step = 0.1, description = \"Damping Factor\")\n", "ipywidgets.interact(calc_plot_pll_from_f_3dB_damp_fact, f_3dB = f_3dB, damp_fact = damp_fact)" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 2", "language": "python", "name": "python2" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.10" } }, "nbformat": 4, "nbformat_minor": 0 }