-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathnonlcon.m
38 lines (36 loc) · 793 Bytes
/
nonlcon.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
%file: nonlcon.m
function [ce, ceq] = nonlcon(v)
%·ÇÏßÐÔÔ¼ÊøÌõ¼þnonlcon
global W
global beta
global alpha
global rho
global n
global M
global g
global miu
global K
global vw
global det_L
global CP
global v0
V = 1:n;
V(1) = (v(1)+v0)/2;
for i=2:n
V(i)=(v(i)+v(i-1))/2;
end
ce = 0;
ceq = [];
for i=1:n
WF = M*(g*cos(alpha(i))+V(i).^2/rho(i))*miu(i);
WG = M*g*sin(alpha(i));
WW = K*(V(i)+vw*cos(beta(i))).^2;
t = det_L(i)/V(i);
if i==1
ce = ce + max(0,(WF+WG+WW)*det_L(i) + 0.5*M*(v(i).^2) - CP * t);
else
ce = ce + max((WF+WG+WW)*det_L(i) + 0.5*M*(v(i).^2-v(i-1).^2) - CP * t,0);
end
end
ce = ce - W;
end