Matlab - GUI - Simulink, parametro get_param Transfer Fcn

 
Vista:

GUI - Simulink, parametro get_param Transfer Fcn

Publicado por Esteban (17 intervenciones) el 16/04/2013 19:34:51
Buenas a todos,

Quiero modificar el bloque de Transfer Fcn de un modelo de simulink desde una GUI

Para modificar el el numerador no tengo problema

function K_Callback(hObject, eventdata, handles)
ganancia_estatica = get (hObject,'string');
set_param('signal_generator1/Transfer Fcn','Numerator',ganancia_estatica);
set_param(gcs,'SimulationCommand','Start');

Ahora bien, para modificar el denominador tengo problemas, quiero que desde un edite text se modifique un valor, y la ecuación quede de este formato 'X s + 1' , siendo X el número introducido por el usuario.

Es un sistema de primer orden donde el usuario introduce la ganancia estática del sistema (K) y la constante de tiempo TAU.

function tau_Callback(hObject, eventdata, handles)
taw =str2double( get(hObject,'string'));
set_param('signal_generator1/Transfer Fcn','Denominator',[taw 1]);
set_param(gcs,'SimulationCommand','Start');

ERROR
Invalid setting in TransferFcn block 'Transfer Fcn' for parameter 'Denominator'.

He intentado de distintas formas pero no doy con la solución
Haber si alguien me ayuda!! GRACIAS

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

GUI - Simulink, parametro get_param Transfer Fcn

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 16/04/2013 23:38:24
1
2
3
4
function tau_Callback(hObject, eventdata, handles)
 taw =get(hObject,'string');
 set_param('signal_generator1/Transfer Fcn','Denominator',['[',taw,' ','1',']']);
 set_param(gcs,'SimulationCommand','Start');


Si no puedes resolver tu problema con este informacion, entonces mándame tu código para filtrarlo.
Espero tu respuesta, si resulto comentar , sino resulta debe haber otra parte que esté fallando.


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

GUI - Simulink, parametro get_param Transfer Fcn

Publicado por Esteban (17 intervenciones) el 17/04/2013 11:22:05
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
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
function varargout = control_wave_PID(varargin)
 
gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...
                   'gui_Singleton',  gui_Singleton, ...
                   'gui_OpeningFcn', @control_wave_PID_OpeningFcn, ...
                   'gui_OutputFcn',  @control_wave_PID_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 control_wave_PID_OpeningFcn(hObject, eventdata, handles, varargin)
 
find_system('Name','signal_generator1'); % Comprueva que el programa existe
open_system('signal_generator1'); % abre el programa
 
set_param('signal_generator1/Signal Generator','Wave','sine'); %iniciallización de generador de ondas
set_param('signal_generator1/Signal Generator','frequency','5');
 
set_param('signal_generator1/Step','After','1'); %Inicialización del STEP-consigna
 
set_param ('signal_generator1/Transport Delay','DelayTime','0.000001');% Incicialización del retrdo
 
set_param('signal_generator1/PID Controller','P','0'); %PID inicialización,Kp,Ki,Kd
set_param('signal_generator1/PID Controller','I','0');
set_param('signal_generator1/PID Controller','D','0');
 
%p = get_param('signal_generator1/Transfer Fcn','ObjectParameters'); %obtiene los parametros del bloque
set_param('signal_generator1/Transfer Fcn','Numerator','1');% Inicialización de función de transferencia de primer orden
set_param('signal_generator1/Transfer Fcn','Denominator','[1 1]');
 
set_param(gcs,'SimulationCommand','Start'); %simular 
 
handles.output = hObject;
 
 
guidata(hObject, handles);
 
function varargout = control_wave_PID_OutputFcn(hObject, eventdata, handles)
 
varargout{1} = handles.output;
 
function wave_Callback(hObject, eventdata, handles)
onda = get(hObject,'Value');
if onda==1
set_param('signal_generator1/Signal Generator','Wave','sine');
set_param(gcs,'SimulationCommand','Start');
elseif onda==2
set_param('signal_generator1/Signal Generator','Wave','square');
set_param(gcs,'SimulationCommand','Start');
elseif onda==3
set_param('signal_generator1/Signal Generator','Wave','sawtooth');
set_param(gcs,'SimulationCommand','Start');
else
set_param('signal_generator1/Signal Generator','Wave','random');
set_param(gcs,'SimulationCommand','Start');
end
 
function wave_CreateFcn(hObject, eventdata, handles)
 
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end
 
function edit1_Callback(hObject, eventdata, handles)
fre = get(hObject,'String');
set_param('signal_generator1/Signal Generator','frequency',fre);
set_param(gcs,'SimulationCommand','Start');
 
function edit1_CreateFcn(hObject, eventdata, handles)
 
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end
 
function kp_Callback(hObject, eventdata, handles)
KP = get (hObject,'string');
set_param('signal_generator1/PID Controller','P',KP);
set_param(gcs,'SimulationCommand','Start');
 
function kp_CreateFcn(hObject, eventdata, handles)
% hObject    handle to kp (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called
 
% Hint: edit controls usually have a white background on Windows.
%       See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end
 
function kd_Callback(hObject, eventdata, handles)
KD = get (hObject,'string');
set_param('signal_generator1/PID Controller','D',KD);
set_param(gcs,'SimulationCommand','Start');
 
function kd_CreateFcn(hObject, eventdata, handles)
 
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end
 
function ki_Callback(hObject, eventdata, handles)
set_param('signal_generator1/PID Controller','I',get (hObject,'string'));
set_param(gcs,'SimulationCommand','Start');
 
function ki_CreateFcn(hObject, eventdata, handles)
% hObject    handle to ki (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called
 
% Hint: edit controls usually have a white background on Windows.
%       See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end
 
function K_Callback(hObject, eventdata, handles)
ganancia_estatica = get (hObject,'string');
set_param('signal_generator1/Transfer Fcn','Numerator',ganancia_estatica);
set_param(gcs,'SimulationCommand','Start');
 
function K_CreateFcn(hObject, eventdata, handles)
% hObject    handle to K (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called
 
% Hint: edit controls usually have a white background on Windows.
%       See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end
 
function tau_Callback(hObject, eventdata, handles)
function tau_Callback(hObject, eventdata, handles)
 taw =get(hObject,'string');
 set_param('signal_generator1/Transfer Fcn','Denominator',['[',taw,' ','1',']']);
 set_param(gcs,'SimulationCommand','Start');
 
function tau_CreateFcn(hObject, eventdata, handles)
% hObject    handle to tau (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called
 
% Hint: edit controls usually have a white background on Windows.
%       See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end
 
function ok_Callback(hObject, eventdata, handles)
open_system('signal_generator1');
set_param(gcs,'SimulationCommand','Start');
 
function consigna_Callback(hObject, eventdata, handles)
%sp = get (hObject,'value');
 
%set(handles.ver_consigna,'string',sp);
%set_param('signal_generator1/Step','After',str2double(sp));
%set_param(gcs,'SimulationCommand','Start');
 
function consigna_CreateFcn(hObject, eventdata, handles)
 
if isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor',[.9 .9 .9]);
end
 
function retardo_Callback(hObject, eventdata, handles)
retard = get(hObject,'string');
set_param ('signal_generator1/Transport Delay','DelayTime',retard);
set_param(gcs,'SimulationCommand','Start');
 
function retardo_CreateFcn(hObject, eventdata, handles)
% hObject    handle to retardo (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called
 
% Hint: edit controls usually have a white background on Windows.
%       See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end
 
function consigna2_Callback(hObject, eventdata, handles)
 
set_param('signal_generator1/Step','After',get(hObject,'string'));
set_param(gcs,'SimulationCommand','Start');
 
function consigna2_CreateFcn(hObject, eventdata, handles)
% hObject    handle to consigna2 (see GCBO)
% eventdata  reserved - to be defined in a future version of MATLAB
% handles    empty - handles not created until after all CreateFcns called
 
% Hint: edit controls usually have a white background on Windows.
%       See ISPC and COMPUTER.
if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
    set(hObject,'BackgroundColor','white');
end


Buenas!
Muchas Gracias!! ya funciona perfectamente!! Me has alegrado la mañana!! si a alguien le intresa le envio el .mdl

La idea es introducir un sistema de primer orden la señal de entrada(Set Point, consigna), sintonizar el controlador PID, y ver cómo responde el sistema re-alimentado .

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

GUI - Simulink, parametro get_param Transfer Fcn

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 17/04/2013 16:54:28
Hola Esteban.
Podrías enviar tu código de simulink y guide a mi correo para poder verlo.
Siempre hay algo nuevo en los códigos que hace los usuarios de matlab en el foro.


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