|
|
[求助]
使用matlab最优化方法拟合获得多个动力学参数中的问题 已有1人参与
各位师兄师姐,麻烦大家帮我看一下这个问题。我现在想用一个模型来描述我的实验现象,模型如图所示。
![\"使用matlab最优化方法拟合获得多个动力学参数中的问题\"]()
![使用matlab最优化方法拟合获得多个动力学参数中的问题-1]()
我通过实验有了x-t的实验数据,如下图所示,我现在想用matlab的fmincon函数求解模型中的ks和Dp(Dp含在参数beita里面)两个参数,我的程序大概步骤是:首先假设两个ks和Dp的参数,并给其他参数赋值(已知),求出dx/dt,然后调用ODE函数求出Xsim的值,最后求所有参数点的Xsim和Xexp的差平方,以这个差平方和最小为优化目标求两个参数。函数的程序如下所示:
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命令,可以得到结果,但是只要一改初始值结果就会变化。现在我也不清楚到底问题出在哪个地方,究竟用哪个算法更合适。麻烦知道的师兄师姐帮我一下,小弟真的感激不尽!
我的x-t实验数据如下所示:
![使用matlab最优化方法拟合获得多个动力学参数中的问题-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 |
» 猜你喜欢
» 本主题相关价值贴推荐,对您同样有帮助:
|