{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Data analysis: Fitting the filter transfer function" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ ":::{admonition} Goals\n", ":class: tip\n", "- Learn how to load and fit a model to data using Python\n", ":::" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "OBS:Antes de usar este notebook, faça-te um favor e instale o Python através da distribuição Anaconda. Deve ser utilizado o Python versão >3.\n", "https://www.anaconda.com/download/\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Loading python packages\n", "The following python packages will be necessary to execute this notebook" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "button": false, "new_sheet": false, "run_control": { "read_only": false } }, "outputs": [], "source": [ "'''importa as bibliotecas necessárias'''\n", "import matplotlib.pyplot as plt # importar a bilioteca pyplot para fazer gráficos\n", "import numpy as np # importar a biblioteca Numpy para lidar com matrizes\n", "import time # importar a bilioteca para funções temporais\n", "import pandas as pd # importa bilioteca pandas para lidar com processamento de dados\n", "import os # biblioteca para lidar com diretórios\n", "import scipy.io #pacote para carregar dados do matlab\n", "from scipy.optimize import curve_fit # pacote para ajuste de curvas\n", "from uncertainties import ufloat # pacote para lidar com incertezas\n", "#from scipy import optimize\n", "%matplotlib inline " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Loading data\n", "Carregando arquivos com o pacote PANDAS. O arquivo ```.csv``` deverá estar na mesma pasta que o seu arquivo Jupyter" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "button": false, "new_sheet": false, "run_control": { "read_only": false } }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Unnamed: 0frequencia (Hz)Vpp1 (V)Vpp2 (V)fase (rad)
0010.0000002.0088031.9999770.360000
1113.7382382.0210521.993670-0.494505
2218.8739181.9965541.987532-0.271903
3325.9294381.9965541.993721-1.867220
4435.6224791.9965541.987511-1.538462
\n", "
" ], "text/plain": [ " Unnamed: 0 frequencia (Hz) Vpp1 (V) Vpp2 (V) fase (rad)\n", "0 0 10.000000 2.008803 1.999977 0.360000\n", "1 1 13.738238 2.021052 1.993670 -0.494505\n", "2 2 18.873918 1.996554 1.987532 -0.271903\n", "3 3 25.929438 1.996554 1.993721 -1.867220\n", "4 4 35.622479 1.996554 1.987511 -1.538462" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "file_name = 'dados_sweep.csv'\n", "folder_path=os.getcwd() \n", "file=os.path.join(folder_path,file_name)\n", "dados = pd.read_csv(file, sep=',') #separador ,\n", "#ver o cabeçalho....\n", "dados.head()" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "button": false, "new_sheet": false, "run_control": { "read_only": false } }, "outputs": [], "source": [ "#*********************************************\n", "#atribuindo variáveis\n", "#*********************************************\n", "freq_vec = np.array(dados['frequencia (Hz)'])\n", "vpp1_vec = np.array(dados['Vpp1 (V)'] )\n", "vpp2_vec = np.array(dados['Vpp2 (V)'] )\n", "fase_vec = np.array(dados['fase (rad)'])\n", "npt = len(vpp1_vec) # numero de pontos" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Em termos das amplitudes (pico-pico) medidas no osciloscópio, a transmitância é dada por \n", "\n", "$$T=\\left(\\frac{v_{out}^{(pp)}}{v_{in}^{(pp)}}\\right)^2$$(eq:trans_lin)\n", "\n", "Em decibéis, \n", "\n", "$$T_{dB}=10\\log_{10}(T)$$(eq:trans_db)\n", "\n", "As equações {eq}`eq:trans_lin` e {eq}`eq:trans_db` são calculadas a seguir:" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "#*********************************************\n", "#calculando transmistancia a partir dos vetores de vpp\n", "#*********************************************\n", "t = (vpp2_vec/vpp1_vec)**2\n", "t_db = 10*np.log10(t)\n", "#*********************************************\n", "#---------------------------\n", "#horizontal [segundos]\n", "fase_vec_rad=fase_vec*np.pi/180 #fase em radianos\n", "omega_vec = 2*np.pi*freq_vec # frequencia angular\n", "#*********************************************\n", "#recortando os vetores, caso possuam ponto a serem excluidos\n", "#*********************************************\n", "pi = 0 # indice do primeiro ponto\n", "pf = npt # indice do último ponto\n", "freq_vecr = freq_vec[pi:pf]\n", "tr = t[pi:pf]\n", "t_dbr = t_db[pi:pf]\n", "fase_vecr = fase_vec[pi:pf]" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "button": false, "new_sheet": false, "run_control": { "read_only": false } }, "outputs": [ { "data": { "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#*********************************************\n", "#grafico\n", "#*********************************************\n", "fig = plt.figure();\n", "fig, ax = plt.subplots(2, sharex=True, figsize=(6, 10))\n", "ax1 = plt.subplot(211);\n", "ax2 = plt.subplot(212);\n", "#DADOS\n", "#*********************************************\n", "#grafico experimental\n", "ax1.semilogx(freq_vecr,t_dbr, 'og', markersize=5, label='dados')\n", "ax2.semilogx(freq_vecr,fase_vecr,'og', markersize=5)\n", "\n", "fig; # mostra a figura\n" ] }, { "cell_type": "markdown", "metadata": { "button": false, "new_sheet": false, "run_control": { "read_only": false } }, "source": [ "Na célula abaixo, definimos funções para calcular a função de transferência complexa para um circuito $RC$, a transmitância e a fase de função de transferência\n", "$$H(\\omega,R,C)=\\frac{Z_c}{R+Zc}=\\frac{-j/(\\omega C)}{R-j/(\\omega C)};$$ \n", "a transmitância $$T(\\omega,R,C)=|H(\\omega,R,C)|^2;$$\n", "e a fase da função de transferência $$\\phi(\\omega,R,C)=\\arg(H(\\omega,R,C)).$$\n", "\n", "Explicitamos acima a dependência com os parâmetros $R$ e $C$ para lembrá-los que estes parâmetros devem ser considerados no caso de outro circuito, e.g., no $RL$ devemos ter uma função que depende de $R,L$" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "button": false, "new_sheet": false, "run_control": { "read_only": false } }, "outputs": [], "source": [ "#*********************************************\n", "#definindo funcao que calcula a curva teorica\n", "#r - resistencia\n", "#c - capacitancia\n", "#*********************************************\n", "def funcH(freq, r, c):\n", " j=complex(0,1)\n", " omega=2*np.pi*freq\n", " #reatancias\n", " Xc=1/(omega*c)\n", " #impedancias\n", " Zc=-j*Xc\n", " #funcao de transferencia\n", " H= Zc/(r+Zc)\n", " return H\n", "def funcT(freq, r, c):\n", " #****************\n", " #comente estes valores \n", " #caso deseje que eles tambem sejam ajustados\n", " #****************\n", " H = funcH(freq, r, c)\n", " #transmitancia, linear\n", " T = np.abs(H)**2\n", " return T\n", "def funcTdb(freq, r, c):\n", " #****************\n", " #comente estes valores \n", " #caso deseje que eles tambem sejam ajustados\n", " #****************\n", " H = funcH(freq, r, c)\n", " #transmitancia, linear\n", " Tdb = 20*np.log10(np.abs(H))\n", " return Tdb\n", "def funcPhi(freq, r, c):\n", " #****************\n", " #comente estes valores \n", " #caso deseje que eles tambem sejam ajustados\n", " #****************\n", " #Funcao H\n", " H = funcH(freq, r, c)\n", " #fase em graus\n", " phi = np.angle(H,deg=True)\n", " return phi" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "button": false, "new_sheet": false, "run_control": { "read_only": false } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "Parâmetros ajustados segundo a função curve_fit:\n", "pfit = [1.54625625e+02 2.57179870e-07]\n", "\n", "Erros estimados pela função curve_fit:\n", "perr = [inf inf]\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/Users/gsw/miniconda3/lib/python3.6/site-packages/scipy/optimize/minpack.py:795: OptimizeWarning: Covariance of the parameters could not be estimated\n", " category=OptimizeWarning)\n" ] } ], "source": [ "chute_inicial = (150,0.22e-6,) #chute inicial igual parametros nominais\n", "pfit, pcov = curve_fit(funcTdb, freq_vecr, t_dbr, p0=chute_inicial)\n", "#print('Parametros do ajuste (r (Ohms),c (faraday)):', pfit)\n", "#print(popt)\n", "perr = np.sqrt(np.diag(pcov))\n", "print(\"\\nParâmetros ajustados segundo a função curve_fit:\")\n", "print(\"pfit = \", pfit)\n", "print(\"\\nErros estimados pela função curve_fit:\")\n", "print(\"perr = \", perr)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "O erro acima ocorre porque tentamos ajustar dois parâmetros que estão relacionados $\\tau=RC$, sendo que a função de ajuste depende apenas do produto entre os dois valores. Dada esta dependencia da função de ajuste, deveríamos tentar ajustar apenas o produto $RC$. Por exemplo, a função de transferência do filtro passa-baixas pode ser escrita como $$H_{PB}(\\omega)=\\frac{1}{1+j\\omega\\tau}.$$ A seguir tratamos este caso." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "def funcH2(freq, tau):\n", " j=complex(0,1)\n", " omega=2*np.pi*freq\n", " #funcao de transferencia\n", " H= 1/(1+j*omega*tau)\n", " return H\n", "def funcTdb2(freq, tau):\n", " #****************\n", " #comente estes valores \n", " #caso deseje que eles tambem sejam ajustados\n", " #****************\n", " H = funcH2(freq, tau)\n", " #transmitancia, linear\n", " Tdb = 20*np.log10(np.abs(H))\n", " return Tdb\n", "def funcT2(freq, tau):\n", " #****************\n", " #comente estes valores \n", " #caso deseje que eles tambem sejam ajustados\n", " #****************\n", " H = funcH2(freq, tau)\n", " #transmitancia, linear\n", " T = np.abs(H)**2\n", " return T\n", "def funcPhi2(freq, tau):\n", " #****************\n", " #comente estes valores \n", " #caso deseje que eles tambem sejam ajustados\n", " #****************\n", " #Funcao H\n", " H = funcH2(freq, tau)\n", " #fase em graus\n", " phi = np.angle(H,deg=True)\n", " return phi" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "Parâmetros ajustados segundo a função curve_fit:\n", "pfit = 3.976664e-05 \n", "\n", "Erros estimados pela função curve_fit:\n", "σ = 9.253811e-07 \n" ] } ], "source": [ "chute_inicial = (150*0.22e-6,) #chute inicial igual parametros nominais\n", "pfit, pcov = curve_fit(funcTdb2, freq_vecr, t_dbr, p0=chute_inicial)\n", "#print('Parametros do ajuste (r (Ohms),c (faraday)):', pfit)\n", "#print(popt)\n", "perr = np.sqrt(np.diag(pcov))\n", "print(\"\\nParâmetros ajustados segundo a função curve_fit:\")\n", "print(\"pfit = {:2e} \".format(pfit[0]))\n", "print(\"\\nErros estimados pela função curve_fit:\")\n", "print(\"σ = {:2e} \".format(perr[0]))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Podemos usar o pacote uncertainty (veja no início deste notebook), para colocar o erro com os algarismos significativos corretos:" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "τ (com uma casa décimal)= (39.8+/-0.9) μs\n", "τ (com duas casa décimal)= (39.77+/-0.93) μs\n" ] } ], "source": [ "print(\"τ (com uma casa décimal)= ({:.1f}) μs\".format(1e6*ufloat(pfit[0],perr[0])))\n", "print(\"τ (com duas casa décimal)= ({:.2f}) μs\".format(1e6*ufloat(pfit[0],perr[0])))" ] }, { "cell_type": "markdown", "metadata": { "run_control": {} }, "source": [ "Na célula abaixo, é claro que será necessário alterar os valores dos argumentos das funções funcT e funcPhi:\n", "```\n", "T = funcT(freq_t,150,0.22e-6)\n", "fase = funcPhi(freq_t,150,0.22e-6)\n", "```\n", "Também é assumido que você já fez as alterações necessárias nas funções para contemplar as sutilezas do seu circuito." ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "button": false, "new_sheet": false, "run_control": { "read_only": false } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#*********************************************\n", "#vetor de frequencias teorica, com bem mais pontos que o experimental\n", "freq_t=np.logspace(np.log10(freq_vecr[0]),np.log10(freq_vecr[-1]),1000)\n", "#transmicao teorica usando valores nominais, checar se a curva parece com o experimento\n", "T = funcT2(freq_t,150*0.22e-6)\n", "fase = funcPhi2(freq_t,150*0.22e-6)\n", "#*********************************************\n", "\n", "ax1.semilogx(freq_t,10*np.log10(T),'-b',label='teórico nominal') # curva teorica\n", "ax2.semilogx(freq_t,fase,'-b') # curva teorica\n", "fig" ] }, { "cell_type": "markdown", "metadata": { "run_control": {} }, "source": [ "OBS:Abaixo, usamos a notação ```Tfit = funcT(freq_t, *pfit)``` para passar o argumento ```pfit```. Esta notação, que inlcui um asterísco, significa que ```pfit``` pode ser um escalar ou um vetor. No caso de ser um vetor, a sua função deverá receber tantos argumentos (após o argumento ```freq_t```) quanto elementos no vetor ```pfit```" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "button": false, "new_sheet": false, "run_control": { "read_only": false } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZAAAAJQCAYAAACgvzLlAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nOzdd3iUVd7G8e/JpAAJSK+hSidAwEBQkCJgCEZAsFBsq9j7WtFVee1tXWWtqIAuKIoKIhhBREQUwSAgHaK00IsoCSWQnPePE0ICAcKQzEyS+3NdcyXzzJnJL/tsuH2e04y1FhERkdMV5O8CRESkaFKAiIiIVxQgIiLiFQWIiIh4RQEiIiJeCfZ3AQWhcuXKtl69ev4uQ0SkSFmwYMFOa20Vb99fLAKkXr16JCUl+bsMEZEixRiz/kzer1tYIiLiFQWIiIh4RQEiIiJeUYCIiIhXFCAiIuIVBYiIiHhFASIiIl5RgIiIiFcUICIi4hUFiIiIeEUBIiIiXlGAiIiIVxQgIiLiFQWIiIh4RQEiIiJeUYCIiIhXFCAiIuIVBYiIiHhFASIiIl5RgIiIiFeC/V3AiRhjegGvAh7gXWvtcwX9MzIyM0hMTmThloW0qdGG+IbxeII8Bf1jAr6GQKpDRIqOgAwQY4wHeB3oCaQAvxhjJltrlxfUz8jIzCBubBzzNs0jLT2N8NBwYmvFMu3KaT77hzMQagikOkSkaDHWWn/XcBxjzLnAcGttXNbzYQDW2mfzah8TE2OTkpJO62dMWT2FabffxH2zDgJgAWuCKBVcCk9QMBiTddyAMe6rKwaLwQD2JMfJOn7c91mfC4YDGen8ffAvMrN+vjscxFmly1PKU+roe41rb83Rn3Wiz7QmR20mCBvkwRoPmUHBZAZ5sp/j8WA9Hgjy8Oehvaz+M5l0MjkcBBlBgMdDyxrRVD2rBsbj2uPxQEgwBIdAWBg2LAxCwyAsDBMW6r6WCiM4PAxPmTBCIsIICQ8lODyM0LJhBEeUIqxSBCHhoZigIzXnpishEd8xxiyw1sZ4+/6AvAIBagEbczxPAWJzNjDG3AjcCFCnTp3T/gELtyyk9N+Z1D20K/cL6af9UQUvdb3Pf2TnvA4mLyqUn3WIYNIIJ81EsM9EsM8Twf6gCA6GRLDLZrAnyFDWE0xS2BLmlp1Kk7M7YitUhooVMZUq4qlSkdLVz6JCZQ8VK0LFilChAoSH58hSESl0gRogef0zkOtSyVo7EhgJ7grkdH9AmxptuCluLx+fC8a6HxgeUoYRvV7lgnrdjvyQo4+czwvo+x/W/8C/Zj7C/vT92b90eHBpnuj2BJ1qdzzzn5WZCRkZ7nH4cPb3mYeyHoczsIcyWLJpMf9b+AGH09MJzjB4MoMobcK4pGFfGpSrjz2ckeNxGNIPwcGDkH4Qc/AgpKdj0g9i0nMcO+SOBaUfxBw6SNDhdDzp+wlJTyMkI53y/EV5+5c7q5lZJ+VgHidqG5D81nGHMzH8SQW2UIMV1GQLNdgeVIO/ytQgtVxNDlSowaGadQmpW5PqtTzUrAk1ahx9VKsGwYH6/36RIiJQ/4RSgNo5nkcCmwvyB8Q3jKfZ2R1y3fc/u1YsXbr9A3x0y+S8tm0ISZvKr8f0PZx76T2FWkMQuYfftcnM4KGxy47pA2nNE1e+XTi3j9LTIS3NPVJTsx/j577LFwvGEZ4O5Q5ChQNQaT90KduS5sE1sDt3Y3fvht278fy9h0rsphK7iWKZ+9xMIDXrsRlYBumEsI56/EED1lKf2TTgDxqwgubsr9WQ2g1CqF8fGjSA+vXd4+yzXcjoakbk5AK1DyQYWA10BzYBvwCDrbXL8mrvTR8IHL3fvmjrIqKrR/t1FJY/awiUOqasnsKgzwaRmp6afSwiNIKPBnxEQuOEYwrOgF27YMsW2LzZfc35/ebNsG4dbNt2wp93OCiEDaWasMS2YMH+Fiwhil9pywbqcNZZhubNoXlzaNHi6NdatRQsUnycaR9IQAYIgDGmN/AKbhjvKGvt0ydq622ASGAplNFgaWkuSP74wz3WroU1a2D5cnc8D/siqvBHxRhmH47i279i+T6tC7uoDEDVqtCuHcTEuK/t2rljIkVRsQ2Q06EAKT58eiWUmgorVsCyZe6xZAkkJbkrm2MkV6lEWrOB/BDUjfGbO/PTmirZXU7160PXrtCli3vUq1c45YoUNAUIChApQNby7cz3eP/d22m54SDtN0H7TVD6cO5mGS1asql1b36qkMCEjR2YNSeY3bvda3XqwAUXQO/ecOGFcNZZvv81RPKjuA7jFfEPY/gpeAtjm6Zjm7pDoYchdhM8YS6g6zrgp5/wLFtCnWVLqMPzDKxQARvXiw3RfUj0JDDj5wgmTYIxY9xIr06dXJj07QuNG/vxdxMpYLoCETnGKTvzDx6EOXNg6lSYMsX1qRxRujQkJJBx6RX8XLE3U74tzdSp7u4YQOvWcMUV7tGggY9/MZFj6BYWChApWKfdmb9mjQuSzz6DH388ejwiAvr3h6FD2VCnE59PNHz8Mfz8s3s5JgaGDIErr4TKlX3zu4nkpABBASIFz+vO/A0b4JNP4OOPXYf8EU2awNChcM01rN9XhQkTYPx4WLAAQkOhXz+4/nro0QOCtEa2+IgCBAWIBKg1a2D0aPfYutUdCwmBAQPgnnugfXuWLIH33oP//Q9274a6deGmm9yjYkX/li/F35kGiP5bR6SwNGoEzzwDGzfCpEmQkOAmQI4fD7Gx0KkTLVd/xiv/zmDTJnf47LPh4YchMhJuuQVWrvT3LyFyYgoQkcIWHOyGYH35pZvIeP/9bmzvjz/CpZdCo0aUev9truh3kG+/hd9+g0GD3IVLs2Zw0UXw00/+/iVEjqcAEfGlOnXghRcgJQVGjHCXHGvXws03uyuWN96gZaMDvPee6075v/+D+fOhY0fo3h2+/97fv4DIUQoQEX+IiIA77oBVq1yHe4sW7lbXbbe5UHntNaqWT+exx9yKKy+95CbLd+0KnTvDrFl+rl8EBYiIf3k8cPnl7r7Vp59Cq1ZuIcg77nArOE6YQHgZy733uguVV1+F33+Hbt3c5MTffvP3LyAlmQJEJBAEBbnRWQsXuvkkTZq4pLj8cujQAWbPpnRpuPNOSE6G55+HuXMhOhquvdbd7hLxNQWISCAJCnKTD5cuhbfewlav7jpBunRha48OZPyeTOnS8MADLl/uvdeN3mrcGB55xC0+LOIrChCRQBQcTMYNQ7n4/5rwVPdQ9oZC9W/ncbhZEzKHPw7791OxIrz4outGuewyN2K4aVOYMOHo5pQihUkBIhKgEpMT+X7XAh49P53Gd8DYlhB2KJOg/3sCoqLcsGDc5MP//Q9++AEqVXJ3vXr0cFueiBQmBYhIgFq4ZSFp6e6e1NaycNUA6HItbGtQzW2O1aePWwNls9vtuVMntzTK66/Dr7+6hRuHDYP9+/34S0ixpgARCVBtarQhPDQ817FfG0eQ9OXb8MorULYsfPGFG6317rtgLR4P3HorrF4NV10Fzz3ngmT2bD/9ElKsKUBEAlR8w3hia8USERqBwRARGkFsrVh6NU2Au+5y96gSEuCvv+CGG9x9qz/+AKBKFRg1Cr75Bg4fdjsl3nIL/P23n38pKVa0mKJIADvlqsDWuomId9wBO3e6/UieecaN981a1jctDR591M0hqVEDRo50c0hEtBovChARdu6Eu++GcePc8wsucFsi1q6d3WT+fLjuOjej/eab3ez28PC8P05KBq3GKyJuR6qxY12fSJUqMHOmm9U+fnx2k/bt3RYl990Hb78NbdrAvHl+rFmKPAWISHHSp4/bPzchAfbsccv6DhkCf/4JQKlSbu7IzJluZ96OHWH4cDh0yL9lS9GkABEpbqpVg8mTXWdHmTLw4YfuauSHH7KbdO3q1tEaPNit+NupU3b/u0i+KUBEiiNj3MisRYvc5lUpKS41nn4aMjMBtyXJBx+4HXhXr3a3tD791L9lS9GiABEpzho1clceDz3kguNf/4JevWD79uwml13m1nBs1sx9f+utcOCAH2uWIkMBIlLchYTAs89CYqLrbP/mGze78LvvspvUq+dy5r774M033QLAq1f7r2QpGhQgIiVFr17ullbnzrB1q5t4+H//l31LKyTEdbBPmeLueLVt67pPRE5EASJSktSqBd9+625lWeuGYF18cfYoLXB7sC9a5PpEhgxxk941SkvyogARKWmCg+HJJ2HaNKhYEb76Ctq1c8N/s0RGuqG+d9/ttm7v3t1dtIjkpAARKal69nTL97Zp43an6tAh18TDkBD4z3/cbaykJDjnHLcLosgRChCRkqxePfjxR7j6ati3z008vPdetwJjlkGD4Oef3STELl1cJ3sxWAFJCoACRKSkK13arZv12mvu9tbLL7urkx07spu0auWuQnr2dMN8r7tOQ31FASIi4CYe3nabG9pbvTrMmnVcv0iFCm4TxMcfd3nTtav6RUo6BYiIHHVkW8PYWFi/Hs47zy2LkiUoyA3c+uwzly3t2rlJiFIyKUBEJLeaNd2VyODBkJrqts194YVcHR/9+7uuE2Nc5nz2mR/rFb9RgIjI8UqXdsvDP/20C44HH4Rrr3VL+GaJjnZ7jLRqBZde6kYGq3O9ZFGAiEjejIGHHyZjwgQOlw6DDz5g97nRZGzZnN2kenV3sXLllfDYY27E1v79fqxZfEoBIiInlJGZQdy+t+h8fRAbykHFhSvZ2fJsMhYd7fgoVcqt6vvcc25l386dYfPm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cMMNXH/99fz6669nVK+IyOnQKCzAE+Rh2pXTSExOZNHWRURXjy6QUVht27bliiuuIDo6mrp163L++ecD8OSTTxIbG0vdunVp2bIle/fuBeDVV19l8ODBvPrqqwwYMCD7cy655BLmzp1L69atMcbwwgsvUL16dd5//31efPFFQkJCiIiI0BWIiPiUOdHtkaIkJibGJiUl5Tq2YsUKmjVr5qeKpKDoPIoUHmPMAmttjLfv1y0sERHxigJERES8ogARERGvKEBERMQrChAREfGKAiSATJs2jUWLzmz2u4iIryhACsmePXt444038t1+5syZTJs2jdatW5+wTe/evdmzZ09BlFfgJk+ezHPPPef1+7V0vUjRo3kghWTdunUkJCSwdOnSM/4say3WWoKCim/eR0REkJqaetxxf59HkeJM80AC1EMPPcTvv/9OdHQ0999/PwAvvvgi7dq1o1WrVjz++OPZbV9++WWioqKIiorilVdeAVwANWvWjFtvvZW2bduyceNG6tWrx86dOwH44IMPaNWqFa1bt85eeHH9+vV0796dVq1a0b17dzZs2HBcXcOHD+e6666ja9euNGjQgBEjRpyyjqZNmzJ06FCioqIYMmQIM2bMoGPHjjRq1Ij58+cDMGbMGG6//XbArfV15513ct5559GgQQM+/fRTAFJTU+nevTtt27alZcuWfPHFFwX6v7mI+FaJWMrk7ruhoLsWoqMh69/YPD333HMsXbo0u09j+vTprFmzhvnz52OtpU+fPsyePZvw8HBGjx7NvHnzsNYSGxtLly5dqFChAqtWrWL06NHH3QpbtmwZTz/9ND/++COVK1dm9+7dANx+++1cffXVXHPNNYwaNYo777yTSZMmHVfbypUr+e6779i7dy9NmjThlltu4bfffjthHcnJyUyYMIGRI0fSrl07PvzwQ+bMmcPkyZN55pln8vwZW7ZsYc6cOaxcuZI+ffpw6aWXUqpUKSZOnEi5cuXYuXMnHTp0oE+fPtr7XKSI0hWIj0yfPp3p06fTpk0b2rZty8qVK1mzZg1z5szhkksuITw8nIiICPr375+9MVTdunXp0KHDcZ81c+ZMLr30UipXrgxAxYoVAZg7dy6DBw8G3HLwc+bMybOWiy66iLCwMCpXrkzVqlXZtm3bSeuoX78+LVu2JCgoiBYtWtC9e3eMMbRs2ZJ169bl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\n", "text/plain": [ "
" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" }, { "data": { "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "#*********************************************\n", "#graficando o ajuste em vermelho solido \n", "#calculando os a funcao teorica com os valores obtidos do ajuste\n", "Tfit = funcT2(freq_t, *pfit)\n", "fasefit = funcPhi2(freq_t, *pfit)\n", "\n", "ax1.semilogx(freq_t,10*np.log10(Tfit),'-r',linewidth=2, label='ajuste')\n", "ax2.semilogx(freq_t,fasefit,'-r',linewidth=2)\n", "\n", "#ajustes dos graficos\n", "#ax1.set_xlabel('meu eixo freq')\n", "ax1.set_ylabel('meu eixo t')\n", "ax2.set_xlabel('meu eixo de freq')\n", "ax2.set_ylabel('meu eixo fase')\n", "ax2.set_xlim((100,1e5)) #LIMITES DO EIXO X\n", "#ax2.set_xlim((100,1e5))\n", "ax1.set_ylim((-45,5)) #LIMITES DO EIXO Y\n", "#ax1.legend(loc='lower right')\n", "#plt.title('Diagrama Bode')\n", "fig.tight_layout\n", "plt.subplots_adjust(hspace=0.5)\n", "#plt.subplots_adjust(wspace=0.4)\n", "ax1.legend(loc='lower left')\n", "fig" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "button": false, "new_sheet": false, "run_control": { "read_only": false } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "pasta atual: /Users/gsw/Documents/GitHub/F540/Material suplementar\n", "arquivo salvo: /Users/gsw/Documents/GitHub/F540/Material suplementar/bode_rc_dados.pdf\n" ] } ], "source": [ "#salvando\n", "print('pasta atual:',os.getcwd()) \n", "name='bode_rc_dados'\n", "folder_path=os.getcwd()\n", "ext='pdf'\n", "path=os.path.join(folder_path,name + '.' + ext)\n", "fig.savefig(path,format='pdf')\n", "print('arquivo salvo:',path)" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.7" }, "toc": { "nav_menu": {}, "number_sections": true, "sideBar": true, "skip_h1_title": false, "title_cell": "Table of Contents", "title_sidebar": "Contents", "toc_cell": false, "toc_position": {}, "toc_section_display": true, "toc_window_display": false } }, "nbformat": 4, "nbformat_minor": 1 }