登录论坛

查看完整版本 : 简单的MATLAB / Octave仿真


poster
2019-12-10, 20:30
对于在这方面有一定经验的任何人来说,这应该是一个非常简单的问题,但是我仍然是新手。

我有以下系统(或者这是分辨率更高的图像 (http://img710.imageshack.us/img710/2140/equation1.png) ):

替代文字http://img199.imageshack.us/img199/2140/equation1.png (http://img199.imageshack.us/img199/2140/equation1.png)

给出以下输入:

u = min(2 - t/7.5, 2*(mod(t, 2) < 1)); 我需要绘制系统y的输出 。

我正在使用以下功能描述系统:

function xprime = func(t, x) u = min(2 - t/7.5, 2*(mod(t, 2) < 1)); xprime = [ x(2); x(3); 0.45*u - 4*x(3)^2 - x(2)*x(1) - 4*x(2) - 2*x(1); x(5); sin(t) - 3*x(5)*x(1); ]; 并使用ode23仿真,如下所示:

[tout, xout] = ode23(@func, [0 15], [1.5; 3; -0.5; 0; -1]) 模拟后, xout将具有五列。我的问题是: 我怎么知道y系统的输出是哪一个?

编辑:好的,简单起见,我想绘制这样的解决方案:

a = 1 % what goes here? 1, 2, 3, 4 or 5? plot(tout, xout(:,a))

回答:

当然,对应于y的那个似乎是x(1)。

如果将代码与方程式进行比较,可以看到x(1)出现在代码中y出现在方程式中的每个位置。那是我最好的猜测。



更多&回答... (https://stackoverflow.com/questions/2129367)