|
|
[求助]
使用matlab最優(yōu)化方法擬合獲得多個動力學參數中的問題 已有1人參與
各位師兄師姐,麻煩大家?guī)臀铱匆幌逻@個問題。我現在想用一個模型來描述我的實驗現象,模型如圖所示。
![\"使用matlab最優(yōu)化方法擬合獲得多個動力學參數中的問題\"]()
![使用matlab最優(yōu)化方法擬合獲得多個動力學參數中的問題-1]()
我通過實驗有了x-t的實驗數據,如下圖所示,我現在想用matlab的fmincon函數求解模型中的ks和Dp(Dp含在參數beita里面)兩個參數,我的程序大概步驟是:首先假設兩個ks和Dp的參數,并給其他參數賦值(已知),求出dx/dt,然后調用ODE函數求出Xsim的值,最后求所有參數點的Xsim和Xexp的差平方,以這個差平方和最小為優(yōu)化目標求兩個參數。函數的程序如下所示:
function y = chapingfang1( para )
%chapingfang1 求實驗值與模擬值的差平方
% 根據輸入的ks和Dp,求出dx/dt,求出xi,并根據實驗值求差平方,需要在函數外給Xexp賦值。
% 首先申明Xexp為全局變量,將數據導入Xexp,然后給para賦初始值,并給出para的上下界限,然后引用函數。
global Xexp; %申明一個在外部定義的全局變量
function dxdt=solve(t,x)
%ks=para(1);Dp=para(2);
S0=6.45E7; %單位體積比表面積,m2/m3
C=44.64; %摩爾濃度,mol/m3,50℃,1bar
SP=1.04; %結構參數,structure parameter
epsilon=0.135; %孔隙率
p=300; %MgO的密度,kg/m3
M=40.3E-3; %MgO的分子量,kg/mol
beita=(2*para(1)*p*(1-epsilon))/(M*para(2)*S0); % beita=2*ks*p*(1-epsilon)/(M*Dp*s0)
Z=2.48; %產物與反應物體積比
dxdt=para(1)*S0*C*(1-x)*sqrt(1-SP*log(1-x))*60/((1-epsilon)*(1+beita*Z*(sqrt(1-SP*log(1-x))-1)/SP)); %dx/dt,1/min
end
datanum=length(Xexp); %獲得實驗數據的個數
[t,x]=ode45(@solve,(0:datanum),[0]);
y=0; %賦初始值
for i=1:datanum
ysingle=(x(i)-Xexp(i))^2; %單個x值求平方差
y=y+ysingle; %求所有數值的差平方
end
end
調用函數時,先申明Xexp為全局變量并給其賦值,然后給para賦值,假設para=[1e-20,1e-15];然后設置options.MaxFunEvals = 10000;options.MaxIter = 5000;options.TolFun=1e-40;options.TolX=1e-40;算法設為‘active-set’。計算后會提示Optimization completed because the objective function is non-decreasing in
feasible directions, to within the default value of the function tolerance,
and constraints were satisfied to within the default value of the constraint tolerance.就是這樣,一直算不出來結果。
此后,我還用過fminunc和lsqcurvefit命令,但是均算不出來結果,用過fminsearch命令,可以得到結果,但是只要一改初始值結果就會變化,F在我也不清楚到底問題出在哪個地方,究竟用哪個算法更合適。麻煩知道的師兄師姐幫我一下,小弟真的感激不盡!
我的x-t實驗數據如下所示:
![使用matlab最優(yōu)化方法擬合獲得多個動力學參數中的問題-2]()
time1 weight1
0 0
1 0.0131059561590576
2 0.0224613155271807
3 0.0258574867886566
4 0.0287923752485341
5 0.0319666281518343
6 0.0344779298157369
7 0.0365664754496289
8 0.0389215931122698
9 0.0414292601750792
10 0.0437186434808063
11 0.04540291762739
12 0.047525420820067
13 0.0493874788829805
14 0.0512869214142812
15 0.0534027784792448
16 0.0555023317621618
17 0.0571714444298997
18 0.0588653762308168
19 0.0607537072673469
20 0.0624277006851242
21 0.0639143563779841
22 0.0658329065264603
23 0.0676833338658756
24 0.0689399712324093
25 0.070436388425348
26 0.0721083049282149
27 0.0733571538638347
28 0.0744049574361283
29 0.0759068784535796
30 0.0771386966869343
31 0.0779835856724823
32 0.0790293123298656
33 0.0802949842762596
34 0.0813463186039008
35 0.0821874691426103
36 0.0830400427133269
37 0.0844930523846384
38 0.0849185084040326
39 0.0853313990882189
40 0.0866122325134587
41 0.087233126225921
42 0.0878623275980246
43 0.0884889328264904
44 0.0891348533636229
45 0.0897540855441568
46 0.0903847407566979
47 0.0910422920173286
48 0.0914330635577191
49 0.0918563388164574
50 0.0926972816636758
51 0.0931137031032097
52 0.0935382245108942
53 0.0941693989521628
54 0.09436462895374
55 0.0945851973172237
56 0.0956667507568113
57 0.0958463000508149
58 0.0958502461891445
59 0.0964731129707716
60 0.0969135227775206
61 0.0973228827063593
62 0.0975322357293269
63 0.0977422118267678
64 0.0983701670499253
65 0.0985833623654773
66 0.0987822269681474
67 0.0992140175780183
68 0.0996444581931973
69 0.0996341774643909
70 0.0998332497585521
71 0.0998405189607386
72 0.100276151863194
73 0.100476470306301
74 0.100685511792032
75 0.101090302508068
76 0.100895903272455
77 0.101105879369896
78 0.101320216988649
79 0.101736534582437
80 0.101742765327168
81 0.101946718371369
82 0.102368332098179
83 0.102157006006046
84 0.102369993630107
85 0.10280313423467
86 0.102997845007519
87 0.102997845007519
88 0.103208028796451
89 0.103203978812376
90 0.103418212585383
91 0.103629330986024
92 0.103838684008992
93 0.103842941684558
94 0.104064652351243
95 0.104048867797924
96 0.104469131530042
97 0.104469339221533
98 0.104468508455569
99 0.104469339221533
100 0.104679523010465
101 0.10508524833821
102 0.104889810645142
103 0.105095840604253
104 0.105100305971311
105 0.105506550527784
106 0.105531785043945
107 0.10530290902082
108 0.105743111136078
109 0.10553583502802
110 0.105940833435547
111 0.105940833435547
112 0.106151017224479
113 0.106151017224479
114 0.106372727891164
115 0.106361304859156
116 0.106586338589697
117 0.106571384802343
118 0.106567334818267
119 0.106797145453102
120 0.106992998529152
121 0.106991648534461
122 0.107202143860629
123 0.106993206220644
124 0.106991856225952
125 0.107201001557428
126 0.106991856225952
127 0.106980744731181
128 0.106991856225952
129 0.106991856225952
130 0.107217305339475
131 0.10718635930731
132 0.107201832323393
133 0.10719726311059
134 0.107412327649561
135 0.107412327649561
136 0.107607869188375
137 0.107622511438493
138 0.107622511438493
139 0.107621472981038
140 0.107402254612246
141 0.107830826004005
142 0.107818468360289
143 0.107836849057245
144 0.108042982862102
145 0.108264589683041
146 0.108043086707848
147 0.108249116666959
148 0.108470931179389
149 0.108462208136765
150 0.109102521003639
151 0.108883821863575
152 0.109094109498252
153 0.109304085595693
154 0.109304293287184
155 0.109305020207403
156 0.109094005652507
157 0.109309174037224
158 0.109094005652507
159 0.109093278732288
160 0.109305331744639
161 0.109304293287184
162 0.10972206472141
163 0.109724660865048
164 0.109727464700177
165 0.109724349327811
166 0.109933806196525
167 0.109500665591962
168 0.109935156191216
169 0.110150116884442
170 0.109949590749844
171 0.110151882262116
172 0.109943152313621
173 0.110145339980148
174 0.109721649338428
175 0.109934636962489
176 0.109939725404019
177 0.109934948499725
178 0.10993484465398
179 0.109934948499725
180 0.109950629207299
181 0.110145859208876
182 0.110146170746112
183 0.110359262215919
184 0.110145339980148
185 0.110140978458836
186 0.11036642757236
187 0.110351266093514
188 0.110776825958653
189 0.110565499866521
190 0.110568615238886
191 0.110566849861213
192 0.110771529825632
193 0.110985867444384
194 0.110981921306055
195 0.11099085204017
196 0.111180682062979
197 0.110764883697919
198 0.11098597129013
199 0.11098597129013
200 0.111207370419578
201 0.111403431187119
202 0.111399173511553
203 0.111211628095144
204 0.111406442713739
205 0.110987840513549
206 0.111403431187119
207 0.111196155079062
208 0.111402600421155
209 0.111387958171037
210 0.111187951265166
211 0.111210485791944
212 0.110990021274205
213 0.110982128997546
214 0.111001340460467
215 0.11142752340008
216 0.111406131176503
217 0.111391696617875
218 0.111184939738546
219 0.111406442713739
220 0.111196466616298
221 0.111596999656768
222 0.111631268752789
223 0.112048209421051
224 0.112262754731295
225 0.112040940218865
226 0.112026401814492
227 0.111815802642578
228 0.112036994080535
229 0.112037305617771
230 0.112036994080535
231 0.111842594844922
232 0.112254343225908
233 0.112036994080535
234 0.112036786389044
235 0.11203709792628
236 0.111816841100033
237 0.112247281715212
238 0.112033151787951
239 0.112258289364237
240 0.112468888536151
241 0.112457153966908
242 0.112247281715212
243 0.112457257812653
244 0.112457465504144
245 0.112456738583925
246 0.11245663473818
247 0.112243335576883
248 0.112457465504144
249 0.112694545341165
250 0.112663599309001
251 0.112878975385208
252 0.11286734466171
253 0.112667753138821
254 0.112224747188434
255 0.112667649293076
256 0.112458503961599
257 0.112667753138821
258 0.112683122309158
259 0.112666091606893
260 0.112653110888703
261 0.112864021597854
262 0.112661107011108
263 0.112866098512764
264 0.112870875417058
265 0.112876794624553
266 0.112878144619244
267 0.113088120716685
268 0.113298304505617
269 0.113299135271581
270 0.113298304505617
271 0.113298304505617
272 0.113088120716685
273 0.113088120716685
274 0.112867863890438
275 0.113090820706069
276 0.11308915917414
277 0.113072543854857
278 0.113508488294549
279 0.113313777521699
280 0.113721268227119
281 0.113301523723728
282 0.113523649773395
283 0.113511292129678
284 0.113492496049739
285 0.113508488294549
286 0.113739856615567
287 0.113298200659871
288 0.113288335314047
289 0.11331398521319
290 0.113508488294549
291 0.113524272847868
292 0.113719087466463
293 0.113717633626025
294 0.113717633626025
295 0.113718775929226
296 0.113714725945151
297 0.113507449837094
298 0.113507969065821
299 0.11350983828924 |
» 猜你喜歡
» 本主題相關價值貼推薦,對您同樣有幫助:
|