声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 2487|回复: 11

[编程技巧] 悬置优化设计出现问题,请教大家

[复制链接]
发表于 2013-7-3 15:53 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
编写了悬置优化的程序,运行出现很多bug。。。老是出不了结果。。请教知道这方面的大哥大姐。。。或者知道怎么解决matlab问题这块的。。万分感谢啊~~~如图。。显示错误:翻译过来应该是啥搜索方向跟默认搜索步长误差问题的。。。导致找不到可行点。。exitflag=-2.。。。。大问题啊。。可恨的是貌似收敛。。迭代可以出结果。。就是找不到可行点。。不懂啥意思。。个人e-mail:jms_pursuit@163.com

跪谢!!!~~~~~~洒泪飘过。。整好久还是没出来~~~~
QQ截图20130703154803.jpg

本帖被以下淘专辑推荐:

回复
分享到:

使用道具 举报

 楼主| 发表于 2013-7-3 15:54 | 显示全部楼层
这是迭代次数。。。
QQ截图20130703155141.jpg
发表于 2013-7-3 19:32 | 显示全部楼层
LZ来论坛快一年了, 还不知道!?
求助完整格式:出错代码和出错提示
 楼主| 发表于 2013-7-3 21:02 | 显示全部楼层

不好意思。。没有注意到。。因为开始主要是想问可能性。。给与指点。。
 楼主| 发表于 2013-7-3 22:41 | 显示全部楼层
下面的是优化的几个程序。。希望能有朋友能够帮忙找出bug!!!非常感谢
e-mail:jms_pursuit@163.com




%%%优化主程序%%%
%%%%%%%%%%%%%%%%


clear
clc
x0=[84000,84000,480000,84000,84000,480000,105000,302000,260000];
lb=[30000,100000,100000,30000,100000,100000,100000,100000,100000];
ub=[100000,400000,400000,100000,400000,400000,400000,400000,400000];
option=optimset('Algorithm','interior-point','MaxFunEvals',20000,'MaxIter',2000);
% option.MaxFunEvals=50000;
% option.MaxIter=2000;
[x,fval,exitflag,output]=fmincon(@opt_jieou_myfun,x0,[],[],[],[],...
    lb,ub,@opt_jieou_mycon,option)






%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%目标函数%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


function PX=opt_jieou_myfun(x)
%各刚度轴与主轴角度
kp1=x(1);
kq1=x(2);
kr1=x(3);
kp2=x(4);
kq2=x(5);
kr2=x(6);
kp3=x(7);
kq3=x(8);
kr3=x(9);

theta_p1=0;phi_p1=pi/2;sigma_p1=pi/2;
theta_q1=pi/2;phi_q1=40/180*pi;sigma_q1=130/180*pi;
theta_r1=pi/2;phi_r1=50/180*pi;sigma_r1=40/180*pi;

theta_p2=pi;phi_p2=pi/2;sigma_p2=pi/2;
theta_q2=pi/2;phi_q2=140/180*pi;sigma_q2=130/180*pi;
theta_r2=pi/2;phi_r2=130/180*pi;sigma_r2=40/180*pi;

theta_p3=0;phi_p3=pi/2;sigma_p3=pi/2;
theta_q3=pi/2;phi_q3=0;sigma_q3=pi/2;
theta_r3=pi/2;phi_r3=pi/2;sigma_r3=0;

%三个刚度值大小

% kp1=84000;kq1=84000;kr1=480000;
% kp2=84000;kq2=84000;kr2=480000;
% kp3=105000;kq3=302000;kr3=260000;

%悬置弹性中心坐标(悬置在整车坐标系中的坐标)

A1=-145.729e-3;B1=-247.71e-3;C1=-63.569e-3;
A2=-145e-3;B2=252.29e-3;C2=-63.569e-3;
A3=686.271e-3;B3=2.29e-3;C3=-251.569e-3;

%质量阵[M]

m0=[226.27,226.27,226.27];
m=diag(m0);
I0=[8.21 1.265 4.496;...
    1.265 22.038 -3.804;...
    4.496 -3.804 20.183];
X=zeros(3);
M=[m X;X I0];
%%构造获得刚度矩阵[K]

F1=[1  0 0 0 C1 -B1;0 1 0 -C1 0 A1;0 0 1 B1 -A1 0];
F2=[1  0 0 0 C2 -B2;0 1 0 -C2 0 A2;0 0 1 B2 -A2 0];
F3=[1  0 0 0 C3 -B3;0 1 0 -C3 0 A3;0 0 1 B3 -A3 0];
D1=[kp1,kq1,kr1];
D2=[kp2,kq2,kr2];
D3=[kp3,kq3,kr3];
K1=diag(D1);
K2=diag(D2);
K3=diag(D3);
%%%悬置各个刚度方向与总成坐标系夹角余弦

T1=[cos(theta_p1) cos(phi_p1) cos(sigma_p1);cos(theta_q1) cos(phi_q1) cos(sigma_q1);...
    cos(theta_r1) cos(phi_r1) cos(sigma_r1)];
T2=[cos(theta_p2) cos(phi_p2) cos(sigma_p2);cos(theta_q2) cos(phi_q2) cos(sigma_q2);...
    cos(theta_r2) cos(phi_r2) cos(sigma_r2)];
T3=[cos(theta_p3) cos(phi_p3) cos(sigma_p3);cos(theta_q3) cos(phi_q3) cos(sigma_q3);...
    cos(theta_r3) cos(phi_r3) cos(sigma_r3)];
K=F1'*T1'*K1*T1*F1+F2'*T2'*K2*T2*F2+F3'*T3'*K3*T3*F3;
%%计算固有频率
A=inv(M)*K;
[v,d]=eig(A);
w=sqrt(d);
f=w/(2*pi);
Energy=zeros(6);
F=zeros(6);
for i=1:6 %计算能量在各自由度方向的分布
    for l=1:6
        for k=1:6
            Energy(l,k)=v(k,i)*v(l,i)*M(k,l);
        end
    end
    T=sum(Energy);% 在i阶时候,获得的6x6矩阵每列的和,即为1x6阶矩阵
    TT=sum(T);% 对应i阶时候1x6矩阵的总和
    P=T/TT;% 第i阶时候各方向的能量占比
    F(:,i)=P;% 整行赋值给矩阵F第i列   
end
F=F*100;
PX=-(1.3*max(F(:,1)))-(3*max(F(:,2)))-(1.5*max(F(:,3)))-(2*max(F(:,4)))-...
    (3*max(F(:,5)))-(0.5*max(F(:,6)));





%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%约束方程,通过频率匹配%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


function [c,ceq]=opt_jieou_mycon(x)

kp1=x(1);
kq1=x(2);
kr1=x(3);
kp2=x(4);
kq2=x(5);
kr2=x(6);
kp3=x(7);
kq3=x(8);
kr3=x(9);

theta_p1=0;phi_p1=pi/2;sigma_p1=pi/2;
theta_q1=pi/2;phi_q1=40/180*pi;sigma_q1=130/180*pi;
theta_r1=pi/2;phi_r1=50/180*pi;sigma_r1=40/180*pi;

theta_p2=pi;phi_p2=pi/2;sigma_p2=pi/2;
theta_q2=pi/2;phi_q2=140/180*pi;sigma_q2=130/180*pi;
theta_r2=pi/2;phi_r2=130/180*pi;sigma_r2=40/180*pi;

theta_p3=0;phi_p3=pi/2;sigma_p3=pi/2;
theta_q3=pi/2;phi_q3=0;sigma_q3=pi/2;
theta_r3=pi/2;phi_r3=pi/2;sigma_r3=0;

%三个刚度值大小

% kp1=84000;kq1=84000;kr1=480000;
% kp2=84000;kq2=84000;kr2=480000;
% kp3=105000;kq3=302000;kr3=260000;

%悬置弹性中心坐标(悬置在整车坐标系中的坐标)

A1=-145.729e-3;B1=-247.71e-3;C1=-63.569e-3;
A2=-145e-3;B2=252.29e-3;C2=-63.569e-3;
A3=686.271e-3;B3=2.29e-3;C3=-251.569e-3;

%质量阵[M]

m0=[226.27,226.27,226.27];
m=diag(m0);
I0=[8.21 1.265 4.496;...
    1.265 22.038 -3.804;...
    4.496 -3.804 20.183];
X=zeros(3);
M=[m X;X I0];
%%构造获得刚度矩阵[K]

F1=[1  0 0 0 C1 -B1;0 1 0 -C1 0 A1;0 0 1 B1 -A1 0];
F2=[1  0 0 0 C2 -B2;0 1 0 -C2 0 A2;0 0 1 B2 -A2 0];
F3=[1  0 0 0 C3 -B3;0 1 0 -C3 0 A3;0 0 1 B3 -A3 0];
D1=[kp1,kq1,kr1];
D2=[kp2,kq2,kr2];
D3=[kp3,kq3,kr3];
K1=diag(D1);
K2=diag(D2);
K3=diag(D3);
%%%悬置各个刚度方向与总成坐标系夹角余弦

T1=[cos(theta_p1) cos(phi_p1) cos(sigma_p1);cos(theta_q1) cos(phi_q1) cos(sigma_q1);...
    cos(theta_r1) cos(phi_r1) cos(sigma_r1)];
T2=[cos(theta_p2) cos(phi_p2) cos(sigma_p2);cos(theta_q2) cos(phi_q2) cos(sigma_q2);...
    cos(theta_r2) cos(phi_r2) cos(sigma_r2)];
T3=[cos(theta_p3) cos(phi_p3) cos(sigma_p3);cos(theta_q3) cos(phi_q3) cos(sigma_q3);...
    cos(theta_r3) cos(phi_r3) cos(sigma_r3)];
K=F1'*T1'*K1*T1*F1+F2'*T2'*K2*T2*F2+F3'*T3'*K3*T3*F3;
%%计算固有频率

A=inv(M)*K;
[v,d]=eig(A);
w=sqrt(d);
f=w/(2*pi);

c(1)=f(1)-17.7;
c(2)=f(2)-17.7;
c(3)=f(3)-17.7;
c(4)=f(4)-17.7;
c(5)=f(5)-17.7;
c(6)=f(6)-17.7;
c(7)=5-f(1);
c(8)=5-f(2);
c(9)=5-f(3);
c(10)=5-f(4);
c(11)=5-f(5);
c(12)=5-f(6);
ceq=[];




 楼主| 发表于 2013-7-6 10:58 | 显示全部楼层
依旧没人鸟。。。好悲催啊。。哪位大神帮忙啊。。。。
发表于 2013-7-23 16:47 | 显示全部楼层
最小化约束我也有做过,有时候可能不是语法的问题,也许就是不符合实际情况,楼主或许在看看这方面。菜鸟也帮不了什么忙
 楼主| 发表于 2013-7-24 14:55 | 显示全部楼层
小狐和小狐 发表于 2013-7-23 16:47
最小化约束我也有做过,有时候可能不是语法的问题,也许就是不符合实际情况,楼主或许在看看这方面。菜鸟也 ...

???在探讨探讨。。。不符合实际情况什么意思??
发表于 2013-7-25 10:33 | 显示全部楼层
j蘅芜君 发表于 2013-7-24 14:55
???在探讨探讨。。。不符合实际情况什么意思??

或许物理模型有点问题?
 楼主| 发表于 2013-7-25 10:40 | 显示全部楼层
小狐和小狐 发表于 2013-7-25 10:33
或许物理模型有点问题?

Q 956840721  详聊。。很多不懂
发表于 2013-7-25 11:24 | 显示全部楼层
j蘅芜君 发表于 2013-7-25 10:40
Q 956840721  详聊。。很多不懂

我也什么都不懂啊,只是之前有做过简单的东西,最后发现是自己模型不符合实际。要不你再去matlab论坛问问?
 楼主| 发表于 2013-7-25 15:07 | 显示全部楼层
小狐和小狐 发表于 2013-7-25 11:24
我也什么都不懂啊,只是之前有做过简单的东西,最后发现是自己模型不符合实际。要不你再 ...

好吧 。。。3q
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-5-9 08:26 , Processed in 0.195735 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表