simulink中怎样给出一个连续变化的输入信号
兄弟要做一个飞机机动飞行的仿真,中间的结构图已建立完毕,是双输入多输出系统。现在需要让输入信号1在一段时间内为一常值,此后输入信号2在一段时间为一常值,再类此交替,是要考虑时序问题,恳请各位大侠指点:'( 用switch试试 恐怕不能这个简单顶多switch只是其中的一个模块
一段时间为常数,可以说是个常数,2个常数,关键是切换时间
但switch一般是通过输入信号进行判断,而不判断时间 可以把一个时钟接到switch的条件判断出
然后把条件设为比如说:t〉10或t<10等 但关键的问题是他要不断交替
而不是一个切换如果一个切换,step都可以了
这个主要还应该看信号发生器那个地方的模块。
回复 #2 lirui0662 的帖子
先谢过这位仁兄,试了一下,确实仅凭switchi不能实现。。。:handshake回复 #5 cdwxg 的帖子
这位大哥说的是,兄弟我用最笨方法,五个step相加,合成了一个输入。。。。 1:你先看下信号发生器那里的模块2:你需要几个,5个step够了么?如果你一直交替,除非枚举所有时间。但这个方法是不实用的。只能为了该仿真而仿真,仿真时间变了等都不行。
但关于信号这个地方我不精通,所以只能靠你自己去查阅下这些模块。其实应该有类似的模块。
其实就是一个信号,t1时间内为1,t2时间段内为0,再过t1为1,再t2为0。。。。。
回复 #8 cdwxg 的帖子
的确这样穷举是不实际的,也远非5个step能够,看来得好好研究一下发生器了! 建议你看看重复控制的方法,相信会给你启示的!可以用一个正反馈,在信号消失之后不断重复出现以前的信号!
[ 本帖最后由 cjclj 于 2007-6-14 14:52 编辑 ] S函数就ok,今天刚看了一下午S函数,深有体会啊 原帖由 yf2002043227 于 2007-6-21 22:46 发表 http://www.chinavib.com/forum/images/common/back.gif
S函数就ok,今天刚看了一下午S函数,深有体会啊
S函数是比较强大的,人性化的东西,有兴趣你编写下在下面来实现看看:) 就是实现了一个简单的1s交替一次,如果时间不一样可能会麻烦一点,可楼主又没说t1=?t2=?
function = sfuntmpl(t,x,u,flag)
switch flag,
case 0,
=mdlInitializeSizes;
case 1,
sys=mdlDerivatives(t,x,u);
case 2,
sys=mdlUpdate(t,x,u);
case 3,
sys=mdlOutputs(t,x,u);
case 4,
sys=mdlGetTimeOfNextVarHit(t,x,u);
case 9,
sys=mdlTerminate(t,x,u);
otherwise
error(['Unhandled flag = ',num2str(flag)]);
end
function =mdlInitializeSizes
sizes = simsizes;
sizes.NumContStates= 0;
sizes.NumDiscStates= 0;
sizes.NumOutputs = 1;
sizes.NumInputs = 0;
sizes.DirFeedthrough = 1;
sizes.NumSampleTimes = 1; % at least one sample time is needed
sys = simsizes(sizes);
x0= [];
str = [];
ts= ;
function sys=mdlDerivatives(t,x,u)
sys = [];
function sys=mdlUpdate(t,x,u)
sys = [];
function sys=mdlOutputs(t,x,u)
ifmod(floor(t),2)==0
sys = 1;
else sys=2;
end
function sys=mdlGetTimeOfNextVarHit(t,x,u)
sampleTime = 0.001; %Example, set the next hit to be one second later.
sys = t + sampleTime;
function sys=mdlTerminate(t,x,u)
sys = []; :@L 理解错了 楼主的意思了,现在明白了,就在两个输入分别加上上面的s-functiong 模块,里面程序该成交替出现的旧可以了,反而更加简单了,比在一个S里实现要简单,t1和t2不相等也没关系了
[ 本帖最后由 yf2002043227 于 2007-6-22 12:38 编辑 ] 可以使用触发模块实现,也可以使用m文件调用simulink文件实现,输入信号在m文件里用程序控制!
页:
[1]
2