matlab s函数断点调试,如何在S函数中打断点调试

S函数中总是出现错误,不知道怎么改,希望大神能帮帮忙!

function[sys,x0,str,ts]=emf(t,x,u,flag)

switch flag,

case 0,

[sys,x0,str,ts]=mdlInitializeSizes;

case 3,

sys=mdlOutputs(t,x,u);

case 2,

sys=[];

case 9,

sys=[];

otherwise

error(['unhandled flag=',num2str(flag)]);

end

function[sys,x0,str,ts]=mdlInitializeSizes()

sizes=simsizes;

sizes.NumContStates=0;

sizes.NumDiscStates=0;

sizes.NumOutputs=3;

sizes.NumInputs=2;

sizes.DirFeedthrough=1;

sizes.NumSampleTimes=1;

sys=simsizes(sizes);

x0=[];

str=[];

ts=[-1 0];

function sys=mdlOutputs(~,~,u)

global k;

global Pos;

global w;

k=0.060;   %V/(r/min)反电动势系数

w=u(1);    %转速(rad/s)

Pos=u(2);  %角度(rad)

if Pos>=0&& Pos<=pi/3

sys=[k*w -k*w k*w*((-Pos)/(pi/6)+1)];

elseif Pos>=pi/3&& Pos<=2*pi/3

sys=[k*w k*w*((Pos-pi/3)/(pi/6)-1) -k*w];

elseif Pos>=2*pi/3&& Pos<=pi

sys=[k*w*((2*pi/3-Pos)/(pi/6)+1) k*w -k*w];

elseif Pos>=pi&& Pos<=4*pi/3

sys=[-k*w k*w k*w*((Pos-pi)/(pi/6)-1)];

elseif Pos>=4*pi/3&& Pos<=5*pi/3

sys=[-k*w k*w*((4*pi/3-Pos)/(pi/6)+l) k*w];

else Pos>=5*pi/3&& Pos<=2*pi;

sys=[k*w*((Pos-5*pi/3)/(pi/6)-1) -k*w k*w];

end

无标题2.png

(66.85 KB, 下载次数: 0)

2016-10-18 15:47 上传

442a53943febe9465fc072b4fbe10813.gif

b2a5a3e0dcc7d508e00275fe42fce1b5.gif

9105be570c9c177e2f4ca5d70bb76261.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值