本帖最后由 大禹man 于 2017-2-25 16:07 编辑
需要拟合的函数为zeta,用omeg的前两个数计算得到系数a0和a1,他们会在循环过程中随着miu0和miu1变化,我的程序如下,可以运行但是无法得到真实的迭代值,最终的迭代值应该为miu1=500,miu2=100,请大神帮忙看看:handshake
%算例
%*************************************************************
%状态空间模态叠加法
%=============================================================
clc
clear
clear all
freedom=6;%自由度数
m=1;
k=40000;
alpha=20;beta=0.00003;
miu1=500;miu2=100; %松弛因子
I=eye(freedom);
zero=zeros(freedom);
M=m*I;
K=k*(diag(repmat([2], 1, freedom))+diag(repmat([-1], 1, freedom-1), 1)+diag(repmat([-1], 1, freedom-1), -1));
C1=alpha*M;C2=beta*K; %阻尼系数矩阵
% ======写为状态空间形式=====
P=[C1+C2 M -C1/miu1 -C2/miu2;M zero zero zero;-C1/miu1 zero C1/miu1^2 zero;-C2/miu2 zero zero C2/miu2^2];
Q=-[-K zero zero zero;zero M zero zero