动力学程序讲解
动力学实验方法及数据处理

动力学实验方法及数据处理在科学研究和工程实践中,动力学是研究物体在外力作用下运动规律和相互作用的一门基础学科。
动力学实验是研究动力学问题的有效手段之一,本文将介绍动力学实验的方法以及数据处理技术。
一、动力学实验方法1. 实验目的与设计在进行动力学实验之前,我们首先需要明确实验目的并设计合理的实验方案。
实验目的应该明确,具体且可衡量。
实验设计要考虑到所研究的动力学过程特点,选择合适的被试物体和实验条件,确保实验具有可重复性和可比性。
2. 实验装置的建立根据研究的具体要求,我们需要建立相应的实验装置。
实验装置应能提供稳定的外力作用,并能够记录实验过程中关键的参数变化。
选择合适的测量设备,如传感器、测力计等,使得数据采集能够准确可靠。
3. 数据采集与处理在进行动力学实验时,我们需要对实验过程中的关键数据进行采集和处理。
数据采集可以通过仪器设备自动完成,也可以通过人工记录。
确保数据采集的准确性和一致性是进行动力学实验的关键。
4. 参数测量与控制动力学实验中往往需要测量和控制各种参数,如力、加速度、速度等。
选择适当的测量方式,如应力应变测量、激光测距、光学测量等,确保测量的准确性和精度。
同时,根据实验需求,对一些参数进行控制,以实现所设定的实验条件。
5. 实验过程与数据记录在进行动力学实验过程中,需要严格按照实验方案进行操作,并记录实验过程中关键数据的变化。
数据记录应准确、详细,并标明实验条件和实验环境等信息。
6. 实验结果与分析实验结束后,我们需要对实验结果进行分析和解读。
通过对数据的统计和处理,得到相应的动力学特性参数。
同时,可以借助图表、曲线等方式展示实验结果,以便进一步的研究和交流。
二、动力学数据处理1. 数据预处理在对实验数据进行分析之前,我们通常需要进行数据的预处理。
包括数据清洗、异常值剔除、数据归一化等操作,以确保分析结果的准确性和可靠性。
2. 参数计算与拟合根据实验设计和数据采集,我们可以得到一系列参数。
高中物理动力学讲解教案

高中物理动力学讲解教案
主题:运动学基础
教学目标:通过本节课的学习,学生能够掌握运动学基础知识,包括位移、速度、加速度等概念,并能够应用这些知识解决相关问题。
教学重点:1. 位移和速度的概念及计算方法
2. 运动中的加速度
3. 运动图像的绘制及分析
教学难点:1. 运动图像的分析
2. 运动中的加速度的计算
教学准备:教师准备好PPT、教材、白板、彩色粉笔、实验器材等
教学过程:
一、导入(5分钟)
教师通过简单的实例引入运动学的概念,让学生了解物体运动的基本特征。
二、概念讲解(15分钟)
1. 位移和速度的定义及计算方法
2. 运动中的加速度的概念及计算方法
三、案例分析(20分钟)
教师通过几个实际的运动案例,引导学生运用所学知识解决问题,并引导学生分析运动图像。
四、实践操作(15分钟)
1. 学生通过实验测量物体在直线运动中的位移、速度和加速度,练习运用所学知识。
2. 学生绘制运动图像,并分析运动过程。
五、总结与评价(5分钟)
教师对本节课的内容进行总结,并对学生的学习情况进行评价,激励学生继续努力。
六、课后拓展(10分钟)
教师布置作业,要求学生复习本节课内容并完成相关练习题,加深对所学知识的理解。
教学反思:
通过本节课的学习,学生对运动学基础知识有了更深入的理解,提高了解决问题的能力。
但在实践操作环节,学生的动手能力和数据处理能力还有待提高,需要在以后的教学中加强实验操作和数据处理的训练。
动力学方程的解法

动力学方程的解法动力学方程是描述物体或系统运动中的力学规律的方程。
解决动力学方程是研究物体运动行为的重要方法之一。
本文将介绍两种常见的解动力学方程的方法:分离变量法和拉普拉斯变换法。
分离变量法是一种基本的解微分方程的方法。
对于形如dy/dx =f(x)g(y)的一阶常微分方程,可以采用分离变量法求解。
假设f(x)和g(y)在给定区间内连续,并且g(y)不恒为0,则可以将dy/g(y) = f(x)dx两侧同时积分,得到∫dy/g(y) = ∫f(x)dx。
通过对方程两侧的积分,我们可以将原方程分离成两个独立的变量,并将其求解得到解析解。
举例来说,考虑一个简单的动力学方程:m*d²x/dt² = f(x)。
其中,m 是物体的质量,x是物体的位置,f(x)是描述作用在物体上的力的函数。
将动力学方程改写为d²x/dt² = (1/m)f(x),我们可以使用分离变量法解决此方程。
假设物体从t=0时刻开始,在初始时刻t=0,物体的位置为x0,速度为v0。
我们可以将方程分离为d²x/f(x) = (1/m)dt,并对两侧进行积分,得到∫d²x/f(x) = (1/m)∫dt。
然后,我们可以通过对方程两侧的积分求解x(t)。
拉普拉斯变换法是另一种常用的解微分方程的方法。
对于线性时不变系统,可以使用拉普拉斯变换将微分方程转化为代数方程,并通过求解代数方程得到解析解。
假设我们需要求解一个形如d²x/dt² +a*dx/dt + b*x = F(t)的二阶常系数线性微分方程,其中a和b是常数,F(t)是描述作用在物体上的外力函数。
应用拉普拉斯变换,我们可以将方程转化为(s²X(s) - s*x(0) - v(0)) + a(sX(s) - x(0)) + bX(s) = F(s)。
通过代数方法,我们可以求解得到X(s),然后再应用拉普拉斯反变换,将X(s)转化为x(t),得到方程的解析解。
simpack动力学计算步骤

Simpack动力学计算步骤在机车动力学计算中,主要包括稳定性,平稳性以及曲线通过性的计算。
在这些计算过程里,除了开始的建模过程外,后续过程的计算和数据处理也是很重要的。
在每个计算中都有不同的输入和输出,在这里就简单进行总结一下:一稳定性计算在稳定性计算里,包括准线性临界速度(根轨迹计算)和非线性临界速度这两大类计算。
1线性稳定性根轨迹计算是属于频域计算的范围,根轨迹曲线是机车系统在不同速度下所有特征根的结果,其横坐标为自然阻尼(特征根实部),纵坐标为相应模态的振动频率(特征根虚部)。
根轨迹曲线中,随机车运行速度变化的振动模态决定了机车系统的稳定性。
理论上,当系统的所有特征根实部全为负值时,系统的运动是稳定的。
实际上,在机车车辆应用领域,以自然阻尼不大于-5%作为判断条件。
与运行速度无关的振动模态是机车系统中各刚体的振动模态,它所对应的频率即是机车系统的固有振动频率。
1.1在进行根轨迹计算前,要把模型拷贝,重命名,单独进行。
运行simpack,打开文件:单击按钮,弹出如图1.1对话框;在Actual Path 里面输入模型所在根目录路径,在Directory里双击模型所在文件夹,然后在Models里右键单击模型,在右键菜单里选择Copy Model,再右键选择Paste Model,粘贴模型,弹出如图1.2对话框,选择New Name,键入新的文件名;在Model对话框里选择新拷贝的文件,单击OK,完成文件拷贝。
单击前处理器按钮,打开模型。
图 1.1 图1.21.2将模型进行等效线性化,在前处理器中单击Globals/vehicle global,在弹出的对话框中,把contact geometry选为线性(linear),然后单击Apply as Defaults。
1.3保存线性化状态。
单击Globals/linearization states,在弹出的对话框中,选择复制所有铰为线性状态:Copy All Joint States to Linearization State,然后单击OK。
反应动力学的解析方法

qnA0=qnA+(-rA)V+dnA/dt
反应量 -rAV
浓度cA 体积V
-rAV= qnA0 - qnA
-rAV= qV0 cA0- qVcA
一、槽式连续反应器
反应量 -rAV
浓度cA 体积V
A的流入量
A的流出量
-rAV= qnA0xA
微分反应器
积分反应器
2.槽式反应器
特点:1)内部均一,动力学数据的解析比较容易。 2)转化率的大小没有限制,对分析的要求也不太苛刻。 对象:均相反应 优点:便于进行动力学的研究 应用:污水处理特性以及污水处理新技术、新工艺的研究。
A的输入量=A的输出量+A的反应量+A的积累量
qnA0=qnA+(-rA)ΔV+dnA/dt
(12.2.3)
(12.2.6)
01
实验方法:测定cA随反应时间的变化
02
获取的数据:不同反应时间关键组分的浓度
03
数据解析的目的:确定反应级数和反应速率常数
间歇反应器的动力学实验方法
第二节 间歇反应器的解析
实验数据的积分解析法
反应速率方程的积分式的一般形式
t
λ(k)
F(c
A
)
或
A
)
(-rA)平均
根据以上计算,可获得不同浓度时的反应速率 已知速率方程,即可计算速率常数 借鉴间歇反应的微分法确定速率方程、计算速率常数
-rAV= qv0cA0xA
令τ=V/qv0
(12.3.5)
(12.3.7) 恒容反应
(二)槽式连续反应器的动力学实验方法
实验方法:改变cA0或/和qVA0 测定反应器出口处的cA 获取的数据:不同反应条件下的反应器出口处的cA
机器人技术基础实验报告10(机器人动力学参数辨识程序使用说明)

请从上往下进行运行
先运行set_dynamics_parameters.m设置参数
1、dynamics_full_solve.m:求解动力学方程(惯性相对质心)(包含关节惯性及摩擦)
2、dynamics_centerInertia_to_linkinertia.m:转换动力学质心惯量描述到连杆惯性描述
依赖:Optimaltrajectory_object_fun.m, Optimaltrajectory_plot.m
6、data_filtering.m: 数据微分及滤波
依赖:Angle_zerophase_digital_filtering.m, Angular_acc_zerophase_digital_filtering.m, Torque_angle_zerophase_digital_filtering.m
6、data_filtering.m: 数据微分及滤波
10、estimation_parameter_verify.m: 对比测试轨迹对应的关节力矩与利用辨识的动力学参数计算的力矩。拟合程度表面辨识参数的准确性。
即可进行验证
运行
11、mat_to_workspace.m 将真机采集的数据导入工作空间。
9、lineamodel_leastsquares_parameter_estimation.m: 最小二乘估计,求解模型参数
10、estimation_parameter_verify.m: 对比测试轨迹对应的关节力矩与利用辨识的动力学参数计算的力矩。拟合程度表面辨识参数的准确性。
然后运行slx仿真文件采集验证数据opt_x_test
10、estimation_parameter_verify.m: 对比测试轨迹对应的关节力矩与利用辨识的动力学参数计算的力矩。拟合程度表面辨识参数的准确性。
结构动力学newmark法程序

用matlab编程实现Newmark-β法计算多自由度体系的动力响应姓名:***学号:**************专业:结构工程用matlab 编程实现Newmark -β法 计算多自由度体系的动力响应一、Newmark -β法的基本原理Newmark-β法是一种逐步积分的方法,避免了任何叠加的应用,能很好的适应非线性的反应分析。
Newmark-β法假定:t u u u ut t t t t t ∆ββ∆∆]}{}){1[(}{}{+++-+= (1-1)2]}{}){21[(}{}{}{t u u t uu u t t t t t t ∆γγ∆∆∆+++-++= (1-2) 式中,β和γ是按积分的精度和稳定性要求进行调整的参数。
当β=0.5,γ=0.25时,为常平均加速度法,即假定从t 到t +∆t 时刻的速度不变,取为常数)}{}({21t t t u u ∆++ 。
研究表明,当β≥0.5, γ≥0.25(0.5+β)2时,Newmark-β法是一种无条件稳定的格式。
由式(2-141)和式(2-142)可得到用t t u ∆+}{及t u }{,t u}{ ,t u }{ 表示的t t u ∆+}{ ,t t u ∆+}{ 表达式,即有t tt t t t t u u t u u t u}){121(}{1)}{}({1}{2----=++γ∆γ∆γ∆∆ (1-3) t t t t t t t u t uu u t u}{)21(}){1()}{}({}{ ∆γβγβ∆γβ∆∆-+-+-=++ (1-4) 考虑t +∆t 时刻的振动微分方程为:t t t t t t t t R u K u C uM ∆∆∆∆++++=++}{}]{[}]{[}]{[ (1-5) 将式(2-143)、式(2-144) 代入(2-145),得到关于u t +∆t 的方程t t t t R u K ∆∆++=}{}]{[ (1-6)式中][][1][][2C t M tK K ∆γβ∆γ++= )}{)12(}){1(}{]([)}){121(}{1}{1]([}{}{2t t t t t t t t u t uu t C u u t u tM R R ∆γβγβ∆γβγ∆γ∆γ∆-+-++-+++=+求解式(2-146)可得t t u ∆+}{,然后由式(2-143)和式(2-144)可解出t t u∆+}{ 和t t u ∆+}{ 。
matlab动力学分析程序详解

matlab动力学分析程序详解··1.微分方程的定义对于duffing 方程032=++x x xω ,先将方程写作--==3112221x x x x x ω function dy=duffing(t,x) omega=1;%定义参数f1=x(2);f2=-omega^2*x(1)-x(1)^3; dy=[f1;f2];2.微分方程的求解function solve (tstop) tstop=500;%定义时间长度 y0=[0.01;0];%定义初始条件[t,y]=ode45('duffing',tstop,y0,[]);function solve (tstop) step=0.01;%定义步长y0=rand(1,2);%随机初始条件tspan=[0:step:500];%定义时间范围[t,y]=ode45('duffing',tspan,y0);3.时间历程的绘制时间历程横轴为t ,纵轴为y ,绘制时只取稳态部分。
plot(t,y(:,1));%绘制y 的时间历程 xlabel('t')%横轴为t ylabel('y')%纵轴为y grid;%显示网格线axis([460 500 -Inf Inf])%图形显示范围设置4.相图的绘制相图的横轴为y ,纵轴为dy/dt ,绘制时也只取稳态部分。
红色部··分表示只取最后1000个点。
plot(y(end-1000:end,1),y(end-1000:end,2));%绘制y 的时间历程xlabel('y')%横轴为yylabel('dy/dt')%纵轴为dy/dt grid;%显示网格线5.Poincare 映射的绘制对于不同的系统,Poincare 截面的选取方法也不同对于自治系统一般每过其对应线性系统的固有周期,截取一次对于非自治系统,一般每过其激励的周期,截取一次例程:duffing 方程032=++x x x ω的poincare 映射function poincare(tstop) global omega; omega=1;T=2*pi/omega;%线性系统的周期或激励的周期step=T/100;%定义步长为T/100 y0=[0.01;0];%初始条件tspan=[0:step:100*T];%定义时间范围[t,y]=ode45('duffing',tspan,y0);for i=5000:100:10000%稳态过程每个周期取一个点plot(y(i,1),y(i,2),'b.'); hold on;% 保留上一次的图形 endxlabel('y');ylabel('dy/dt');Poincare 映射也可以通过取极值点得到 function poincare(tstop) y0=[0.01;0];tspan=[0:0.01:500];[t,y]=ode45('duffing',tspan,y0); count=find(t>100);%截取稳态过程 y=y(count,:);n=length(y(:,1));%计算点的总数··for i=2:n-1if y(i-1,1)+epsy(i+1,1)+eps % 简单的取出局部最大值plot(y(i,1),y(i,2),'.'); hold on end endxlabel('y');ylabel('dy/dt');6.频谱yy=fft(y(end-1000:end,1)); N=length(yy); power=abs(yy);freq=(1:N-1)*1/step/N;plot(freq(1:N/2),power(1:N/2)); xlabel('f(y)') ylabel('y')7.算例duffing 方程03=++x x x的时间历程,相图,频谱和poincare 映射。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
动力学程序(附程序的详细翻译)第一章第8页,有阻尼单自由度问题%第8页,有阻尼单自由度问题function VTB1(m,c,k,x0,v0,tf) %m是质量,c,k刚度,x0质量块位移,v0质量块速度clc %清屏wn=sqrt(k/m);z=c/2/m/wn;%ζ=n/wn,n=c/2mwd=wn*sqrt(1-z^2);fprintf('固有频率为%.3g.rad/s.\n',wn);%输出wnfprintf('阻尼系数为%.3g.\n',z);%输出ξfprintf('有阻尼的固有频率为%.3g.rad/s.\n',wd);%输出wdt=0:tf/10000:tf;%时域的长短,决定很坐标的长短if z<1 %判断ζ的取值,如果ζ<1,弱阻尼情况,按以下1-10到1-12公式A=sqrt(((v0+z*wn*x0)^2+(x0*wd)^2)/wd^2);phi=atan2(x0*wd,v0+z*wn*x0);%ψ值计算公式x=A*exp(-z*wn*t).*sin(wd*t+phi);fprintf('A=%.3g\n',A);%输出Afprintf('phi=%.3g\n',phi);%输出ψelseif z==1 %临界阻尼情况,按照1-14到1-15公式计算a1=x0;% C1a2=v0+wn*x0;%C2fprintf('a1=%.3g\n',a1);%输出a1fprintf('a2=%.3g\n',a2);%输出a2x=(a1+a2*t).*exp(-wn*t);else %过阻尼,按照1-13公式计算a1=(-v0+(-z+sqrt(z^2-1))*wn*x0)/2/wn/sqrt(z^2-1);a2=(v0+(z+sqrt(z^2-1))*wn*v0)/2/wn/sqrt(z^2-1);fprintf('a1=%.3g\n',a1);%输出a1fprintf('a2=%.3g\n',a2);%输出a2x=exp(-z*wn*t).*(a1*exp(-wn*sqrt(z^2-1)*t)+a2*exp(wn*sqrt(z^2-1)*t));endplot(t,x),grid onxlabel('时间(s)')ylabel('位移(m)')title('位移相对时间的关系')单自由度系统的谐迫振动(P11业)function vtb2(m,c,k,x0,v0,tf,w,f0)%单自由度系统的谐迫振动clc %清屏wn=sqrt(k/m);z=c/2/m/wn;%ζ=n/wn,n=c/2mlan=w/wn %λ的求法1-18公式wd=wn*sqrt(1-z^2);fprintf('固有频率为%.3g.rad/s.\n',wn); %输出Wnfprintf('阻尼系数为%.3g.\n',z);%输出ζfprintf('有阻尼的固有频率为%.3g.rad/s.\n',wd); %输出Wda=sqrt(((v0+z*wn*x0)^2+(x0*wd)^2)/wd^2);t=0:tf/1000:tf;phi1=atan(x0*wd/(v0+z*wn*x0));%按1-12求ψphi2=atan(2*z*lan/(1-lan^2));%求Φb=wn^2*f0/k/sqrt((wn^2-w^2)+(2*z*wn*w)^2);%求B的稳态响应的振幅x=a*exp(-z*wn*t).*sin(sqrt(1-z^2)*wn*t+phi1)+b*sin(w*t-phi2);%响应方程plot(real(t),real(x)),gridxlabel('时间(s)')ylabel('位移(cm)')title('位移与时间的关系')第二章一、矩阵迭代法(P38业,例2-3)function jzdd %矩阵迭代法clear all %清空当前所有数据close all %关闭当前所有的绘图窗口fid1=fopen('A-1','wt'); %建立第一个名为“A-1”的可写文档fid2=fopen('B-1','wt');%同上M(1,1)=2;M(2,2)=1.5;M(3,3)=1; %以上三段代码是为了输入质量矩阵K(1,1)=5;K(1,2)=-2;K(2,1)=-2;K(2,2)=3;K(2,3)=-1;K(3,2)=-1;K(3,3)=1; %输入刚度矩阵D=inv(K)*M; %inv表示对矩阵取逆,公式2-65A=ones(3,1);%定义一个初始迭代阵型,ones()函数表示是3个位为1的单列矩阵,ones(i,j)%则是i行两列都是j都是1的数组!在这方法中一般取ones(i,1),i=质量各数for i=1:3 %进入for循环,将要执行书本上37业的迭代,循环次数为1到i,没执行一次循环代表一个质量块的主阵型pp0=0; %令初始的P(0)=0,并且输出P(0)i %输出iB=D*A; %代入2-60的公式pp=1.0/B(3); %同上,B(3),是你当时定义主阵型时,第i个元素全为1,当然也可以是第一个A=B/B(3); %同上%以上三段代码,是初始赋值while abs((pp-pp0)/pp)>1e-6 % 判断是否满足迭代的条件|P(k)^2-P(k-1)^2|<δ%满足后退出while循环pp0=pp; %P(k)^2=上诉最终的pp值B=D*A;pp=1.0/B(3);A=B/B(3);%真正地迭代代码end %结束while循环f=sqrt(pp)/2/pi %公式2-61fprintf(fid1,'%20.5f',A); %fid为文件句柄,指定要写入数据的文件,format是用来控制所写数据格式的格式符,与fscanf函数相同,A是用来存放数据的矩阵。
fprintf(fid2,'%20.5f',f); %储存fD=D-A*A'*M/(A'*M*A*pp); %下一阶的动力矩阵【D*】,A’代表A的逆矩阵end%结束for循环fid1=fopen('A-1','rt');%读取A-1文档A=fscanf(fid1,'%f',[3,3]);%输入3x3的A矩阵,来源为fid1fid2=fopen('B-1','rt');%读取B-1文档f=fscanf(fid2,'%f',[3,1]);%输入(拾取)3x1的f矩阵,来源是fid2t=1:3;h1=figure('numbertitle','off','name','0','pos',[50 200 420 420]);bar(t,f(t,1)),xlabel('频率阶级次'),ylabel('Hz'),title('固有频率'),hold on,grid %bar代表绘制长条图t代表起点横坐标,f(t,1)纵坐标,输出各阶频率阶次的的固有频率h1=figure('numbertitle','off','name','1','pos',[50 200 420 420]);bar(t,A(t,1)),xlabel('自由度(质量块)'),ylabel('振型向量'),%输出对应的X阶主振型title('1阶主振型'),hold on,gridpause(0.1)%暂停0.1秒h1=figure('numbertitle','off','name','2','pos',[50 200 420 420]);bar(t,A(t,2)),xlabel('自由度(质量块)'),ylabel('振型向量'),title('2阶主振型'),hold on,gridpause(0.1)%暂停0.1秒h1=figure('numbertitle','off','name','3','pos',[50 200 420 420]);bar(t,A(t,3)),xlabel('自由度(质量块)'),ylabel('振型向量'),title('3阶主振型'),hold on,grid二、传递矩阵法(P45页,例2-5)function cdjzclear all %清空当前所有数据close all %关闭当前所有的绘图窗口J1=1;J2=1;J3=2; %定义各个转动惯量Jk2=1100000;k3=1200000;k4=100000; %定义各个刚度的具体数值fid=fopen('chuandi','wt'); %建立打开速度文件M1L=0; %定义变量M1L的初始值为0,M1L为第一个质量块左边的转矩大小for WN=0:.01:2000 %for 循环shita1R=1;M1R=-WN^2*J1; %定义θ1,同时利用公式2-73求出质量块右边的转矩大小M1Rshita2R=shita1R+1/k2*M1R;M2R=shita1R*(-WN^2*J2)+(1+(-WN^2*J2)/k2)*M1R;%求θ2,M2R,应用到2-78公式,问题是这个公式是θL的shita3R=shita2R+1/k2*M2R;M3R=shita2R*(-WN^2*J3)+(1+(-WN^2*J3)/k3)*M2R; %依次类推shita4R=shita3R+1/k4*M3R; %(待分析,不知神马东东)if abs(shita4R)<0.005 %abs()函数,对括号内的所有元素平方后取绝对值;判断精度是否满足,满足后执行WN %搜索到的固有频率(rad/s),并显示shita=[shita1R;shita2R;shita3R;shita4R]%搜索到阵型,并显示bar(shita),xlabel('对应的质量块'),ylabel('振型向量') %画θ矩阵图形pause(1.0) %1秒一暂停end %结束if语句fprintf(fid,'%30.15f',shita4R); %将θ4输到文档中,数据类型是30位数,15位小数的浮点数end %结束for循环fid=fopen('chuandi','rt'); % 此时fid有返回值,当是正数时代表打开文件成功,-1代表失败,rt表示读写x=fscanf(fid,'%f',[1,200001]); %要求输入1到2000001的数t=0:.01:2000;plot(t,x),grid,xlabel('频率rad/s'),ylabel('第四个质量块的转角(rad)'),title('用传递矩阵法求固有频率') 作业(P48-P49)2-8作业题function jzdd2 %第2-8作业题clear all %清空当前所有数据close all %关闭当前所有的绘图窗口fid1=fopen('A-2','wt'); %建立第一个名为“A-1”的可写文档fid2=fopen('B-2','wt'); %同上M(1,1)=1;M(2,2)=1;M(3,3)=1; %以上三段代码是为了输入质量矩阵,依题意均为1K(1,1)=2;K(1,2)=-1;K(2,1)=-1;K(2,2)=2;K(2,3)=-1;K(3,2)=-1;K(3,3)=1; %输入刚度矩阵,依题意均为1D=inv(K)*M; %inv表示对矩阵取逆,公式2-65A=ones(3,1); %定义一个初始迭代阵型,ones()函数表示是3个位为1的单列矩阵,ones(i,j)%则是i行两列都是j都是1的数组!在这方法中一般取ones(i,1),i=质量各数for i=1:3 %进入for循环,将要执行书本上37业的迭代,循环次数为1到i,每执行一次循环代表一个质量块的主阵型pp0=0; %令初始的P(0)=0,并且输出P(0)i %输出iB=D*A; %代入2-60的公式pp=1.0/B(3); %同上,B(3),是你当时定义主阵型时,第i个元素全为1,当然也可以是第1个A=B/B(3); %同上%以上三段代码,是初始赋值while abs((pp-pp0)/pp)>1e-6 % 判断是否满足迭代的条件|P(k)^2-P(k-1)^2|<δ%满足后退出while循环pp0=pp; %P(k)^2=上诉最终的pp值B=D*A;pp=1.0/B(3);A=B/B(3);%真正地迭代代码end %结束while循环f=sqrt(pp) %公式2-61fprintf(fid1,'%20.5f',A); %fid为文件句柄,指定要写入数据的文件,format是用来控制所写数据格式的格式符,与fscanf函数相同,A是用来存放数据的矩阵。