Simulink及振动微分方程的数值解法

合集下载

基于Simulink的振动模态分析

基于Simulink的振动模态分析

基于Simulink的振动模态分析引言振动模态分析是一种常用的工程分析方法,用于研究结构体在不同频率下的振动特性和模态。

本文将介绍如何使用Simulink软件进行振动模态分析。

Simulink简介Simulink是一种基于模型的设计和仿真工具,常用于解决动态系统建模和仿真问题。

该软件提供了丰富的工具箱,便于用户搭建模型和进行模拟实验。

振动模态分析步骤1. 结构体建模:首先,需要将待分析的结构体进行建模。

在Simulink中,可以使用各种元件来描述结构体的物理特性,例如质量、弹性等参数。

2. 模态分析设置:在建模完成后,可以设置模态分析的参数,包括分析频率范围、模态数量等。

这些参数会影响模态分析的精度和计算效率。

3. 模型求解:通过在Simulink中运行模型求解器,可以得到结构体在不同频率下的振动模态。

求解过程可以得到每一个模态对应的频率、振型和阻尼比等信息。

4. 结果分析:最后,可以对求解得到的振动模态进行进一步分析和可视化。

比如,可以绘制模态频率与振型的关系图,用于评估结构体的振动特性。

模态分析应用领域振动模态分析在工程领域有着广泛的应用。

它可以帮助工程师了解结构体的固有振动特性,从而优化设计和改进结构体的性能。

在航空航天、汽车工程、建筑设计等领域,振动模态分析被广泛应用于结构体的优化和故障诊断。

结论通过Simulink软件进行振动模态分析是一种简单而高效的方法。

它可以帮助工程师更好地理解结构体的振动特性,并在实际工程项目中起到重要作用。

在使用Simulink进行振动模态分析时,合理设置参数和精确分析结果对于获得准确的振动特性信息尤为重要。

微分方程数值求解方法

微分方程数值求解方法
在t1时刻,曲线上点 y t1 可以切线上的点代替,则
y t1 y t0 f t0 , y t0 t1 t0
写成迭代格式
yn1 yn hf tn , yn
t0 t1
3. 龙格库塔法
龙格-库塔法(Runge-Kutta)是用于常微分方程求解的一类重要迭代方 法,由数学家卡尔·龙格和马丁·威尔海姆·库塔于1900年左右发明。对于 如下方程
3. 龙格库塔法
k1 f t n , yn h h k 2 f t n , yn k1 2 2 h h k3 f t n , y n k 2 2 2 k 4 f t n h, yn hk3 k k1 2k 2 2k3 k 4 6 yn 1 yn hk
u 1 u2
2 u u1 2 F cos t 2 nu2 n
每一种方法的区别 在于,如何从前一 个点得到下一点。
2. 欧拉法
以如下微分方程为例
yt f t , y t
y t0 y0
已知A0点坐标 t0 , y t0 ,过A0点的切线方程为
y y t0 yt0 t t0 f t0 , y t0 t t0
yt f t , yt
yt0 y0
龙格-库塔法的基本格式如下 1 yn1 yn h k1 2k2 2k3 k 4 6 k1 f t n , yn
yn1 yn hf tn , yn
h h k 2 f tn , yn k1 2 2 h h k3 f t n , y n k 2 2 2 k 4 f t n h, yn hk3

【转@总结】simulink常微分方程的数值求解~ode45

【转@总结】simulink常微分方程的数值求解~ode45

【转@总结】simulink常微分⽅程的数值求解~ode45ode45,常微分⽅程的数值求解。

MATLAB提供了求常微分⽅程数值解的函数。

当难以求得微分⽅程的解析解时,可以求其数值解,Matlab 中求微分⽅程数值解的函数有七个:ode45,ode23,ode113,ode15s,ode23s,ode23t,ode23tb在⽤odesolver(ode45, ode15s, …)来解微分⽅程的时候,最基本的⽤法是:[t, y] = odesolver(odefun, tspan, y0);这⾥的odefun是待求的微分⽅程。

那么odefun中⼀般会含有多个系统参数,通常要通过改变参数来观察系统动态的变化。

那么如何在调⽤odesolver的时候传递参数呢?以前,我都是⽤全局变量的写法,将参数在主函数和⼦函数中分别都定义为global,这样做有⼀个弱点:针对系统不同,参数的表达与数量有变化的时候,程序通常要做变化,通⽤性不强。

那么最好是在调⽤的时候进⾏传递,⽅法如下:实际上很简单,就是将⼀切其他的参数都写在括号中就可以了!但是要注意的是:odesolver的第四个参数⼀定是options,也就是对微分⽅程添加补充功能的参数(类型为structure,要⽤odeset来定义),那么其他系统参数就只能从第五个参数写起。

也就是说,第四个参数不可以为空,⼀定要定义某种option加进去,或者⽤使⽤空⽩矩阵(placeholder)。

这样调⽤的时候格式就是:[t, y] = odesolver(odefun, tspan, y0, options, parameter1, parameter2);或者[t, y] = odesolver(odefun, tspan, y0, [], parameter1, parameter2);然后定义微分⽅程的时候也要有参数的地⽅:function dydt = odefun(t, y, parameter1, parameter2)dydt = [ eqn-1; eqn-2; …];就OK了。

利用MATLAB求解微分方程数值解的相关命令

利用MATLAB求解微分方程数值解的相关命令

利用MATLAB求解微分方程数值解的相关命令利用MATLAB求解微分方程数值解的相关命令1 指令函数及调用格式1.1 指令函数:dsolve注:此指令函数用于求解微分方程(组)的符号(解析)解。

1.2 单变量常微分方程的调用格式:f=dsolve(‘eq’, ‘cond’, ‘v’)注:此调用格式用于求符号微分方程的通解或特解,其中eq代表微分方程,cond代表微分方程的初始条件(若缺少,则求微分方程的通解),v为指定自变量(如未指定,系统默认t为自变量)。

1.3 常微分方程组的调用格式:f=dsolve(‘eq1’, ‘eq2’,…, ‘eqn’, ‘cond1’, ‘cond2’,…, ‘condn’, ‘v1’, ‘v2’, …, ‘vn’)注:此调用格式用于求解符号常微分方程组。

其中eq1,...,eqn 代表n个微分方程构成的微分方程组;cond1,...,condn代表微分方程组的初始条件(若缺少,则求微分方程组的通解),v1 , (v)为指定自变量(如未指定,系统默认t为自变量)。

1.4 记述规定:MATLAB中,用D(注意:一定是大写)记述微分方程中函数的导数。

当y是因变量时,用‘Dny’表示‘y的n阶导数’。

如,Dy表示y的一阶导数y ',Dny表示y的n阶导数。

Dy(0)=5表示y ' (0)=5。

D3y+D2y+Dy-x+5=0表示微分方程y'''+y''+y'-x+5=0。

2 实例演示例1、求微分方程2'22xy xy xe-+=的通解命令输入:>> y=dsolve('Dy+2*x*y=2*x*exp(-x^2)','x')得结果为:y =(x^2+C1)*exp(-x^2)若输入命令:>>y=dsolve('Dy+2*x*y=2*x*exp(-x^2)')则系统默认t为自变量,而把真正的自变量x当作常数处理,把y 当作t的函数,得到错误的结果:y =exp(-2*x*t-x*(x-2*t))+exp(-2*x*t)*C1例2、求微分方程22420250d x dxxdt dt-+=的通解命令输入:>> x=dsolve('4*D2x-20*Dx+25*x=0')得结果为:x =C1*exp(5/2*t)+C2*exp(5/2*t)*t%系统默认t 为自变量例3、求微分方程'''54100y y y +-+=在条件'006,4x x y y ====下的特解。

MATLAB微分方程几种求解方法及程序

MATLAB微分方程几种求解方法及程序

第五章 控制系统仿真§5.2 微分方程求解方法以一个自由振动系统实例为例进行讨论。

如下图1所示弹簧-阻尼系统,参数如下: M=5 kg, b=1 N.s/m, k=2 N/m, F=1NF图1 弹簧-阻尼系统假设初始条件为:00=t 时,将m 拉向右方,忽略小车的摩擦阻力,m x 0)0(= s m x /0)0(=•求系统的响应。

)用常微分方程的数值求解函数求解包括ode45、ode23、ode113、ode15s 、ode23s 等。

wffc1.m myfun1.m一、常微分方程的数值求解函数ode45求解 解:系统方程为 F kx x b x m =++•••这是一个单变量二阶常微分方程。

将上式写成一个一阶方程组的形式,这是函数ode45调用规定的格式。

令: x x =)1( (位移))1()2(••==x x x (速度) 上式可表示成:⎥⎦⎤⎢⎣⎡--=⎥⎦⎤⎢⎣⎡=⎥⎥⎦⎤⎢⎢⎣⎡••)1(*20)2(*101)2()2()2()1(x x x x x x x 下面就可以进行程序的编制。

%写出函数文件myfun1.mfunction xdot=myfun1(t,x)xdot=[x(2);1-10*x(2)-20*x(1)];% 主程序wffc1.mt=[0 30];x0=[0;0];[tt,xx]=ode45(@myfun1,t,x0);plot(tt,yy(:,1),':b',tt,yy(:,2),'-r') legend('位移','速度')title('微分方程的解 x(t)')二、方法2:F kx x b x m =++•••251)()()(2++==s s s F s X s G%用传递函数编程求解ksys1.mnum=1;den=[5 1 2];%printsys(num,den)%t=0:0.1:10;sys=tf(num,den);figure(1)step(sys)figure(2)impulse(sys)figure(3)t=[0:0.1:10]';ramp=t;lsim(sys,ramp,t);figure(4)tt=size(t);noise=rand(tt,1);lsim(sys,noise,t)figure(5)yy=0.1*t.^2;lsim(num,den,yy,t)w=logspace(-1,1,100)';[m p]=bode(num,den,w);figure(6)subplot(211);semilogx(w,20*log10(m)); grid onsubplot(212);semilogx(w,p)grid on[gm,pm,wpc,wgc]=margin(sys)figure(7)margin(sys)figure(8)nyquist(sys)figure(9)nichols(sys)方法3:F kx x b x m =++•••125=++•••x x xx x x 4.02.02.0--=•••% 主程序wffc1.mt=[0 30];x0=[0;0];[tt,yy]=ode45(@myfun1,t,x0);figure(1)plot(tt,yy(:,1),':b',tt,yy(:,2),'-r') hold onplot(tt,0.2-0.2*yy(:,2)-0.4*yy(:,1),'-.k ')legend('位移','速度','加速度') title('微分方程的解')figure(2)plot(yy(:,1),yy(:,2))title('平面相轨迹')%写出函数文件myfun1.mfunction xdot=myfun1(t,x)xdot=[x(2);0.2-0.2*x(2)-0.4*x(1)];。

最新第四章 Simulink与微分方程组数解讲课讲稿

最新第四章    Simulink与微分方程组数解讲课讲稿

计算开始时 间
计算结束时 间
计算方法
MATLAB6.5
(7)按SIMULATION—START开始仿真计算。 (8)点击SCOPE观察计算结果,或者查看WORKSPACE, 观看变量值,根据需要保存绘制计算值。
SCOPE:
•例2
已知直流发动机的控制系统的微分方程为:
Ldi dt
URi
C1
d
J dt C2iM
50
0
-50
-100
0
1
2
3
4
5
6
7
8
9 10
方法2:根据微分方程直接利用积分,微分, 求和绘制系统模型。
Ld d ti U R i C 1 .......Jd d tC 2 i M
积分
第1个方程
输入电 压U
转速 电流
第2个方程:
J
d
dt
C2i
M
负载
电流
设置输出点:
输出转速


输出点 2
输出点1
(1)根据上述方程定义矩阵A,B,C,D。
(2)设置矩阵,双击选项,出现设置菜单。
将默认值1修改成矩 阵常数或已经定义好
的矩阵变量
(3)设置输入,输出
设置输入值, 可以是向量 常数或是已 经定义的向
量变量
(4)设置计算选项,开始计算,并选取计算结果 电流计算结果
250
200
150
100
50
0
0
信号的+,-,比例放 大在Math Operation项 内
信号加:
可将+改成-, 或增加+,表 示多个信号

matlab求微分方程数值解

matlab求微分方程数值解

matlab求微分方程数值解利用matlab求微分方程数值解是一种常用的数学计算方法。

在实际工程和科学研究中,许多问题都可以用微分方程来描述,但是解析解往往难以求得,因此需要用数值方法求解微分方程。

求解微分方程的数值方法有很多种,其中比较常用的是欧拉法和龙格-库塔法。

欧拉法是一种基本的数值方法,它采用离散化的方法将微分方程转化为差分方程,然后通过迭代来求出数值解。

欧拉法的具体步骤是:首先将自变量和因变量离散化,然后利用微分方程的定义式将微分方程转化为差分方程,最后通过迭代求出数值解。

欧拉法的优点是简单易懂,但是精度较低,容易产生误差。

龙格-库塔法是一种高阶数值方法,它将微分方程转化为一系列的差分方程,并采用递推的方法求解数值解。

龙格-库塔法的优点是精度高,收敛速度快,适用于求解复杂的微分方程。

但是龙格-库塔法的计算量较大,需要进行多次计算,计算时间较长。

在使用matlab求解微分方程时,可以直接调用matlab中的ode 函数来求解微分方程。

ode函数是matlab中内置的求解微分方程的函数,它支持多种数值方法,包括欧拉法和龙格-库塔法等。

使用ode函数可以简化求解微分方程的过程,提高计算效率。

在使用ode函数求解微分方程时,需要先定义微分方程的函数表达式,然后将函数表达式作为参数传入ode函数中。

ode函数会自动选择合适的数值方法来求解微分方程,并返回数值解。

通过调整ode函数的参数,可以进一步提高求解微分方程的精度和计算效率。

除了ode函数外,matlab中还有很多其他的数值计算函数,如dsolve函数、pdepe函数等,它们可以用来求解不同类型的微分方程。

在实际应用中,需要根据具体问题选择合适的数值方法和函数来求解微分方程。

利用matlab求解微分方程数值解是一种常用的数学计算方法,可以通过调用matlab中的内置函数来实现。

在选择数值方法和函数时需要考虑精度和计算效率等因素,以便更好地解决实际问题。

Simulink机械振动仿真简例分析

Simulink机械振动仿真简例分析

1.单自由度无阻尼自由振动
运行仿真,查看示波器显示的结果
曲 线 不 光 滑 ?
1.单自由度无阻尼自由振动
打开仿真参数对话框 Ctrl+E 修改最大步长为0.01
1.单自由度无阻尼自由振动
再次运行,曲线明显光滑了许多
1.单自由度无阻尼自由振动
• 用到的模块:
积分模块,将输入信号经过数值 积分,在输出端输出相应结果。 增益模块,在输入信号基础上乘 以一个特定数据,然后输出。 示波器模块,将输入信号输入到 示波器显示出来。
据此在Simulink中画出框图
5.单自由度有阻尼+正弦激励
• 参数设置: 令k=4,m=1,c=0.2 • 初始状态: 初始速度为0,位移为0.05 • 在框图中: 分别修改对应模块的数值
5.单自由度有阻尼+正弦激励
Hale Waihona Puke • 响应趋于稳态的过程5.单自由度有阻尼+正弦激励
示波器输出为质量块的位移信号
• 参数设置:k=100N/m, m=1kg →n=10rad/s • sin wave参数:Amplitude 1; Frequency 8,10,12 • 初始状态:①x0=1, v0=0→=90; ②x0=0, v0=1→=0; ③ x0=1, v0=10→=45; ④ x0=1, v0=−10→=135; ⑤ x0=0, v0= −1→=180 Sine Wave XY Graph • XY Graph参数 1 1 s s x-min -2; x-max 2; Integrator Integrator1 Gain Scope y-min -2; y-max 2
4.衰减振荡的阻尼比的估计
• 参数:k=100,m=10, c=2 • 初始条件:x0=1, v0=0 • 初始振幅为1,约7个周期时衰减 为0.25,对数减幅: =(ln4)/70.099 阻尼比/20.032 • 理论值=0.5c(km)−0.5 0.032
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

欢迎使用百度文库
MATLAB/Simulink及振动微分方程的数值解法
李鹤
hli@
Simulink是基于MATLAB的图形化仿真平台,进行动态系统建模、仿真和综合分析的集成软件包。

MATLAB主窗口
Simulink主窗口/Simulink模型库浏览器
Simulink模型编辑器
加速度表达式
21u u u u
激振幅值
激振频率
经过积分一
次:速度
经过积分二
次:位移
u
u
u
u u
位移—时间曲线位移—速度相图
(5)设置速度初始值
双击设置速度初始值
Simulink求解振动微分方程的基本步骤(续)
(6)设置位移初始值
双击设置位移初始值
Simulink求解振动微分方程的基本步骤(续)
(7)设置Simulink 仿真参数:
积分时间步长:
1.保证积分收敛;
2.可以选外激振力周期的
1/n 。

积分起始时间积分终止时间
求解器:定步长4阶龙格库塔法
(8)开始计算,观察结果计算开始按钮
双击Scope或XYGraph察看结果
打印参数设置
视图整体缩放X 轴缩放Y 轴缩放
保存当前坐标轴设置恢复坐标轴设置
悬浮开关
去除坐标轴选择
悬浮时信号选择器
视图自动缩放
(9) Scope 工具栏详解
1222u u f n n u 单自由度有阻尼自由振动方程0
22 u u u n n u u u n n 22
1222u u f n n u 单自由度有阻尼强迫振动方程
t r u u u n n sin 22 t r u u u n n sin 22
范德波尔方程(自激振动)杜芬方程
31122u u u f u 012 u u u u u u u u 12 023 u u u u 32u u u u 12112u u u f u。

相关文档
最新文档