Matlab - Problema set_param

 
Vista:

Problema set_param

Publicado por Esteban (17 intervenciones) el 11/06/2013 16:56:15
Muy buenas a todos!

Tengo una GUI, que se comunica con un modelo en Simulink, quiero modificar el parámetro de un bloque setp, a través de un silider el usuario seleccióna el valor del step, luego presiona OK, se compila el programa se conecta y se simula, pero no logro que me reconosca la variable.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
function varargout = contro_deposito_a(varargin)
 
gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...
                   'gui_Singleton',  gui_Singleton, ...
                   'gui_OpeningFcn', @contro_deposito_a_OpeningFcn, ...
                   'gui_OutputFcn',  @contro_deposito_a_OutputFcn, ...
                   'gui_LayoutFcn',  [] , ...
                   'gui_Callback',   []);
if nargin && ischar(varargin{1})
    gui_State.gui_Callback = str2func(varargin{1});
end
 
if nargout
    [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
    gui_mainfcn(gui_State, varargin{:});
end
 
function contro_deposito_a_OpeningFcn(hObject, eventdata, handles, varargin)
 
handles.output = hObject;
 
 
guidata(hObject, handles);
 
function varargout = contro_deposito_a_OutputFcn(hObject, eventdata, handles)
 
varargout{1} = handles.output;
 
 
function salir_Callback(hObject, eventdata, handles)
opc=questdlg('¿Desea salir del programa?','SALIR','Si','No','No');
if strcmp(opc,'No')
return;
end
clear,clc,close all
 
function atras_Callback(hObject, eventdata, handles)
opc=questdlg('¿Desea regresar a la pantalla de inicio?','ATRÁS','Si','No','No');
if strcmp(opc,'No')
return;
else
clear,clc,close all
presentacion
end
 
function alarma_Callback(hObject, eventdata, handles)
% hObject    handle to alarma (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    structure with handles and user data (see GUIDATA)
 
function graficar_Callback(hObject, eventdata, handles)
axes(handles.axes1);
clc
temps = (0:0.1:200);
 x=evalin('base', 'entrada');
 y=evalin('base', 'nivel');
 
 title ('respuesta temporal del proceso');
 xlabel ('Tiempo[seg]');
 ylabel ('[V]');
 plot(temps,x.signals.values,'r',temps,y.signals.values,'b');
 
function consigna_Callback(hObject, eventdata, handles)
 
 
set_point = get(handles.consigna,'value');
 
set (handles.consigna_ver,'string',set_point);
 
 
handles.output = hObject;
guidata(hObject, handles);
 
function consigna_CreateFcn(hObject, eventdata, handles)
 
if isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor',[.9 .9 .9]);
end
 
function ok_Callback(hObject, eventdata, handles)
 
find_system('Name','lazo_abierto'); % Comprueva que el programa existe
open_system('lazo_abierto'); % abre el programa
 
 
%SP = str2double (handles.set_point);
 
set_param('lazo_abierto/Step','After',set_point);
 
set_param(gcs,'SimulationMode','external') % incremental build
set_param(gcs,'SimulationCommand','connect') % connect to targect
 
 
 
set_param(gcs,'SimulationCommand','Start'); %simular 



El problema es la línea (callback_OK)

set_param('lazo_abierto/Step','After',set_point);

Undefined function or variable 'set_point'.

Error in ==> contro_deposito_a>ok_Callback at 92
set_param('lazo_abierto/Step','After',set_point);

He probado a convertirlo a str2double, declararlo como global... no se...

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 JOSE JEREMIAS CABALLEO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Problema set_param

Publicado por JOSE JEREMIAS CABALLEO (5917 intervenciones) el 11/06/2013 22:07:13
Haber mándame tu guide tanto el *.fig y *.m y el bloque simulink a mi correo para probarlo y ver el error, ya que volver a hacer todo el guide implica me va a implicar tiempo.


Pero según veo, en esta parte tu llamas(importas) a la variable set.point, pero al parecer no estas exportanto ese variable.
1
2
3
4
5
6
function ok_Callback(hObject, eventdata, handles)
find_system('Name','lazo_abierto'); % Comprueva que el programa existe
open_system('lazo_abierto'); % abre el programa
set_point=handles.set_point;
sp = str2double (set_point);
set_param('lazo_abierto/Step','After',sp);



La exportación de variable debe de estar en está función

1
2
3
4
5
function consigna_Callback(hObject, eventdata, handles)
set_point = get(handles.consigna,'value');
set (handles.consigna_ver,'string',set_point);
handles.set_point=set_point;
guidata(hObject, handles);



Saludos.
JOSE JEREMÍAS CABALLERO
Asesorías en Matlab
programador en matlab
Servicios de programación matlab
[email protected]

http://matlabcaballero.blogspot.com

http://www.lawebdelprogramador.com/foros/Matlab/1371532-FORMA_DE_APRENDER_MATLAB.html
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
Imágen de perfil de JOSE JEREMIA CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Problema set_param

Publicado por JOSE JEREMIA CABALLERO (5917 intervenciones) el 12/06/2013 15:40:47
La exportación de la variable set_point desde está función

1
2
3
4
5
function consigna_Callback(hObject, eventdata, handles)
set_point = get(handles.consigna,'value');
set (handles.consigna_ver,'string',set_point);
handles.set_point=set_point;
guidata(hObject, handles);




Importacion de la variable set_point a está función

1
2
3
4
5
6
function ok_Callback(hObject, eventdata, handles)
find_system('Name','lazo_abierto'); % Comprueva que el programa existe
open_system('lazo_abierto'); % abre el programa
set_point=handles.set_point;
sp = num2str (set_point);
set_param('lazo_abierto/Step','After',sp);



Saludos.
JOSE JEREMÍAS CABALLERO
Asesorías en Matlab
programador en matlab
Servicios de programación matlab
[email protected]

http://matlabcaballero.blogspot.com

http://www.lawebdelprogramador.com/foros/Matlab/1371532-FORMA_DE_APRENDER_MATLAB.html
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