# Variables dinámicas en AnyLogic

Ya tenemos los stocks, flujos y parámetros. Ahora es el momento de **las variables dinámicas**.&#x20;

Las tasas de conversión de clientes por marketing o el boca a boca son ejemplos de cálculos que deben realizarse de forma dinámica, es decir: a medida que el número de clientes potenciales disminuye y los clientes aumentan, estas tasas deben volver a calcularse.

AnyLogic tiene un tipo de variable específico para esto: la variable dinámica. Creemos una **Dynamic Variable** para la "conversión de marketing" llamada: **conversaoMktg**. No se confunda: una **Dynamic Variable** no se parece como el pequeño pedazo de pastel de un **Parameter**:

![](https://lh4.googleusercontent.com/xtnxLX4J5M5tnAkGCuPWGSDELm4XN7DYEJbfXT1iUYQgnWASKP6k84hcRdwYSlFzZ9fIHX5tO7xl_RNM7ljLfeOBqzzEiy1XHqyxOYSlPMxx7A4xn9ES5zLIleWl_uWahFNmQx4w)

En los modelos de dinámica de sistemas, todos deben estar representados **vínculos** los existentes entre acciones, variables, flujos y parámetros. Así, con base en el diagrama de bucle causal, cree los enlaces entre los parámetros utilizando el **Link** de la paleta de comandos:

![](https://lh6.googleusercontent.com/vTVC-dmkXkiyXmhm8WettjMSHJYe_AcTNSeGyYMHk3Dd7_Iit4H5RSq1JtoyflxtkR7_13uD9DSFs-XCe9TzkQz2lCJ5dyeQc-CXb0hB0mCJBz0E1MzIcQKvOlLFkuFGRrQzMv0Q)

El elemento **Link** tiene su señal como una propiedad, así que haga clic en el elemento respectivo y luego en la ventana de **Properties** en a la derecha, seleccionamos la señal respectiva del **Link**.

![](https://lh5.googleusercontent.com/KPWcRjQ_CXV7ZqVVWSufjXOKFaffvDNp9JQUy4ifUp4BbyzxRP7TYjy9qoKBHjS5q6cVKEPPxTPA3LDOwS_BLLDR1IPQs2agQxp1lv0aR5pmYpLeNyo0EywDoBFQQ-2DY7B4XiQf)

llegamos al momento de construimos la ecuación que gobierna la variable dinámica. Click en la variable dinámica **conversaoMktg** y ubicamos en sus propiedades, un campo con el título"**conversaoMktg**=".

Queremos la expresión que devuelve el número de clientes potenciales convertidos. Sin embargo, si el número de **meses** de simulación es mayor que el parámetro de meses, la conversión debe recibir el valor 0.&#x20;

En AnyLogic,la función que devuelve el tiempo de simulación (en la unidad de tiempo del modelo) es **time()**. Entonces, necesitamos algo como:

*`si`*` ``time() <= meses`` `*`entonces:`*

&#x20;    `conversaoMktg = ClientesPotenciais x eficaciaMktg`

*`de lo contrario:`*

&#x20;    `conversaoMktg = 0`

Tengo buenas noticias: AnyLogic tiene una forma de manejar las condiciones "si-entonces-otro" similar a lo que usted posiblemente haya usado en hojas de cálculo:

`“=SI(condición; caso verdadero; caso falso)”`.&#x20;

En AnyLogic (y Java) utiliza el signo de interrogación "?" para la pregunta y los dos puntos “:” para las acciones:

`condición ? caso verdadero : caso falso`

Entonces, en el caso de inicio, simplemente ingrese el campo de variable **conversaoMktg**:

`time() <= meses ? ClientesPotenciais x eficaciaMktg : 0`

Aunque ya puede hacer esto con **Ctrl(⌘)+Espaço**, en este paso iremos al revés: observe una pequeña “x” roja al lado del campo, AnyLogic está reportando un error en el respectivo campo (e incluso puedes adivinar qué es):

![](https://lh3.googleusercontent.com/HR1CHkORjFU2TjQXP33Z3PBY68uigHkmJIz6I4WB1-rCromaoZvHcNIkfH0MZRvht0ZkO_6fwdQeOlAlMOvudulvwPg_4ruYTPqihoi3bQB2kluVkCo3k20ak2FazS5RiTf0dfRP)

&#x20;En este campo, AnyLogic esconde otro facilitador que acelera el proceso de desarrollo:

* Haz clic **dentro del campo** con un problema (clic **haz dentro** del cuadro);
* Debe aparecer una "X" dentro de una bola roja (que recuerda al símbolo de X-Men). Haga clic en él y observe que AnyLogic presenta una lista de opciones: o agrega una variable / parámetro / stock que está **Link** al elemento actual, o simplemente elimina el **Link**.

Por lo tanto, configurar la ecuación fue fácil:

![](https://lh3.googleusercontent.com/n1IQEeVMlsZiZeRrrIoKYxufDA6q_ZP8w1m1_21V5SMLT-a5my2wO1m_btitwpiHtNuZW6UyG8uaOYTx9APnSao3CnXllXCDdlhYwiwHpqYBdWL1FFiobcYiV1p085HASatHWprT)

La resuelta **conversaoMktg**, pasemos al flujo **taxaDeConversao**. Tenga en cuenta que tiene un **Link** (procedente de **conversaoMktg**) que aún no hemos hecho la ecuación:

![](https://lh3.googleusercontent.com/RcD7K7HweGGg5QMBKwio_arwq1r9bJilgewha2CxHXxQcWi1xcWBogcPrg_BpC1Q9gNxMIcy6SfhnVbj6-8bdflr9d_s-inwB1DZg5w2ugwSVW5JC_wBqrlvE6lZSMzaPcPzV-V8)

Listo, ahora puede… ¡SIMULAR!

![](https://lh4.googleusercontent.com/IC2PR48PBI-RsimYboFJOZQ6A0krD8zIeLhlSetcfDbzImFaS6_wP16rsuDZqun8iqXWuGBg1Ngqqu1DMiBh6Oe5xvvx94_5is22e70oVw4ztGV-XIPlcwg5hX9aZHTvg7BVxgK6)

Si desea acelerar o ralentizar la simulación, use los botones en la barra inferior de la aplicación:

![](https://lh5.googleusercontent.com/C6DfnLo1QfzD5ihbAZqXUhtRM3q4_BU552FCZCbLFOwZn27HKbB_NkgsVdo0TlEmuwuoJQf3SOCPbi_hrjXIV2Mitv72EHij2pkfzkgnRIdBCAMkaK6nV9rAR-j1Mwy3kAVb9T7W)

Si todo funciona, el flujo de personas desde el stock aparece **ClientesPotenciais** de durante los **Clientes** primeros 6 meses y luego este flujo termina. Pronto aprenderá a controlar la duración de la simulación. Por ahora, continúe construyendo el modelo, que ahora representa el ciclo de conversión de boca en boca.
