{
"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
}