pumac 发表于 2007-6-30 11:47

道路动态称重的精细逐步积分法

各位好,我是新来的。

当车辆以20km/h的速度压过动态称台时,会记录下一连串的非线性的压力信号,一般包括车辆振动和车自重。如何用精细逐步积分法来分析获得的非线性压力曲线,并得到一个大致压力的结果。

能否介绍些精细逐步积分法的内容?

风花雪月 发表于 2007-7-2 10:45

关于动态称重的理论分析可以参考
http://www.quzhi.net/chinese/pdf/WIM.pdf

风花雪月 发表于 2007-7-2 10:52

不知道你想用精细逐步积分法,是否是求解动力学方程?

至于其原理可以参考钟万勰的论著

[ 本帖最后由 风花雪月 于 2007-7-2 10:55 编辑 ]

风花雪月 发表于 2007-7-2 10:56

下面是一个精细积分求解结构动力学方程的程序,你可以参考一下

%clear;
%A=zeros(2);
%C=A;
%D=;
%B=[-6,2;2,-4];
%定义质量矩阵
M = ;
%定义刚度矩阵
K = ;
%定义比例阻尼
alpha = 0.01;
bita = 0.02;
G = alpha*M+bita*K;
iM = inv(M);
A = -0.5*iM*G;
B = 0.25*G*iM*G-K;
C = -0.5*G*iM;
D = iM;
%
%A=zeros(3);
%C=A;
%D=;
%B=[-6 2 2;2 -4 2; 2 2 -5];
%定义初始时刻的外力向量
%f0=;
f0=';
f1=zeros(size(f0));
%形成哈密尔顿矩阵
H=;
%计算的结束时间
tf=20;
%下面的定义是为了验证在不同步长情况下,精细积分的精度之间的差别
step=; % different step size
%这一般是精细积分计算的缺省值
N=20;
%figure;
grid;
hold on;
str=['o','x','b-'];
for jj = 1:3
   %time,vector的维数和tf/step(jj)的值相等
   =jxjf1(H,f0,f1,step(jj),tf,N);
   plot(time,vector(:,1),'r-');
   plot(time,vector(:,2),'g-');
   plot(time,vector(:,3),'b-');
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function =jxjf1(H,f0,f1,time_step,tf,N)
%
% time:计算的时间序列,一列
% matrix:计算的结果,矩阵,按照列分为两半,前一半为节点位移的响应,前一半为节点动量的响应,
%
    %定义与哈密尔顿矩阵同阶的单位矩阵
    I=eye(size(H));
   
    %需要计算增扩矩阵的逆
    iH=inv(H);
   
    %精细积分的输入为:步长、一个正整数、增扩矩阵、外力向量初值
    %PIM begin 精细积分方法开始
    dt=time_step/2^N;%将每一个步长分为2的整幂次方份
   
    % Ta=H*dt+(H*dt)^2*(I+(H*dt)/3+(H*dt)^2/12)/2;
    temp = H*dt;
    temp1 = temp*temp;
    Ta=temp+temp1*(I+temp/3+temp1/12)/2;
   
    %对每一份计算
    for iter=1:N
      Ta=2*Ta+Ta*Ta;%化简成Ta=(2+Ta)*Ta有些问题 huhu
    end
    %定义一个新变量
    T=I+Ta;
   
    %vk=;%定义一个列向量
    vk=zeros(max(size(H)),1);%定义一个列向量 huhu
   
    number = tf/time_step;
    %number
    matrix = [];
    for iter=1:number;
      
      matrix = ;
      
      %iter
      t(iter)=time_step*(iter-1);
      %v(iter)=vk(1);
      %vk=T*(vk+iH*(f0+iH*f1))-iH*(f0+iH*f1+f1*step(jj));
      temp = iH*(f0+iH*f1);
      vk=T*(vk+temp)-temp-iH*f1*time_step;
    end
    time = t(1:number)';
    %vector = v;
    matrix = matrix';
end
页: [1]
查看完整版本: 道路动态称重的精细逐步积分法