Matlab - Llamada a S-Function en Simulink

 
Vista:

Llamada a S-Function en Simulink

Publicado por Gemma (1 intervención) el 04/08/2002 18:41:40
Al llamar a una S-Function en Simulink, nunca me coje el valor de la entrada u(1), siempre dice que no es un número válido (NAN)
en cambio si me deja escribir en la salida sys(1).
Que estoy haciendo mal?

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Problema con la entrada `u(1)` en una S-Function en Simulink

Publicado por Alejandro (145 intervenciones) el 05/10/2023 15:55:19
Gemma, entender qué podría estar causando que la entrada `u(1)` devuelva un valor no válido (`NaN`) en una S-Function en Simulink puede depender de varios factores. Aquí hay algunas sugerencias para solucionar este problema:

1. Asegúrate de la sintaxis correcta:
- Verifica que estás accediendo a la entrada correctamente. La sintaxis típica es `u(1)` para acceder al primer puerto de entrada.

1
2
% Ejemplo de acceso al primer puerto de entrada
entrada = u(1);

2. Revisa la configuración del bloque S-Function:
- Asegúrate de que el bloque S-Function esté configurado correctamente. Verifica que la cantidad de puertos de entrada y salida coincida con la forma en que estás accediendo a ellos en tu código S-Function.

3. Manejo de casos especiales:
- Algunas S-Functions pueden requerir un manejo especial para ciertos casos. Verifica si tu S-Function tiene alguna restricción específica en la documentación o en el código fuente.

4. Depuración con mensajes de display:
- Inserta mensajes de display (`disp`) dentro de tu código S-Function para imprimir valores en la consola de MATLAB y así poder rastrear el comportamiento de tu código.

1
disp(['Valor de u(1): ' num2str(u(1))]);

5. Manejo de condiciones especiales:
- Si estás realizando alguna operación que podría dar lugar a `NaN`, agrega condiciones de manejo de esas situaciones para evitar problemas.

6. Verifica la configuración del modelo Simulink:
- Asegúrate de que el bloque S-Function esté conectado correctamente en el modelo Simulink. Verifica que las señales estén conectadas de la manera esperada.

7. Actualiza la versión de MATLAB/Simulink:
- En ocasiones, ciertos problemas pueden estar relacionados con versiones específicas de MATLAB o Simulink. Asegúrate de tener la última versión instalada y verifica si el problema persiste.

Si después de revisar estos puntos aún experimentas el problema, podría ser útil revisar el código fuente de tu S-Function para obtener más información sobre la causa del `NaN`.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar