function [sys,x0,str,ts] = sfun_catmouse(t,x,u,flag,a,b,c)
% 猫追老鼠的Simulink仿真
% 绘制演示动画的S-Function
switch flag
case 0
[sys,x0,str,ts] = mdlInitializeSizes(a,b,c);
case 3
sys = mdlOutputs(t,x,u,c);
case 9
sys = mdlTerminate;
case { 1, 2, 4 }
sys = [];
otherwise
error('Unhandled flag');
end
function [sys,x0,str,ts] = mdlInitializeSizes(a,b,c)
% 初始化
sizes = simsizes;
sizes.NumContStates = 0;
sizes.NumDiscStates = 0;
sizes.NumOutputs = 0;
sizes.NumInputs = -1;
sizes.DirFeedthrough = 1;
sizes.NumSampleTimes = 1;
sys = simsizes(sizes);
str = [];
x0 = [];
ts = [-1 0];
if a < b
return
end
maxy = 0.85*b*c/(a-b);
maxy = 15;
% 图形初始化
OldHandle = findobj('Type','figure','Tag','catmouse') ;
if ishandle( OldHandle )
close( OldHandle );
end
fig = figure('units','normalized',...
'position',[0.25,0.2,0.5,0.6],...
'name','猫追老鼠的Simulink仿真',...
'numbertitle','off',...
'color',[0.8 0.8 0.8],...
'tag','catmouse');
ax = axes('parent',fig,...
'position',[0.03 0.1 0.8 0.8]);
hpoint1 = line(0,0,'Color',[0 0 1],...
'Marker','.',...
'MarkerSize',40,...
'parent',ax);
hpoint2 = line(c,0,'MarkerFaceColor',[0 1 0],...
'Marker','h',...
'MarkerSize',15,...
'parent',ax);
hline = line(0,0,'Color',[1 0 0],...
'linewidth',2,...
'parent',ax);
line([c,c],[0,maxy],'LineWidth',2);
hcat = text(-0.8,0,'猫','FontSize',12);
hmouse = text(c+0.3,0,'鼠','FontSize',12);
uicontrol(fig,'style','text',...
'units','normalized',...
'position',[0.81 0.2 0.15 0.05],...
'string','时间:','fontsize',13,...
'fontweight','bold',...
'backgroundcolor',[0.8 0.8 0.8],...
'HorizontalAlignment','left');
hedit = uicontrol(fig,'style','edit',...
'units','normalized',...
'position',[0.81 0.1 0.15 0.08],...
'fontsize',13,'string','0 秒',...
'backgroundcolor',[1 1 1]);
axis equal
axis([0,c+1,0,maxy])
title('猫追老鼠的动画演示','FontSize',15,...
'FontWeight','Bold')
xlabel('X');
ylabel('Y');
setappdata(fig,'handles',...
[hpoint1,hpoint2,hline,hcat,hmouse,hedit]);
setappdata(fig,'xdata',0);
setappdata(fig,'ydata',0);
drawnow;
function sys = mdlOutputs(t,~,u,c)
sys = [];
fig = findobj('Type','figure',...
'Tag','catmouse');
if ~isempty(fig)
h = getappdata(fig,'handles');
hpoint1 = h(1);
hpoint2 = h(2);
hline = h(3);
hc = h(4);
hm = h(5);
hedit = h(6);
xdata = [getappdata(fig,'xdata');u(1)];
ydata = [getappdata(fig,'ydata');u(3)];
set(hpoint1,'xdata',u(1),'ydata',u(3));
set(hpoint2,'xdata',c,'ydata',u(2));
set(hline,'xdata',xdata,'ydata',ydata);
set(hc,'position',[u(1)-0.8,u(3),0]);
set(hm,'position',[c+0.3,u(2),0]);
set(hedit,'string',[num2str(t),' 秒']);
setappdata(fig,'xdata',xdata);
setappdata(fig,'ydata',ydata);
drawnow;
% f = getframe(gcf);
% imind = frame2im(f);
% [imind,cm] = rgb2ind(imind,256);
% if u == 0
% imwrite(imind,cm,'猫追老鼠的动画演示.gif','gif', 'Loopcount',inf,'DelayTime',0.01);
% else
% imwrite(imind,cm,'猫追老鼠的动画演示.gif','gif','WriteMode','append','DelayTime',0.01);
% end
else
return;
end
function sys = mdlTerminate
sys = [];
没有合适的资源?快使用搜索试试~ 我知道了~
基于Matlab实现Simulink建模与仿真案例(源码+数据).rar
共12个文件
slx:3个
png:2个
mat:2个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 5 下载量 135 浏览量
2023-05-20
19:10:56
上传
评论 1
收藏 93KB RAR 举报
温馨提示
1、资源内容:基于Matlab实现Simulink建模与仿真案例(源码+数据).rar 2、适用人群:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业或毕业设计,作为“参考资料”使用。 3、解压说明:本资源需要电脑端使用WinRAR、7zip等解压工具进行解压,没有解压工具的自行百度下载即可。 4、免责声明:本资源作为“参考资料”而不是“定制需求”不一定能够满足所有人的需求,需要有一定的基础能够看懂代码,能够自行调试代码并解决报错,能够自行添加功能修改代码。由于作者大厂工作较忙,不提供答疑服务,如不存在资源缺失问题概不负责,谢谢理解。
资源推荐
资源详情
资源评论
收起资源包目录
基于Matlab实现Simulink建模与仿真案例(源码+数据).rar (12个子文件)
基于Matlab实现Simulink建模与仿真案例(源码+数据)
catandmouse.jpg 4KB
simulinkicon.gif 898B
slprj
sim
varcache
cat_mouse
checksumOfCache.mat 392B
varInfo.mat 1KB
tmwinternal
simulink_cache.xml 312B
MyFirstSimulinkModel.slx 26KB
cat_mouse.slxc 4KB
cat_mouse.slx 34KB
sl_dialog_icon.png 2KB
libraryBrowser_24.png 912B
sfun_catmouse.m 3KB
SolveEquations.slx 23KB
共 12 条
- 1
资源评论
- yhzbc1234562024-04-18感谢资源主分享的资源解决了我当下的问题,非常有用的资源。
- slslslsdkdmd2023-08-18资源太好了,解决了我当下遇到的难题,抱紧大佬的大腿~
- m0_717335662024-01-10这个资源总结的也太全面了吧,内容详实,对我帮助很大。
- Tom.Z2024-02-26资源内容详细全面,与描述一致,对我很有用,有一定的使用价值。
- 2301_772167752024-02-11这个资源总结的也太全面了吧,内容详实,对我帮助很大。
Matlab仿真实验室
- 粉丝: 2w+
- 资源: 2180
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功