多语言展示
当前在线:693今日阅读:84今日分享:32

用matlab画相图的教程

相图是系统分析的常见工具,这里介绍怎样用matlab画相图。
工具/原料
1

电脑

2

matlab

3

系统模型

方法/步骤
1

首先,获取系统模型方程。

2

其次,调用dsolve 函数求得方程的解:>> s = dsolve('2*D2x+Dx+8*x = 0','Dp = -p - 17*x','x(0)=4',' Dx(0)=0','p(0)=0')

3

接着,访问方程的解:>> s.xans =exp(-1/4*t)*(4/21*sin(3/4*7^(1/2)*t)*7^(1/2)+4*cos(3/4*7^(1/2)*t))>> s.pans =-68/9*cos(3/4*7^(1/2)*t)*exp(-1/4*t)-748/63*7^(1/2)*exp(-1/4*t)*sin(3/4*7^(1/2)*t)+68/9*exp(-t)

4

绘制位置随时间变化的函数图象:>> ezplot(s.x,[0 10])>> title('质量的位置')

5

绘制在相同时间内的动量:>> ezplot(s.p,[0 10])>> title('动量')

6

调用plot 产生相图:>> plot(xval,pval),xlabel('x'),ylabel('p'),title('质量弹簧的相图')

7

代码总结:>> s = dsolve('2*D2x+Dx+8*x = 0','Dp = -p - 17*x','x(0)=4',' Dx(0)=0','p(0)=0');>> s.xans =exp(-1/4*t)*(4/21*sin(3/4*7^(1/2)*t)*7^(1/2)+4*cos(3/4*7^(1/2)*t))>> s.pans =-68/9*cos(3/4*7^(1/2)*t)*exp(-1/4*t)-748/63*7^(1/2)*exp(-1/4*t)*sin(3/4*7^(1/2)*t)+68/9*exp(-t)>> ezplot(s.x,[0 10])>> title('质量的位置')>> ezplot(s.p,[0 10])>> title('动量')>> ezplot(s.x,s.p,[-5 5])>> axis([-8 8 -25 20])>> title('参量图')>> tvalues = (0:0.1:10);>> xval = subs(s.x,'t',tvalues); >> pval = subs(s.p,'t',tvalues);>> plot(xval,pval),xlabel('x'),ylabel('p'),title('质量弹簧的相图')

注意事项
1

前提必须有SIMUBOLIC工具箱才能运行代码。

2

只有一、二阶系统可以画相图,其他高阶系统画不了相图。

推荐信息