求助:s函数中的微分问题
最近我用s函数写控制器里面的参数是用微分方程给出的,比如参数 dx(表述x的一阶导数)=a+30*(b+x),
这个我知道可以用微分部分即 sys(1)=a+|30*(b+x(1))表示,
但是,我的控制器里面却包含的是dx, 例如控制器F=M(x)+C(dx)
控制器里面的x我直接写成x(1)即可,而 dx呢?请问我应该怎么表示出来
这里,谢谢了先:@) 你是说dx无法利用是吧,若是,可以采用在S函数中定义全局变量的方法,其命令是set_param(gcb,'UserData',mydata)和mydada=get_param(gcb,'UserData'),其中mydada是随意自定义的变量名,可以是结构体,针对你的问题可以在微分函数中用mydata=sys;set_param(gcb,'UserData',mydata);记录下微分值,在使用的地方用mydada=get_param(gcb,'UserData');得到。 最好能有具体的问题,给你三个方案,你尝试一下:
1将dx也作为状态量
2在output中用a+30*(b+x)代替dx
3将x,dx作为输出量,然后再重新加模块定义控制力
页:
[1]