joker 发表于 2007-8-10 12:09

怎么用matlab画幅频曲线,急啊,求大家帮个忙!

谁有编好的程序啊,小弟谢谢了!!

[ 本帖最后由 joker 于 2007-8-10 12:13 编辑 ]

无水1324 发表于 2007-8-10 14:05

ezplot也可以把,你知道了幅频方程,那其中就只有幅、频两个未知数。

mechanic05 发表于 2007-8-15 10:54

回复 #1 joker 的帖子

不知道你画出了没有?我曾用plot直接画过,就是不光滑.用maple画效果差不多,不理想.希望互相交流、学习。:@)

咕噜噜 发表于 2007-8-15 18:19

回复 #3 mechanic05 的帖子

不光滑哦?为什么不光滑,会不会是你取得步长太大
我怎么没遇到过呢

mechanic05 发表于 2007-8-15 21:36

前辈好!好久不见,暑期过的可好?
不知道前辈用什摸方法画的,编写FORTRAN或者MATLAB程序吗?那样得反解出显式表达式,但是当幅频关系为高次时,是很困难甚至是不可能的.我画出的不光滑,是用MAPLE和MATLAB(直接用PLOT语句)都这样,我也正为这个郁闷.付上我的MATLAB图,请前辈指点.下面是MAPLE语句:
restart;omega:=1;with(plots);
> mu:=0.3;
> mu:=0.6;
> G:=0.3;
> G:=1;
> G:=2;
> G:=10;
> Gamma:=5*G/(8*omega);
> Gamma:=5*G/(8*omega);
> Gamma:=5*G/(8*omega);
> Gamma:=5*G/(8*omega);
> alpha:=4;
> alpha:=0.5;
> alpha:=0.2;
> beta:=1;
> Gamma:=(3*alpha-3*alpha+alpha)/(8*omega);
> Q:=beta/(2*omega);
> #Q:=beta/(4*omega);
                            omega := 1
Warning, the name changecoords has been redefined

[animate, animate3d, animatecurve, arrow, changecoords, complexplot,
      complexplot3d, conformal, conformal3d, contourplot,
      contourplot3d, coordplot, coordplot3d, cylinderplot,
      densityplot, display, display3d, fieldplot, fieldplot3d,
      gradplot, gradplot3d, implicitplot, implicitplot3d, inequal,
      listcontplot, listcontplot3d, listdensityplot, listplot,
      listplot3d, loglogplot, logplot, matrixplot, odeplot, pareto,
      pointplot, pointplot3d, polarplot, polygonplot, polygonplot3d,
      polyhedra_supported, polyhedraplot, replot, rootlocus,
      semilogplot, setoptions, setoptions3d, spacecurve,
      sparsematrixplot, sphereplot, surfdata, textplot, textplot3d,
      tubeplot]

                           mu := .3

                           mu := .6

                           G := .3

                              G := 1

                              G := 2

                           G := 10

                     Gamma := .1875000000

                           Gamma := 5/8

                           Gamma := 5/4

                        Gamma := 25/4

                            alpha := 4

                            alpha := .5

                            alpha := .2

                           beta := 1

                     Gamma := 1.337500000

                           Q := 1/2
> Y:=(mu*a+mu*(a^2)-Gamma*a^5)^2+(sigma*a-Gamma*a^3)^2-Q^2;
                      2                5 2
Y := (.3 a + .6 a- .1875000000 a )
                                    3 2
         + (sigma a - 1.337500000 a )- 1/4

> Y:=(mu*a+mu*(a^2)-Gamma*a^5)^2+(sigma*a-Gamma*a^3)^2-Q^2;
> Y:=(mu*a+mu*(a^2)-Gamma*a^5)^2+(sigma*a-Gamma*a^3)^2-Q^2;
> Y:=(mu*a+mu*(a^2)-Gamma*a^5)^2+(sigma*a-Gamma*a^3)^2-Q^2;
> implicitplot((mu*a+mu*(a^2)-Gamma*a^5)^2+(sigma*a-Gamma*a^3)^2-Q^2=0,sigma=0..10,a=0..5);
                      2      5 2                              3 2
Y := (.3 a + .6 a- 5/8 a )+ (sigma a - 1.337500000 a )
         - 1/4

                      2      5 2                              3 2
Y := (.3 a + .6 a- 5/4 a )+ (sigma a - 1.337500000 a )
         - 1/4

                      2         5 2                              3 2
Y := (.3 a + .6 a- 25/4 a )+ (sigma a - 1.337500000 a )
         - 1/4
implicitplot((mu*a+mu*(a^2)-Gamma*a^5)^2+(sigma*a-Gamma*a^3)^2-Q^2=0,sigma=0..10,a=0..5);
implicitplot((mu*a+mu*(a^2)-Gamma*a^5)^2+(sigma*a-Gamma*a^3)^2-Q^2=0,sigma=0..10,a=0..5);
implicitplot((mu*a+mu*(a^2)-Gamma*a^5)^2+(sigma*a-Gamma*a^3)^2-Q^2=0,sigma=0..10,a=0..5);
附加三幅图.谢谢!MATLAB的PLOT语句更简单,和MAPLE差不多.错在那里?请指点.谢谢!

mechanic05 发表于 2007-8-15 21:40

回复 #4 咕噜噜 的帖子

不好意思:loveliness: 没加上.

mechanic05 发表于 2007-8-16 09:51

回复 #4 咕噜噜 的帖子

可能前辈很忙,麻烦抽空指点一、二,不胜感激!:@)

pengweicai 发表于 2007-8-16 12:54

可以用MATLAB啊。
把 频率值间隔取小点就行了。
比如 0.1 0.2 ...
   如果还不行就 0.1 0.15 0.2 ......    直到光滑为止。

mechanic05 发表于 2007-8-16 21:03

回复 #11 pengweicai 的帖子

谢谢!
不过我不明白您是用什么方法?是MATLAB编程吗?能就我的问题给示范一下吗?非常感谢!!:@)  再问一句,直接用PLOT语句为什么画出的图很不光滑?请指教。

[ 本帖最后由 xinyuxf 于 2007-9-24 15:47 编辑 ]

mechanic05 发表于 2007-8-16 21:41

无水前辈好!暑假过的可好?
我刚搜索了一下,好象前辈遇到过相同的问题,不知道现在作的怎样?用的什么方法?能给指教一下吗?我用PLOT语句直接画幅频响应图,有什么问题吗?谢谢!

[ 本帖最后由 xinyuxf 于 2007-9-24 15:49 编辑 ]

mechanic05 发表于 2007-8-17 09:28

回复 #2 无水1324 的帖子

前辈好!不知道关于幅频响应曲线的画法研究的怎样了?我的问题是推导出了幅频响应方程(隐式的).按理说非线性的运动幅频响应曲线应该存在跳跃和多值性.我该怎摸做呢?望指教.谢谢!

咕噜噜 发表于 2007-8-17 12:19

你这个能不能把具体问题贴上来,我是说你的公式?我不是很懂maple,所以看的不是很明白,给出问题的话我可以帮你编写matlab看看
在matlab里面不知道幅频响应曲线也可以画图,通常使用传递函数

mechanic05 发表于 2007-8-17 16:33

呀,抱歉!公式给错了.那个是为了看懂人家的程序下载的公式.我的公式应该是见附件.

mechanic05 发表于 2007-8-17 16:39

回复 #16 咕噜噜 的帖子

谢谢前辈!我做的是关于梁的大振幅振动问题.得到的幅频响应方程见上面附件.麻烦给看看.请问,解这个隐式方程并画图,为什摸直接用MATLAB语句画出的图很不光滑并且不出现跳跃和多值?非常感谢!:loveliness:

huabanyu 发表于 2007-9-23 10:13

我觉得用ezplot就行了,我也在做这样的频响曲线阿,就是这样画出来的啊!
页: [1] 2
查看完整版本: 怎么用matlab画幅频曲线,急啊,求大家帮个忙!