菜鸟请教一个脉冲编码器的建模问题
我要用s函数建一个增量式脉冲编码器的模型,输入为与脉冲编码器同轴的电机的角位移,输出为反馈的脉冲,知道脉冲编码器的分辨率。n代表每相邻两条脉冲编码器上的光栅的夹角,我的思路是如果角位移除以夹角能够整除的话,那么输出为1,不能整除的话输出为0。然后我编程如下:function = sensor(t,x,u,flag,n)switch flag
case 0
=mdlInitializeSizes;
case 3
sys=mdlOutputs(t,x,u,n);
case {1,2,4,9}
sys=[];
otherwise
error(['Unhandled flag = ',num2str(flag)]);
end
function =mdlInitializeSizes
sizes = simsizes;
sizes.NumContStates= 1;
sizes.NumDiscStates= 0;
sizes.NumOutputs = 1;
sizes.NumInputs = 1;
sizes.DirFeedthrough = 0;
sizes.NumSampleTimes = 1;
sys = simsizes(sizes);
x0= [];
str = [];
ts= ;
function sys=mdlOutputs(t,x,u,n)
a = rem(u,n);
if a==0
sys=1;
else sys=0;
end
虽然我看了书,但是我还是不清楚s函数的一些编程规则,所以上面的程序出错了,希望有大虾能够帮忙修正!!多谢先了!
页:
[1]