blacksmith_apt 发表于 2013-3-25 07:42:02

采集的simulink的信号可以实时更新,计算时却不能

1.GUI界面的代码(test.m):
clf reset
global zs2 h_axes1 h_axes2
set(gcf,'unit','normalized','position',);
set(gcf,'defaultuicontrolunits','normalized');
set(gcf,'defaultuicontrolfontsize',11);
set(gcf,'defaultuicontrolfontname','隶书');
set(gcf,'defaultuicontrolhorizontal','left');
set(gcf,'menubar','none');
set(gcf,'name','转子转速测量','numbertitle','off');
h_axes1=axes('position',,'visible','on');
h_title1=title('信 号 波 形','FontSize',15);
h_axes2=axes('position',,'visible','on');
h_title2=title('幅频特性','FontSize',15);
hpush1=uicontrol(gcf,'Style','push',    'position',,'string','采集');
set(hpush1,'callback',['set_param(''mytemp2'',''SimulationCommand'',''start''),','t=timer(''TimerFcn'',''getdata'',''Period'',1,''ExecutionMode'',''fixedSpacing'',''TasksToExecute'',inf),','pause(2);start(t);',]);
hpush2=uicontrol(gcf,'Style','push','position',,'string','停止');
set(hpush2,'callback','stop(t);set_param(''mytemp2'',''SimulationCommand'',''stop'');');
zs1=uicontrol(gcf,'Style','text','position',,'string','转速:','BackgroundColor',);
zs2=uicontrol(gcf,'Style','edit','position',,'string','0');
zs3=uicontrol(gcf,'Style','text','position',,'string','r/min','BackgroundColor',);
——————————————————————————————————————————————
2.计算的代码(getdata.m):
set_param('mytemp2','SimulationCommand','stop');
y1=evalin('base','simout.signals.values');
axes(h_axes1);
plot(y1);
set_param('mytemp2','SimulationCommand','start');
N=1024;
P=fft(y1,N);%--------------------------------------------------------------------------------信号图也会动态变
Pyy=2*sqrt(P.*conj(P))/N;
axes(h_axes2);
Fs=5000;
f=linspace(0,Fs/2,N/2);
plot(f,Pyy(1:N/2));%-------------------------------------------------------------------------幅频图会动态变
=max(Pyy(1:N));            %求幅值最大处点的值---------------------------这里在workspace看,km的值不会变
f=km*Fs/N;                        %求信号的频率
v=60*f/16;                        %计算转速
Vstr=num2str(v);                  %把数字转换为字符
set(zs2,'string',Vstr);

麻烦大家帮看一下,为什么km不能实时更新?应该怎么修改?
页: [1]
查看完整版本: 采集的simulink的信号可以实时更新,计算时却不能