├── .github
└── workflows
│ ├── build_deploy.yml
│ └── build_pdf.yml
├── .gitignore
├── README.md
├── _config.yml
├── _static
├── analytics.js
├── analytics_gtag.js
├── bode
│ ├── image_00.png
│ ├── image_01.png
│ ├── image_02.png
│ ├── image_03.png
│ └── image_04.png
├── controllers
│ ├── image_0.png
│ └── image_1.png
├── convolution.png
├── justify.css
├── root_locus
│ ├── image_00.png
│ ├── image_01.png
│ ├── image_02.png
│ ├── image_03.png
│ ├── image_04.png
│ ├── image_05.png
│ ├── image_06.png
│ ├── image_07.png
│ ├── image_08.png
│ ├── image_09.png
│ ├── image_10.png
│ ├── image_11.png
│ ├── image_12.png
│ ├── image_13.png
│ ├── image_14.png
│ ├── image_15.png
│ ├── image_16.png
│ ├── image_17.png
│ ├── image_18.png
│ ├── image_19.png
│ ├── image_20.png
│ ├── image_21.png
│ ├── image_22.png
│ ├── image_23.png
│ ├── image_24.png
│ ├── image_25.png
│ ├── image_26.png
│ ├── image_27.png
│ ├── image_28.png
│ ├── image_29.png
│ ├── image_30.png
│ ├── image_31.png
│ ├── image_32.png
│ └── image_33.png
└── sintonization
│ ├── image_00.png
│ ├── image_01.png
│ ├── image_02.png
│ ├── image_03.png
│ ├── image_04.png
│ ├── image_05.png
│ ├── image_06.png
│ ├── image_07.png
│ ├── image_08.png
│ ├── image_09.png
│ ├── image_10.png
│ ├── image_11.png
│ ├── image_12.png
│ ├── image_13.png
│ ├── image_14.png
│ ├── image_15.png
│ ├── image_16.png
│ ├── image_17.png
│ ├── image_18.png
│ └── image_19.png
├── _toc.yml
└── chapters
├── ELC01_Transformada_de_Laplace.ipynb
├── ELC02_Funcion_de_transferencia.ipynb
├── ELC03_Sistemas_Primer_Orden.ipynb
├── ELC04_Sistemas_Segundo_Orden.ipynb
├── ELC05_Root_Locus.ipynb
├── ELC06_Controladores.ipynb
├── ELC07_Sintonización.ipynb
├── ELC08_Bode.ipynb
└── ELC09_Nyquist.ipynb
/.github/workflows/build_deploy.yml:
--------------------------------------------------------------------------------
1 | name: Deploy to Github Pages
2 |
3 | on:
4 | push:
5 | branches: source
6 |
7 | workflow_dispatch:
8 | repository_dispatch:
9 |
10 | jobs:
11 | deploy-book:
12 | runs-on: ubuntu-latest
13 | steps:
14 | - uses: actions/checkout@v2
15 |
16 | - uses: actions/setup-python@v2
17 | with:
18 | python-version: 3.8
19 |
20 | - name: Install dependencies
21 | run: pip install jupyter-book
22 |
23 | - name: Install Imagemagick
24 | run: sudo apt-get install -y imagemagick
25 |
26 | - name: Build the book
27 | run: jupyter-book build .
28 |
29 | - name: Crop Images
30 | run: mogrify -trim _build/html/_images/*.png
31 |
32 | - name: Deploy to Github Pages
33 | uses: peaceiris/actions-gh-pages@v3.6.1
34 | with:
35 | publish_branch: master
36 | full_commit_message: ${{ github.event.head_commit.message }}
37 | github_token: ${{ secrets.GITHUB_TOKEN }}
38 | publish_dir: _build/html
39 |
--------------------------------------------------------------------------------
/.github/workflows/build_pdf.yml:
--------------------------------------------------------------------------------
1 | name: Build PDF of the Book
2 | # This Workflow was adapted from the official docs:
3 | # https://github.com/executablebooks/jupyter-book
4 |
5 | on:
6 | push:
7 | branches: source
8 |
9 | workflow_dispatch:
10 | repository_dispatch:
11 |
12 | jobs:
13 | pdf_from_latex:
14 | runs-on: ubuntu-latest
15 |
16 | steps:
17 | - uses: actions/checkout@v2
18 |
19 |
20 | - name: Set up Python 3.8
21 | uses: actions/setup-python@v2
22 | with:
23 | python-version: 3.8
24 |
25 |
26 | - uses: actions/cache@v2
27 | with:
28 | path: ~/.cache/pip
29 | key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
30 | restore-keys: |
31 | ${{ runner.os }}-pip-
32 |
33 |
34 | - name: Install Python dependencies
35 | run: |
36 | python -m pip install --upgrade pip
37 | pip install wheel
38 | pushd .
39 | cd ..
40 | git clone https://github.com/executablebooks/jupyter-book.git
41 | cd jupyter-book
42 | pip install -e .[sphinx,pdflatex]
43 | popd
44 |
45 |
46 | - name: Install latex dependencies
47 | run: |
48 | sudo apt-get -qq update
49 | sudo apt-get install -y \
50 | texlive-latex-recommended \
51 | texlive-latex-extra \
52 | texlive-fonts-extra \
53 | fonts-freefont-otf \
54 | texlive-xetex \
55 | latexmk \
56 | xindy
57 |
58 |
59 | - name: Build PDF from LaTeX
60 | run: jb build . --builder latex -n -W --keep-going
61 |
62 | - name: Crop Images
63 | run: mogrify -trim _build/jupyter_execute/chapters/*.png
64 |
65 | - name: Build PDF from LaTeX
66 | run: |
67 | cd _build/latex
68 | make all-pdf
69 |
70 | - uses: actions/upload-artifact@v2
71 | with:
72 | name: Book PDF
73 | path: _build/latex/python.pdf
74 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Byte-compiled / optimized / DLL files
2 | __pycache__/
3 | *.py[cod]
4 | *$py.class
5 |
6 | # C extensions
7 | *.so
8 |
9 | # Distribution / packaging
10 | .Python
11 | build/
12 | develop-eggs/
13 | dist/
14 | downloads/
15 | eggs/
16 | .eggs/
17 | lib/
18 | lib64/
19 | parts/
20 | sdist/
21 | var/
22 | wheels/
23 | pip-wheel-metadata/
24 | share/python-wheels/
25 | *.egg-info/
26 | .installed.cfg
27 | *.egg
28 | MANIFEST
29 |
30 | # PyInstaller
31 | # Usually these files are written by a python script from a template
32 | # before PyInstaller builds the exe, so as to inject date/other infos into it.
33 | *.manifest
34 | *.spec
35 |
36 | # Installer logs
37 | pip-log.txt
38 | pip-delete-this-directory.txt
39 |
40 | # Unit test / coverage reports
41 | htmlcov/
42 | .tox/
43 | .nox/
44 | .coverage
45 | .coverage.*
46 | .cache
47 | nosetests.xml
48 | coverage.xml
49 | *.cover
50 | *.py,cover
51 | .hypothesis/
52 | .pytest_cache/
53 |
54 | # Translations
55 | *.mo
56 | *.pot
57 |
58 | # Django stuff:
59 | *.log
60 | local_settings.py
61 | db.sqlite3
62 | db.sqlite3-journal
63 |
64 | # Flask stuff:
65 | instance/
66 | .webassets-cache
67 |
68 | # Scrapy stuff:
69 | .scrapy
70 |
71 | # Sphinx documentation
72 | docs/_build/
73 |
74 | # PyBuilder
75 | target/
76 |
77 | # Jupyter Notebook
78 | .ipynb_checkpoints
79 |
80 | # IPython
81 | profile_default/
82 | ipython_config.py
83 |
84 | # pyenv
85 | .python-version
86 |
87 | # pipenv
88 | # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
89 | # However, in case of collaboration, if having platform-specific dependencies or dependencies
90 | # having no cross-platform support, pipenv may install dependencies that don't work, or not
91 | # install all needed dependencies.
92 | #Pipfile.lock
93 |
94 | # PEP 582; used by e.g. github.com/David-OConnor/pyflow
95 | __pypackages__/
96 |
97 | # Celery stuff
98 | celerybeat-schedule
99 | celerybeat.pid
100 |
101 | # SageMath parsed files
102 | *.sage.py
103 |
104 | # Environments
105 | .env
106 | .venv
107 | env/
108 | venv/
109 | ENV/
110 | env.bak/
111 | venv.bak/
112 |
113 | # Spyder project settings
114 | .spyderproject
115 | .spyproject
116 |
117 | # Rope project settings
118 | .ropeproject
119 |
120 | # mkdocs documentation
121 | /site
122 |
123 | # mypy
124 | .mypy_cache/
125 | .dmypy.json
126 | dmypy.json
127 |
128 | # Pyre type checker
129 | .pyre/
130 |
131 | _build/
132 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # [Teoría de Control con Matlab](https://elc.github.io/control)
2 | Este es un libro de código abierto basado en Jupyter sobre cómo iniciarse en la teoría de control con Matlab
3 | ## Contenido
4 |
5 | * [Capítulo 1: Transformada de Laplace](https://elc.github.io/control-theory-with-matlab/chapters/ELC01_Transformada_de_Laplace.html)
6 | * [Capítulo 2: Función de Transferencia](https://elc.github.io/control-theory-with-matlab/chapters/ELC02_Funcion_de_transferencia.html)
7 | * [Capítulo 3: Sistemas de Primer Orden](https://elc.github.io/control-theory-with-matlab/chapters/ELC03_Sistemas_Primer_Orden.html)
8 | * [Capítulo 4: Sistemas de Segundo Orden](https://elc.github.io/control-theory-with-matlab/chapters/ELC04_Sistemas_Segundo_Orden.html)
9 | * [Capítulo 5: Root Locus](https://elc.github.io/control-theory-with-matlab/chapters/ELC05_Root_Locus.html)
10 | * [Capítulo 6: Controladores](https://elc.github.io/control-theory-with-matlab/chapters/ELC06_Controladores.html)
11 | * [Capítulo 7: Sintonización](https://elc.github.io/control-theory-with-matlab/chapters/ELC07_Sintonizaci%C3%B3n.html)
12 | * [Capítulo 8: Bode](https://elc.github.io/control-theory-with-matlab/chapters/ELC08_Bode.html)
13 | * [Capítulo 9: Nyquist](https://elc.github.io/control-theory-with-matlab/chapters/ELC09_Nyquist.html)
14 |
15 | Los siguientes son temas que no están cubiertos en ninguno de los capítulos:
16 |
17 | - Reducción de bloques (Real y Simbólica)
18 | - Arreglo de Routh
19 | - Compensadores (Lag, Lead, Notch)
20 |
21 | ---
22 | ## Como leer el libro
23 |
24 | El libro se puede leer de varias maneras diferentes, empezando por la más recomendada a la menos recomendada:
25 |
26 | 1. La mejor manera es leer el libro online en el navegador, teniendo Matlab abierto y copiando y pegando el código de lo que sea relevante. Todo lo referido a Simulink se ilustra paso a paso con capturas de pantalla. Los contenidos se actualizan de forma sincronizada a medida que se suben cambios en este repositorio.
27 |
28 | 2. Otra posibilidad es clonar el repositorio para descargar los archivos .ipynb en tu máquina local. Si tienes Jupyter instalado, puedes ver los capítulos en tu navegador *además* de editar y ejecutar el código proporcionado (y probar algunas preguntas de práctica). Esta es la opción que más control da al usuario, pero requiere seguir pasos adicionales:
29 | - Jupyter es un requisito para ver los archivos ipynb. Se puede descargar [aquí](http://jupyter.org/).
30 | - Además, necesitarás tener Matlab instalado ya que el código está escrito en ese lenguaje. Alternativamente podría usarse Octave como alternativa gratuita pero no se realizaron pruebas de compatibilidad
31 | - Es necesario tener instalado el kernel de matbal como se detalla en la [documentación de matlab_kernel](https://github.com/Calysto/matlab_kernel).
32 |
33 | 3. Los PDF son el último método recomendado para leer el libro, ya que los PDF son estáticos y no interactivos. Si se desean PDFs, se pueden crear dinámicamente utilizando la utilidad [nbconvert](https://github.com/jupyter/nbconvert).
34 |
35 | ---
36 | ## Cómo contribuir
37 |
38 | ### ¿Con qué se puede contribuir?
39 |
40 | - La lista actual de capítulos no está finalizada. Si ves algo que falta, no dudes en empezar por ahí.
41 | - Limpiar el código de Matlab según buenas prácticas
42 | - Dar mejores explicaciones
43 | - Errores de ortografía/gramática
44 | - Sugerencias
45 | - Contribuir a los estilos de Jupyter notebook
46 | - Traducciones
47 |
48 | ### Commits
49 |
50 | - Todos los commits son bienvenidos, incluso si son menores ;)
51 | - Si no estás familiarizado con Github, puedes enviarme tus contribuciones al correo electrónico que aparece a continuación.
52 |
53 |
54 | ---
55 | ## Frequently Asked Questions (FAQ)
56 |
57 | ### 1. Why use an external tool like Jupyter instead of the native Matlab Live Editor?
58 |
59 | Jupyter provides useful advantages over the Live Editor:
60 | 1. It can be easily integrated in source control, because it json.
61 | 1. It is not version dependent, meaning if it can be then migrated to any Matlab Version.
62 | 1. In Live Editor the execution is "per section" whereas in Jupyter is "per cell", providing faster output in Jupyter.
63 | 1. Performance of Live Editor notebooks with a good amount of LaTeX is poor while in Jupyter it is managable.
64 |
65 | On the other hand, using Jupyter has drawbacks too:
66 | 1. There is no built-in help, one has to use the Matlab site or the Matlab software.
67 | 1. Interactivity options for plots (panning, zoom, etc.) are limited.
68 | 1. There is currently limited support for Matlab Apps such as Control System Designer.
69 | 1. Symbolic Expressions are not natively print using LaTeX typical fonts.
70 | 1. There are services such as NBviewer that allow the rendering of the notebook online.
71 | 1. Transparent integration with HTML in cells to improve User Experience
72 |
73 | All things considered, the advantages of using Jupyter overcome its drawbacks by far and therefore it was chosen as the go-to tool.
74 |
75 | ### 2. Can I use this material in my class/course?
76 |
77 | The material is free to use for public and/or non-commercial uses, however, I would like to get notify if you do so. Knowing other people is using the material motivates to improve it. You can let me know by using the contact information in the bottom section.
78 |
79 | For commercial use, please contact first.
80 |
81 | ### 3. Can I request some changes in the material?
82 |
83 | Suggestions and recommendations are welcome, please visit the Contributing section above.
84 |
85 | ### 4. I found a typo/error, how do I report it?
86 |
87 | Same answer as 3.
88 |
89 | ### 5. I would like to have a translation to X language of this material, how can I get it?
90 |
91 | Please send an email to get notify of translations.
92 |
93 | At the moment there is English to Spanish Translation
94 |
95 | ### 6. How can I use this in Matlab?
96 |
97 | Matlab does not provide a built-in Jupyter inport function, however all code cells are copy/paste friendly. You can paste them in any .m file and it should work out of the box.
98 |
99 | ### 6. I cannot execute the Notebook because of X error?
100 |
101 | For execution problems, please refer to the [Matlab Kernel Developers](https://github.com/Calysto/matlab_kernel)
102 |
103 | ---
104 | ## Contact
105 | Contact the main author, Ezequiel Leonardo Castaño at castanoezequielleonardo *at* gmail.com
106 |
107 | ---
108 | ## Reconocimientos
109 |
110 | This format was heavily inspired by the [Bayesian Methods for Hackers by Cam Davidson-Pilon](http://camdavidsonpilon.github.io/Probabilistic-Programming-and-Bayesian-Methods-for-Hackers/)
111 |
--------------------------------------------------------------------------------
/_config.yml:
--------------------------------------------------------------------------------
1 | title: "Teoría de Control con Matlab"
2 | copyright: "2021, Ezequiel Leonardo Castaño"
3 | author: "Ezequiel Leonardo Castaño"
4 |
5 | execute:
6 | execute_notebooks: "off"
7 |
8 | parse:
9 | myst_enable_extensions:
10 | - html_image
11 | - dollarmath
12 |
13 | html:
14 | use_edit_page_button : true
15 | use_repository_button: true
16 | baseurl : "https://elc.github.io/control-theory-with-matlab"
17 |
18 | repository:
19 | url: https://www.github.com/elc/control-theory-with-matlab
20 |
21 | sphinx:
22 | config:
23 | mathjax_path: https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js
24 | html_theme_options:
25 | use_download_button: True
26 | toc_title: "Chapter Index"
27 |
--------------------------------------------------------------------------------
/_static/analytics_gtag.js:
--------------------------------------------------------------------------------
1 | window.dataLayer = window.dataLayer || [];
2 |
3 | function gtag() {
4 | dataLayer.push(arguments);
5 | }
6 | gtag('js', new Date());
7 |
8 | gtag('config', 'G-Y3GBPLEV2K');
--------------------------------------------------------------------------------
/_static/bode/image_00.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ELC/control-theory-with-matlab/1289df8afa344943909e8fc67fc78771a0ee927c/_static/bode/image_00.png
--------------------------------------------------------------------------------
/_static/bode/image_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ELC/control-theory-with-matlab/1289df8afa344943909e8fc67fc78771a0ee927c/_static/bode/image_01.png
--------------------------------------------------------------------------------
/_static/bode/image_02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ELC/control-theory-with-matlab/1289df8afa344943909e8fc67fc78771a0ee927c/_static/bode/image_02.png
--------------------------------------------------------------------------------
/_static/bode/image_03.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ELC/control-theory-with-matlab/1289df8afa344943909e8fc67fc78771a0ee927c/_static/bode/image_03.png
--------------------------------------------------------------------------------
/_static/bode/image_04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ELC/control-theory-with-matlab/1289df8afa344943909e8fc67fc78771a0ee927c/_static/bode/image_04.png
--------------------------------------------------------------------------------
/_static/controllers/image_0.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ELC/control-theory-with-matlab/1289df8afa344943909e8fc67fc78771a0ee927c/_static/controllers/image_0.png
--------------------------------------------------------------------------------
/_static/controllers/image_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ELC/control-theory-with-matlab/1289df8afa344943909e8fc67fc78771a0ee927c/_static/controllers/image_1.png
--------------------------------------------------------------------------------
/_static/convolution.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ELC/control-theory-with-matlab/1289df8afa344943909e8fc67fc78771a0ee927c/_static/convolution.png
--------------------------------------------------------------------------------
/_static/justify.css:
--------------------------------------------------------------------------------
1 | p {
2 | text-align: justify;
3 | }
--------------------------------------------------------------------------------
/_static/root_locus/image_00.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ELC/control-theory-with-matlab/1289df8afa344943909e8fc67fc78771a0ee927c/_static/root_locus/image_00.png
--------------------------------------------------------------------------------
/_static/root_locus/image_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ELC/control-theory-with-matlab/1289df8afa344943909e8fc67fc78771a0ee927c/_static/root_locus/image_01.png
--------------------------------------------------------------------------------
/_static/root_locus/image_02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ELC/control-theory-with-matlab/1289df8afa344943909e8fc67fc78771a0ee927c/_static/root_locus/image_02.png
--------------------------------------------------------------------------------
/_static/root_locus/image_03.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ELC/control-theory-with-matlab/1289df8afa344943909e8fc67fc78771a0ee927c/_static/root_locus/image_03.png
--------------------------------------------------------------------------------
/_static/root_locus/image_04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ELC/control-theory-with-matlab/1289df8afa344943909e8fc67fc78771a0ee927c/_static/root_locus/image_04.png
--------------------------------------------------------------------------------
/_static/root_locus/image_05.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ELC/control-theory-with-matlab/1289df8afa344943909e8fc67fc78771a0ee927c/_static/root_locus/image_05.png
--------------------------------------------------------------------------------
/_static/root_locus/image_06.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ELC/control-theory-with-matlab/1289df8afa344943909e8fc67fc78771a0ee927c/_static/root_locus/image_06.png
--------------------------------------------------------------------------------
/_static/root_locus/image_07.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ELC/control-theory-with-matlab/1289df8afa344943909e8fc67fc78771a0ee927c/_static/root_locus/image_07.png
--------------------------------------------------------------------------------
/_static/root_locus/image_08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ELC/control-theory-with-matlab/1289df8afa344943909e8fc67fc78771a0ee927c/_static/root_locus/image_08.png
--------------------------------------------------------------------------------
/_static/root_locus/image_09.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ELC/control-theory-with-matlab/1289df8afa344943909e8fc67fc78771a0ee927c/_static/root_locus/image_09.png
--------------------------------------------------------------------------------
/_static/root_locus/image_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ELC/control-theory-with-matlab/1289df8afa344943909e8fc67fc78771a0ee927c/_static/root_locus/image_10.png
--------------------------------------------------------------------------------
/_static/root_locus/image_11.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ELC/control-theory-with-matlab/1289df8afa344943909e8fc67fc78771a0ee927c/_static/root_locus/image_11.png
--------------------------------------------------------------------------------
/_static/root_locus/image_12.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ELC/control-theory-with-matlab/1289df8afa344943909e8fc67fc78771a0ee927c/_static/root_locus/image_12.png
--------------------------------------------------------------------------------
/_static/root_locus/image_13.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ELC/control-theory-with-matlab/1289df8afa344943909e8fc67fc78771a0ee927c/_static/root_locus/image_13.png
--------------------------------------------------------------------------------
/_static/root_locus/image_14.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ELC/control-theory-with-matlab/1289df8afa344943909e8fc67fc78771a0ee927c/_static/root_locus/image_14.png
--------------------------------------------------------------------------------
/_static/root_locus/image_15.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ELC/control-theory-with-matlab/1289df8afa344943909e8fc67fc78771a0ee927c/_static/root_locus/image_15.png
--------------------------------------------------------------------------------
/_static/root_locus/image_16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ELC/control-theory-with-matlab/1289df8afa344943909e8fc67fc78771a0ee927c/_static/root_locus/image_16.png
--------------------------------------------------------------------------------
/_static/root_locus/image_17.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ELC/control-theory-with-matlab/1289df8afa344943909e8fc67fc78771a0ee927c/_static/root_locus/image_17.png
--------------------------------------------------------------------------------
/_static/root_locus/image_18.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ELC/control-theory-with-matlab/1289df8afa344943909e8fc67fc78771a0ee927c/_static/root_locus/image_18.png
--------------------------------------------------------------------------------
/_static/root_locus/image_19.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ELC/control-theory-with-matlab/1289df8afa344943909e8fc67fc78771a0ee927c/_static/root_locus/image_19.png
--------------------------------------------------------------------------------
/_static/root_locus/image_20.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ELC/control-theory-with-matlab/1289df8afa344943909e8fc67fc78771a0ee927c/_static/root_locus/image_20.png
--------------------------------------------------------------------------------
/_static/root_locus/image_21.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ELC/control-theory-with-matlab/1289df8afa344943909e8fc67fc78771a0ee927c/_static/root_locus/image_21.png
--------------------------------------------------------------------------------
/_static/root_locus/image_22.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ELC/control-theory-with-matlab/1289df8afa344943909e8fc67fc78771a0ee927c/_static/root_locus/image_22.png
--------------------------------------------------------------------------------
/_static/root_locus/image_23.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ELC/control-theory-with-matlab/1289df8afa344943909e8fc67fc78771a0ee927c/_static/root_locus/image_23.png
--------------------------------------------------------------------------------
/_static/root_locus/image_24.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ELC/control-theory-with-matlab/1289df8afa344943909e8fc67fc78771a0ee927c/_static/root_locus/image_24.png
--------------------------------------------------------------------------------
/_static/root_locus/image_25.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ELC/control-theory-with-matlab/1289df8afa344943909e8fc67fc78771a0ee927c/_static/root_locus/image_25.png
--------------------------------------------------------------------------------
/_static/root_locus/image_26.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ELC/control-theory-with-matlab/1289df8afa344943909e8fc67fc78771a0ee927c/_static/root_locus/image_26.png
--------------------------------------------------------------------------------
/_static/root_locus/image_27.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ELC/control-theory-with-matlab/1289df8afa344943909e8fc67fc78771a0ee927c/_static/root_locus/image_27.png
--------------------------------------------------------------------------------
/_static/root_locus/image_28.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ELC/control-theory-with-matlab/1289df8afa344943909e8fc67fc78771a0ee927c/_static/root_locus/image_28.png
--------------------------------------------------------------------------------
/_static/root_locus/image_29.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ELC/control-theory-with-matlab/1289df8afa344943909e8fc67fc78771a0ee927c/_static/root_locus/image_29.png
--------------------------------------------------------------------------------
/_static/root_locus/image_30.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ELC/control-theory-with-matlab/1289df8afa344943909e8fc67fc78771a0ee927c/_static/root_locus/image_30.png
--------------------------------------------------------------------------------
/_static/root_locus/image_31.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ELC/control-theory-with-matlab/1289df8afa344943909e8fc67fc78771a0ee927c/_static/root_locus/image_31.png
--------------------------------------------------------------------------------
/_static/root_locus/image_32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ELC/control-theory-with-matlab/1289df8afa344943909e8fc67fc78771a0ee927c/_static/root_locus/image_32.png
--------------------------------------------------------------------------------
/_static/root_locus/image_33.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ELC/control-theory-with-matlab/1289df8afa344943909e8fc67fc78771a0ee927c/_static/root_locus/image_33.png
--------------------------------------------------------------------------------
/_static/sintonization/image_00.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ELC/control-theory-with-matlab/1289df8afa344943909e8fc67fc78771a0ee927c/_static/sintonization/image_00.png
--------------------------------------------------------------------------------
/_static/sintonization/image_01.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ELC/control-theory-with-matlab/1289df8afa344943909e8fc67fc78771a0ee927c/_static/sintonization/image_01.png
--------------------------------------------------------------------------------
/_static/sintonization/image_02.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ELC/control-theory-with-matlab/1289df8afa344943909e8fc67fc78771a0ee927c/_static/sintonization/image_02.png
--------------------------------------------------------------------------------
/_static/sintonization/image_03.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ELC/control-theory-with-matlab/1289df8afa344943909e8fc67fc78771a0ee927c/_static/sintonization/image_03.png
--------------------------------------------------------------------------------
/_static/sintonization/image_04.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ELC/control-theory-with-matlab/1289df8afa344943909e8fc67fc78771a0ee927c/_static/sintonization/image_04.png
--------------------------------------------------------------------------------
/_static/sintonization/image_05.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ELC/control-theory-with-matlab/1289df8afa344943909e8fc67fc78771a0ee927c/_static/sintonization/image_05.png
--------------------------------------------------------------------------------
/_static/sintonization/image_06.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ELC/control-theory-with-matlab/1289df8afa344943909e8fc67fc78771a0ee927c/_static/sintonization/image_06.png
--------------------------------------------------------------------------------
/_static/sintonization/image_07.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ELC/control-theory-with-matlab/1289df8afa344943909e8fc67fc78771a0ee927c/_static/sintonization/image_07.png
--------------------------------------------------------------------------------
/_static/sintonization/image_08.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ELC/control-theory-with-matlab/1289df8afa344943909e8fc67fc78771a0ee927c/_static/sintonization/image_08.png
--------------------------------------------------------------------------------
/_static/sintonization/image_09.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ELC/control-theory-with-matlab/1289df8afa344943909e8fc67fc78771a0ee927c/_static/sintonization/image_09.png
--------------------------------------------------------------------------------
/_static/sintonization/image_10.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ELC/control-theory-with-matlab/1289df8afa344943909e8fc67fc78771a0ee927c/_static/sintonization/image_10.png
--------------------------------------------------------------------------------
/_static/sintonization/image_11.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ELC/control-theory-with-matlab/1289df8afa344943909e8fc67fc78771a0ee927c/_static/sintonization/image_11.png
--------------------------------------------------------------------------------
/_static/sintonization/image_12.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ELC/control-theory-with-matlab/1289df8afa344943909e8fc67fc78771a0ee927c/_static/sintonization/image_12.png
--------------------------------------------------------------------------------
/_static/sintonization/image_13.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ELC/control-theory-with-matlab/1289df8afa344943909e8fc67fc78771a0ee927c/_static/sintonization/image_13.png
--------------------------------------------------------------------------------
/_static/sintonization/image_14.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ELC/control-theory-with-matlab/1289df8afa344943909e8fc67fc78771a0ee927c/_static/sintonization/image_14.png
--------------------------------------------------------------------------------
/_static/sintonization/image_15.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ELC/control-theory-with-matlab/1289df8afa344943909e8fc67fc78771a0ee927c/_static/sintonization/image_15.png
--------------------------------------------------------------------------------
/_static/sintonization/image_16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ELC/control-theory-with-matlab/1289df8afa344943909e8fc67fc78771a0ee927c/_static/sintonization/image_16.png
--------------------------------------------------------------------------------
/_static/sintonization/image_17.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ELC/control-theory-with-matlab/1289df8afa344943909e8fc67fc78771a0ee927c/_static/sintonization/image_17.png
--------------------------------------------------------------------------------
/_static/sintonization/image_18.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ELC/control-theory-with-matlab/1289df8afa344943909e8fc67fc78771a0ee927c/_static/sintonization/image_18.png
--------------------------------------------------------------------------------
/_static/sintonization/image_19.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ELC/control-theory-with-matlab/1289df8afa344943909e8fc67fc78771a0ee927c/_static/sintonization/image_19.png
--------------------------------------------------------------------------------
/_toc.yml:
--------------------------------------------------------------------------------
1 | format: jb-book
2 |
3 | root: README
4 |
5 | options:
6 | numbered: True
7 |
8 | chapters:
9 | - file: chapters/ELC01_Transformada_de_Laplace
10 | - file: chapters/ELC02_Funcion_de_transferencia
11 | - file: chapters/ELC03_Sistemas_Primer_Orden
12 | - file: chapters/ELC04_Sistemas_Segundo_Orden
13 | - file: chapters/ELC05_Root_Locus
14 | - file: chapters/ELC06_Controladores
15 | - file: chapters/ELC07_Sintonización
16 | - file: chapters/ELC08_Bode
17 | - file: chapters/ELC09_Nyquist
18 |
--------------------------------------------------------------------------------
/chapters/ELC01_Transformada_de_Laplace.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "markdown",
5 | "source": [
6 | "# Introducción a la Teoría de Control Con Matlab\r\n",
7 | "\r\n",
8 | " Version 0.1\r\n",
9 | "\r\n",
10 | "`Contenido Original creado por Ezequiel Leonardo Castaño`\r\n",
11 | "\r\n",
12 | "Este contenido está en BORRADOR y puede estar incompleto y/o sufrir modificaciones\r\n",
13 | "\r\n",
14 | "___\r\n",
15 | "\r\n",
16 | "Enlaces Útiles:\r\n",
17 | "\r\n",
18 | "- Los demás capítulos pueden encontrarse en el [homepage](https://elc.github.io/control). \r\n",
19 | "- El repositorio completo está disponible en Github como [Control Theory With Matlab](https://github.com/ELC/control-theory-with-matlab)\r\n",
20 | "- Ante dudas y sugerencias, no dudes en utilizar los [Github Issues](https://github.com/ELC/control-theory-with-matlab/issues)"
21 | ],
22 | "metadata": {}
23 | },
24 | {
25 | "cell_type": "code",
26 | "execution_count": null,
27 | "source": [
28 | "%plot inline --format=png -w 1600"
29 | ],
30 | "outputs": [],
31 | "metadata": {}
32 | },
33 | {
34 | "cell_type": "code",
35 | "execution_count": 2,
36 | "source": [
37 | "format compact;"
38 | ],
39 | "outputs": [
40 | {
41 | "output_type": "stream",
42 | "name": "stdout",
43 | "text": [
44 | "\n"
45 | ]
46 | }
47 | ],
48 | "metadata": {}
49 | },
50 | {
51 | "cell_type": "markdown",
52 | "source": [
53 | "## Transformada de Laplace\r\n",
54 | "\r\n",
55 | "### Definición\r\n",
56 | "\r\n",
57 | "La transformada de Laplace es una **generalización** de la transformada de Fourier\r\n",
58 | "\r\n",
59 | "La transformada de Fourier convierte una función del **dominio del tiempo** al **dominio de la frecuencia**\r\n",
60 | "\r\n",
61 | "$$X(\\omega )=\\int_{-\\infty }^{\\infty } x(t)e^{-j\\omega t} dt$$\r\n",
62 | "\r\n",
63 | "El término $e^{-j\\omega t}$ es la forma exponencial de una función senoidal, donde $j$ representa a la unidad imaginaria. Sin embargo, esta transformación resulta bastante restrictiva ya que no hay componentes exponenciales puras.\r\n",
64 | "\r\n",
65 | "Para añadir un componente exponencial, se agrega un factor exponencial a la función $x(t)$quedando:\r\n",
66 | "\r\n",
67 | "$$X(\\sigma ,\\omega )=\\int_{-\\infty }^{\\infty } [x(t)\\cdot e^{-\\sigma t} ]e^{-j\\omega t} dt$$"
68 | ],
69 | "metadata": {}
70 | },
71 | {
72 | "cell_type": "markdown",
73 | "source": [
74 | "### Desarrollo\r\n",
75 | "\r\n",
76 | "Al trabajar algebraicamente se tiene\r\n",
77 | "\r\n",
78 | "$$X(\\sigma ,\\omega )=\\int_{-\\infty }^{\\infty } x(t)\\cdot [e^{-\\sigma t} \\cdot e^{-j\\omega t} ]dt$$\r\n",
79 | "\r\n",
80 | "$$X(\\sigma ,\\omega )=\\int_{-\\infty }^{\\infty } x(t)\\cdot e^{-\\sigma t-j\\omega t} dt$$\r\n",
81 | "\r\n",
82 | "$$X(\\sigma ,\\omega )=\\int_{-\\infty }^{\\infty } x(t)\\cdot e^{-(\\sigma -j\\omega )t} dt$$\r\n",
83 | "\r\n",
84 | "Y luego se reemplaza a la expresión $\\sigma -j\\omega$ por una nueva variable compleja llamada $s$, donde $\\sigma$ es la parte real y $\\omega$ la parte imaginaria, este nuevo dominio diferente del tiempo se conoce como **plano** $s$.\r\n",
85 | "\r\n",
86 | "$$X(s)=\\int_{-\\infty }^{\\infty } x(t)e^{-st} dt$$\r\n",
87 | "\r\n",
88 | "Esta forma de expresar a la función $x(t)$ como $X(s)$es lo que se conoce como transformada de Laplace, símbolicamente se representa\r\n",
89 | "\r\n",
90 | "$$\\mathcal{L}\\lbrace x(t)\\rbrace =X(s)$$\r\n",
91 | "\r\n",
92 | "Análogamente para la transformación inversa\r\n",
93 | "\r\n",
94 | "$${\\mathcal{L}}^{-1} \\lbrace X(s)\\rbrace =x(t)$$ "
95 | ],
96 | "metadata": {}
97 | },
98 | {
99 | "cell_type": "markdown",
100 | "source": [
101 | "## Propiedades\r\n",
102 | "\r\n",
103 | "Algunas de las propiedades de la transformada de Laplace son\r\n",
104 | "\r\n",
105 | "### Linearidad\r\n",
106 | "\r\n",
107 | "$$\\mathcal{L}\\lbrace a\\cdot f(t)+b\\cdot g(t)\\rbrace =a\\cdot F(s)+b\\cdot G(s)$$"
108 | ],
109 | "metadata": {}
110 | },
111 | {
112 | "cell_type": "markdown",
113 | "source": [
114 | "### Retraso o Delay\n",
115 | "\n",
116 | "Dada una función escalón definida por $\\gamma (t-a)=\\left\\lbrace \\begin{array}{lcc}\n",
117 | "0 & si & x\\le a\\\\\n",
118 | "1 & si & x\\ge a\n",
119 | "\\end{array}\\right.$\n",
120 | "\n",
121 | "$$\\mathcal{L}\\lbrace f(t-a)\\cdot \\gamma (t-a)\\rbrace =e^{-as} \\cdot F(s)$$"
122 | ],
123 | "metadata": {}
124 | },
125 | {
126 | "cell_type": "markdown",
127 | "source": [
128 | "### Derivada\n",
129 | "\n",
130 | "$$\\mathcal{L}\\lbrace f^{^{\\prime } } (t)\\rbrace =s\\cdot F(s)-f(0)$$\n",
131 | "\n",
132 | "$$\\mathcal{L}\\lbrace f^{^{\\prime \\prime } } (t)\\rbrace =s^2 \\cdot F(s)-s\\cdot f(0)-f^{^{\\prime } } (0)$$"
133 | ],
134 | "metadata": {}
135 | },
136 | {
137 | "cell_type": "markdown",
138 | "source": [
139 | "### Integral\n",
140 | "\n",
141 | "$$\\mathcal{L}\\lbrace \\int_0^t f(t)dt\\rbrace =\\frac{1}{s}\\mathcal{L}\\lbrace f(t)\\rbrace$$"
142 | ],
143 | "metadata": {}
144 | },
145 | {
146 | "cell_type": "markdown",
147 | "source": [
148 | "### Teorema del valor inicial\n",
149 | "\n",
150 | "$$\\lim_{s\\to \\infty } (s\\cdot F(s))=\\lim_{t\\to 0} f(t)$$"
151 | ],
152 | "metadata": {}
153 | },
154 | {
155 | "cell_type": "markdown",
156 | "source": [
157 | "### Teorema del valor final}\n",
158 | "\n",
159 | "$$\\lim_{s\\to 0} (s\\cdot F(s))=\\lim_{t\\to \\infty } f(t)$$"
160 | ],
161 | "metadata": {}
162 | },
163 | {
164 | "cell_type": "markdown",
165 | "source": [
166 | "### Convolución\n",
167 | "\n",
168 | "$$\\mathcal{L}\\lbrace f(t)*g(t)\\rbrace =F(s)\\cdot G(s)$$\n",
169 | "\n",
170 | "La operación convolución puede verse gráficamente en esta animación ([Fuente](https://en.wikipedia.org/wiki/Convolution))\n",
171 | "\n",
172 | "
\n",
173 | "
\n",
174 | ""
175 | ],
176 | "metadata": {}
177 | },
178 | {
179 | "cell_type": "markdown",
180 | "source": [
181 | "## Transformaciones comunes\n",
182 | "\n",
183 | "Normalemente en lugar de hacer la integral, que puede llevar mucho tiempo, se recurre a tablas que tienen las transformadas pre-calculadas. Algunas de las transformadas más comunes son:\n",
184 | "\n",
185 | "### Función impulso \n",
186 | "\n",
187 | "$$\\mathcal{L}\\lbrace \\delta (c)\\rbrace =c$$ \n",
188 | "\n",
189 | "### Función escalón\n",
190 | "\n",
191 | "$$\\mathcal{L}\\lbrace c\\rbrace =\\frac{c}{s}$$ \n",
192 | "\n",
193 | "### Función rampa\n",
194 | "\n",
195 | "$$\\mathcal{L}\\lbrace c\\cdot t\\rbrace =\\frac{c}{s^2 }$$ \n",
196 | "\n",
197 | "### Función exponencial\n",
198 | "\n",
199 | "$$\\mathcal{L}\\lbrace e^{a\\cdot t} \\rbrace =\\frac{1}{s-a}$$ \n",
200 | "\n",
201 | "\n",
202 | "## Laplace en Matlab\n",
203 | "\n",
204 | "Definimos los símbolos a utilizar"
205 | ],
206 | "metadata": {}
207 | },
208 | {
209 | "cell_type": "code",
210 | "execution_count": 3,
211 | "source": [
212 | "a = sym(\"a\");\r\n",
213 | "t = sym(\"t\", 'positive');\r\n",
214 | "s = sym(\"s\");"
215 | ],
216 | "outputs": [
217 | {
218 | "output_type": "stream",
219 | "name": "stdout",
220 | "text": [
221 | "\n"
222 | ]
223 | }
224 | ],
225 | "metadata": {}
226 | },
227 | {
228 | "cell_type": "markdown",
229 | "source": [
230 | "A continuación se muestran algunos ejemplos con sus transformadas y antitransformadas\n",
231 | "\n",
232 | "### Escalón"
233 | ],
234 | "metadata": {}
235 | },
236 | {
237 | "cell_type": "code",
238 | "execution_count": 5,
239 | "source": [
240 | "funcion = a;\r\n",
241 | "transformada = laplace(funcion, t, s)"
242 | ],
243 | "outputs": [
244 | {
245 | "output_type": "stream",
246 | "name": "stdout",
247 | "text": [
248 | "transformada =\n",
249 | "a/s\n",
250 | "\n"
251 | ]
252 | }
253 | ],
254 | "metadata": {}
255 | },
256 | {
257 | "cell_type": "code",
258 | "execution_count": 6,
259 | "source": [
260 | "transformada_inversa = ilaplace(transformada)"
261 | ],
262 | "outputs": [
263 | {
264 | "output_type": "stream",
265 | "name": "stdout",
266 | "text": [
267 | "transformada_inversa =\n",
268 | "a\n",
269 | "\n"
270 | ]
271 | }
272 | ],
273 | "metadata": {}
274 | },
275 | {
276 | "cell_type": "markdown",
277 | "source": [
278 | "#### Ejemplo Gráfico"
279 | ],
280 | "metadata": {}
281 | },
282 | {
283 | "cell_type": "code",
284 | "execution_count": 7,
285 | "source": [
286 | "syms f(t) g(t) h(t);\r\n",
287 | "f(t) = 1;\r\n",
288 | "g(t) = 0.5;\r\n",
289 | "h(t) = 2;\r\n",
290 | "\r\n",
291 | "figure;\r\n",
292 | "hold on;\r\n",
293 | "fplot([f, g, h], [0 10])\r\n",
294 | "ylim([0 2.5])\r\n",
295 | "grid on\r\n",
296 | "legend(\"a=1\", \"a=0.5\", \"a=2\")"
297 | ],
298 | "outputs": [
299 | {
300 | "output_type": "stream",
301 | "name": "stdout",
302 | "text": [
303 | "\n"
304 | ]
305 | },
306 | {
307 | "output_type": "display_data",
308 | "data": {
309 | "text/plain": [
310 | ""
311 | ],
312 | "image/png": "iVBORw0KGgoAAAANSUhEUgAABkAAAAGkCAIAAADmHH7qAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAB3RJTUUH5QcYDSQAVODxBAAAACR0RVh0U29mdHdhcmUATUFUTEFCLCBUaGUgTWF0aFdvcmtzLCBJbmMuPFjdGAAAACJ0RVh0Q3JlYXRpb24gVGltZQAyNC1KdWwtMjAyMSAxMDozNjowMBuTPT4AACAASURBVHic7d1/dJb1ffDxqzfUUOAgpWJGHBUlTQDNpKJyoFHQgdUKyK+GGpzVsrMCRXnmOQXa7BB7RFexUsxxHilrOe5ssDJO2WCHCpvBEKUT5emQHxrMaEJUdu+Um/BDG34kef7Is4xBa+l2c11f7rxef+W6cxE+fIwJ95vrvvKJ9vb2CAAAAABClUp6AAAAAAD4OAIWAAAAAEETsAAAAAAImoAFAAAAQNAELAAAAACCJmABAAAAEDQBCwAAAICgCVgAAAAABE3AAgAAACBoAhYAAAAAQROwAAAAAAiagAUAAABA0AQsAAAAAIImYAEAAAAQNAELAAAAgKAJWAAAAAAETcACAAAAIGgCFgAAAABBE7AAAAAACJqABQAAAEDQBCwAAAAAgiZgAQAAABA0AQsAAACAoAlYAAAAAARNwAIAAAAgaAIWAAAAAEHrnvQAXErq6+sbGhr69et34403nv/eTCZz4MCBzsOioqI+ffrEOB0AAACQmwQsLtSSJUuqq6tHjBixf//+Xr16rVq1Ki8v7+wT1q9fv2zZss4Hq6qqSktLk5gUAAAAyCkCFhfk7bff/vGPf1xbW9u3b98oiiZOnLhx48bp06effc7evXsrKirKy8sTmhEAAADITe6BxQXp27fvihUrOupVFEXXXHPNBx98cM45+/btGzx4cCaTOX36dOwDAgAAADnrE+3t7UnPwCWmsbFxwoQJa9euHTp0aOeDra2tJSUl1157bSaTaW5unjp16pIlS87/tcXFxb/142/evDmb4wIAANCFDRo0KOkRyAIvIeR3k06nH3zwwblz555drzoeHzdu3KJFiwoKCtLpdFlZ2Zo1a+67777zP0JdXV1cwxJFUdTQ0ODrdczsPH52Hj87j5+dx8/O42fn8bPz+Nl5zBoaGpIegezwEkJ+B7t3754yZcoDDzwwZ86cc95VUFBQVVVVUFAQRVF+fv748eN37tyZxIwAAABArhGwuFDbt2//2te+9thjjz300EPnv7exsXHdunWdh6dOnerWrVuM0wEAAAA5S8DigjQ1Nc2bN2/p0qW333776dOnT58+3draGkXRrl27Dh06FEVRS0tLZWVlfX19FEXpdPrll1+eOHFiwkMDAAAAOcE9sLggq1ev/vDDD2fPnt35yMyZMxcvXrx8+fJ77rln+vTpxcXFFRUVZWVlJSUlu3fvfvjhh0tLSxMcGAAAAMgZAhYXZOHChQsXLjz/8VWrVnW+XV5eXl5eHuNQAAAAQJfgJYQAAAAABE3AAgAAACBoAhYAAAAAQROwAAAAAAiam7gDAABALiguLk56hATU1dUlPQJxELAAAAAgR3S1mtM1m13X5CWEAAAAAARNwAIAAAAgaAIWAAAAAEETsAAAAAAImoAFAAAAJK+mpqampibpKQiUgAUAAAAkbOfOnWVlZfX19UkPQqC6Jz0AAAAAkIPa2tqqq6tPnDgxYMCAkSNHfsyZzz///NNPP33ttdfGNhuXHFdgAQAAAFnW0tJy0003rVq1asuWLV/96lcrKyujKNqwYUOP/27Dhg1RFF133XV79+69/vrrk56acLkCCwAAAHLNdzb/IpHft/KL13S88c4770ybNq2ioiKKok2bNlVVVUVRNGnSpJaWlvN/1ZgxY+IckkuRgAUAAAC5pjMkJWX48OEnT55csGBBU1PTjh07Ol4e2NTU9Morr5x92tixYwcOHJjMiFxSBCwAAAAgy1566aVZs2YtXbp0xowZ6XT6mWeeiaLo8OHD27ZtO/u0kpISAYsLIWABAAAAWbZly5Zx48bNnDkziqIFCxbs27cviqLhw4evXLky6dG4JAlYAAAAQJbNnj17zJgxkydPPnr06NixY48ePdrW1pZK+VFy/A8JWAAAAECWFRUVHTp06MSJEz179kylUh0/hfDjuTiLjyFgAQAAABdF7969kx6BHOHiPQAAAACCJmABAAAAEDQBCwAAAICgCVgAAAAABE3AAgAAACBofgohAAAAkKRjx449++yzBw4cmDFjxl133XXOe19//fU9e/Z0vD1w4MA777wz9gFJnoAFAAAAJOnuu+8eO3bslClTFi1adPjw4ZkzZ5793uXLlx8/fnzQoEFRFJ08eVLA6poELAAAACD72traqqurT5w4MWDAgJEjR/6m0372s58dP378iSeeiKIoPz//61//+jkBa9euXX//939fVFR00ScmYAIWAAAAkGUtLS2jR48eOnTo5ZdfXl1dPWPGjO985zsbNmwoKys7+7S1a9cePXr0hhtu6Di8+eab9+zZ09bWlkr9/3t2nzlz5sCBAxs2bNi5c+eQIUMWLlzYo0ePuP8wBEDAAgAAgFyzf3pBIr9v0boPOt545513pk2bVlFREUXRpk2bqqqqoiiaNGlSS0vLOb/khRde6GxSqVQqlUqdOXPmsssu63jkjTfeuOyyy/r06TNz5swXXnhh6tSpmzZtiukPQ0gELAAAAMg1nSEpKcOHDz958uSCBQuampp27Nhx7bXXRlHU1NT0yiuvnH3a2LFjU6lUW1tb5yNnX34VRdGoUaOOHTvW8fYdd9zRp0+fQ4cODRgwII4/AyERsAAAAIAse+mll2bNmrV06dIZM2ak0+lnnnkmiqLDhw9v27bt7NNKSko+/elPHz9+vOPw8OHDl112Wffu/xUrmpqaDh8+PHz48CiKevbs2b179+PHjwtYXZCABQAAAGTZli1bxo0b13E79gULFuzbty+KouHDh69cufKcM6+66qpZs2al0+n8/PwXX3zxy1/+chRFNTU1119//Wc+85m333573rx5b731Vo8ePX7yk5989rOfdTf3rknAAgAAALJs9uzZY8aMmTx58tGjR8eOHXv06NFzXhvYqX///n/xF39xyy23DB069ODBg1u3bo2iaOLEiX/7t3/7pS996c4775w8efLQoUOLi4sPHDiwbt262P8oBEHAAgAAALKsqKjo0KFDJ06c6NmzZyqVqqys/JiT/+iP/mjmzJktLS09e/bseKTzvldRFC1duvTJJ588depU53vpggQsAAAA4KLo3bv3BZ6ZSqU+pk9179797Btj0QX9mov3AAAAACAcAhYAAAAAQROwAAAAAAiagAUAAABA0AQsAAAAAIImYAEAAAAQND+EEgAAAEjS+++//4Mf/ODgwYMjR478kz/5k1TK1Tacy+cEAAAAkJhjx47ddNNNl19++bRp07Zs2fLQQw8lPREhcgUWAAAAkH1tbW3V1dUnTpwYMGDAyJEjf9Np1dXVY8eOffTRR6Mo+sIXvtC/f/8XX3wxxjG5NAhYAAAAQJa1tLSMHj166NChl19+eXV19YwZM77zne9s2LChrKzs7NPWrl07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k56lq+j4u+LnPve5q6++OulZuoRzngp5Tnqpcw8s4rBx48bvfve7o0eP3rlz57333jt//vykJ+oqnn/++TVr1tTW1iY9SJewZMmS6urqESNG7N+/v1evXqtWrcrLy0t6qBz3/e9//6c//emIESPeeOONL3/5y1//+teTnqirqK+vnzJlyve///1x48YlPUvu++EPf7hs2bLOrydVVVWlpaXJjpTzampqvvWtb40ePbqxsTEvL++v/uqvUimvWriItmzZsmjRos7DlpaWsrKyxx57LLmJuoRVq1b95V/+5ejRo3fv3n3TTTctWbIk6Yly39NPP71+/fovfOELu3fvnjBhwrx585KeKMed81TIc9Jc0A4X2ZkzZz7/+c+/++677e3thw8fvuGGG37xi18kPVTuO3LkyKJFiz7/+c+XlpYmPUuXsG/fvuuvv/7IkSMdhxMmTPi7v/u7ZEfKefv37+/c+X/8x38MHTr08OHDSQ/VJZw6dWrSpEljx479p3/6p6Rn6RL+9E//9G/+5m+SnqILOXPmzKhRo15//fWOw3vuueenP/1psiN1KbW1tbfddlvn91MuktbW1mHDhu3fv7+9vf3o0aPDhg3bt29f0kPluLfeeuv666//4IMP2tvbW1pabr/99rfeeivpoXLW+U+FPCfNDf41iYtu27Ztffv2LSwsjKKoX79+t91226uvvpr0ULlv+fLl/fr1e/LJJ5MepKvo27fvihUr+vbt23F4zTXXfPDBB8mOlPMGDx68fv36jp1/8pOfbG1tPX36dNJDdQnLli37wz/8w6KioqQH6Sr27ds3ePDgTCbjMzweNTU1V1111S233NJx+I//+I933XVXsiN1HR999NG3vvWtJUuWdH4/5eJpb2/v0aNHFEWf+tSnUqnUqVOnkp4ox9XX1996660DBgyIoigvL2/EiBGbN29Oeqicdf5TIc9Jc4N7YHHRNTc3DxkypPOwd+/e+/fvT3CeLmLx4sWpVKqmpibpQbqKAQMGdPyNJIqixsbGrVu3zpkzJ9mRcl4qlSosLGxtbV23bt3q1au/8Y1v5OfnJz1U7tuxY8frr7/+k5/8xAs249Ha2nrw4MHHH388k8k0NzdPnTrVy3wutiNHjgwcOHDx4sX/8A//0K1bt2984xuzZs1KeqiuYuXKlUOGDHHvzhikUqnKysq5c+eOGzdu+/btM2bMuOGGG5IeKsfl5eW9//77nYfHjh3z2uSL5/ynQp6T5gb/z3DRtba2nv3VOZVKtbW1JThPF+E7YlLS6fSDDz44d+5c90ONRyaTOXny5JVXXvnaa681NzcnPU6OO3bs2OLFi5ctW5b0IF1IOp0eN27cD37wg+3bt2/durW2tnbNmjVJD5Xj6uvrN2/efN111+3atWvNmjUvvPCCf6WPx8mTJ1etWvXII48kPUhX8eabb/bs2bN///59+/b9t3/7t48++ijpiXLc6NGj0+n0008/vWPHjhdffHHPnj2eE1085z8V8pw0N3iKy0WXl5fX2traedjW1ta9u0v/yE27d++eMmXKAw8817tSiwAABClJREFU4PKr2PTv3/+BBx5YuXJljx49XnzxxaTHyXFLly4dNmxYY2NjTU1NJpPZu3dvXV1d0kPluIKCgqqqqoKCgiiK8vPzx48fv3PnzqSHynGf/exnr7766hkzZkRRVFxcPH78+E2bNiU9VJfw0ksvDRw4sKSkJOlBuoTq6uqf//znq1evLi8vX7FiRRRFP/rRj5IeKsf17dv3r//6rxsbG6uqqo4fPz5p0iQ/7SdOnpPmBv/NuOiuvPLKPXv2dB4eOXLkS1/6UoLzwEWyffv2+fPnP/HEE3feeWfSs3QJBw4c2L59+/33399x+Hu/93v//u//nuxIOa9///779u1bvXp1FEXvv/9+TU1Nnz59/CDqi6qxsfGNN96YPn16x+GpU6e6deuW7Eg57zOf+czZh65ojk1NTc348eOTnqKrOHLkSFFRUefXk6uvvrqpqSnZkXLeiRMnPvzww+eee67jcM6cOX6Sb5w8J80NviVz0d18881RFHW8Avndd9/dvn37qFGjkh4KsqypqWnevHlLly69/fbbT58+ffr06bP/kYeLobW19c///M8PHDgQRdEvf/nLV1991TOfi23+/Pkr/lNJScncuXMfeuihpIfKcS0tLZWVlfX19VEUpdPpl19+eeLEiUkPleNuv/32TCazdevWKIoymUxtba2dx+Nf/uVf3IYpNsOGDXvttdc6voceO3bszTff7PzBBVwkx48fLy8vT6fTURT9/Oc/f/PNN/29JU6ek+YGV2Bx0aVSqe9973uPPvpoYWHh3r17n3rqqSuuuCLpoSDLVq9e/eGHH86ePbvzkZkzZy5evDjBkXLe5z73uT/7sz+bOnXqiBEjdu7cOWfOnDvuuCPpoSDLiouLKyoqysrKSkpKdu/e/fDDD5eWliY9VI775Cc/+dxzz33zm99csWJFfX391772tZEjRyY9VO5ra2s7fPjwsGHDkh6kqxg6dOi3v/3tsrKy6667bu/evdOmTZs2bVrSQ+W4AQMGLFy48O67777uuuvee++95557rk+fPkkP1YV4TpobPtHe3p70DHQVH330UY8ePVyKD2RRW1tbJpP59Kc/7XVV5LC2traWlhbfQ2P2q1/96rLLLvO1hRzW8bUlLy/P53lsWltbT5482bNnz6QH6bo8J72kCVgAAAAABE13BAAAACBoAhYAAAAAQROwAAAAAAiagAUAAABA0AQsAAAAAIImYAEAAAAQNAELAAAAgKAJWAAAAAAETcACAAAAIGgCFgAAAABBE7AAAAAACJqABQAAAEDQBCwAAAAAgiZgAQAAABA0AQsAAACAoAlYAAAAAARNwAIAAAAgaAIWAAAAAEETsAAAAAAImoAFAAAAQNAELAAAAACCJmABAAAAEDQBCwAAAICgCVgAAAAABE3AAgAAACBo/w+V82+FZ6Fr4AAAAABJRU5ErkJggg=="
313 | },
314 | "metadata": {}
315 | }
316 | ],
317 | "metadata": {}
318 | },
319 | {
320 | "cell_type": "markdown",
321 | "source": [
322 | "### Rampa"
323 | ],
324 | "metadata": {}
325 | },
326 | {
327 | "cell_type": "code",
328 | "execution_count": 8,
329 | "source": [
330 | "funcion = a * t;\r\n",
331 | "transformada = laplace(funcion, t, s)"
332 | ],
333 | "outputs": [
334 | {
335 | "output_type": "stream",
336 | "name": "stdout",
337 | "text": [
338 | "transformada =\n",
339 | "a/s^2\n",
340 | "\n"
341 | ]
342 | }
343 | ],
344 | "metadata": {}
345 | },
346 | {
347 | "cell_type": "code",
348 | "execution_count": 9,
349 | "source": [
350 | "transformada_inversa = ilaplace(transformada)"
351 | ],
352 | "outputs": [
353 | {
354 | "output_type": "stream",
355 | "name": "stdout",
356 | "text": [
357 | "transformada_inversa =\n",
358 | "a*t\n",
359 | "\n"
360 | ]
361 | }
362 | ],
363 | "metadata": {}
364 | },
365 | {
366 | "cell_type": "markdown",
367 | "source": [
368 | "#### Ejemplo Gráfico"
369 | ],
370 | "metadata": {}
371 | },
372 | {
373 | "cell_type": "code",
374 | "execution_count": 10,
375 | "source": [
376 | "syms f(t) g(t) h(t);\r\n",
377 | "f(t) = 1 * t;\r\n",
378 | "g(t) = 0.5 * t;\r\n",
379 | "h(t) = 2 * t;\r\n",
380 | "\r\n",
381 | "figure;\r\n",
382 | "hold on;\r\n",
383 | "fplot([f, g, h], [0 10])\r\n",
384 | "ylim([0 10])\r\n",
385 | "grid on\r\n",
386 | "legend(\"a=1\", \"a=0.5\", \"a=2\")"
387 | ],
388 | "outputs": [
389 | {
390 | "output_type": "stream",
391 | "name": "stdout",
392 | "text": [
393 | "\n"
394 | ]
395 | },
396 | {
397 | "output_type": "display_data",
398 | "data": {
399 | "text/plain": [
400 | ""
401 | ],
402 | "image/png": "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k8nUz5kPDw+vWbNmx44dra2tF1544YFe9sQTT2zfvv0rX/lKCOHUU0+96aabRgRYv/jFL3784x+fffbZ+/32+jnPOifAojSam5v/x//4H8uXL7/vvvsuuuiiK664Yvv27UkPBUC909QOQDllcoVMvhCvY5+Xbl559cyk50pGoVCYO3fuzJkz/+iP/mjNmjWLFi268847H3744YULF8Zf9sADD7z++uvvete7ok/f/e53P/fcc8PDw8Wdnj179rz00ksPP/zw008/fc4559x2220TJ2oKq0cCLEpjx44dv/vd7771rW9Fny5ZsmT+/PnJjgRAPRvemR3qXbF7yzpN7QCMtWIdeyY/lGppqpA69hevOi2Rv+7ZD/5H9MGvfvWrBQsW3H777SGERx555L777gshXHHFFYVCYcS3fOc73ylmUg0NDQ0NDXv27Dn++OOjP3nqqaeOP/74yZMnX3fddd/5znc+/vGPP/LII2X6m6GSCLAoje3bt1977bVr1qw59dRTn3nmmfXr1991111JDwVAPXpLU/tsTe0AjIkotAohxOvYO9LNSc/1pmKQlJRZs2bt2rXr1ltvHRgYePLJJ88888wQwsDAQHd3d/xlHR0dDQ0Nw8PDxT+JX78KIVx88cXbtm2LPr700ksnT548ODgYPUCMuiLAojRaW1tvu+22D3/4w+eee242m/3Wt741efLkpIcCoO4M9S4f6l3R1L7UQwYBGAvxy1aL57SGEPbde2nSQ1WoRx999MYbb7z77rsXLVq0efPme++9N4SwZcuWn/70p/GXnXfeeS0tLcUKmi1bthx//PHjx78ZVgwMDGzZsmXWrFkhhEmTJo0fP3779u0CrDokwKJkbrjhhhtuuCHpKQCoU7sGHhzqXTGuaXpzlTe1A1BpiqFVd3++Mi9bVabHHnts/vz5UR37rbfe+vzzz4cQZs2a9b3vfW/EK08//fQbb7xx8+bNp5566v333/+JT3wihNDT0/POd75z6tSpL7zwwmc+85l///d/nzhx4j/90z/98R//8YHa3KltAiwAoLppageg5Ip17PENwa707KTnqiaf+tSn5s2bd+WVV77++usdHR2vv/76iN3AomnTpv23//bf3vOe98ycOfM3v/lNV1dXCOFP//RP//Ef//EjH/nIZZddduWVV86cObO9vf2ll1568MEHy/63QkUQYAEA1arY1N7UvrSx7aqkxwGg6o2uY7cheNTOPvvswcHBHTt2TJo0qaGhYdmyZQd58X/6T//puuuuKxQKkyZNiv6k2HsVQrj77ru/+tWvvvHGG8WvUocEWABA9dHUDkCpVH4de1U78cQTD/OVDQ0NB8mnxo8fHy/Gog75rx8AqDKa2gE4dlFutWr9YAhBHTtUPgEWAFA1ouiqse0qTe0AHIXRdexdS85PTZmY9FzAoQmwAIAqMLwzu+3xa0IIk+eu1tQOwOHL5Ard/flNuYI6dqhqAiwAoKIVHzKoqR2AwxevY+9It6RaJtoQhKomwAIAKlS8qf2k9tVJjwNApYtCq0y+sOqpQXXsUGMEWABAJdLUDsDhyOQKmXyhpy9frGOfl25eefXMpOcCSkyABQBUlmJ0NeWKjUnPAkCFim8IplqaOtLN6tir2ssvv/z3f//3v/nNby688MK/+Iu/aGhoSHoiKo4ACwCoFHteW7fj2VtCCB4yCMBoUWgVQojXsdsQrAHbtm2bM2fOLbfcsmDBgu9///tPPPHE/fffn/RQVBwBFgCQvGJT+4mz7vGQQQDi4petFs9pDSGoY68Ww8PDa9as2bFjR2tr64UXXnigl61Zs6ajo+Nzn/tcCOG9733vtGnTBFiMJsACAJKkqR2A0YqhVXd/3mWrKlUoFObOnTtz5sw/+qM/WrNmzaJFi+68886HH3544cKF8Zc98MADV1555ZVXXhl9+qtf/erUU09NYl4qnQALAEhGFF1pagcgUqxjj28IdqVnJz1XtRrqXZ7IX7ep/a+iD371q18tWLDg9ttvDyE88sgj9913XwjhiiuuKBQKB/rezZs3X3/99d/85jfLMyrVRYAFACRAUzsAkRF17F2fnr3s8jOSHqoWFIOkpMyaNWvXrl233nrrwMDAk08+eeaZZ4YQBgYGuru74y/r6Ohoa2sLIbz44ouXX375LbfcsmjRokQGpsIJsACAsoqa2sc1TdfUDlC31LHXg0cfffTGG2+8++67Fy1atHnz5nvvvTeEsGXLlp/+9Kfxl5133nltbW1r1669+uqrv/vd7370ox9NaF4qnQALACgTTe0AdS7KrVatHwwhqGOveY899tj8+fOvu+66EMKtt976/PPPhxBmzZr1ve99b8QrN23a9PGPf/zhhx+++OKLExiUKiHAAgDGnKZ2gLo1uo69a8n5qSkTk56LMfepT31q3rx5V1555euvv97R0fH6668PDw83NDSMfuWKFStee+21uXPnFv9k3759ZZyU6iDAAgDGUDy60tQOUCcyuUJ3f35TrqCOvZ6dffbZg4ODO3bsmDRpUkNDw7Jlyw70ym9+85uK2zkkARYAMFaKTe2iK4B6EK9j70i3pFom2hDkxBNPTHoEaoQACwAoPU3tAHUiCq0y+cKqpwbVsQNjR4AFAJSSpnaAmpfJFTL5Qk9fvljHPi/dvPLqmUnPBdQyARYAUBrDO7NDvSt2b1mnqR2gJsU3BFMtTR3pZnXsFai9vT3pEWBMCLAAgGP1lqb22equAGpHFFqFEOJ17DYEK1Zvb2/SI8BYEWBRSplMpq+v7/TTT5850/1hgHqhqR2g9sQvWy2e0xpCUMcOJEuARcmsXLnyv//3/z537txf/vKXc+bM+fKXv5z0RACMLU3tALWkGFp19+ddtgIqjQCL0hgeHv7GN77x4x//+Kyzztq2bdvFF1983XXXuYcFUKsa3nhl+79+QVM7QLXLbtuT6d/a05ePbwh2pWcnPRfASAIsSmbfvn0TJ04MITQ1NTU0NLzxxhv7fdkhOwU7OztLP1wdy2azSY9Qd5x5+Tnzcmp445XGzfc3vr5+2+k37j79Q1t3hLAjk/RQdcH7vPycefk587LJbtvz0Avb171cyOQLqZZXLzp94sbPnvmHL27NZLYmOVyt8z4vs2w2m0qlkp6CEhBgURoNDQ3Lli379Kc/PX/+/Mcff3zRokXvete79vtKtYLl5/d1+Tnz8nPmZRBvat/cdpszLz9nXn7OvPyc+dgZXcf+tTktqXFbnXn5OXM4CgIsSmb9+vWTJk2aNm1ac3Nzf3//zp07J02alPRQAJTGyKb2TCbhgQA4PFFutWr9YAhhdB27y1ZAtRBgURpr1qx55plnOjs7x40bd+21137yk5/8/ve//5nPfCbpuQA4VlF01dh2laZ2gGoxuo69a8n5qSkTk54L4OgJsCiNfD5/9tlnjxs3Lvr07W9/+8DAQLIjAXCMhndmtz1+TQhh8tzVmtoBKlwmV+juz2/KFdSxAzVJgEVpvOMd7/jiF7/40ksvnXnmmdu2bVu/fv0nP/nJpIcC4CgN78z+7plb9g5lm9qXNrZdlfQ4ABxQ8bJVJj/UkW5JtUyMbwgC1AwBFqUxc+bMv/7rv164cOG55567YcOGBQsWLFiwIOmhADhi8ab2k9pXJz0OAPsRhVaZfGHVU4PFy1Yd6eak5wIYQwIsSmbRokWLFi1KegoAjt7IpnYAKkYmV8jkCz19+WId+7x088qrZyY9F0CZCLAAgDejqylXbEx6FgDeFN8QTLU0daSb1bED9UmABQB1bc9r63Y8e0sIQXQFUCGi0CqEEK9jtyEI1DkBFgDUqWJT+4mz7vGQQYDExS9bRaHVssvPSHoogEohwAKAuqOpHaBCFEOr7v68y1YAByHAAoA6EkVXmtoBElSsY49vCHalZyc9F0BFE2ABQL3Q1A6QoNF17PvuvTTpoQCqhgALAGpf1NQ+rml68/y1DZOmJz0OQL1Qxw5QKgIsAKhlmtoByi/KrVatHwwhLJ7TGkJw2QrgGAmwAKA2aWoHKKfRdexdS85PTZmY9FwANUKABQC1Jh5daWoHGDuZXKG7P78pV1DHDjDWBFgAUFOKTe2iK4AxEq9j70i3pFom2hAEGGsCLACoEZraAcZOFFpl8oVVTw2qYwcoPwEWAFQ9Te0AYyGTK2TyhZ6+fLGOfV66eeXVM5OeC6AeCbAAoIoN78wO9a7YvWWdpnaAUolvCKZamjrSzerYARInwAKAqvSWpvbZ6q4AjkkUWoUQ4nXsNgQBKocACwCqj6Z2gJKIX7ZaPKc1hKCOHaAyCbAAoJpoagc4RsXQqrs/77IVQLUQYAFAddDUDnDUinXs8Q3BrvTspOcC4HAJsACg0hXrriwMAhyR0XXsNgQBqpQACwAq11ua2qVXAIdBHTtATRJgAUCFGupdLroCOExRbrVq/WAIQR07QO0RYAFAxYma2kVXAAc3uo69a8n5qSkTk54LgNITYAFABYma2kMIk+eu9pBBgNEyuUJ3f35TrqCOHaCuCLAojVwu99JLL8X/5OSTT06lUgmNA1B9inVXHjIIMFq8jr0j3ZJqmWhDEKCuCLAojfXr13/+858vflooFBYuXPi3f/u3yU0EUDU0tQMcyJ2dGzP5wqqnBtWxA9Q5ARalcdlll1122WXRxz/72c9uv/32v/qrv0p2JICqoKkdIC6TK2TyhZ6+fLGOfV66eeXVM5OeC4CECbAosZ07d37hC1/46le/2ty8//9zrL29/eA/obOzcwzmql/ZbDbpEeqOMy+/Kj3z8TuenZi9a3fLh3bN+EEIIWQyCQ90JKr0zKuaMy8/Z15O2W17Hnphe89Lr7/6xm+mnzThotMn/uBPT5k+Ofq3lV2ZqvoNWV28z8vPmZdZNptVblMbBFiU2Pe+971zzjnnkksuOdALent7yzkPIQS/r8vPmZdfdZ15san9hPf/r+ptaq+uM68Nzrz8nPmYimqtQgjFOvZb39909XvPSXquuuN9Xn7OHI6CAItS2rVr18qVK3/wgx8kPQhAhRremR3qXbF7yzpN7UDditexL57TGkIo1rG7aQXAgQiwKKVHH320ra3tvPPOS3oQgIpTbGpval96wux7kh4HoKyKoVV3f14dOwBHQYBFKfX09Hzwgx9MegqAiqOpHahDxTr24obgssvP6ErPTnouAKqSAItSWrdu3cc+9rGkpwCoIEO9y4d6VzS1LxVdAXUiviGYamnqSDcXNwQB4KgJsCiZ4eHhLVu2vOMd70h6EICKsOe1dTuevWVc0/Tm+Wurt6kd4DDd2bkxxOrYbQgCUFoCLEqmoaHBEwYBwh8eMrh3KKupHaht0WWrVesHQwgj6tgBoLQEWABQMsWm9sa2BSe1r056HIDSG13H3rXk/NSUiUnPBUCNE2ABQAnEoyt1V0CNyeQK3f35TbmCOnYAkiLAAoBjpakdqEnxOvaOdEuqZaINQQCSIsACgKOnqR2oMVFolckXVj01qI4dgMohwAKAo6GpHagZmVwhky/09OWLdezz0s0rr56Z9FwA8CYBFgAcmeGd2aHeFbu3rNPUDlS1+IZgqqWpI92sjh2AiiXAAoDD9Zam9tnqroBqdWfnxngduw1BACqfAAsADoumdqB6xS9bLZ7TGkJQxw5AdRFgAcAhaGoHqlExtOruz7tsBUC1E2ABwAFpageqS7GOPb4h2JWenfRcAHCsBFgAsB/Fpvam9qWNbVclPQ7AwYyuY7chCECNEWABwFtoageqQhRahRDUsQNQDwRYAPAmTe1AhYtyq1XrB0MI6tgBqB8CLAAI4Q/R1YSpF2lqByrN6Dr2riXnp6ZMTHouACgfARYA9W54Z3bb49eEECbPXa2pHagQmVyhuz+/KVdQxw4AQYAFQD0rPmTQwiBQIeJ17B3pllTLRBuCABAEWADUp3hT+0ntq5MeB6hrUWiVyRdWPTWojh0A9kuABUDd0dQOJC6TK2TyhZ6+fLGOfV66eeXVM5OeCwAqlAALgDpSjK6mXLEx6VmAehTfEEy1NHWkm9WxA8DhEGABUBf2vLZux7O3hBA8ZBAosyi0CiHE69htCALAERFgAVDjik3tJ866x0MGgbKJX7ZaPKc1hKCOHQCOmgALgJqlqR0os2Jo1d2fd9kKAEpIgAVAbdLUDpTH6Dr2rk/PTnooAKg1AixKKZfLPfvssyeccMKFF16Y9CxA/dLUDpSBOnYAKCcBFiXT09PzhS98Ye7cuZs2bWpsbPyHf/iHhoaGpIcC6kvU1D6uabqmdmAsqGMHgKQIsCiNvXv3fuELX1i+fPl73vOeEMJHP/rRxx577EMf+lDScwH1QlM7MHai3Kq4IRjUsQNA2QmwKI2enp7TTz89Sq9CCP/n//yfZOcB6sfwzmzj5vu39f2LpnaghDK5woqf5599JF+sY7chCAAJEmBRGvl8vq2t7Y477vjf//t/jxs37i//8i9vvPHG/b6yvb394D+qs7NzDAasX9lsNukR6o4zL5uGN16ZkO+ckH9027iLd531gxBCyGQSnqlueJ+XnzMvg+y2PeteHnp5257lT+anTx7/wdP23fSuU1d+pOX3X972SmZbovPVAe/z8nPm5efMyyybzaZSqaSnoAQEWJRGX19fZ2fnHXfc8cUvfrG3t/f6669vb29/3/veN/qVvb295R+vzvl9XX7OvAyKTe1NFz6xI5Nx5uXnzMvPmY+ReB17R7ol1XLivntnhxAyfrckwZmXnzMvP2cOR0GARWn88R//8dvf/vZFixaFENrb2z/4wQ8+8sgj+w2wAI6Rpnbg2EWhVSZfWPXUoDp2AKh8AixKY+rUqfFPPX8QGAua2oFjkckVMvlCT1++WMc+L9288uqZSc8FAByaAIvS+MAHPnDHHXd0dXV94AMfyOVya9euvfvuu5MeCqgdwzuzQ70rdm9Z1zx/bdKzAFUmviGYamnqSDerYweAqiPAojQmTJjwrW9965Zbbvnud7/b19f3n//zf77wwguTHgqoBcM7s7sGHtw18FBj24Lm2dIr4LBEoVUI4W8f22hDEABqgACLkpkzZ05XV1fSUwA1pdjU7uIVcDjil60Wz2kNIey799KkhwIASkCABUAl0tQOHKZiaNXdn3fZCgBqlQALgMqiqR04pNF17MsuP6MrPTvpuQCAsSLAAqBSFJvam9qXNrZdlfQ4QMVRxw4AdUuABUDyNLUDB6KOHQAIAiwAEqepHRgtyq3iG4LLLj8j6aEAgMQIsABIzFDv8l0DD2lqByKj69htCAIAEQEWAAkY3pnd9vg1IQRN7VDnMrlCd39+U64Q3xBUxw4AjCDAAqCsig8Z1NQO9Sxex96Rbkm1TNx376VJDwUAVC4BFgBlEm9qP6l9ddLjAOUWhVaZfGHVU4Pq2AGAIyLAAqAcNLVDfcrkCpl8oacvX6xjn5duXnn1zKTnAgCqjAALgLFVjK6mXLEx6VmAMolvCKZamjrSzerYAYBjIcACYKzseW3djmdvCSF4yCDUgyi0CiHE69htCAIAJSHAAqD0ik3tFgah5sUvW0Wh1bLLz0h6wRfvBAAAIABJREFUKACg1giwACglTe1QD4qhVXd/3mUrAKAMBFgAlIymdqhho+vYl11+Rld6dtJzAQB1QYAFQAloaodapY4dAKgEAiwAjknU1D6uabqmdqgZ6tgBgEojwALgKBWb2k+cdc/4ky9KehzgWEW5VXFDMISw795Lkx4KACAEARYAR0FTO9SM0XXsNgQBgAokwALgCMSjK03tUKUyuUJ3f35TrhDfEFTHDgBUMgEWAIfLQwahqsXr2DvSLamWiTYEAYBqIcAC4NA0tUOVikKrTL6w6qlBdewAQPUSYAFwMJraoepkcoVMvtDTly/Wsc9LN6+8embScwEAHD0BFgD7N7wzO9S7YveWdZraoSrENwRTLU0d6WZ17ABAzRBgUTK5XO6ll14qfnr22WdPnjw5wXmAo/aWpvbZ6q6gckWhVQghXsduQxAAqD0CLErmRz/60Te/+c3Gxsbo0/vuu+9973tfsiMBR0FTO1S++GWrxXNaQwjq2AGA2ibAomQ2bNhw++23X3vttUkPAhwlTe1QybLb9tzfubG7f2t3f95lKwCg3giwKJnnn39+0aJFuVzupJNOmjBhwoFe1t7efvCf09nZWerR6lo2m016hLpTjWfe8MYrTQN3Hbf7lcL02/acOGvLb/eEkEl6qCNQjWde7Zx5eWS37clu3/Pz7NCDv9q+Z8/eq9/ZfNO7mlZ+pOUPX9+ayWxNcr5a531efs68/Jx5+TnzMbUvNxjyr+zLDe7LD0YfD/f/W3jwP5KeixIQYFEae/fu/c1vfvOlL30pl8tt3br14x//+Je//OX9vrK3t7fMs5FKpZIeoe5U0ZkXm9qb2pc2tl2V9DhHr4rOvGY487Ezuo597Wdnhm2vOPPyc+bl58zLz5mXnzMvid2/HdjzanbnhsdDCEMbnggh7Nzw+IRpbRNOaRs/bfqEU9omnHXehFPaNp/QmvSklIYAi9LYvHnz/PnzP//5z5922mmbN29euHDh6tWrr7nmmqTnAg5IUztUlEPWsWe2JTccACRqRFa1+7cDu18diLKqpnMvDiFMXXhzCGH6uQ/u55szmbLOypgRYFEap5122n333Rd9fOqpp37wgx98+umnBVhQsTS1Q4WIcqtV6wdDCOrYAahzu387EKKI6tXffxCFViOyquiCVbKjUn4CLEpj06ZNTz311FVX/X7/6I033hg3blyyIwH7tWvgwaHeFZraIUHFDcFiHXvXkvNTUyYmPRcAlE88qypesJowrS2E0HTuxVE+NXXhzfu/VEVdEmBRGoVCYdmyZbNmzZoxY8bmzZv/7//9v3fddVfSQwFvMbwzu+3xa0IIJ866Z/zJFyU9DtSXTK6QyRd6+vLxDcGu9Oyk5wKAMRdfANxvVjXp3LkTTmmTVXFwAixKo729/fbbb1+4cOF55533y1/+8rOf/ez73ve+pIcCfm94Z/Z3z9yydyhb7U3tUHVG17HbEASghh2yrEpWxVETYFEy11577bXXXpv0FMBbxJvaT2pfnfQ4UBcOWccOADVg928HlFVRTgIsgJqlqR3Kqbt/a09fXh07ADVGWRUVQoAFUIPi0ZWmdhg78Tr2jnRLR7pZHTsA1SvKp6K9P2VVVBoBFkBN2fPauh3P3hJCEF3BGMnkCt39+U25gjp2AKrXiLKqEEKUVU04pS3a+5NVUWkEWAA1otjU7iGDMBbidewd6ZZUy0QbggBUvmgB8ODF6lMX3hxCkFVR4QRYAFVPUzuMkfiGoDp2AKrCtq4H4sXq0QKgYnVqgAALoLppaofSyuQKmXwhXsduQxCASnPIsqqgWJ2aI8ACqFbF6GrKFRuTngWqXnxDMNXSpI4dgAqhrAoiAiyAqrT1Xy4Z1zRdUzscuzs7N8br2G0IApCsLQ/cG5RVwSgCLIBqMrwzO9S7YveWdZra4ahFl62KG4IhBHXsAJRTVKw+tOGJeFlVCGFEVqWsCuIEWADVodjU3tS+9ITZ9yQ9DlSZ0XXsNgQBKIN4VhUtA76x4fGssio4cgIsgCow1Ls8esigpnY4fMU69viGoDp2AMZIvKxqv8XqUVnVnhO+kUqlEp4VqpAAC6Ciia7gSI2uY7chCEBpjShWH11WdbBi9UymvMNCjRBgAVSo4Z3ZbY9f09i2YPLc1Zra4eCi0CqEoI4dgBIaXVY1OquafqftPygHARZAxRnemf3dM7fsHcqKruDguvu39vTl1bEDcOxGl1WNWAAMitUhUQIsgApSbGr3kEE4kHgde0e6pSPdrI4dgCMS5VPRXaqDlFUpVoeKIsACqBTqruBAMrlCd39+U66gjh2AIzKirCqEEGVVE05pi+5SyaqgWgiwAJI31Lt8qHdFU/tS0RXExevYO9ItqZaJNgQBOJBDFqsrq4KqJsACSNKe19btePaWxrYFU67YmPQsUBHiG4Lq2AEYbXSxehRaxbMqZVVQewRYAMmImtpDCJraIZMrZPKFeB27DUEAwmGUVYUQpi682QIg1AMBFkC5aWqHSHxDMNXSpI4doJ4pqwIOToAFUFaa2qlzUWgVQojXsdsQBKgrBy+rmrrw5qQHBCqRAAugTDS1U8+i3Kq4IRhCUMcOUPOUVQElJMACGHO7Bh4c6l0xrmm6pnbqyug6dhuCALUqnlUpqwLGggCL0vvFL35x2mmnTZs2LelBIHnDO7PbHr8mhKDuijpRrGOPbwiqYweoJfEFwP1mVcqqgLEgwKLE+vr6rr/++r/7u7+bP39+0rNAkqKHDO4dyja1L21suyrpcWBsja5jtyEIUAMOXlYVQph07tzJH1iY9JhAXRBgUUq7d++++eabTz755KQHgSQ1vPHKUO+Po6b2k9pXJz0OjBV17AA1Y3RZ1eisSlkVkCwBFqX0zW9+80/+5E82bNhwkNe0t7cf/Id0dnaWdKh6l81mkx6hvjRuvv/Ezau2nrp414wfhBBCJpPwQPXB+7yc1r1c+Hl26B+f2zp+/G+uOuekEMLGz575hy9uzWS2JjhbbfM+Lz9nXn7OvDz25Qb39T+zLz+4Lze465XMi9nnj2tpDSEcl5593JTWEELD+68LLW87fkprCGFPCNtDCNF/7tzrn22Onfd5mWWz2VQqlfQUlIAAi5J58sknf/7zn//TP/3TTTfddJCX9fb2lm0kIn5fl0fxIYOvtqz+47PVXZWb9/mYitexd6RbOtLN/+sTJ73v/5mR9Fx1x/u8/Jx5+TnzEooWAKO7VCPKqiade/GEU9omnHXeluEJZ/zJnyU9ad3xPoejIMCiNLZt23bHHXd85zvfSXoQSMCe19btePaWEELz/LUNk6YP+38mqQmZXKG7P78pV9hvHXvG+xygkowoqwohRFnVhFPaor2/AxWr5/w+B6qEAIvSuPvuu9/xjnds2rRp06ZNuVxuw4YNbW1th9wWhGpXbGr3kEFqRryOvSPdkmqZqI4doKIcslh96sKbQwgeAgjUGAEWpTFt2rTnn3/+hz/8YQjh5Zdf7unpmTx5sgCLGja8M7tr4EFN7dSG+IagOnaACjG6WD0KrRSrA/VJgEVpLF26tPjxTTfd9IlPfGL+/PkJzgNjqlh31Tx/bdKzwFHK5AqZfKGnL79q/WAIYfGc1q5Pz056KIA6dZCyqqZzL47yqakLb3apCqhnAiyAI1CMrqZcsTHpWeBoxDcEUy1NHenmriXnp6ZMTHougHpx1GVVAHVOgEXpffe73016BCi9qKl9XNP0qKk96XHgCEShVQghXsduQxBgrCmrAighARbAIWhqp0pFuVVxQzCEoI4dYIzs/u2AsiqAMSXAAjggTe1UndF17DYEAUooXqyurAqgnARYAPsRRVea2qkKxTr2+IZgV1ojO8AxiS8A7jerUlYFUE4CLICRNLVTFUbXsdsQBDg6hyyrklUBJE6ABfAmTe1Uvjs7NwZ17ADHYFvXA8Wyqv0WqyurAqhAAiyAEDS1U9m6+7f29OXVsQMcvsMsq5JVAVQLARZQ74pN7aIrKkq8jr0j3dKRblbHDrBfUT4V3aVSVgVQqwRYQF0b6l0ePWRQUzuVIJMrdPfnN+UK6tgB9mtEWVUIIcqqJpzSFt2lklUB1CoBFlCnik3toisSF69j70i3pFom2hAEiGx54N5w4LKqEIKsCqBOCLCAuhM1tTe2LfCQQRIU3xBUxw7Us3hZ1d6tW7MvvxBdsFKsDkCcAAuoI1FTewhh8tzVHjJI+WVyhUy+EK9jtyEI1JVDllWFEKYuvNmlKgBGE2ABdUFTO8m6s3NjtCGYamlSxw7Ug6Mrq9qeyTSlUokMDECFE2ABtU9TO+UXbQiGEOJ17DYEgRqmrAqAMSXAAmqZpnbKLF7HvnhOawhBHTtQM+JlVdEHyqoAKBsBFlCbNLVTNurYgdoTz6qUVQFQCQRYQK3R1E4ZFOvY4xuC6tiBahQvq9pvVrXfsioAKDMBFlA7NLUz1uIbglEduw1BoBpteeDe/ZZVyaoAqFgCLKAWFKMrTe2UnDp2oOpEC4DxhwDut1hdWRUAVUSABVQ9DxlkLHT3b+3py69aPxhCUMcOVKyDlFXJqgCoJQIsoIp5yCClFa9j70i3dKSbu5acn5oyMem5AEL4Q0FVdJdKWRUA9UaABVSl6CGDIYTm+Ws1tXMsMrlCd39+U66gjh2oHPFi9aENT4QQoqxqwilt0V0qWRUA9UaABVSZ6CGDe4eymto5FvE69o50y8qrZy67/IykhwLq0YisanRZ1fQ7pVQAIMACqke8qf2k9tVJj0P1iW8IqmMHyixeVhV9EIVWitUB4HAIsCil3t7egYGBGTNmpFKppGeh1qi74uhkcoVMvhCvY7chCIy1Q5ZVhRCmLrzZAiAAHD4BFiXzd3/3d//8z/98wQUXfP3rX//EJz5x0003JT0RNaIYXU25YmPSs1A14huCqZYmdezAGFFWBQDlIcCiNH79619///vfX7t2bXNz86uvvjpv3rxPfOITU6ZMSXouqlvU1D6uabqmdg5HFFqFEOJ17DYEgVI5ZFnV1IU3hxBkVQAwFgRYlEY6nf7Rj37U3NwcQpgwYcLevXt3796d9FBUMU3tHL5MrrDi5/lnH8ln8kOL57SGEPbde2nSQwFVrFhWtffXv9zS3KysCgAqgQCL0mhoaJgxY8bevXsffPDBH/7wh3/5l3956qmn7veV7e3tB/9RnZ2dYzBg/cpms0mPcGQa3nhlQr5zQv7R3S0f2jXja1t3hLAjk/RQR6bqzrwaZbfteeiF7eteLqx7eWj65PEfPG3fTe869aLTW6KvZjKZRKerC97n5efMx8K+3GAIYV//M/vyg/tygyH/ynD/vx3X0hpCOC49e/v4E0IIDe+/7vhPfiN6/Z4QtocQov/cuTf4bVNq3ufl58zLz5mXWTab1dFcGwRYlFIul9u1a9cpp5zyr//6rzfccEN0IWuE3t7e8g9W56rl93X0kMGo7qrpwieSHueYVMuZV5diHXtxQ/Brc1qiDcFMJuPMy8+Zl58zPxbxBcARxeqTzr14wiltE846r3jBKuJ3SyKcefk58/Jz5nAUBFiU0rRp02644YYbbrjhz//8z++///6lS5cmPRFVQ1M7BzKijr3r07OXXX5G0kMBFe2QZVWTzp07+QMLkx4TADgCAixK46WXXnr88cevv/766NO3ve1tr7zySrIjUS00tTOaOnbgcERlVYcsVldWBQA1QIBFaezdu/drX/va3LlzzzzzzNdee+1nP/vZl770paSHotJpameE7v6tPX35VesHQwjq2IG4YrH67lcHRiwAyqoAoB4IsCiNs84662/+5m8+/vGPX3DBBU8//fSSJUsuvdS/dnJAwzuzQ70rdm9Z19i24KT21UmPQ5KKG4Ld/fmOdEtHurlryfmpKROTngtITJRPRXepRmRVTedePOGUtknnzp1wStv0cx9MelIAoHwEWJTMNddcc8011yQ9BZUuamrfNfBQY9uC5tlrkx6HZGRyhe7+/KZcIb4h2JWenfRcQLmNKKsKIURZ1YRT2qK7VLIqACAiwALKp9jU3jxfdFWP4nXsHemWVMtEG4JQPw5ZrD514c0hBFkVALBfAiygHDS11634hqA6dqgH8bKq6IMotFKsDgAcCwEWMLY0tdehTK6QyRfidew2BKEmHbKsKoQwdeHNLlUBAMdOgAWMlWLdleiqTsQ3BFMtTerYoZYoqwIAkiXAAsbEUO/y3ze1q7uqaVFoFUKI17HbEISqpqwKAKhAAiygxDS114P4ZavFc1pDCOrYoRrt/u2AsioAoCoIsICSiZraG9sWTLliY9KzUHrq2KF6xYvVlVUBANVIgAWUQNTUHkKYPHe1hwzWkmIde3xDUB07VLJDFqsrqwIAqpEACzgmmtpr0ug6dhuCUIEOUlalWB0AqDECLOAoFaMrTe21QR07VLh9/c9sefKhcOBidWVVAEANE2ABR8NDBmtGd//Wnr78qvWDIQR17JC4g5RV7Z08LVzwgSCrAgDqkgALODLFpnbRVfWK17F3pFs60s1dS85PTZmY9FxQX460rCqTyUxNpZKcGAAgOQIs4HBpaq9qmVyhuz+/KVdQxw7lN6KsKoQQZVXKqgAADpMACzi04Z3Zod4Vu7es09RedeJ17B3pllTLRBuCMNaGNjyx32L1YllVCEFWBQBwRARYwMEUm9qb2peeMPuepMfhsMQ3BNWxwxiJl1WFWGilWB0AYCwIsIAD0tReRTK5QiZfiNex2xCEUjlkWVUIYerCm12qAgAYOwIsYD80tVeL+IZgqqVJHTscI2VVAACVSYAFvIWm9mpxZ+fGeB27DUE4alseuFdZFQBAhRNgAb8XRVd7h7Ka2itT/LLV4jmtIQR17HA4lFUBANQAARbwZlN7Y9uCk9pXJz0Ob1LHDkcknlUpqwIAqCUCLKhrUXQ11LuiqX2puqsKUaxjj28IqmOHEQ5ZrK6sCgCglgiwoH4N9S6PoqspV2xMehb2U8duQxAiI4rV42VVitUBAOqEAAvqUfSQwXFN05vnr9XUnqAotAohqGOH8IcFwANlVcWyqugDAADqigCLUurr68tkMlOmTDn//POTnoX909ReCbr7t/b05VetHwwhqGOnPh2krEqxOgAAowmwKJkvf/nLa9asueCCC1588cUTTjhh5cqVjY2NSQ/FmzS1Jytex96RbulIN3ctOT81ZWLSc8GYU1YFAMCxE2BRGi+88ML//J//c+3atc3NzSGEP/3TP/3JT35y1VVXJT0XIbw1utLUXk6ZXKG7P78pVyhuCHZ9Whc7tWxEWVUIIcqqlFUBAHCMBFiURnNz83e/+90ovQohnHHGGf/xH/+R7EhEGjffv/XfV3nIYDllt+25v3NjVMfekW5JtUy0IUjt2ZcbHPrd4EHKqqbfKaUCAKBkBFiURmtra2tra/Txpk2burq6lixZst9Xtre3H/xHdXZ2lni4ejV+x7MTs3ftHW7Zcc7qbce/LWQySU9Uy7Lb9jz0wvZ1LxfWvTz0tknHXf3O5pve1XTR6S3RVzMOf4xls9mkR6hZ+3KDIYR9/c/sy//+g+H+fwsh7J087eVpbcelZ4cQGt5/XWh52/FTWkMIe0LYHkIIYbu3fal5n5efMy8/Z15+zrz8nHmZZbPZVCqV9BSUgACLEtu8efPixYs//elPz5w5c78v6O3tLfNIdejNpvY5f5fd8Ta/r8dIJlfI5AvxOvavzWnpSDdnMhlnXn7O/NgdpKxq0rkXR2Xqk264Pbpg5X2eCGdefs68/Jx5+Tnz8nPmcBQEWJTSL3/5y5tuuum//Jf/8slPfjLpWerU8M7sUO+K3VvWNbUvbWy7KoQQdmQSnqnmFOvYM/mhVEuTOnaqkbIqAACqiwCLknn88ceXLl36la985bLLLkt6lnr0lqb22equSiwKrUIIxTr2ZZef0ZFuTnouOLQRWdXosqqpC28OIciqAACoZAIsSmNgYOAzn/nMvffe+773vW/37t0hhIaGhnHjxiU9V70Y6l0+1LtCU3vJxS9bLZ7TGkJQx07F2v3bgRBFVK/+/oMotBqRVUUXrJIdFQAAjpQAi9L44Q9/+Lvf/e5Tn/pU8U+uu+66O+64I8GR6sSugQeHeleMa5rePH9tw6TpSY9TC4qhVXd/3mUrKlM8qxpRVtX0h7KqqQtvdqkKAICaIcCiNG677bbbbrst6Snqy5tN7bPuGX/yRUmPU92KdezxDcGu9Oyk54KDFatHWZWyKgAA6oEAC6pPsandwuAxGl3HbkOQBB2krEqxOgAAdU6ABdVEU/uxU8dO4qIFwEMWqyurAgCAIgEWVA1N7ceiu39rT19+1frBEII6dspvywP3jlgAlFUBAMDhE2BBFYiiq8a2qzS1H5F4HXtHuqUj3dy15PzUlIlJz0VtUlYFAABjR4AFFW3Pa+t2PHtLCGHy3NWa2g9HJlfo7s9vyhXUsTN2RpRVhRCirEpZFQAAjBEBFlQoDxk8IvE69o50S6plog1BSuIgxerFBcAQgqwKAADGlAALKk68qf2k9tVJj1O54huC6tg5RlGx+tCGJ3a/+vsPotBKsToAAFQCARZUFk3tB5fJFTL5QryO3YYgR+qQZVUhhKkLb3apCgAAKocACypFMbqacsXGpGepOPENwVRLkzp2DpOyKgAAqA0CLEhe1NQ+rmm6hwzGRaFVCCFex25DkANRVgUAADVMgAVJ0tQ+Wvyy1eI5rSEEdezEHaisKqusCgAAapcAC5KhqT1OHTv7Fc+qDl5WlclkUqlUstMCAABjR4AF5RZFV5rai3Xs8Q1Bdex165DF6sqqAACgngmwoKw0tY+uY7chWG8UqwMAAEdKgAVlUudN7Xd2bgzq2OtSsaNKsToAAHDUBFgw5opN7fW2MNjdv7WnL79q/WAIQR17bTtIWZVidQAA4NgJsGAM1WFTe7yOvSPd0pFu7lpyfmrKxKTnomSUVQEAAOUnwIIxEY+uav7iVSZX6O7Pb8oV1LHXGGVVAABAhRBgQekVm9prO7qK17F3pFtSLRNtCFY1ZVUAAEDFEmBBKdV8U3t8Q1AdezWKl1WFWGg1IqtSVgUAAFQUARaURrGp/cRZ94w/+aKkxymlTK6QyRfidew2BKvCIcuqQghTF97sUhUAAFD5BFhwrIZ3Zod6V+zesq6pfWlj21VJj1My8Q3BVEuTOvZKFi+rimdVyqoAAIDaIMCCo/eWpvbZNVJ3dWfnxhBCvI7dhmBl2vLAvfstq5JVAQAAtUeABUeplpra45etFs9pDSGoY0+csioAAIAiARalt3bt2ksuuSTpKcbQroEHh3pXVHtTuzr2yhHPqpRVAQAAjCbAosS+/e1vr169eu3aqr+UtF/V3tRerGOPbwiqYy+nQxarWwAEAAAYTYBFyWzduvWuu+7q7Ow84YQTkp6l9Kq6qX10HbsNwTKIF6sPbXgihKBYHQAA4OgIsCiZ5cuXT5ky5atf/epXvvKVg7ysvb394D+ns7OzpHMdq4Y3XpmQ75yQf3R3y4d2zfjB1r0hZDJJD3Vo2W17Hnphewhh+ZP56ZN/c9U5J930rqaLTm+Jvpqphr+FarEvNxhCCPlXhvv/LYSwr/+Z3a8OvLjt1eNaWo+b0npcenYIoeH914UQjv/kN0IIe0LYE0Kh+P3+uyiFbDab9Ah1x5mXnzMvP2defs68/Jx5+TnzMstms6lUKukpKAEBFiVzxx13NDQ09PT0HPxlvb295ZmnJIpN7U0XPpH0LIelu39rT19+1frBEEJUx77xsy1+X5fKQcqq3nwI4A23v7IrnHH+xQnPWn+8z8vPmZefMy8/Z15+zrz8nHn5OXM4CgIsSqahoSHpEUopiq4a266q/Kb2eB17R7qlI93cteT81JSJv/+qCz5H5VjKqo5z5gAAACUlwIKR9ry2bsezt4QQJs9dXbFN7Zlcobs/vylXUMd+7JRVAQAAVDgBFryp+JDB5vkV+hTFeB17R7ol1TJRHfsRGZFVRResoqwqWgCcfqeUCgAAoOIIsCCEEIZ3ZncNPLhr4KHGtgUnta9Oepy3iEKrTL6w6qnB4mWrjnRz0nNVtHhZVfRBFFrFs6qpC2+OLlglOyoAAACHJMCCN5vaK+fiVSZXyOQL8Tr2eenmlVfPTHquCrX7twP7LVaPyqpCCFMX3mwBEAAAoHoJsCixefPmrV1bKTHQIRWjqylXbEx6lhDeuiGYamkaUcdOfAHwSIvVAQAAqF4CLOpU1NQ+rml64g8ZjEKrEEK8jt2G4CHLqmRVAAAA9UOARd0pNrWfOOueBB8yGL9stXhOawihPuvYlVUBAABwSAIs6kglNLXf2bmxu39rd3++Di9bxbMqZVUAAAAcPgEWdSGKrhJpai/Wscc3BLvSs8s5Q/lF+VS096esCgAAgGMkwKL2JdLUPrqOvVY3BEeUVYUQoqxqwilt0d6frAoAAIBjJMCilpW5qb2269ijBcCDF6tPXXhzCEFWBQAAQGkJsKhN5Wxq7+7f2tOXX7V+MIRQG3XsBymrUqwOAABA+QmwqDXlaWovbgh29+c70i0d6eauJeenpkwco7/c2FFWBQAAQOUTYFE74tHVWDS1Z3KF7v78plyhSuvYlVUBAABQpQRY1IhiU3vJo6t4HXtHuiXVMrHyNwTjWdWep7s2bntVWRUAAADVS4BF1RuLpvYotMrkC6ueGqzkOvZ4WVX0QRRaxbOqcZfdOP28OcqqAAAAqF4CLKpYaZvaM7lCJl+I17HPSzevvHpmKSYtgYMUq0dlVSGEqQtvHn2pansmI70CAACgqgmwqErDO7NDvSt2b1l37E3t8Q3BVEtTJdSxxxcAFasDAACAAIsq85am9tlHWXcVhVYhhHgdeyIbgiOK1aOnAcYXAGVVAAAAIMCimhxjU3v8stXiOa0hhPLXsW954N5wgLKqqQtvjp4GWOaRAAD9sTnyAAAMp0lEQVQAoMIdt2/fvqRnoI60t7f39vYexTfuGnhwqHfFuKbpJ8y+54ia2ouhVXd/PrpsNW9Gy5hetjqcsqpJ586NQqsyOOoz56g58/Jz5uXnzMvPmZefMy8/Z15+zrz8nHmZOfCa4QYWle4omtqLdezxDcGu9OySzxblU9Hen7IqAAAAGCMCLCpXsam9qX1pY9tVh3z96Dr2Em4IjiirCiFEWdWEU9qivT9ZFQAAAIwRARaV6PCb2seojr3YUbXfYvWpC28OIciqAAAAoDwEWFScw2lq7+7f2tOXX7V+MIRw1HXs8bKq8IfQKloAVKwOAAAAlUOARQWJoqvGtqua568d3dQer2PvSLd0pJs33j73MH/yIcuqQghTF97sUhUAAABUIAEWFWHPa+t2PHtLCGHy3NXxpvZMrtDdn9+UKxx+HbuyKgAAAKgxAiwSVnzIYLypPV7H3pFuSbVM3O+G4IisSlkVAAAA1CQBFqU0MDDQ29vb1tbW3t5+yBfHm9pPal+dyRXu79yYyRdWPTU4oo59928Hdv92YERZVQhhRFalrAoAAABqkgCLkvnJT37y9a9/fe7cuU8//fTHPvaxpUuXHuTFUd3V5mk3bT7jJz19+VUPPh5CWDyn9b2Td/z9bWcNbXhi96tP7P7ngayyKgAAAKh7AixKY+/evcuWLXvggQdmzJiRy+UuvfTSj33sY6lUavQro+jq7szHsuG7v+789YWFvwkhrE7tmb7ntZ3fe3zCtLbsT36fVSmrAgAAAEIIx+3bty/pGagFXV1dX/rSl9asWRN9+l//6399z3vec/3114942Yb7zzx5195fPdncuvXV377RsHn3cc/tGB9C2Lz7uN++0fDL340r99wAAADUtN7e3qRHoATcwKI0tm7des455xQ/PfHEE1988cXRL2v/f384/uSLTv2LEEI4O4QQwoLyzAcAAABUrYakB6BG7N27t6HhzbdTQ0PD8PDw6JeNP/miMg4FAAAA1AIBFqXR2Ni4d+/e4qfDw8Pjx7vfBwAAAJSAAIvSOOWUU5577rnip/l8/oILLkhwHgAAAKBmCLAojXe/+90hhJ6enhDCr3/968cff/ziiy9OeigAAACgFngKISXz85///HOf+9yMGTM2bNjw5S9/+UMf+lDSEwEAAAC1QIAFAAAAQEWzQggAAABARRNgAQAAAFDRxic9APViYGCgt7e3ra2tvb096Vnqy9q1ay+55JKkp6gXfX19mUxmypQp559/ftKz1Ive3t6BgYEZM2akUqmkZ6kvv/jFL0477bRp06YlPUjty+VyL730UvHTs88+e/LkyQnOUydyudyzzz57wgknXHjhhUnPUvtGvMlDCCeffLLf6mWQyWT6+vpOP/30mTNnJj1LvYj+WfGss856+9vfnvQsdWHEvwr5d9JqpwOLcvjJT37y9a9/fe7cuU8//fTHPvax/7+9ew1p6v8DOH5+81ezC7EuZhYVkVlNRcIuaCZZGl0ssIuBhXR5UF5KCiKtsCArytAQiewmRumDogiiKyVrOvKG1FJIV7FKaZGbWdrUtv0fyH/Ev6dt3/M/5/169vXRm6nn7PvZOWc5OTmii9Ti/PnzVVVVRqNRdIgqFBQUPHv2LDo6uq2tbdSoUeXl5VqtVnSUwhUXFz948CA6OrqhoWHTpk27du0SXaQWFoslJSWluLg4MTFRdIvyXblypaioyHs8KSkpiYuLE5ukeAaDIS8vLzY21mq1arXaa9euaTTcteBDjx8/zs3N9S6dTmdqauqxY8fEFalCeXn55cuXY2NjzWbz/PnzCwoKRBcpX2Fh4Z07dxYvXmw2m5OTk7Ozs0UXKdz/bIXYkyqBB/CxX79+zZs3r7293ePxdHV1RUVFvX//XnSU8jkcjtzc3Hnz5sXFxYluUYXW1taIiAiHwzG0TE5OvnnzptgkxWtra/O+5l++fJk7d25XV5foKFUYGBhYt27d0qVLnzx5IrpFFfbt23fjxg3RFSry69evmJiYurq6oeWaNWsePHggNklVjEZjfHy893wKH3G5XHq9vq2tzePxfPv2Ta/Xt7a2io5SuFevXkVERHR2dno8HqfTmZCQ8OrVK9FRivXnVog9qTLwaRJ87vnz5zqdLjQ0VJKkcePGxcfH19TUiI5SvnPnzo0bN+7kyZOiQ9RCp9OVlZXpdLqh5YwZMzo7O8UmKd7MmTPv3Lkz9JoPGzbM5XINDg6KjlKFoqKi5cuXh4WFiQ5Ri9bW1pkzZ9rtdv7C/cNgMEyZMmXhwoVDy3v37q1cuVJsknr09fXl5eUVFBR4z6fwHY/HExgYKEnSiBEjNBrNwMCA6CKFs1gsS5YsCQkJkSRJq9VGR0c/evRIdJRi/bkVYk+qDDwDCz7X3d09Z84c73L06NFtbW0Ce1QiPz9fo9EYDAbRIWoREhIy9I5EkiSr1VpdXZ2RkSE2SfE0Gk1oaKjL5bp161ZlZWVWVlZwcLDoKOWrr6+vq6u7ffs2N2z6h8vl+vDhw/Hjx+12e3d39/r167nNx9ccDsfUqVPz8/Pv3r0bEBCQlZW1c+dO0VFqcenSpTlz5vDsTj/QaDRHjx7NzMxMTEw0mUybN2+OiooSHaVwWq22o6PDu+zp6eHeZN/5cyvEnlQZ+J+Bz7lcrt+PzhqNxu12C+xRCc6Iothstm3btmVmZvI8VP+w2+39/f0TJ06sra3t7u4WnaNwPT09+fn5RUVFokNUxGazJSYmXrx40WQyVVdXG43Gqqoq0VEKZ7FYHj16FB4e/vLly6qqqgsXLvApvX/09/eXl5fv3btXdIhaNDY2jhw5MigoSKfTvX37tq+vT3SRwsXGxtpstsLCwvr6+oqKitevX7Mn8p0/t0LsSZWBLS58TqvVulwu79Ltdv/7L5f+QZnMZnNKSkp6ejqXX/lNUFBQenr6pUuXAgMDKyoqROco3JkzZ/R6vdVqNRgMdru9paXlzZs3oqMUbvLkySUlJZMnT5YkKTg4OCkpqampSXSUwk2bNm369OmbN2+WJGn27NlJSUn3798XHaUKDx8+nDp1amRkpOgQVXj27Flzc3NlZWVaWlpZWZkkSVevXhUdpXA6ne769etWq7WkpOT79+/r1q3j2378iT2pMvA7g89NnDjx9evX3qXD4Vi9erXAHsBHTCZTTk7OiRMnVqxYIbpFFd69e2cymbZu3Tq0nDRp0ufPn8UmKV5QUFBra2tlZaUkSR0dHQaDYcyYMXwRtU9ZrdaGhoaNGzcOLQcGBgICAsQmKd748eN/X3JFs98YDIakpCTRFWrhcDjCwsK8x5Pp06d//PhRbJLi/fjxo7e3t7S0dGiZkZHBN/n6E3tSZeCUDJ9bsGCBJElDdyC3t7ebTKaYmBjRUcBf9vHjx+zs7DNnziQkJAwODg4ODv7+IQ98weVynTp16t27d5Ikff36taamhp2Pr+Xk5JT9V2RkZGZm5vbt20VHKZzT6Tx69KjFYpEkyWazPX36dO3ataKjFC4hIcFut1dXV0uSZLfbjUYjr7l/vHjxgscw+Y1er6+trR06h/b09DQ2Nnq/uAA+8v3797S0NJvNJklSc3NzY2Mj71v8iT2pMnAFFnxOo9GcPXt2//79oaGhLS0tp0+fnjBhgugo4C+rrKzs7e3dvXu39ydbtmzJz88XmKR4s2bNOnLkyPr166Ojo5uamjIyMpYtWyY6CvjLZs+effjw4dTU1MjISLPZvGfPnri4ONFRCjds2LDS0tIDBw6UlZVZLJYdO3YsWrRIdJTyud3urq4uvV4vOkQt5s6de+jQodTU1PDw8JaWlg0bNmzYsEF0lMKFhIQcPHhw1apV4eHhnz59Ki0tHTNmjOgoFWFPqgz/eDwe0Q1Qi76+vsDAQC7FB/AXud1uu90+duxY7quCgrndbqfTyTnUz37+/Dl8+HCOLVCwoWOLVqvl79xvXC5Xf3//yJEjRYeoF3vS/2sMsAAAAAAAACBrzB0BAAAAAAAgawywAAAAAAAAIGsMsAAAAAAAACBrDLAAAAAAAAAgawywAAAAAAAAIGsMsAAAAAAAACBrDLAAAAAAAAAgawywAAAAAAAAIGsMsAAAAAAAACBrDLAAAAAAAAAgawywAAAAAAAAIGsMsAAAAAAAACBrDLAAAAAAAAAgawywAAAAAAAAIGsMsAAAAAAAACBrDLAAAAAAAAAgawywAAAAAAAAIGsMsAAAAAAAACBrDLAAAAAAAAAgawywAAAAAAAAIGsMsAAAAAAAACBrDLAAAAAAAAAgawywAAAAAAAAIGsMsAAAAAAAACBrDLAAAAAAAAAga/8BGCF1dnH6kpMAAAAASUVORK5CYII="
403 | },
404 | "metadata": {}
405 | }
406 | ],
407 | "metadata": {}
408 | },
409 | {
410 | "cell_type": "markdown",
411 | "source": [
412 | "### Exponencial"
413 | ],
414 | "metadata": {}
415 | },
416 | {
417 | "cell_type": "code",
418 | "execution_count": 11,
419 | "source": [
420 | "funcion = exp(-a*t);\r\n",
421 | "transformada = laplace(funcion, t, s)"
422 | ],
423 | "outputs": [
424 | {
425 | "output_type": "stream",
426 | "name": "stdout",
427 | "text": [
428 | "transformada =\n",
429 | "1/(a + s)\n",
430 | "\n"
431 | ]
432 | }
433 | ],
434 | "metadata": {}
435 | },
436 | {
437 | "cell_type": "code",
438 | "execution_count": 12,
439 | "source": [
440 | "transformada_inversa = ilaplace(transformada)"
441 | ],
442 | "outputs": [
443 | {
444 | "output_type": "stream",
445 | "name": "stdout",
446 | "text": [
447 | "transformada_inversa =\n",
448 | "exp(-a*t)\n",
449 | "\n"
450 | ]
451 | }
452 | ],
453 | "metadata": {}
454 | },
455 | {
456 | "cell_type": "markdown",
457 | "source": [
458 | "#### Ejemplo Gráfico"
459 | ],
460 | "metadata": {}
461 | },
462 | {
463 | "cell_type": "code",
464 | "execution_count": 13,
465 | "source": [
466 | "syms f(t) g(t) h(t);\r\n",
467 | "f(t) = exp(-1 * t);\r\n",
468 | "g(t) = exp(-0.5 * t);\r\n",
469 | "h(t) = exp(-2 * t);\r\n",
470 | "\r\n",
471 | "figure;\r\n",
472 | "hold on;\r\n",
473 | "fplot([f, g, h], [0 10])\r\n",
474 | "ylim([0 1.25])\r\n",
475 | "grid on\r\n",
476 | "legend(\"a=1\", \"a=0.5\", \"a=2\")"
477 | ],
478 | "outputs": [
479 | {
480 | "output_type": "stream",
481 | "name": "stdout",
482 | "text": [
483 | "\n"
484 | ]
485 | },
486 | {
487 | "output_type": "display_data",
488 | "data": {
489 | "text/plain": [
490 | ""
491 | ],
492 | "image/png": "iVBORw0KGgoAAAANSUhEUgAABkAAAAGkCAIAAADmHH7qAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAAB3RJTUUH5QcYDSQLwzIojAAAACR0RVh0U29mdHdhcmUATUFUTEFCLCBUaGUgTWF0aFdvcmtzLCBJbmMuPFjdGAAAACJ0RVh0Q3JlYXRpb24gVGltZQAyNC1KdWwtMjAyMSAxMDozNjoxMXWPPOkAACAASURBVHic7N1/cFR1nv/7t02adBqMSSc09Ndu7RiWmGG8A0hMwBlJXDbMzo7KDJkEFncJZc1qlLrgcNFdnWtXZga/ixANUyjjer8bud/6KpON83VlL2soiiQgQURh2CFg0Jg4nTHAkB9EIMGQeP845Njpzo9O0n3O6e7n44+p7vTJ6Tefopiql+/3+9z09ddfCwAAAAAAAGBUJr0LAAAAAAAAAEZDgAUAAAAAAABDI8ACAAAAAACAoRFgAQAAAAAAwNAIsAAAAAAAAGBoBFgAAAAAAAAwNAIsAAAAAAAAGBoBFgAAAAAAAAyNAAsAAAAAAACGRoAFAAAAAAAAQyPAAgAAAAAAgKERYAEAAAAAAMDQCLAAAAAAAABgaARYAAAAAAAAMDQCLAAAAAAAABgaARYAAAAAAAAMjQALAAAAAAAAhkaABQAAAAAAAEMjwAIAAAAAAIChEWABAAAAAADA0AiwAAAAAAAAYGgEWAAAAAAAADA0AiwAAAAAAAAYGgEWAAAAAAAADI0ACwAAAAAAAIZGgAUAAAAAAABDI8ACAAAAAACAoRFgAQAAAAAAwNAIsAAAAAAAAGBoBFgAAAAAAAAwNAIsAAAAAAAAGBoBFjSVkZGhdwkxp6WlRe8SYg5nrj3OXHucufY4c+1x5trjzLXHmWuPM9cYBx41CLAAAAAAAABgaARYAAAAAAAAMDQCLAAAAAAAABgaARYAAAAAAAAMjQALAAAAAAAAhkaABQAAAAAAAEMjwAIAAAAAAIChEWABAAAAAADA0AiwMG6HDh0a6aNPP/10//79x48f17IeAAAAAAAQ3eL0LgAR5pVXXnnzzTeHzbB+9atfHThw4O677z579uy0adMqKiri4+O1rxAAAAAAYlNGRobeJeigsbFR7xKgBQIsBKurq2vLli3V1dXTpk0L/PTMmTO//e1vDx06lJSUJCIPPPDAnj17CgoKNC8TAAAAAGJXrKU5sZnZxSYCLASrvLzcZrM9//zzmzdvDvw0KSnp1VdfVdIrEUlLS/viiy+Gvc+Y/75UV1dPslT4am1t1buEmMOZa48z1x5nrj3OXHucufY4c+1x5trjzEOupaVllE9bW1vdbrdGpSCcCLAQrOeee85kMtXV1Q37qcPhcDgcyuvPP/+8pqampKRk2Ctj7T8IGAH/XmuPM9ceZ649zlx7nLn2OHPtceba48y1x5mHFucZI1jijmCZTEH9bTl//nxxcfHjjz+emZkZ7pIAAAAAAEAsIMBCKP3hD3/40Y9+9Pd///cjtV8BAAAAAACMFyOECJn6+vr169dv3rw5Pz9f71oAAAAAABFGWVmzZMkSvQuBEdGBhUk5efJkW1ubiHi93nXr1r3wwgt5eXl9fX19fX39/f16VwcAAAAAiAwfffRRYWHhp59+qnchMCgCLExKeXn54cOHReSNN964cuXKY4899u1Bwz6sEAAAAAAQIwYGBvbv3//2228fPXp09CtfeeWVgoKCO+64Q5vCEIkYIcT4LFmy5NChQ+rbiooK5cXTTz/99NNP61QUAAAAAMBYent7Fy9enJmZecsttxw4cKCoqKi0tPSdd94pLCz0vayysvLBBx+cO3duQ0PD+vXr9aoWxkeABQAAAABAtCmtbtblez3L0pQXH3/88YoVK5599lkR2bt3769//WsRefDBB3t7ewN/i71XGBMBFgAAAAAA0UYNkvQyb968a9euPfXUU16v94MPPlDGA71eb21tre9lubm5LpdLnxIRUQiwAAAAAABAiL377ruPPPLICy+8UFRUdP78+bKyMhFpb28/ePCg72V33XUXARaCQYAFAAAAAABCbN++fUuXLl29erWIPPXUU6dPnxaRefPmvfbaa3qXhohEgAUAAAAAAELsscceW7JkyfLlyy9dupSbm3vp0qWBgQGTyaR3XYhUBFgAAAAAACDE5syZ09bWdvnyZavVajKZPB7PmL9CcxZGQYAFAAAAAADCYvr06XqXgChB8x4AAAAAAAAMjQALAAAAAAAAhkaABQAAAAAAAEMjwAIAAAAAAIChEWABAAAAAADA0HgKIQAAAAAA0FN3d/f27ds/++yzoqKi73//+36fHj169NSpU8prl8uVn5+veYHQHwEWAAAAAADQ01//9V/n5ub+6Ec/+sd//Mf29vbVq1f7flpeXv7ll1+63W4RuXbtGgFWbCLAAgAAAAAAoTcwMHDgwIHLly87HI7s7OyRLjty5MiXX365efNmEZk5c+ajjz7qF2CdPHny7bffnjNnTtgrhoERYAEAAAAAgBDr7e1dvHhxZmbmLbfccuDAgaKiotLS0nfeeaewsND3ssrKykuXLn3nO99R3mZlZZ06dWpgYMBkurGz+/r165999tk777zz0Ucf3XnnnU8//bTFYtH6DwMDIMACAAAAACDanC34b7p875yqL5QXH3/88YoVK5599lkR2bt3769//WsRefDBB3t7e/1+5Te/+Y2aSZlMJpPJdP369alTpyo/OXbs2NSpUxMTE1evXv2b3/zmxz/+8d69ezX6w8BICLAAAAAAAIg2apCkl3nz5l27du2pp57yer0ffPDBHXfcISJer7e2ttb3stzcXJPJNDAwoP7Et/1KRBYtWtTd3a28vv/++xMTE9va2hwOhxZ/BhgJARYAAAAAAAixd99995FHHnnhhReKiorOnz9fVlYmIu3t7QcPHvS97K677kpOTv7yyy+Vt+3t7VOnTo2L+yas8Hq97e3t8+bNExGr1RoXF/fll18SYMUgAiwAAAAAABBi+/btW7p0qbKO/amnnjp9+rSIzJs377XXXvO78tZbb33kkUfOnz8/c+bMXbt2/eQnPxGRurq6b3/72ykpKWfOnFm3bt1//dd/WSyW3/3ud7fddhvb3GMTARYAAAAAAAixxx57bMmSJcuXL7906VJubu6lS5f8ZgNVM2bMePnll++5557MzMw//vGPNTU1IvLAAw/s3r37Bz/4QX5+/vLlyzMzMzMyMj777LOqqirN/ygwBAIsAAAAAAAQYnPmzGlra7t8+bLVajWZTB6PZ5SL/+7v/m716tW9vb1Wq1X5ibr3SkReeOGF559//quvvlI/RQwiwAIAAAAAAGExffr0IK80mUyj5FNxcXG+i7EQg4Zp3gMAAAAAAACMgwALAAAAAAAAhkaABQAAAAAAAEMjwAIAAAAAAIChEWABAAAAAADA0AiwAAAAAAAAYGg8hBIAAAAAAOjpT3/607/8y7/88Y9/zM7O/od/+AeTiW4b+OPvBAAAAAAA0E13d/fChQtvueWWFStW7Nu3b+3atXpXBCOiAwsAAAAAAITewMDAgQMHLl++7HA4srOzR7rswIEDubm5P/vZ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"
493 | },
494 | "metadata": {}
495 | }
496 | ],
497 | "metadata": {}
498 | },
499 | {
500 | "cell_type": "markdown",
501 | "source": [
502 | "### Derivada"
503 | ],
504 | "metadata": {}
505 | },
506 | {
507 | "cell_type": "code",
508 | "execution_count": 14,
509 | "source": [
510 | "syms f(t);\r\n",
511 | "derivada = diff(f, t);\r\n",
512 | "transformada = laplace(derivada, t, s)"
513 | ],
514 | "outputs": [
515 | {
516 | "output_type": "stream",
517 | "name": "stdout",
518 | "text": [
519 | "transformada =\n",
520 | "s*laplace(f(t), t, s) - 1*f(0)\n",
521 | "\n"
522 | ]
523 | }
524 | ],
525 | "metadata": {}
526 | },
527 | {
528 | "cell_type": "code",
529 | "execution_count": 15,
530 | "source": [
531 | "transformada_inversa = ilaplace(transformada)"
532 | ],
533 | "outputs": [
534 | {
535 | "output_type": "stream",
536 | "name": "stdout",
537 | "text": [
538 | "transformada_inversa =\n",
539 | "diff(f(t), t)\n",
540 | "\n"
541 | ]
542 | }
543 | ],
544 | "metadata": {}
545 | },
546 | {
547 | "cell_type": "code",
548 | "execution_count": 16,
549 | "source": [
550 | "integral = int(f, t, 0, t);\r\n",
551 | "transformada = laplace(integral, t, s)"
552 | ],
553 | "outputs": [
554 | {
555 | "output_type": "stream",
556 | "name": "stdout",
557 | "text": [
558 | "transformada =\n",
559 | "laplace(int(f(t), t, 0, t), t, s)\n",
560 | "\n"
561 | ]
562 | }
563 | ],
564 | "metadata": {}
565 | },
566 | {
567 | "cell_type": "code",
568 | "execution_count": 17,
569 | "source": [
570 | "transformada_inversa = ilaplace(transformada)"
571 | ],
572 | "outputs": [
573 | {
574 | "output_type": "stream",
575 | "name": "stdout",
576 | "text": [
577 | "transformada_inversa =\n",
578 | "int(f(t), t, 0, t)\n",
579 | "\n"
580 | ]
581 | }
582 | ],
583 | "metadata": {}
584 | },
585 | {
586 | "cell_type": "markdown",
587 | "source": [
588 | "## Ejercicios"
589 | ],
590 | "metadata": {}
591 | },
592 | {
593 | "cell_type": "code",
594 | "execution_count": 18,
595 | "source": [
596 | "s = sym(\"s\");"
597 | ],
598 | "outputs": [
599 | {
600 | "output_type": "stream",
601 | "name": "stdout",
602 | "text": [
603 | "\n"
604 | ]
605 | }
606 | ],
607 | "metadata": {}
608 | },
609 | {
610 | "cell_type": "markdown",
611 | "source": [
612 | "### Estructura General de un ejercicio\n",
613 | "\n",
614 | "Se define una función cuya antitransformada se desea calcular"
615 | ],
616 | "metadata": {}
617 | },
618 | {
619 | "cell_type": "code",
620 | "execution_count": 19,
621 | "source": [
622 | "funcion_transformada = 12 / ((s-3)*(s+1))"
623 | ],
624 | "outputs": [
625 | {
626 | "output_type": "stream",
627 | "name": "stdout",
628 | "text": [
629 | "funcion_transformada =\n",
630 | "12/((s + 1)*(s - 3))\n",
631 | "\n"
632 | ]
633 | }
634 | ],
635 | "metadata": {}
636 | },
637 | {
638 | "cell_type": "markdown",
639 | "source": [
640 | "Se utiliza la función partfrac para separar en fracciones parciales"
641 | ],
642 | "metadata": {}
643 | },
644 | {
645 | "cell_type": "code",
646 | "execution_count": 20,
647 | "source": [
648 | "fracciones_parciales = partfrac(funcion_transformada)"
649 | ],
650 | "outputs": [
651 | {
652 | "output_type": "stream",
653 | "name": "stdout",
654 | "text": [
655 | "fracciones_parciales =\n",
656 | "3/(s - 3) - 3/(s + 1)\n",
657 | "\n"
658 | ]
659 | }
660 | ],
661 | "metadata": {}
662 | },
663 | {
664 | "cell_type": "markdown",
665 | "source": [
666 | "Se calcula la antitransformada a las fracciones parciales"
667 | ],
668 | "metadata": {}
669 | },
670 | {
671 | "cell_type": "code",
672 | "execution_count": 21,
673 | "source": [
674 | "ilaplace(fracciones_parciales)"
675 | ],
676 | "outputs": [
677 | {
678 | "output_type": "stream",
679 | "name": "stdout",
680 | "text": [
681 | "ans =\n",
682 | "3*exp(3*t) - 3*exp(-t)\n",
683 | "\n"
684 | ]
685 | }
686 | ],
687 | "metadata": {}
688 | },
689 | {
690 | "cell_type": "markdown",
691 | "source": [
692 | "Se verifica haciendo la antitransformada de la función original"
693 | ],
694 | "metadata": {}
695 | },
696 | {
697 | "cell_type": "code",
698 | "execution_count": 22,
699 | "source": [
700 | "ilaplace(funcion_transformada)"
701 | ],
702 | "outputs": [
703 | {
704 | "output_type": "stream",
705 | "name": "stdout",
706 | "text": [
707 | "ans =\n",
708 | "3*exp(3*t) - 3*exp(-t)\n",
709 | "\n"
710 | ]
711 | }
712 | ],
713 | "metadata": {}
714 | },
715 | {
716 | "cell_type": "markdown",
717 | "source": [
718 | "### Ejercicios Adicionales\n",
719 | "\n",
720 | "Ejercicio 1"
721 | ],
722 | "metadata": {}
723 | },
724 | {
725 | "cell_type": "code",
726 | "execution_count": 23,
727 | "source": [
728 | "funcion_transformada = (4) / (s^2 - 9)"
729 | ],
730 | "outputs": [
731 | {
732 | "output_type": "stream",
733 | "name": "stdout",
734 | "text": [
735 | "funcion_transformada =\n",
736 | "4/(s^2 - 9)\n",
737 | "\n"
738 | ]
739 | }
740 | ],
741 | "metadata": {}
742 | },
743 | {
744 | "cell_type": "code",
745 | "execution_count": 24,
746 | "source": [
747 | "fracciones_parciales = partfrac(funcion_transformada)"
748 | ],
749 | "outputs": [
750 | {
751 | "output_type": "stream",
752 | "name": "stdout",
753 | "text": [
754 | "fracciones_parciales =\n",
755 | "0.6667/(s - 3) - 0.6667/(s + 3)\n",
756 | "\n"
757 | ]
758 | }
759 | ],
760 | "metadata": {}
761 | },
762 | {
763 | "cell_type": "code",
764 | "execution_count": 25,
765 | "source": [
766 | "ilaplace(fracciones_parciales)"
767 | ],
768 | "outputs": [
769 | {
770 | "output_type": "stream",
771 | "name": "stdout",
772 | "text": [
773 | "ans =\n",
774 | "0.6667*exp(3*t) - 0.6667*exp(-3*t)\n",
775 | "\n"
776 | ]
777 | }
778 | ],
779 | "metadata": {}
780 | },
781 | {
782 | "cell_type": "markdown",
783 | "source": [
784 | "Ejercicio 2"
785 | ],
786 | "metadata": {}
787 | },
788 | {
789 | "cell_type": "code",
790 | "execution_count": 26,
791 | "source": [
792 | "funcion_transformada = (s^2+2*s+3) / (s+1)^2"
793 | ],
794 | "outputs": [
795 | {
796 | "output_type": "stream",
797 | "name": "stdout",
798 | "text": [
799 | "funcion_transformada =\n",
800 | "(s^2 + 2*s + 3)/(s + 1)^2\n",
801 | "\n"
802 | ]
803 | }
804 | ],
805 | "metadata": {}
806 | },
807 | {
808 | "cell_type": "code",
809 | "execution_count": 27,
810 | "source": [
811 | "fracciones_parciales = partfrac(funcion_transformada)"
812 | ],
813 | "outputs": [
814 | {
815 | "output_type": "stream",
816 | "name": "stdout",
817 | "text": [
818 | "fracciones_parciales =\n",
819 | "2/(s + 1)^2 + 1\n",
820 | "\n"
821 | ]
822 | }
823 | ],
824 | "metadata": {}
825 | },
826 | {
827 | "cell_type": "code",
828 | "execution_count": 28,
829 | "source": [
830 | "ilaplace(fracciones_parciales)"
831 | ],
832 | "outputs": [
833 | {
834 | "output_type": "stream",
835 | "name": "stdout",
836 | "text": [
837 | "ans =\n",
838 | "2*t*exp(-t)\n",
839 | "\n"
840 | ]
841 | }
842 | ],
843 | "metadata": {}
844 | },
845 | {
846 | "cell_type": "markdown",
847 | "source": [
848 | "Ejercicio 3"
849 | ],
850 | "metadata": {}
851 | },
852 | {
853 | "cell_type": "code",
854 | "execution_count": 29,
855 | "source": [
856 | "funcion_transformada = (5*(s+2)) / (s^2*(s+1)*(s+3))"
857 | ],
858 | "outputs": [
859 | {
860 | "output_type": "stream",
861 | "name": "stdout",
862 | "text": [
863 | "funcion_transformada =\n",
864 | "(5*s + 10)/(s^2*(s + 1)*(s + 3))\n",
865 | "\n"
866 | ]
867 | }
868 | ],
869 | "metadata": {}
870 | },
871 | {
872 | "cell_type": "code",
873 | "execution_count": 30,
874 | "source": [
875 | "fracciones_parciales = partfrac(funcion_transformada)"
876 | ],
877 | "outputs": [
878 | {
879 | "output_type": "stream",
880 | "name": "stdout",
881 | "text": [
882 | "fracciones_parciales =\n",
883 | "2.5000/(s + 1) + 0.2778/(s + 3) - 2.7778/s + 3.3333/s^2\n",
884 | "\n"
885 | ]
886 | }
887 | ],
888 | "metadata": {}
889 | },
890 | {
891 | "cell_type": "code",
892 | "execution_count": 31,
893 | "source": [
894 | "ilaplace(fracciones_parciales)"
895 | ],
896 | "outputs": [
897 | {
898 | "output_type": "stream",
899 | "name": "stdout",
900 | "text": [
901 | "ans =\n",
902 | "3.3333*t + 2.5000*exp(-t) + 0.2778*exp(-3*t) - 2.7778\n",
903 | "\n"
904 | ]
905 | }
906 | ],
907 | "metadata": {}
908 | }
909 | ],
910 | "metadata": {
911 | "kernelspec": {
912 | "display_name": "Matlab",
913 | "language": "matlab",
914 | "name": "matlab"
915 | },
916 | "language_info": {
917 | "codemirror_mode": "octave",
918 | "file_extension": ".m",
919 | "help_links": [
920 | {
921 | "text": "MetaKernel Magics",
922 | "url": "https://metakernel.readthedocs.io/en/latest/source/README.html"
923 | }
924 | ],
925 | "mimetype": "text/x-octave",
926 | "name": "matlab",
927 | "version": "0.16.11"
928 | }
929 | },
930 | "nbformat": 4,
931 | "nbformat_minor": 5
932 | }
--------------------------------------------------------------------------------