找回密码
 注册
Simdroid-非首页
查看: 43|回复: 0

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

[复制链接]
发表于 2013-3-25 07:42:02 | 显示全部楼层 |阅读模式 来自 湖北武汉
1.GUI界面的代码(test.m):
clf reset
global zs2 h_axes1 h_axes2
set(gcf,'unit','normalized','position',[0.1,0.4,0.45,0.5]);
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',[0.05,0.57,0.7,0.3],'visible','on');
h_title1=title('信 号 波 形','FontSize',15);
h_axes2=axes('position',[0.05,0.07,0.7,0.3],'visible','on');
h_title2=title('幅频特性','FontSize',15);
hpush1=uicontrol(gcf,'Style','push',    'position',[0.8,0.2,0.18,0.1],'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',[0.8,0.05,0.18,0.1],'string','停止');
set(hpush2,'callback','stop(t);set_param(''mytemp2'',''SimulationCommand'',''stop'');');
zs1=uicontrol(gcf,'Style','text','position',[0.8,0.77,0.18,0.1],'string','转速:','BackgroundColor',[0.8 0.8 0.8]);
zs2=uicontrol(gcf,'Style','edit','position',[0.8,0.7,0.18,0.1],'string','0');
zs3=uicontrol(gcf,'Style','text','position',[0.9a,0.6,0.1,0.1],'string','r/min','BackgroundColor',[0.8 0.8 0.8]);
——————————————————————————————————————————————
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));%-------------------------------------------------------------------------幅频图会动态变
[ym,km]=max(Pyy(1:N));            %求幅值最大处点的值---------------------------这里在workspace看,km的值不会变
f=km*Fs/N;                        %求信号的频率
v=60*f/16;                        %计算转速
Vstr=num2str(v);                    %把数字转换为字符
set(zs2,'string',Vstr);

麻烦大家帮看一下,为什么km不能实时更新?应该怎么修改?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-7-1 09:39 , Processed in 0.025036 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表