请大家帮帮忙看下我的目标函数编程对不对,谢谢(约束条件先不管!)
1、目标函数,求速度波动最小值 其中 为平均速度 2、设计变量 X=[ x2, x3, x4,x5,x6, x1,x7,x8,x9,x10]—----我没有按顺序排列,为了方便 3、约束条件
我的问题是:目标函数不太会编程.有几个问题没解决。 我的编程思路: 第一,求vi; 第二,求; 第三,求目标函数f)。 注意到,vi是时间t的函数,所以每次循环得到的vi不一样 疑问 1)目标函数中的 n,如何确定? 是设置循环时间的步长吗? 疑问 2)我编写了一个小程序,发现 ,即平均速度不是定值!! 下面是我的程序:请大神帮忙看看,提提改进意见。谢谢! function f=mubiao(x) %目标函数名称 syms t f=0; %目标函数初值 v01=0; %vi的初值设置为0 %以下程序是求 位移、速度(主要是求速度) tt=11:0.1:12; %设置循环时间11s-12s,步长0.1,分成10段 for j=1:length(tt) %第一个for循环 t=tt(j) l1=50/1000; %已知条件 d=pi/180; %%%%以下求速度vi(程序中v8表示)------过程可以不用管
v8=((x(1)/1000))*w61*sin(theta61+x(8))+(x(7)/1000)*w7*sin(theta7); %得到v8,即目标函数中的vi %%求速度之和 v01=v01+v8; End %第一个for循环结束 v0=v01/10; %求平均速度 %以下求目标函数f for i=1:length(tt) %第二个for循环 t=tt(i) v8=(x(1)/1000)*w61*sin(theta61+x(8))+(x(7)/1000)*w7*sin(theta7); f=f+sqrt((v8-v0)^2/10); %目标函数f end %第二个for循环结束
|