声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 837|回复: 6

[综合讨论] 请大家帮我看看这段优化程序的错误

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

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

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

x
下面是写的对汽车转向梯形结构参数进行优化的程序,用到了优化工具箱。写好后总有错误,小弟我改了许多方面还是改不对,希望高手们能帮帮忙!程序如下:
第一部分,名为fun.m的M函数,定义了函数fun
function f=fun(x)
for i=1:60
f=0; %函数值初始化
betae=atan(tan(alpha(i))/(1-K/L)*tan(alpha(i))); % 写计算转角期望值
A=2*x(1).^2*sin(x(2)+alpha(i));   %计 算 实 际 转 角
B=2*K*x(1)-2*x(1).^2*cos(x(2)+alpha(i));
C=2*x(1).^2-4*x(1).^2*(cos(x(2))).^2+4*K*x(1)*cos(x(2)-2*K*x(1)*cos(x(2)+alpha(i)));
theta3=2*acot((A(i)+sqrt(A(i).^2+B(i).^2-C(i).^2))/(B(i)+C(i)));
beta=x2+theta3(i)-pi;
if alpha(i)<=pi/18   %计算目标函数值
f(i)=1.5*abs(beta(i)-betae(i));
elseif alpha(i)<=pi/180
    f(i)=abs(beta(i)-betae(i));
else f(i)=0.5*abs(beta(i)-betae(i));
end
end
第二部分,名为untitled.m的M文件,来执行优化
global K L thetamax alpha
K=input('输入两主销中心线间距(单位mm)K=');       %提示输人结构参数
L=input('输人轴距(单位mm)L=');
thetamax=input('输人外转向轮最大转角(单位为度)=');
x0(1)=input('输人初始点的第1个分量(臂长、mm)=');
x0(2)=input('输人初始点的第2个分量(底角、度)=');
thetamax=thetamax*pi/180; %转换为弧度单位
x0(2)=x0(2)*pi/180;
lb(1)=0.1*K;
lb(2)=acot(K/(1.2*L));
ub(1)=0.17*K;
ub(2)=pi/2;
alpha=linspace(0,thetamax,60); %将转角划分为60等分间隔
lb=[lb(1);lb(2)]; %定义上、下边界约束条件和允差
ub=[ub(1);ub(2)];
x0=[x0(1);x0(2)];
options=optimset('TolFun',1e-10,'TolCon',1e-6);
[x,resnorm]=lsqnonlin(@fun,x0,lb,ub,options);     %调用lsqnonlin函数求解

现在任务很急,希望大家能帮帮我。先谢谢大家了!
回复
分享到:

使用道具 举报

发表于 2008-7-21 16:48 | 显示全部楼层

回复 楼主 的帖子

有什么样的错误
 楼主| 发表于 2008-7-21 23:38 | 显示全部楼层

回复 2楼 的帖子

说fun.m里的输入变量未定义:??? Input argument "x" is undefined.
目前是这个。可是他是函数的自变量啊
发表于 2008-7-21 23:42 | 显示全部楼层
x(1)  x(2)  换掉
发表于 2008-7-21 23:44 | 显示全部楼层
fun.m第9行中的
beta=x2+theta3(i)-pi;

x2是什么?是不是应该是x(2)呀?

评分

1

查看全部评分

 楼主| 发表于 2008-7-22 20:30 | 显示全部楼层

回复 5楼 的帖子

对的,是x(2),打错了,不好意思
 楼主| 发表于 2008-7-22 20:32 | 显示全部楼层

回复 4楼 的帖子

请问怎么换?x本身是一个向量,即x=[x(1);x(2)]
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-9-23 05:28 , Processed in 0.058573 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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