Matlab - Problema para declarar variable en Guide-Simulink.

 
Vista:

Problema para declarar variable en Guide-Simulink.

Publicado por Pedro (2 intervenciones) el 20/04/2010 18:16:40
Hola a todos. Estoy haciendo una GUI para una simulación de un mecanismo realizada en simmechanics de simulink. Con la GUI quiero conseguir cambiar los valores de algunos parámetros de los bloques del diagrama. Ya sé cambiar por ejemplo la masa en un bloque body, pero además quiero que el parámetro "Inercia" dependa de la masa, es decir, que cambie cuando en la GUI cambies el valor a la masa. Para ello meto este comando:

set_param('grashof/Body','Inertia','[(1/2)*Mass*0.02^2 0 0;0 (1/12)*Mass*(3*0.02^2+(2*0.5)^2) 0;0 0 (1/12)*Mass*(3*0.02^2+(2*0.5)^2)]');

El valor que le he dado a los momentos de inercia es la fórmula para un cilindro, donde "Mass" al ejecutar la simulación me dice que es una variable indefinida, por lo que da error la simulación. Como Mass es un parámetro del bloque "Inertia", yo pensaba que ya lo reconocía directamente como variable al meterlo en la fórmula, pero estaba equivocado y parece que no tiene nada que ver un parámetro de un bloque con una variable. Mi pregunta es si alguien sabe cómo puedo definir la variable masa para que la reconozca como ese parámetro "Mass" del bloque "body", de manera que al cambiar el valor de "Mass" con la GUI, cambie automáticamente el valor del bloque "Inertia".

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

RE:Soy el mismo del primer mensaje

Publicado por Pedro (2 intervenciones) el 23/04/2010 21:14:21
Hola, soy el mismo, sigo sin encontrar la manera de cambiar el parámetro Inertia haciendo que dependa del parametro Mass.

El valor del parámetro Mass, como escribí en el mensaje anterior, consigo cambiarlo con la GUI perfectamente. Para ello había creado un Edit Text en la GUI y en la función tengo puesto esto:

function edit1_Callback(hObject, eventdata, handles)
m=get(hObject,'String');
set_param('grashof/Body','Mass',m)

Me he dado cuenta de que el parámetro Inertia, como quiero que dependa de Mass, debería meterle en la fórmula esa 'm'. Pero el problema es que el comando set_param no hace nada si le pongo una fórmula en lugar de ponerle simplemente el valor. Por ejemplo, si ahora el valor del parámetro Mass quiero que sera el doble de 'm' pongo esto:

set_param('grashof/Body','Mass',2*m)

Pues bien, si pongo eso no hace nada, osea que sólo funciona poniéndole directamente el valor 'm'. ¿No hay alguna forma de poner el valor así y que lo lea, es decir, no poner sólo la 'm', sino poder añadirle ese 2* o cualquier fórmula.

Siento el tocho y no poder explicarme mejor, pero esque el tema de programar no lo domino mucho. Me sacarían de un buen apuro si alguien me lo resuelve, porque con eso supongo que ya sabría cambiar el parámetro Inertia.

Gracias.
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

RE:Problema para declarar variable en Guide-Simuli

Publicado por Andrade (1 intervención) el 02/07/2010 14:48:14
Buenos días amigo, logró solucionar su problema, ahorita tengo un caso parecido y no encuentro tampoco la manera.

Saludos, espero tú respuesta.
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