声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 8354|回复: 29

[非线性振动] 怎么用matlab画幅频曲线,急啊,求大家帮个忙!

[复制链接]
发表于 2007-8-10 12:09 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

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

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

这是曲线方程

这是曲线方程
回复
分享到:

使用道具 举报

发表于 2007-8-10 14:05 | 显示全部楼层
ezplot也可以把,你知道了幅频方程,那其中就只有幅、频两个未知数。
发表于 2007-8-15 10:54 | 显示全部楼层

回复 #1 joker 的帖子

不知道你画出了没有?我曾用plot直接画过,就是不光滑.用maple画效果差不多,不理想.希望互相交流、学习。:@)
发表于 2007-8-15 18:19 | 显示全部楼层

回复 #3 mechanic05 的帖子

不光滑哦?为什么不光滑,会不会是你取得步长太大
我怎么没遇到过呢
发表于 2007-8-15 21:36 | 显示全部楼层
前辈好!好久不见,暑期过的可好?
不知道前辈用什摸方法画的,编写FORTRAN或者MATLAB程序吗?那样得反解出显式表达式,但是当幅频关系为高次时,是很困难甚至是不可能的.我画出的不光滑,是用MAPLE和MATLAB(直接用PLOT语句)都这样,我也正为这个郁闷.付上我的MATLAB图,请前辈指点.下面是MAPLE语句:
restart;omega[0]:=1;with(plots);
> mu[1]:=0.3;
> mu[2]:=0.6;
> G[v1]:=0.3;
> G[v2]:=1;
> G[v3]:=2;
> G[v4]:=10;
> Gamma[11]:=5*G[v1]/(8*omega[0]);
> Gamma[12]:=5*G[v2]/(8*omega[0]);
> Gamma[13]:=5*G[v3]/(8*omega[0]);
> Gamma[14]:=5*G[v4]/(8*omega[0]);
> alpha[1]:=4;
> alpha[2]:=0.5;
> alpha[3]:=0.2;
> beta[1]:=1;
> Gamma[2]:=(3*alpha[1]-3*alpha[2]+alpha[3])/(8*omega[0]);
> Q[1]:=beta[1]/(2*omega[0]);
> #Q[2]:=beta[2]/(4*omega[0]);
                            omega[0] := 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[1] := .3

                             mu[2] := .6

                             G[v1] := .3

                              G[v2] := 1

                              G[v3] := 2

                             G[v4] := 10

                       Gamma[11] := .1875000000

                           Gamma[12] := 5/8

                           Gamma[13] := 5/4

                          Gamma[14] := 25/4

                            alpha[1] := 4

                            alpha[2] := .5

                            alpha[3] := .2

                             beta[1] := 1

                       Gamma[2] := 1.337500000

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

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

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

                      2         5 2                              3 2
  Y[4] := (.3 a + .6 a  - 25/4 a )  + (sigma[1] a - 1.337500000 a )
         - 1/4
implicitplot((mu[1]*a+mu[2]*(a^2)-Gamma[12]*a^5)^2+(sigma[1]*a-Gamma[2]*a^3)^2-Q[1]^2=0,sigma[1]=0..10,a=0..5);
implicitplot((mu[1]*a+mu[2]*(a^2)-Gamma[13]*a^5)^2+(sigma[1]*a-Gamma[2]*a^3)^2-Q[1]^2=0,sigma[1]=0..10,a=0..5);
implicitplot((mu[1]*a+mu[2]*(a^2)-Gamma[14]*a^5)^2+(sigma[1]*a-Gamma[2]*a^3)^2-Q[1]^2=0,sigma[1]=0..10,a=0..5);
附加三幅图.谢谢!MATLAB的PLOT语句更简单,和MAPLE差不多.错在那里?请指点.谢谢!
111.jpg
222.jpg
发表于 2007-8-15 21:40 | 显示全部楼层

回复 #4 咕噜噜 的帖子

不好意思:loveliness: 没加上.

公式[1].doc

32 KB, 下载次数: 33

发表于 2007-8-16 09:51 | 显示全部楼层

回复 #4 咕噜噜 的帖子

可能前辈很忙,麻烦抽空指点一、二,不胜感激!:@)
发表于 2007-8-16 12:54 | 显示全部楼层
可以用MATLAB啊。
把 频率值  间隔取小点就行了。
比如 0.1 0.2 ...
   如果还不行  就 0.1 0.15 0.2 ......    直到光滑为止。

评分

1

查看全部评分

发表于 2007-8-16 21:03 | 显示全部楼层

回复 #11 pengweicai 的帖子

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

[ 本帖最后由 xinyuxf 于 2007-9-24 15:47 编辑 ]
发表于 2007-8-16 21:41 | 显示全部楼层
无水前辈好!暑假过的可好?
我刚搜索了一下,好象前辈遇到过相同的问题,不知道现在作的怎样?用的什么方法?能给指教一下吗?我用PLOT语句直接画幅频响应图,有什么问题吗?谢谢!

[ 本帖最后由 xinyuxf 于 2007-9-24 15:49 编辑 ]
发表于 2007-8-17 09:28 | 显示全部楼层

回复 #2 无水1324 的帖子

前辈好!不知道关于幅频响应曲线的画法研究的怎样了?我的问题是推导出了幅频响应方程(隐式的).按理说非线性的运动幅频响应曲线应该存在跳跃和多值性.我该怎摸做呢?望指教.谢谢!
发表于 2007-8-17 12:19 | 显示全部楼层
你这个能不能把具体问题贴上来,我是说你的公式?我不是很懂maple,所以看的不是很明白,给出问题的话我可以帮你编写matlab看看
在matlab里面不知道幅频响应曲线也可以画图,通常使用传递函数
发表于 2007-8-17 16:33 | 显示全部楼层
呀,抱歉!公式给错了.那个是为了看懂人家的程序下载的公式.我的公式应该是见附件.

新建 Microsoft Word 文档-1.doc

18.5 KB, 下载次数: 31

发表于 2007-8-17 16:39 | 显示全部楼层

回复 #16 咕噜噜 的帖子

谢谢前辈!我做的是关于梁的大振幅振动问题.得到的幅频响应方程见上面附件.麻烦给看看.请问,解这个隐式方程并画图,为什摸直接用MATLAB语句画出的图很不光滑并且不出现跳跃和多值?非常感谢!:loveliness:
发表于 2007-9-23 10:13 | 显示全部楼层
我觉得用ezplot就行了,我也在做这样的频响曲线阿,就是这样画出来的啊!
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-5-19 06:13 , Processed in 0.090539 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表