| 1 | 1/1 | 返回列表 |
| 查看: 931 | 回復(fù): 0 | ||
jjliu2012新蟲(chóng) (小有名氣)
|
[求助]
【求助 一個(gè)關(guān)于最優(yōu)控制的matlab問(wèn)題(新手,請(qǐng)大家多多幫助)
|
|
Sample Text 最速下降法求最優(yōu)控制u的matlab算法,各位大俠能否把這個(gè)主循環(huán)補(bǔ)充一下,不知道怎么回事,運(yùn)行不了 。是附件里文獻(xiàn)的例子2,在第7頁(yè),多謝 %%%%%%%%%%%%%%%%%%%%%% for i = 1:max_iteration % 1) start with assumed control u and move forward [Tx,X] = ode45(@(t,x) stateEq(t,x,u,Tu), [t0 tf], ... initx, options); % 2) Move backward to get the trajectory of costates x1 = X(:,1); x2 = X(:,2); [Tp,P] = ode45(@(t,p) costateEq(t,p,u,Tu,x1,x2,Tx), ... [tf t0], initp, options); p1 = P(:,1); % Important: costate is stored in reverse order. The dimension of % costates may also different from dimension of states % Use interploate to make sure x and p is aligned along the time axis p1 = interp1(Tp,p1,Tx); % Calculate deltaH with x1(t), x2(t), p1(t), p2(t) dH = pH(x1,p1,Tx,u,Tu); H_Norm = dH'*dH; % Calculate the cost function J(i,1) = tf*(((x1')*x1 + (x2')*x2)/length(Tx) + ... 0.1*(u*u')/length(Tu)); % if dH/du < epslon, exit if H_Norm < eps % Display final cost J(i,1) break; else % adjust control for next iteration u_old = u; u = AdjControl(dH,Tx,u_old,Tu,step); end; end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % State equations function dx = stateEq(t,x,u,Tu) dx = zeros(2,1); u = interp1(Tu,u,t); % Interploate the control at time t dx(1) = -2*(x(1) + 0.25) + (x(2) + 0.5)*exp(25*x(1)/(x(1)+2)) ... - (x(1) + 0.25).*u; dx(2) = 0.5 - x(2) -(x(2) + 0.5)*exp(25*x(1)/(x(1)+2)); %%%%%%%%%%%%%%%%%%%%%%% % Costate equations function dp = costateEq(t,p,u,Tu,x1,x2,xt) dp = zeros(2,1); x1 = interp1(xt,x1,t); % Interploate the state varialbes x2 = interp1(xt,x2,t); u = interp1(Tu,u,t); % Interploate the control dp(1) = p(1).*(u + exp((25*x1)/(x1 + 2)).*((25*x1)/(x1 + 2)^2 - ... 25/(x1 + 2))*(x2 + 1/2) + 2) - ... 2*x1 - p(2).*exp((25*x1)/(x1 + 2))*((25*x1)/(x1 + 2)^2 - ... 25/(x1 + 2))*(x2 + 1/2); dp(2) = p(2).*(exp((25*x1)/(x1 + 2)) + 1) - ... p(1).*exp((25*x1)/(x1 + 2)) - 2*x2; %%%%%%%%%%%%%%%%%%%%%%%%%%% % Partial derivative of H with respect to u function dH = pH(x1,p1,tx,u,Tu) % interploate the control u = interp1(Tu,u,tx); R = 0.1; dH = 2*R*u - p1.*(x1 + 0.25); %%%%%%%%%%%%%%%%%%%%%%%%% % Adjust the control function u_new = AdjControl(pH,tx,u,tu,step) % interploate dH/du pH = interp1(tx,pH,tu); u_new = u - step*pH; %%%%%%%%%%%%%%%% |
找到一些相關(guān)的精華帖子,希望有用哦~
| 1 | 1/1 | 返回列表 |
| 最具人氣熱帖推薦 [查看全部] | 作者 | 回/看 | 最后發(fā)表 | |
|---|---|---|---|---|
|
[考研] 石河子大學(xué)(211、雙一流)碩博研究生長(zhǎng)期招生公告 +3 | 李子目 2026-03-22 | 3/150 |
|
|---|---|---|---|---|
|
[考研] 一志愿西安交通大學(xué)材料工程專業(yè) 282分求調(diào)劑 +11 | 楓橋ZL 2026-03-18 | 13/650 |
|
|
[考研] 招08考數(shù)學(xué) +4 | laoshidan 2026-03-20 | 8/400 |
|
|
[考研] 308求調(diào)劑 +3 | 墨墨漠 2026-03-21 | 3/150 |
|
|
[考研] 生物學(xué)調(diào)劑 +5 | Surekei 2026-03-21 | 5/250 |
|
|
[考研] 285求調(diào)劑 +6 | ytter 2026-03-22 | 6/300 |
|
|
[考研] 一志愿深大,0703化學(xué),總分302,求調(diào)劑 +4 | 七月-七七 2026-03-21 | 4/200 |
|
|
[考研] 336求調(diào)劑 +5 | rmc8866 2026-03-21 | 5/250 |
|
|
[考研] 材料與化工(0856)304求 B區(qū) 調(diào)劑 +3 | 邱gl 2026-03-21 | 3/150 |
|
|
[考研] 求調(diào)劑 +6 | Mqqqqqq 2026-03-19 | 6/300 |
|
|
[考研] 304求調(diào)劑 +6 | 曼殊2266 2026-03-18 | 6/300 |
|
|
[考研] 一志愿武漢理工材料工程專碩調(diào)劑 +9 | Doleres 2026-03-19 | 9/450 |
|
|
[考研] 350求調(diào)劑 +5 | weudhdk 2026-03-19 | 5/250 |
|
|
[考研] 求調(diào)劑 +3 | eation27 2026-03-20 | 3/150 |
|
|
[考研] 廣西大學(xué)家禽遺傳育種課題組2026年碩士招生(接收計(jì)算機(jī)專業(yè)調(diào)劑) +3 | 123阿標(biāo) 2026-03-17 | 3/150 |
|
|
[考研] 286求調(diào)劑 +6 | lemonzzn 2026-03-16 | 10/500 |
|
|
[考研] 085600材料與化工求調(diào)劑 +6 | 緒幸與子 2026-03-17 | 6/300 |
|
|
[考研] 328求調(diào)劑,英語(yǔ)六級(jí)551,有科研經(jīng)歷 +4 | 生物工程調(diào)劑 2026-03-16 | 12/600 |
|
|
[考研] 277調(diào)劑 +5 | 自由煎餅果子 2026-03-16 | 6/300 |
|
|
[考研] 308求調(diào)劑 +4 | 是Lupa啊 2026-03-16 | 4/200 |
|