{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Conversión de modelos de cuadripolos\n", " \n", "\n", "#### Por Mariano Llamedo Soria" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Resumen \n", "En este documento se presentan algunas de las capacidades que posee el módulo PyTC2 para operar con cuadripolos. Se muestran ejemplos de cómo definir redes y sus modelos Z, Y y $T_{ABCD}$ asociados, como también algunas redes que implementan dichos modelos.\n", "\n", "* Funciones de conversión y definición de cuadripolos: [Model_conversion](https://pytc2.readthedocs.io/en/latest/autoapi/pytc2/cuadripolos/index.html#pytc2.cuadripolos.Model_conversion), [I2Tabcd_s](https://pytc2.readthedocs.io/en/latest/autoapi/pytc2/cuadripolos/index.html#pytc2.cuadripolos.I2Tabcd_s), [S2Tabcd_s](https://pytc2.readthedocs.io/en/latest/autoapi/pytc2/cuadripolos/index.html#pytc2.cuadripolos.S2Tabcd_s), [Ts2Tabcd_s](https://pytc2.readthedocs.io/en/latest/autoapi/pytc2/cuadripolos/index.html#pytc2.cuadripolos.Ts2Tabcd_s)\n", "* Funciones para presentación de markdown y latex: [print_subtitle](https://pytc2.readthedocs.io/en/latest/autoapi/pytc2/general/index.html#pytc2.general.print_subtitle), [print_latex](https://pytc2.readthedocs.io/en/latest/autoapi/pytc2/general/index.html#pytc2.general.print_latex), [a_equal_b_latex_s](https://pytc2.readthedocs.io/en/latest/autoapi/pytc2/general/index.html#pytc2.general.a_equal_b_latex_s)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Introducción\n", "\n", "A lo largo del curso se presentó una metodología sistemática para arribar a una función transferencia $T(s)$ a partir de restricciones de la función de módulo $\\vert T(j\\omega) \\vert $ o retardo $ \\tau(\\omega) $. Si bien en primera instancia arribamos a una $T_{LP}(s)$ pasabajos, es posible mediante núcleos de transformación el pasaje a otro tipo de transferencias (pasa-alto, pasabanda, etc).\n", "\n", "\n", "### Referencias\n", "\n", " [1] Frickey, D.A. *Conversions Between S, 2,Y , h, ABCD, and T Parameters which are Valid for Complex Source and Load Impedances*. IEEE TRANSACTIONS ON MICROWAVE THEORY A N D TECHNIQUES. VOL 42, NO 2. FEBRUARY 1994.\n" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "from pytc2.cuadripolos import Model_conversion, I2Tabcd_s, S2Tabcd_s, Ts2Tabcd_s\n", "from pytc2.general import print_latex, print_subtitle, a_equal_b_latex_s\n", "import sympy as sp\n", "import os\n", "\n", "y11, y12, y21, y22 = sp.symbols('y11, y12, y21, y22', complex=True)\n", "z11, z12, z21, z22 = sp.symbols('z11, z12, z21, z22', complex=True)\n", "A, B, C, D = sp.symbols('A, B, C, D', complex=True)\n", "Ai, Bi, Ci, Di = sp.symbols('Ai, Bi, Ci, Di', complex=True)\n", "h11, h12, h21, h22 = sp.symbols('h11, h12, h21, h22', complex=True)\n", "g11, g12, g21, g22 = sp.symbols('g11, g12, g21, g22', complex=True)\n", "v1, v2, i1, i2 = sp.symbols('v1, v2, i1, i2', complex=True)\n", "\n", "# Parámetros Z (impedancia - circ. abierto)\n", "ZZ = sp.Matrix([[z11, z12], [z21, z22]])\n", "# vars. dependientes\n", "vv = sp.Matrix([[v1], [v2]])\n", "# vars. INdependientes\n", "ii = sp.Matrix([[i1], [i2]])\n", "\n", "# Parámetros Y (admitancia - corto circ.)\n", "YY = sp.Matrix([[y11, y12], [y21, y22]])\n", "# vars. dependientes\n", "# ii = sp.Matrix([[i1], [i2]])\n", "# vars. INdependientes\n", "# vv = sp.Matrix([[v1], [v2]])\n", "\n", "# Parámetros H (híbridos h)\n", "HH = sp.Matrix([[h11, h12], [h21, h22]])\n", "# vars. dependientes\n", "h_dep = sp.Matrix([[v1], [i2]])\n", "# vars. INdependientes\n", "h_ind = sp.Matrix([[i1], [v2]])\n", "\n", "# Parámetros G (híbridos g)\n", "GG = sp.Matrix([[g11, g12], [g21, g22]])\n", "# vars. dependientes\n", "g_dep = sp.Matrix([[i1], [v2]])\n", "# vars. INdependientes\n", "g_ind = sp.Matrix([[v1], [i2]])\n", "\n", "# Parámetros Tabcd (Transmisión, ABCD)\n", "TT = sp.Matrix([[A, -B], [C, -D]])\n", "# vars. dependientes\n", "t_dep = sp.Matrix([[v1], [i1]])\n", "# vars. INdependientes. (Signo negativo de corriente)\n", "t_ind = sp.Matrix([[v2], [i2]])\n", "\n", "# Parámetros Tdcba (Transmisión inversos, DCBA)\n", "TTi = sp.Matrix([[Ai, Bi], [-Ci, -Di]])\n", "# vars. dependientes\n", "ti_dep = sp.Matrix([[v2], [i2]])\n", "# vars. INdependientes. (Signo negativo de corriente)\n", "ti_ind = sp.Matrix([[v1], [i1]])\n", "\n", "\n", "def do_conversion_table(model_dct):\n", " \n", " str_table = '$ \\\\begin{array}{ l ' + ' c'*len(model_dct) + ' }' + os.linesep \n", "\n", " str_models = ''\n", " \n", " for src_model in model_dct:\n", " str_table += ' & ' + src_model['model_name']\n", " str_models += ', ' + src_model['model_name']\n", "\n", " print_subtitle('Tabla de conversión: ' + str_models[2:])\n", " \n", " str_table = str_table + ' \\\\\\\\ ' + os.linesep\n", " \n", " for dst_model in model_dct:\n", " \n", " str_table += dst_model['model_name'] + ' & '\n", " \n", " for src_model in model_dct:\n", " \n", " if src_model['model_name'] == dst_model['model_name']:\n", " \n", " str_table += dst_model['model_name'] + ' & '\n", "\n", " else:\n", " HH_z = Model_conversion( src_model, dst_model )\n", " str_table += sp.latex( HH_z['matrix'] ) + ' & '\n", " \n", " str_table = str_table[:-2] + ' \\\\\\\\ ' + os.linesep\n", " \n", " #print_latex( str_table )\n", " \n", " str_table = str_table[:-4] + os.linesep + '\\\\end{array} $'\n", " \n", " print_latex( str_table )\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Conversión entre parámetros de cuadripolos\n", "\n", "Con las funciones para crear la tabla de N x N modelos se procede a su uso, para ello solo basta definir un diccionario con las N definiciones de cada modelo." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "#### Tabla de conversión: Z, Y, H, G, T, Ti" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\begin{array}{ l c c c c c c }\n", " & Z & Y & H & G & T & Ti \\\\ \n", "Z & Z & \\left[\\begin{matrix}\\frac{y_{22}}{\\Delta} & - \\frac{y_{12}}{\\Delta}\\\\- \\frac{y_{21}}{\\Delta} & \\frac{y_{11}}{\\Delta}\\end{matrix}\\right] & \\left[\\begin{matrix}\\frac{\\Delta}{h_{22}} & \\frac{h_{12}}{h_{22}}\\\\- \\frac{h_{21}}{h_{22}} & \\frac{1}{h_{22}}\\end{matrix}\\right] & \\left[\\begin{matrix}\\frac{1}{g_{11}} & - \\frac{g_{12}}{g_{11}}\\\\\\frac{g_{21}}{g_{11}} & \\frac{\\Delta}{g_{11}}\\end{matrix}\\right] & \\left[\\begin{matrix}\\frac{A}{C} & \\frac{\\Delta}{C}\\\\\\frac{1}{C} & \\frac{D}{C}\\end{matrix}\\right] & \\left[\\begin{matrix}- \\frac{Di}{Ci} & - \\frac{1}{Ci}\\\\- \\frac{\\Delta}{Ci} & - \\frac{Ai}{Ci}\\end{matrix}\\right] \\\\ \n", "Y & \\left[\\begin{matrix}\\frac{z_{22}}{\\Delta} & - \\frac{z_{12}}{\\Delta}\\\\- \\frac{z_{21}}{\\Delta} & \\frac{z_{11}}{\\Delta}\\end{matrix}\\right] & Y & \\left[\\begin{matrix}\\frac{1}{h_{11}} & - \\frac{h_{12}}{h_{11}}\\\\\\frac{h_{21}}{h_{11}} & \\frac{\\Delta}{h_{11}}\\end{matrix}\\right] & \\left[\\begin{matrix}\\frac{\\Delta}{g_{22}} & \\frac{g_{12}}{g_{22}}\\\\- \\frac{g_{21}}{g_{22}} & \\frac{1}{g_{22}}\\end{matrix}\\right] & \\left[\\begin{matrix}\\frac{D}{B} & - \\frac{\\Delta}{B}\\\\- \\frac{1}{B} & \\frac{A}{B}\\end{matrix}\\right] & \\left[\\begin{matrix}- \\frac{Ai}{Bi} & \\frac{1}{Bi}\\\\\\frac{\\Delta}{Bi} & - \\frac{Di}{Bi}\\end{matrix}\\right] \\\\ \n", "H & \\left[\\begin{matrix}\\frac{\\Delta}{z_{22}} & \\frac{z_{12}}{z_{22}}\\\\- \\frac{z_{21}}{z_{22}} & \\frac{1}{z_{22}}\\end{matrix}\\right] & \\left[\\begin{matrix}\\frac{1}{y_{11}} & - \\frac{y_{12}}{y_{11}}\\\\\\frac{y_{21}}{y_{11}} & \\frac{\\Delta}{y_{11}}\\end{matrix}\\right] & H & \\left[\\begin{matrix}\\frac{g_{22}}{\\Delta} & - \\frac{g_{12}}{\\Delta}\\\\- \\frac{g_{21}}{\\Delta} & \\frac{g_{11}}{\\Delta}\\end{matrix}\\right] & \\left[\\begin{matrix}\\frac{B}{D} & \\frac{\\Delta}{D}\\\\- \\frac{1}{D} & \\frac{C}{D}\\end{matrix}\\right] & \\left[\\begin{matrix}- \\frac{Bi}{Ai} & \\frac{1}{Ai}\\\\- \\frac{\\Delta}{Ai} & - \\frac{Ci}{Ai}\\end{matrix}\\right] \\\\ \n", "G & \\left[\\begin{matrix}\\frac{1}{z_{11}} & - \\frac{z_{12}}{z_{11}}\\\\\\frac{z_{21}}{z_{11}} & \\frac{\\Delta}{z_{11}}\\end{matrix}\\right] & \\left[\\begin{matrix}\\frac{\\Delta}{y_{22}} & \\frac{y_{12}}{y_{22}}\\\\- \\frac{y_{21}}{y_{22}} & \\frac{1}{y_{22}}\\end{matrix}\\right] & \\left[\\begin{matrix}\\frac{h_{22}}{\\Delta} & - \\frac{h_{12}}{\\Delta}\\\\- \\frac{h_{21}}{\\Delta} & \\frac{h_{11}}{\\Delta}\\end{matrix}\\right] & G & \\left[\\begin{matrix}\\frac{C}{A} & - \\frac{\\Delta}{A}\\\\\\frac{1}{A} & \\frac{B}{A}\\end{matrix}\\right] & \\left[\\begin{matrix}- \\frac{Ci}{Di} & - \\frac{1}{Di}\\\\\\frac{\\Delta}{Di} & - \\frac{Bi}{Di}\\end{matrix}\\right] \\\\ \n", "T & \\left[\\begin{matrix}\\frac{z_{11}}{z_{21}} & \\frac{\\Delta}{z_{21}}\\\\\\frac{1}{z_{21}} & \\frac{z_{22}}{z_{21}}\\end{matrix}\\right] & \\left[\\begin{matrix}- \\frac{y_{22}}{y_{21}} & - \\frac{1}{y_{21}}\\\\- \\frac{\\Delta}{y_{21}} & - \\frac{y_{11}}{y_{21}}\\end{matrix}\\right] & \\left[\\begin{matrix}- \\frac{\\Delta}{h_{21}} & - \\frac{h_{11}}{h_{21}}\\\\- \\frac{h_{22}}{h_{21}} & - \\frac{1}{h_{21}}\\end{matrix}\\right] & \\left[\\begin{matrix}\\frac{1}{g_{21}} & \\frac{g_{22}}{g_{21}}\\\\\\frac{g_{11}}{g_{21}} & \\frac{\\Delta}{g_{21}}\\end{matrix}\\right] & T & \\left[\\begin{matrix}\\frac{Di}{\\Delta} & - \\frac{Bi}{\\Delta}\\\\- \\frac{Ci}{\\Delta} & \\frac{Ai}{\\Delta}\\end{matrix}\\right] \\\\ \n", "Ti & \\left[\\begin{matrix}\\frac{z_{22}}{z_{12}} & - \\frac{\\Delta}{z_{12}}\\\\- \\frac{1}{z_{12}} & \\frac{z_{11}}{z_{12}}\\end{matrix}\\right] & \\left[\\begin{matrix}- \\frac{y_{11}}{y_{12}} & \\frac{1}{y_{12}}\\\\\\frac{\\Delta}{y_{12}} & - \\frac{y_{22}}{y_{12}}\\end{matrix}\\right] & \\left[\\begin{matrix}\\frac{1}{h_{12}} & - \\frac{h_{11}}{h_{12}}\\\\- \\frac{h_{22}}{h_{12}} & \\frac{\\Delta}{h_{12}}\\end{matrix}\\right] & \\left[\\begin{matrix}- \\frac{\\Delta}{g_{12}} & \\frac{g_{22}}{g_{12}}\\\\\\frac{g_{11}}{g_{12}} & - \\frac{1}{g_{12}}\\end{matrix}\\right] & \\left[\\begin{matrix}\\frac{D}{\\Delta} & - \\frac{B}{\\Delta}\\\\- \\frac{C}{\\Delta} & \\frac{A}{\\Delta}\\end{matrix}\\right] & Ti \n", "\\end{array} $" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Definimos el diccionario con la definición de cada modelo\n", "model_dct = [ { 'model_name': 'Z', 'matrix': ZZ, 'dep_var': vv, 'indep_var':ii },\n", " { 'model_name': 'Y', 'matrix': YY, 'dep_var': ii, 'indep_var':vv },\n", " { 'model_name': 'H', 'matrix': HH, 'dep_var': h_dep, 'indep_var':h_ind },\n", " { 'model_name': 'G', 'matrix': GG, 'dep_var': g_dep, 'indep_var':g_ind },\n", " { 'model_name': 'T', 'matrix': TT, 'dep_var': t_dep, 'indep_var':t_ind, 'neg_i2_current': True },\n", " { 'model_name': 'Ti', 'matrix': TTi, 'dep_var': ti_dep, 'indep_var':ti_ind, 'neg_i2_current': True}\n", " ]\n", "\n", "do_conversion_table(model_dct)" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "#### Tabla de conversión: Im, T_{ABCD}, Z, Y" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\begin{array}{ l c c c c }\n", " & Im & T_{ABCD} & Z & Y \\\\ \n", "Im & Im & \\left[\\begin{matrix}A & B\\\\C & D\\end{matrix}\\right] & \\left[\\begin{matrix}\\frac{z_{11}}{z_{21}} & \\frac{\\Delta}{z_{21}}\\\\\\frac{1}{z_{21}} & \\frac{z_{22}}{z_{21}}\\end{matrix}\\right] & \\left[\\begin{matrix}- \\frac{y_{22}}{y_{21}} & - \\frac{1}{y_{21}}\\\\- \\frac{\\Delta}{y_{21}} & - \\frac{y_{11}}{y_{21}}\\end{matrix}\\right] \\\\ \n", "T_{ABCD} & \\left[\\begin{matrix}\\sqrt{\\frac{z_{1}}{z_{2}}} \\cosh{\\left(\\gamma \\right)} & \\sqrt{z_{1} z_{2}} \\sinh{\\left(\\gamma \\right)}\\\\\\frac{\\sinh{\\left(\\gamma \\right)}}{\\sqrt{z_{1} z_{2}}} & \\sqrt{\\frac{z_{2}}{z_{1}}} \\cosh{\\left(\\gamma \\right)}\\end{matrix}\\right] & T_{ABCD} & \\left[\\begin{matrix}\\frac{z_{11}}{z_{21}} & \\frac{\\Delta}{z_{21}}\\\\\\frac{1}{z_{21}} & \\frac{z_{22}}{z_{21}}\\end{matrix}\\right] & \\left[\\begin{matrix}- \\frac{y_{22}}{y_{21}} & - \\frac{1}{y_{21}}\\\\- \\frac{\\Delta}{y_{21}} & - \\frac{y_{11}}{y_{21}}\\end{matrix}\\right] \\\\ \n", "Z & \\left[\\begin{matrix}\\frac{\\sqrt{\\frac{z_{1}}{z_{2}}} \\sqrt{z_{1} z_{2}} \\cosh{\\left(\\gamma \\right)}}{\\sinh{\\left(\\gamma \\right)}} & \\frac{\\sqrt{\\frac{z_{2}}{z_{1}}} \\sqrt{\\frac{z_{1}}{z_{2}}} \\sqrt{z_{1} z_{2}} \\cosh^{2}{\\left(\\gamma \\right)} - \\sqrt{z_{1} z_{2}} \\sinh^{2}{\\left(\\gamma \\right)}}{\\sinh{\\left(\\gamma \\right)}}\\\\\\frac{\\sqrt{z_{1} z_{2}}}{\\sinh{\\left(\\gamma \\right)}} & \\frac{\\sqrt{\\frac{z_{2}}{z_{1}}} \\sqrt{z_{1} z_{2}} \\cosh{\\left(\\gamma \\right)}}{\\sinh{\\left(\\gamma \\right)}}\\end{matrix}\\right] & \\left[\\begin{matrix}\\frac{A}{C} & \\frac{\\Delta}{C}\\\\\\frac{1}{C} & \\frac{D}{C}\\end{matrix}\\right] & Z & \\left[\\begin{matrix}\\frac{y_{22}}{\\Delta} & - \\frac{y_{12}}{\\Delta}\\\\- \\frac{y_{21}}{\\Delta} & \\frac{y_{11}}{\\Delta}\\end{matrix}\\right] \\\\ \n", "Y & \\left[\\begin{matrix}\\frac{\\sqrt{\\frac{z_{2}}{z_{1}}} \\cosh{\\left(\\gamma \\right)}}{\\sqrt{z_{1} z_{2}} \\sinh{\\left(\\gamma \\right)}} & - \\frac{\\Delta}{\\sqrt{z_{1} z_{2}} \\sinh{\\left(\\gamma \\right)}}\\\\- \\frac{1}{\\sqrt{z_{1} z_{2}} \\sinh{\\left(\\gamma \\right)}} & \\frac{\\sqrt{\\frac{z_{1}}{z_{2}}} \\cosh{\\left(\\gamma \\right)}}{\\sqrt{z_{1} z_{2}} \\sinh{\\left(\\gamma \\right)}}\\end{matrix}\\right] & \\left[\\begin{matrix}\\frac{D}{B} & - \\frac{\\Delta}{B}\\\\- \\frac{1}{B} & \\frac{A}{B}\\end{matrix}\\right] & \\left[\\begin{matrix}\\frac{z_{22}}{\\Delta} & - \\frac{z_{12}}{\\Delta}\\\\- \\frac{z_{21}}{\\Delta} & \\frac{z_{11}}{\\Delta}\\end{matrix}\\right] & Y \n", "\\end{array} $" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "\n", "# Parámetros Imagen\n", "gamma, z1, z2 = sp.symbols('\\gamma, z1, z2', complex=True)\n", "\n", "Tim = I2Tabcd_s(gamma, z1, z2)\n", " #(Signo negativo de corriente)\n", "Tim[:,1] = Tim[:,1] * -1\n", "# vars. dependientes\n", "tim_dep = t_dep\n", "# vars. INdependientes.\n", "tim_ind = t_ind\n", "\n", "# Diccionario con la definición de cada modelo\n", "model_dct = [ { 'model_name': 'Im', 'matrix': Tim, 'dep_var': tim_dep, 'indep_var':tim_ind, 'neg_i2_current': True }, # T_ABCD\n", " { 'model_name': 'T_{ABCD}', 'matrix': TT, 'dep_var': t_dep, 'indep_var':t_ind, 'neg_i2_current': True }, # T_ABCD\n", " { 'model_name': 'Z', 'matrix': ZZ, 'dep_var': vv, 'indep_var':ii },\n", " { 'model_name': 'Y', 'matrix': YY, 'dep_var': ii, 'indep_var':vv }\n", " ]\n", "\n", "do_conversion_table(model_dct)\n" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/markdown": [ "#### Tabla de conversión: S, T_S" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\begin{array}{ l c c }\n", " & S & T_S \\\\ \n", "S & S & \\left[\\begin{matrix}\\frac{t_{21}}{t_{11}} & \\frac{\\Delta}{t_{11}}\\\\\\frac{1}{t_{11}} & - \\frac{t_{12}}{t_{11}}\\end{matrix}\\right] \\\\ \n", "T_S & \\left[\\begin{matrix}\\frac{1}{s_{21}} & - \\frac{s_{22}}{s_{21}}\\\\\\frac{s_{11}}{s_{21}} & - \\frac{\\Delta}{s_{21}}\\end{matrix}\\right] & T_S \n", "\\end{array} $" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/markdown": [ "#### Tabla de conversión: S, Z, Y" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\begin{array}{ l c c c }\n", " & S & Z & Y \\\\ \n", "S & S & \\left[\\begin{matrix}\\frac{z_{11}}{z_{21}} & \\frac{\\Delta}{z_{21}}\\\\\\frac{1}{z_{21}} & \\frac{z_{22}}{z_{21}}\\end{matrix}\\right] & \\left[\\begin{matrix}- \\frac{y_{22}}{y_{21}} & - \\frac{1}{y_{21}}\\\\- \\frac{\\Delta}{y_{21}} & - \\frac{y_{11}}{y_{21}}\\end{matrix}\\right] \\\\ \n", "Z & \\left[\\begin{matrix}\\frac{- s_{11} s_{22} + s_{11} + s_{12} s_{21} - s_{22} + 1}{s_{11} s_{22} - s_{11} - s_{12} s_{21} - s_{22} + 1} & - \\frac{2 s_{12}}{s_{11} s_{22} - s_{11} - s_{12} s_{21} - s_{22} + 1}\\\\\\frac{2 s_{21}}{s_{11} s_{22} - s_{11} - s_{12} s_{21} - s_{22} + 1} & \\frac{s_{11} s_{22} + s_{11} - s_{12} s_{21} - s_{22} - 1}{s_{11} s_{22} - s_{11} - s_{12} s_{21} - s_{22} + 1}\\end{matrix}\\right] & Z & \\left[\\begin{matrix}\\frac{y_{22}}{\\Delta} & - \\frac{y_{12}}{\\Delta}\\\\- \\frac{y_{21}}{\\Delta} & \\frac{y_{11}}{\\Delta}\\end{matrix}\\right] \\\\ \n", "Y & \\left[\\begin{matrix}\\frac{- s_{11} s_{22} - s_{11} + s_{12} s_{21} + s_{22} + 1}{s_{11} s_{22} + s_{11} - s_{12} s_{21} + s_{22} + 1} & - \\frac{2 s_{12}}{s_{11} s_{22} + s_{11} - s_{12} s_{21} + s_{22} + 1}\\\\\\frac{2 s_{21}}{s_{11} s_{22} + s_{11} - s_{12} s_{21} + s_{22} + 1} & \\frac{s_{11} s_{22} - s_{11} - s_{12} s_{21} + s_{22} - 1}{s_{11} s_{22} + s_{11} - s_{12} s_{21} + s_{22} + 1}\\end{matrix}\\right] & \\left[\\begin{matrix}\\frac{z_{22}}{\\Delta} & - \\frac{z_{12}}{\\Delta}\\\\- \\frac{z_{21}}{\\Delta} & \\frac{z_{11}}{\\Delta}\\end{matrix}\\right] & Y \n", "\\end{array} $" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/markdown": [ "#### Tabla de conversión: T_S, Z, Y" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "$\\displaystyle \\begin{array}{ l c c c }\n", " & T_S & Z & Y \\\\ \n", "T_S & T_S & \\left[\\begin{matrix}\\frac{z_{11}}{z_{21}} & \\frac{\\Delta}{z_{21}}\\\\\\frac{1}{z_{21}} & \\frac{z_{22}}{z_{21}}\\end{matrix}\\right] & \\left[\\begin{matrix}- \\frac{y_{22}}{y_{21}} & - \\frac{1}{y_{21}}\\\\- \\frac{\\Delta}{y_{21}} & - \\frac{y_{11}}{y_{21}}\\end{matrix}\\right] \\\\ \n", "Z & \\left[\\begin{matrix}\\frac{Z_{01} t_{21} + Z_{01} t_{22} + t_{11} \\overline{Z_{01}} + t_{12} \\overline{Z_{01}}}{t_{11} + t_{12} - t_{21} - t_{22}} & \\frac{- Z_{01} Z_{02} t_{11} t_{22} + Z_{01} Z_{02} t_{12} t_{21} - Z_{01} t_{11} t_{22} \\overline{Z_{02}} + Z_{01} t_{12} t_{21} \\overline{Z_{02}} - Z_{02} t_{11} t_{22} \\overline{Z_{01}} + Z_{02} t_{12} t_{21} \\overline{Z_{01}} - t_{11} t_{22} \\overline{Z_{01}} \\overline{Z_{02}} + t_{12} t_{21} \\overline{Z_{01}} \\overline{Z_{02}}}{2 t_{11} \\sqrt{\\operatorname{re}{\\left(Z_{01}\\right)} \\operatorname{re}{\\left(Z_{02}\\right)}} + 2 t_{12} \\sqrt{\\operatorname{re}{\\left(Z_{01}\\right)} \\operatorname{re}{\\left(Z_{02}\\right)}} - 2 t_{21} \\sqrt{\\operatorname{re}{\\left(Z_{01}\\right)} \\operatorname{re}{\\left(Z_{02}\\right)}} - 2 t_{22} \\sqrt{\\operatorname{re}{\\left(Z_{01}\\right)} \\operatorname{re}{\\left(Z_{02}\\right)}}}\\\\\\frac{2 \\operatorname{re}{\\left(Z_{01}\\right)} \\operatorname{re}{\\left(Z_{02}\\right)}}{t_{11} \\sqrt{\\operatorname{re}{\\left(Z_{01}\\right)} \\operatorname{re}{\\left(Z_{02}\\right)}} + t_{12} \\sqrt{\\operatorname{re}{\\left(Z_{01}\\right)} \\operatorname{re}{\\left(Z_{02}\\right)}} - t_{21} \\sqrt{\\operatorname{re}{\\left(Z_{01}\\right)} \\operatorname{re}{\\left(Z_{02}\\right)}} - t_{22} \\sqrt{\\operatorname{re}{\\left(Z_{01}\\right)} \\operatorname{re}{\\left(Z_{02}\\right)}}} & \\frac{Z_{02} t_{12} - Z_{02} t_{22} - t_{11} \\overline{Z_{02}} + t_{21} \\overline{Z_{02}}}{t_{11} + t_{12} - t_{21} - t_{22}}\\end{matrix}\\right] & Z & \\left[\\begin{matrix}\\frac{y_{22}}{\\Delta} & - \\frac{y_{12}}{\\Delta}\\\\- \\frac{y_{21}}{\\Delta} & \\frac{y_{11}}{\\Delta}\\end{matrix}\\right] \\\\ \n", "Y & \\left[\\begin{matrix}\\frac{- Z_{02} t_{12} + Z_{02} t_{22} + t_{11} \\overline{Z_{02}} - t_{21} \\overline{Z_{02}}}{- Z_{01} Z_{02} t_{22} + Z_{01} t_{21} \\overline{Z_{02}} - Z_{02} t_{12} \\overline{Z_{01}} + t_{11} \\overline{Z_{01}} \\overline{Z_{02}}} & \\frac{- Z_{01} Z_{02} t_{11} t_{22} + Z_{01} Z_{02} t_{12} t_{21} - Z_{01} t_{11} t_{22} \\overline{Z_{02}} + Z_{01} t_{12} t_{21} \\overline{Z_{02}} - Z_{02} t_{11} t_{22} \\overline{Z_{01}} + Z_{02} t_{12} t_{21} \\overline{Z_{01}} - t_{11} t_{22} \\overline{Z_{01}} \\overline{Z_{02}} + t_{12} t_{21} \\overline{Z_{01}} \\overline{Z_{02}}}{- 2 Z_{01} Z_{02} t_{22} \\sqrt{\\operatorname{re}{\\left(Z_{01}\\right)} \\operatorname{re}{\\left(Z_{02}\\right)}} + 2 Z_{01} t_{21} \\sqrt{\\operatorname{re}{\\left(Z_{01}\\right)} \\operatorname{re}{\\left(Z_{02}\\right)}} \\overline{Z_{02}} - 2 Z_{02} t_{12} \\sqrt{\\operatorname{re}{\\left(Z_{01}\\right)} \\operatorname{re}{\\left(Z_{02}\\right)}} \\overline{Z_{01}} + 2 t_{11} \\sqrt{\\operatorname{re}{\\left(Z_{01}\\right)} \\operatorname{re}{\\left(Z_{02}\\right)}} \\overline{Z_{01}} \\overline{Z_{02}}}\\\\\\frac{2 \\operatorname{re}{\\left(Z_{01}\\right)} \\operatorname{re}{\\left(Z_{02}\\right)}}{- Z_{01} Z_{02} t_{22} \\sqrt{\\operatorname{re}{\\left(Z_{01}\\right)} \\operatorname{re}{\\left(Z_{02}\\right)}} + Z_{01} t_{21} \\sqrt{\\operatorname{re}{\\left(Z_{01}\\right)} \\operatorname{re}{\\left(Z_{02}\\right)}} \\overline{Z_{02}} - Z_{02} t_{12} \\sqrt{\\operatorname{re}{\\left(Z_{01}\\right)} \\operatorname{re}{\\left(Z_{02}\\right)}} \\overline{Z_{01}} + t_{11} \\sqrt{\\operatorname{re}{\\left(Z_{01}\\right)} \\operatorname{re}{\\left(Z_{02}\\right)}} \\overline{Z_{01}} \\overline{Z_{02}}} & \\frac{- Z_{01} t_{21} - Z_{01} t_{22} - t_{11} \\overline{Z_{01}} - t_{12} \\overline{Z_{01}}}{- Z_{01} Z_{02} t_{22} + Z_{01} t_{21} \\overline{Z_{02}} - Z_{02} t_{12} \\overline{Z_{01}} + t_{11} \\overline{Z_{01}} \\overline{Z_{02}}}\\end{matrix}\\right] & \\left[\\begin{matrix}\\frac{z_{22}}{\\Delta} & - \\frac{z_{12}}{\\Delta}\\\\- \\frac{z_{21}}{\\Delta} & \\frac{z_{11}}{\\Delta}\\end{matrix}\\right] & Y \n", "\\end{array} $" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "s11, s12, s21, s22 = sp.symbols('s11, s12, s21, s22', complex=True)\n", "ts11, ts12, ts21, ts22 = sp.symbols('t11, t12, t21, t22', complex=True)\n", "\n", "# ondas normalizadas de tensión\n", "a1, a2, b1, b2 = sp.symbols('a1, a2, b1, b2', complex=True)\n", "\n", "# impedancia característica\n", "Z01, Z02 = sp.symbols('Z01, Z02', complex=True)\n", "Zo = sp.symbols('Zo', real=True)\n", "\n", "# Parámetros dispersión (scattering - S)\n", "Spar = sp.Matrix([[s11, s12], [s21, s22]])\n", "# vars. dependientes\n", "bb = sp.Matrix([[b1], [b2]])\n", "# vars. INdependientes\n", "aa = sp.Matrix([[a1], [a2]])\n", "\n", "# a y b en función de tensiones y corrientes, para vincular con cuadripolos convencionales\n", "aa_iv = aa.subs({a1:(v1 + Z01*i1)/sp.sqrt(2*(Z01 + sp.conjugate(Z01))), a2:(v2 + Z02*i2)/sp.sqrt(2*(Z02 + sp.conjugate(Z02)))})\n", "bb_iv = bb.subs({b1:(v1 - sp.conjugate(Z01)*i1)/sp.sqrt(2*(Z01 + sp.conjugate(Z01))), b2:(v2 - sp.conjugate(Z02)*i2)/sp.sqrt(2*(Z02 + sp.conjugate(Z02)))})\n", "\n", "# Parámetros transmisión dispersión (scattering transfer param.)\n", "TSpar = sp.Matrix([[ts11, ts12], [ts21, ts22]])\n", "# vars. dependientes\n", "ts1 = sp.Matrix([[a1], [b1]])\n", "# vars. INdependientes\n", "ts2 = sp.Matrix([[b2], [a2]])\n", "\n", "# ts1,2 en función de tensiones y corrientes, para vincular con cuadripolos convencionales\n", "ts1_iv = aa.subs({a1:(v1 + Z01*i1)/sp.sqrt(2*(Z01 + sp.conjugate(Z01))), b1:(v1 - sp.conjugate(Z01)*i1)/sp.sqrt(2*(Z01 + sp.conjugate(Z01)))})\n", "ts2_iv = bb.subs({b2:(v2 - sp.conjugate(Z02)*i2)/sp.sqrt(2*(Z02 + sp.conjugate(Z02))), a2:(v2 + Z02*i2)/sp.sqrt(2*(Z02 + sp.conjugate(Z02)))})\n", "\n", "#Tabcd_proxy_model = { 'model_name': 'T_{ABCD}', 'matrix': TT, 'dep_var': t_dep, 'indep_var':t_ind, 'neg_i2_current': True }\n", "\n", "# Diccionario con la definición de cada modelo\n", "model_dct = [ { 'model_name': 'S', 'matrix': Spar, 'dep_var': bb, 'indep_var':aa },\n", " { 'model_name': 'T_S', 'matrix': TSpar, 'dep_var': ts1, 'indep_var':ts2 },\n", " ]\n", "do_conversion_table(model_dct)\n", "\n", "# Diccionario con la definición de cada modelo:\n", "# En este caso convertimos el modelo S a un ABCD primero, con sus respectivas variables\n", "model_dct = [ { 'model_name': 'S', 'matrix': Spar, 'proxy_matrix': S2Tabcd_s( Spar, sp.Rational(1), sp.Rational(1)), 'dep_var': t_dep, 'indep_var':t_ind, 'neg_i2_current': True }, \n", " { 'model_name': 'Z', 'matrix': ZZ, 'dep_var': vv, 'indep_var':ii },\n", " { 'model_name': 'Y', 'matrix': YY, 'dep_var': ii, 'indep_var':vv }\n", " ]\n", "\n", "do_conversion_table(model_dct)\n", "\n", "# Diccionario con la definición de cada modelo:\n", "# En este caso convertimos el modelo Ts a un ABCD primero, con sus respectivas variables\n", "model_dct = [ { 'model_name': 'T_S', 'matrix': TSpar, 'proxy_matrix': Ts2Tabcd_s( TSpar, Z01, Z02), 'dep_var': t_dep, 'indep_var':t_ind, 'neg_i2_current': True },\n", " { 'model_name': 'Z', 'matrix': ZZ, 'dep_var': vv, 'indep_var':ii },\n", " { 'model_name': 'Y', 'matrix': YY, 'dep_var': ii, 'indep_var':vv }\n", " ]\n", "\n", "do_conversion_table(model_dct)" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.10.16" }, "varInspector": { "cols": { "lenName": 16, "lenType": 16, "lenVar": 40 }, "kernels_config": { "python": { "delete_cmd_postfix": "", "delete_cmd_prefix": "del ", "library": "var_list.py", "varRefreshCmd": "print(var_dic_list())" }, "r": { "delete_cmd_postfix": ") ", "delete_cmd_prefix": "rm(", "library": "var_list.r", "varRefreshCmd": "cat(var_dic_list()) " } }, "types_to_exclude": [ "module", "function", "builtin_function_or_method", "instance", "_Feature" ], "window_display": false } }, "nbformat": 4, "nbformat_minor": 4 }