弹簧质量阻尼实验指导书汇总.docx
《弹簧质量阻尼实验指导书汇总.docx》由会员分享,可在线阅读,更多相关《弹簧质量阻尼实验指导书汇总.docx(17页珍藏版)》请在冰豆网上搜索。
弹簧质量阻尼实验指导书汇总
质量-弹簧-阻尼系统实验教学指导书
北京理工大学机械与车辆学院
2016.3
实验一:
单自由度系统数学建模及仿真
1实验目的
(1)熟悉单自由度质量-弹簧-阻尼系统并进行数学建模;
(2)了解MATLAB软件编程,学习编写系统的仿真代码;
(3)进行单自由度系统的仿真动态响应分析。
2实验原理
单自由度质量-弹簧-阻尼系统,如上图所示。
由一个质量为m的滑块、一个刚度系数为k的弹簧和一个阻尼系数为c的阻尼器组成。
系统输入:
作用在滑块上的力f(t)。
系统输出:
滑块的位移x(t)。
建立力学平衡方程:
变化为二阶系统标准形式:
其中:
ω是固有频率,ζ是阻尼比。
2.1欠阻尼(ζ<1)情况下,输入f(t)和非零初始状态的响应:
2.2欠阻尼(ζ<1)情况下,输入f(t)=f0*cos(ω0*t)和非零初始状态的的响应:
输出振幅和输入振幅的比值:
3动力学仿真
根据数学模型,使用龙格库塔方法ODE45求解,任意输入下响应结果。
仿真代码见附件
4实验
4.1固有频率和阻尼实验
(1)将实验台设置为单自由度质量-弹簧-阻尼系统。
(2)关闭电控箱开关。
点击setup菜单,选择ControlAlgorithm,设置选择ContinuousTimeControl,Ts=0.0042,然后OK。
(3)点击Command菜单,选择Trajectory,选取step,进入set-up,选取OpenLoopStep设置(0)counts,dwelltime=3000ms,
(1)rep,然后OK。
此步是为了使控制器得到一段时间的数据,并不会驱动电机运动。
(4)点击Data菜单,选择DataAcquisition,设置选取Encoder#1,然后OK离开;从Utility菜单中选择ZeroPosition使编码器归零。
(5)从Command菜单中选择Execute,用手将质量块1移动到2.5cm左右的位置(注意不要使质量块碰触移动限位开关),点击Run,大约1秒后,放开手使其自由震荡,在数据上传后点击OK。
(6)点击Plotting菜单,选择SetupPlot,选取Encoder#1Position;然后点击Plotting菜单,选择PlotData,则将显示质量块1的自由振动响应曲线。
(7)在得到的自由振动响应曲线图上,选择n个连续的振幅明显的振动周期,计算出这段振动的时间t,由n/t即可得到系统的频率,将Hz转化为rad/sec即为系统的振动频率ω。
(8)在自由振动响应曲线图上,测量步骤7选取时间段内初始振动周期的振幅X0以及末尾振动周期的振幅Xn。
由对数衰减规律即可求得系统阻尼比。
(9)实验数据记录
序号
第1次实验
第2次实验
第3次实验
实验测试频率
实验测试阻尼比
滑块质量m
弹簧刚度k
阻尼系数c
频率理论值
阻尼比理论值
频率估计误差
阻尼比估计误差
(10)在仿真代码基础上,计算出实验结果对应的理论结果。
对比分析理论和实验结果的差异。
完成实验报告。
4.2幅频特性实验
(1)点击Command菜单,选择Trajectory,选取Sinuscidal,进入set-up,选取OpenLoopStep设置Amplitude(0.5V),Frequency(2Hz),Repetition(8),然后OK。
(2)从Utility菜单中选择ZeroPosition使编码器归零。
从Command菜单中选择Execute,点击Run,在数据上传后点击OK。
(3)然后点击Plotting菜单,选择PlotData,则将显示滑块的受迫振动响应曲线。
在响应曲线图上,测量出振动振幅,计算出振动的频率并于输入的正弦曲线频率比较。
(4)根据实验情况,改变输入的正弦曲线频率的大小,重复上述,纪录实验数据。
输入频率
滑块实验幅值
滑块仿真幅值
0.1Hz
0.2Hz
(5)在仿真代码基础上,实现正弦激励代码,计算出实验结果对应的理论结果。
对比分析理论和实验结果的差异。
完成实验报告。
实验二:
双自由度系统数学建模及仿真
1实验目的
(1)熟悉双自由度质量-弹簧-阻尼系统并进行数学建模;
(2)了解MATLAB软件编程,学习编写系统的仿真代码;
(3)进行双自由度系统的仿真动态响应分析。
2实验原理
2.1数学建模
双自由度质量-弹簧-阻尼系统,如上图所示。
由两个质量为m1和m2的滑块、两个刚度系数为k1和k2的弹簧和两个阻尼系数为c1和c2的阻尼器组成。
系统输入:
作用在滑块上的力f(t)。
系统输出:
滑块的位移x1(t)和x2(t)。
建立力学平衡方程:
2.2固有频率
将动力学方程写成矩阵形式:
得到系统的质量矩阵M和刚度矩阵K。
解行列式可得固有频率方程:
可计算出固有频率方程:
两个振动模态,两个固有频率:
高模和低模。
2.3解耦
通过数学变换将微分方程变化为以下形式:
注意:
y1和y2不是滑块的位移。
滑块的位移x1(t)和x2(t)是y1和y2的函数。
3动力学仿真
根据数学模型,使用龙格库塔方法ODE45求解,任意输入下响应结果。
仿真代码见附件
4实验
4.1固有频率分析
(1)将实验台设置为双自由度质量-弹簧-阻尼系统,第一个滑块没有阻尼器可以不接,认为第一个阻尼为零。
(2)闭合控制器开关,点击setup菜单,选择ControlAlgorithm,设置选择ContinuousTimeControl,Ts=0.0042,然后OK。
点击Command菜单,选择Trajectory,选取step,进入set-up,选取OpenLoopStep设置(0)counts,dwelltime=3000ms,
(1)rep,然后OK。
此步是为了使控制器得到一段时间的数据,并不会驱动电机运动。
(2)点击Data菜单,选择DataAcquisition,设置分别选取Encoder#1,Encoder#2,然后OK离开;从Utility菜单中选择ZeroPosition使编码器归零。
(4)从Command菜单中选择Execute,用手将质量块1移动到2.5cm左右的位置(注意不要使质量块碰触移动限位开关),点击Run,大约1秒后,放开手使其自由振荡,在数据上传后点击OK。
(5)点击Plotting菜单,选择SetupPlot,分别选取Encoder#1Position,Encoder#2
Position;然后点击Plotting菜单,选择PlotData,则将显示质量块1,2的自由振动响应曲线。
(6)实验数据纪录:
实验条件:
滑块质量m1和m2,弹簧刚度k1和k2,阻尼系数c1和c2。
实验数据:
时间-滑块1位移数据;时间-滑块2位移数据。
问题1:
两个滑块位移的频率测量值是高模和低模频率么?
问题2:
实际的机械系统是多自由度的,如何通过实验法测试系统固有频率?
(7)实验报告。
关键点是理论和实验结果对比分析。
4.2幅频特性实验
(1)点击Command菜单,选择Trajectory,选取Sinuscidal,进入set-up,选取OpenLoopStep设置(200counts)Amplitude,Frequency(2Hz),Repetition(8),然后OK。
(2)从Utility菜单中选择ZeroPosition使编码器归零。
从Command菜单中选择Execute,点击Run,在数据上传后点击OK。
(3)然后点击Plotting菜单,选择PlotData,则将显示质量块1,2的受迫振动响应曲线。
在响应曲线图上,即可测量出振动振幅。
问题1:
单自由度和双自由度系统的幅频特性有何差异?
问题2:
高模贡献分析。
实验三:
PID控制
1实验目的
(1)学习PID闭环控制结构和系统闭环传递函数计算;
(2)PID控制器参数设计;
(3)控制性能分析。
2实验原理
上图给出闭环控制系统原理框图。
单自由度质量-弹簧-阻尼系统结构下,断开弹簧和阻尼,仅仅保留滑块质量m。
电控箱可以看做比例增益khw。
其中:
u是控制器输出。
PID控制:
其中:
e是比较器输出,参考输入与实际输出的偏差值。
根据全部上式,可得闭环结构微分方程:
对应的传递函数:
3PID设计
PID控制器中设置积分因子ki为零,则为PD控制。
传递函数变为:
闭环特征方程是分母:
设计频率ω=4Hz,三种阻尼(欠阻尼ζ=0.2,临界ζ=1.0,过阻尼ζ=2.0)的控制器设计。
ω=4Hz
khwkp
khwkd
ζ=0
ζ=0.2
ζ=1
ζ=2.0
4实验
4.1频率
(1)在控制器断开的情况下,拆除与质量块1连接的弹簧,使其余元件远离质量块1的运动范围,为其安装4个500g的铜块,加上小车本身的质量,标定总质量m=2.6kg。
(2)实验标定khw值:
根据估计出的khw值,设置控制器ki=0和kd=0,调整kp来估计系统系统频率ω=4Hz。
注意:
kp不能大于0.08。
(3)闭合控制器开关;点击Data菜单,选择DataAcquisition,设置选取Encoder#1和CommandedPositioninformation;点击Command菜单,选择Trajectory,选取step,设置(0)counts,dwelltime=3000ms,
(1)rep。
(4)点击setup菜单,选择ControlAlgorithm,设置选择ContinuousTimeControl,Ts=0.0042,选取PID,进入SetupAlgorithm,输入kp的值(ki=0和kd=0)(输入的值不能大于kp=0.08),然后OK。
移动质量块1到-0.5cm的位置(规定,朝电机方向为负)选择ImplementAlgorithm,然后Ok。
注意:
从此步开始的每一步,要进行下一步之前,都要与运动装置保持一定的安全距离;选择ImplementAlgorithm后,控制器将会立即加载,若出现不稳定的或者很大的控制信号时,运动装置可能反应很剧烈;若加载后,系统看上去稳定,要先用一轻质不尖锐的物体轻轻碰触质量块以验证其稳定性。
(5)点击Command菜单,进入Execute,用手将质量块移动到2cm左右的位置,点击Run,移动质量块大约到3cm位置,然后释放(不要拿着质量块多于一秒,以免电机过热而断开控制)。
(6)点击Plotting菜单,选择SetupPlot,选取Encoder#1;然后点击Plotting菜单,选择PlotData,则将显示质量块1的时间响应曲线。
试想一下,若将比例增益系数kp增加一倍,则系统的响应频率将有什么变化?
4.2阻尼
(1)确定kd的值(不能大于0.04),使得khwkd=50N/(m/s),重复步骤4,除了输入kd的值和ki=0和kp=0。
(2)先用尺子检查系统的稳定性,然后用手来回的移动质量块来感受系数kd带来的粘性阻尼的影响(注意不要极度的迫使质量块运动,以免电机过热而断开控制)。
(3)增大的kd值(kd<0.04),重复以上步骤,看能否感受到阻尼的增大?
4.3位置控制
(1)控制电机驱动滑块1移动到某一个特定的位置,获取时间-位移数据后,计算闭环控制特性,包括:
超调量、上升时间、调节时间、稳态误差。
(2)使用仿真方法计算得到同样条件下的动态响应结果,对比分析理论与实验结果的差异。
4.4正弦激励
(1)使用正弦输入驱动滑块作正弦运动,获取时间-位移数据后,计算闭环控制系统幅频特性。
(2)使用仿真方法计算得到同样条件下的幅频响应结果,对比分析理论与实验结果的差异。
4.5柔性结构控制
(1)实验台只有质量块,为刚性结构机械系统。
如果安装上一根弹簧,则组成简单的柔性结构系统(具有柔性环节)。
此时机械系统由于能量交互可能产生振动。
如何设计控制器来动态控制机械振动。
实验四:
扰动抑制
1实验目的
(1)外扰动设置;
(2)PID控制器设计;
(3)控制性能分析。
2实验原理
上图给出闭环控制系统原理框图。
单自由度质量-弹簧-阻尼系统结构下,断开弹簧和阻尼,仅仅保留滑块质量m。
位移输出受到外扰动d干扰。
电控箱可以看做比例增益khw。
其中:
u是控制器输出。
PID控制:
其中:
e是比较器输出,参考输入与实际输出的偏差值。
根据全部上式,可得闭环结构微分方程:
对应的传递函数:
3PID设计
PID控制器中设置积分因子ki为零,则为PD控制。
传递函数变为:
闭环特征方程是分母:
附件1:
实验1仿真代码
%exp1
clc
clear
globalSKSCSMSF;
sampling=1/1000;
SK=200;
SC=0;
SM=2.6;
State=zeros(1,2);
State
(1)=1;
State
(2)=0.0;
sss=zeros(1,1);
fork=1:
fix(5/sampling)
t=k*sampling;
sss(k,1)=t;%time
SF=0;
sss(k,2)=SF;
[TimeOdeArray,VarOdeArray]=ode45(@mdlDerivatives1,[tt+sampling],State);
[m,n]=size(TimeOdeArray);
TimeAtEndOfArray=TimeOdeArray(m,1);
if(abs(TimeAtEndOfArray-(t+sampling))>=abs(0.001*sampling))warning('numericalintegrationfailed');break;end
VAR=VarOdeArray(m,:
);%Ò»¸ö²½³¤½áÊøµÄ״̬
State=VAR;%³õʼ״̬¸üУ¬½øÐÐÏÂÒ»´Îµü´ú
sss(k,3)=VAR
(1);%response
sss(k,4)=VAR
(2);%velocity
end
plot(sss(:
1),sss(:
2),'r',sss(:
1),sss(:
3),'k',sss(:
1),sss(:
4),'b');
%mdlDerivatives1
functiondx=mdlDerivatives1(T,x)
globalSKSCSMSF;
%y
(1)=x;
%y
(2)=xd;
dx=zeros(2,1);
%sloshingdynamics
dx
(1)=x
(2);
dx
(2)=SF/SM-SK/SM*x
(1)-SC/SM*x
(2);
附件2:
实验2仿真代码
%exp2
clc
clear
globalSK1SK2SC1SC2SM1SM2SF;
sampling=1/1000;
SK1=200;
SK2=200;
SC1=0;
SC2=0;
SM1=2.6;
SM2=2.6;
State=zeros(1,4);
State
(1)=1.0;
State(3)=0.0;
sss=zeros(1,1);
fork=1:
fix(5/sampling)
t=k*sampling;
sss(k,1)=t;%time
SF=0;
sss(k,2)=SF;
[TimeOdeArray,VarOdeArray]=ode45(@mdlDerivatives2,[tt+sampling],State);
[m,n]=size(TimeOdeArray);
TimeAtEndOfArray=TimeOdeArray(m,1);
if(abs(TimeAtEndOfArray-(t+sampling))>=abs(0.001*sampling))warning('numericalintegrationfailed');break;end
VAR=VarOdeArray(m,:
);%Ò»¸ö²½³¤½áÊøµÄ״̬
State=VAR;%³õʼ״̬¸üУ¬½øÐÐÏÂÒ»´Îµü´ú
sss(k,3)=VAR
(1);%response1
sss(k,4)=VAR
(2);%velocity1
sss(k,5)=VAR(3);%response2
sss(k,6)=VAR(4);%velocity2
end
plot(sss(:
1),sss(:
2),'r',sss(:
1),sss(:
3),'k',sss(:
1),sss(:
5)-sss(:
3),'b');
%mdlDerivatives2
functiondx=mdlDerivatives2(T,x)
globalSK1SK2SC1SC2SM1SM2SF;
%x
(1)=x1;
%x
(2)=x1d;
%x(3)=x2;
%x(4)=x2d;
dx=zeros(4,1);
%sloshingdynamics
dx
(1)=x
(2);
dx
(2)=(SF-SC1*x
(2)+SC1*x(4)-SK1*x
(1)+SK1*x(3))/SM1;
dx(3)=x(4);
dx(4)=(-1*SC2*x(4)-SC1*x(4)+SC1*x
(2)-SK1*x(3)-SK2*x(3)+SK1*x
(1))/SM2;
附件3快速傅里叶变换FFT计算频率代码
%frequencyresponse
sampling=1/1000;
Fs=fix(1/sampling);
data=sss(1:
fix(5/sampling),3);
m=length(data);
nfft=2^nextpow2(m);
y=fft(data,nfft);%¸µÀïÒ¶±ä»»
Ayy=abs(y)*2/nfft;
f0=(0:
nfft/2-1)*Fs/nfft;%Hz,1/s
f1=f0*2*pi;%rad/s
zzz(:
1)=f0;
zzz(:
2)=f1;
zzz(:
3)=Ayy(1:
nfft/2);
plot(zzz(:
1),zzz(:
3));
xlabel('frequency/Hz');
ylabel('magnitude');
title('freqencyresponse');
1Command/Trajectory
输入命令
2Command/Execute
执行
3plotting/Setupplot
绘图运动轨迹
4Setup改变控制器