各位师兄师姐,麻烦大家帮我看一下这个问题。我现在想用一个模型来描述我的实验现象,模型如图所示。

 w475h1702650_1398307819_181.jpg%5C%22

w475h1702650_1398307947_122.jpg

我通过实验有了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实验数据如下所示:

w144h1702650_1398307394_582.jpg

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

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐