matlab如何集成c代码-MPCC:用于自动赛车的模型预测轮廓控制器(MPCC)

上传者: 38646634 | 上传时间: 2022-05-11 09:50:32 | 文件大小: 14.99MB | 文件类型: ZIP
matlab如何集成c代码MPCC 苏黎世联邦理工学院自动控制实验室(IfA)开发的用于自动赛车的模型预测轮廓控制器(MPCC)的C ++和Matlab仿真环境 公式 MPCC是遵循控制器的模型预测路径,它确实遵循预定义的参考路径X ^ ref和Y ^ ref。 这可以通过使用积分器规定的theta来扩展系统来实现,该θ近似于沿参考路径的进度。 θ状态使用滞后误差e 1耦合到实际动力学,滞后误差e 1不利于成本。 另外,轮廓误差(参考路径的横向误差)也会在成本函数中受到影响。 最终,沿着参考路径的进度被最大化,以实现汽车确实尽可能快地沿着路径行进,并且输入速率受到惩罚。 为了确保汽车停留在轨道内,对所有状态,输入和输入速率都施加了轨道约束以及界限。 下式显示了所产生的优化问题: 所考虑的车辆动力学是具有非线性魔术公式轮胎模型的自行车模型: 轮胎模型和传动系统模型如下: 最后,问题的状态和输入如下: 其中(X,Y)是全局位置phi,是汽车的前进方向,v_x和v_y是纵向,分别是横向速度和ω偏航率。 Theta是近似进度的增强状态。 输入是传动系的占空比d,转向角增量和沿参考路径v_the

文件下载

资源详情

[{"title":"( 94 个子文件 14.99MB ) matlab如何集成c代码-MPCC:用于自动赛车的模型预测轮廓控制器(MPCC)","children":[{"title":"MPCC-master","children":[{"title":"Matlab","children":[{"title":"QuadProgInterface.m <span style='color:#111;'> 3.17KB </span>","children":null,"spread":false},{"title":"Tracks","children":[{"title":"track2.mat <span style='color:#111;'> 25.20KB </span>","children":null,"spread":false},{"title":"trackMobil.mat <span style='color:#111;'> 7.31KB </span>","children":null,"spread":false}],"spread":true},{"title":"splines","children":[{"title":"regularindex.m <span style='color:#111;'> 1.17KB </span>","children":null,"spread":false},{"title":"splineInterp.m <span style='color:#111;'> 2.44KB </span>","children":null,"spread":false},{"title":"computeCenter.m <span style='color:#111;'> 2.17KB </span>","children":null,"spread":false},{"title":"normalizedSplineInterp.m <span style='color:#111;'> 1.56KB </span>","children":null,"spread":false},{"title":"splinelength.m <span style='color:#111;'> 1.29KB </span>","children":null,"spread":false},{"title":"splinify.m <span style='color:#111;'> 2.21KB </span>","children":null,"spread":false},{"title":"getSplineDerivatives.m <span style='color:#111;'> 1.12KB </span>","children":null,"spread":false},{"title":"spline5.m <span style='color:#111;'> 1.02KB </span>","children":null,"spread":false}],"spread":true},{"title":"CVXInterface.m <span style='color:#111;'> 2.40KB </span>","children":null,"spread":false},{"title":"hpipmInterface.m <span style='color:#111;'> 3.93KB </span>","children":null,"spread":false},{"title":"getNewBorders.m <span style='color:#111;'> 30.24KB </span>","children":null,"spread":false},{"title":"carBox.m <span style='color:#111;'> 1.24KB </span>","children":null,"spread":false},{"title":"getModelParams.m <span style='color:#111;'> 3.58KB </span>","children":null,"spread":false},{"title":"YalmipInterface.m <span style='color:#111;'> 2.27KB </span>","children":null,"spread":false},{"title":"unWrapX0.m <span style='color:#111;'> 925B </span>","children":null,"spread":false},{"title":"simulation.m <span style='color:#111;'> 8.08KB </span>","children":null,"spread":false},{"title":"optimizer.m <span style='color:#111;'> 1.58KB </span>","children":null,"spread":false},{"title":"borderAdjustment.m <span style='color:#111;'> 1.98KB </span>","children":null,"spread":false},{"title":"findTheta.m <span style='color:#111;'> 3.60KB </span>","children":null,"spread":false},{"title":"PlotLog.m <span style='color:#111;'> 1.88KB </span>","children":null,"spread":false},{"title":"getMPC_vars.m <span style='color:#111;'> 6.94KB </span>","children":null,"spread":false},{"title":"augState.m <span style='color:#111;'> 1.71KB </span>","children":null,"spread":false},{"title":"getMPCmatrices.m <span style='color:#111;'> 9.32KB </span>","children":null,"spread":false},{"title":"ObstacelsState.m <span style='color:#111;'> 3.21KB </span>","children":null,"spread":false},{"title":"README.md <span style='color:#111;'> 1.14KB </span>","children":null,"spread":false},{"title":"SimTimeStep.m <span style='color:#111;'> 1.95KB </span>","children":null,"spread":false},{"title":"env.sh <span style='color:#111;'> 1.19KB </span>","children":null,"spread":false},{"title":"PlotPrediction.m <span style='color:#111;'> 2.15KB </span>","children":null,"spread":false},{"title":"DiscretizedLinearizedModel.m <span style='color:#111;'> 6.16KB </span>","children":null,"spread":false}],"spread":false},{"title":"Images","children":[{"title":"NMPCC_problem.jpg <span style='color:#111;'> 223.28KB </span>","children":null,"spread":false},{"title":"forces_cpp.jpg <span style='color:#111;'> 15.96KB </span>","children":null,"spread":false},{"title":"model_cpp.jpg <span style='color:#111;'> 18.17KB </span>","children":null,"spread":false},{"title":"cost_cpp.jpg <span style='color:#111;'> 7.62KB </span>","children":null,"spread":false},{"title":"state-input.jpg <span style='color:#111;'> 30.94KB </span>","children":null,"spread":false},{"title":"constraints_cpp.jpg <span style='color:#111;'> 8.25KB </span>","children":null,"spread":false},{"title":"state_input_cpp.jpg <span style='color:#111;'> 5.17KB </span>","children":null,"spread":false},{"title":"TireModel.jpg <span style='color:#111;'> 118.13KB </span>","children":null,"spread":false},{"title":"MPC_sim.gif <span style='color:#111;'> 14.57MB </span>","children":null,"spread":false},{"title":"Model.jpg <span style='color:#111;'> 123.35KB </span>","children":null,"spread":false}],"spread":true},{"title":"LICENSE <span style='color:#111;'> 11.09KB </span>","children":null,"spread":false},{"title":"README.md <span style='color:#111;'> 7.39KB </span>","children":null,"spread":false},{"title":"C++","children":[{"title":"Spline","children":[{"title":"arc_length_spline.h <span style='color:#111;'> 2.45KB </span>","children":null,"spread":false},{"title":"arc_length_spline.cpp <span style='color:#111;'> 10.56KB </span>","children":null,"spread":false},{"title":"cubic_spline.cpp <span style='color:#111;'> 6.96KB </span>","children":null,"spread":false},{"title":"cubic_spline.h <span style='color:#111;'> 1.99KB </span>","children":null,"spread":false}],"spread":true},{"title":"MPC","children":[{"title":"mpc.h <span style='color:#111;'> 3.42KB </span>","children":null,"spread":false},{"title":"mpc.cpp <span style='color:#111;'> 9.14KB </span>","children":null,"spread":false}],"spread":true},{"title":"Plotting","children":[{"title":"plotting.cpp <span style='color:#111;'> 7.42KB </span>","children":null,"spread":false},{"title":"plotting.h <span style='color:#111;'> 1.34KB </span>","children":null,"spread":false}],"spread":true},{"title":"install.sh <span style='color:#111;'> 1.86KB </span>","children":null,"spread":false},{"title":"Constraints","children":[{"title":"bounds.h <span style='color:#111;'> 1.32KB </span>","children":null,"spread":false},{"title":"soft_constraints.cpp <span style='color:#111;'> 771B </span>","children":null,"spread":false},{"title":"bounds.cpp <span style='color:#111;'> 2.94KB </span>","children":null,"spread":false},{"title":"constraints.cpp <span style='color:#111;'> 8.16KB </span>","children":null,"spread":false},{"title":"soft_constraints.h <span style='color:#111;'> 990B </span>","children":null,"spread":false},{"title":"constraints.h <span style='color:#111;'> 1.79KB </span>","children":null,"spread":false}],"spread":true},{"title":"types.cpp <span style='color:#111;'> 1.93KB </span>","children":null,"spread":false},{"title":"Cost","children":[{"title":"cost.cpp <span style='color:#111;'> 11.96KB </span>","children":null,"spread":false},{"title":"cost.h <span style='color:#111;'> 1.99KB </span>","children":null,"spread":false}],"spread":true},{"title":"Tests","children":[{"title":"spline_test.h <span style='color:#111;'> 1001B </span>","children":null,"spread":false},{"title":"constratins_test.h <span style='color:#111;'> 1.10KB </span>","children":null,"spread":false},{"title":"cost_test.cpp <span style='color:#111;'> 5.92KB </span>","children":null,"spread":false},{"title":"model_integrator_test.cpp <span style='color:#111;'> 5.15KB </span>","children":null,"spread":false},{"title":"constratins_test.cpp <span style='color:#111;'> 7.23KB </span>","children":null,"spread":false},{"title":"cost_test.h <span style='color:#111;'> 928B </span>","children":null,"spread":false},{"title":"spline_test.cpp <span style='color:#111;'> 5.60KB </span>","children":null,"spread":false},{"title":"model_integrator_test.h <span style='color:#111;'> 1013B </span>","children":null,"spread":false}],"spread":true},{"title":"CMakeLists.txt <span style='color:#111;'> 1.28KB </span>","children":null,"spread":false},{"title":"main.cpp <span style='color:#111;'> 3.13KB </span>","children":null,"spread":false},{"title":"config.h <span style='color:#111;'> 1.55KB </span>","children":null,"spread":false},{"title":"types.h <span style='color:#111;'> 3.17KB </span>","children":null,"spread":false},{"title":"Interfaces","children":[{"title":"solver_interface.cpp <span style='color:#111;'> 771B </span>","children":null,"spread":false},{"title":"solver_interface.h <span style='color:#111;'> 1.17KB </span>","children":null,"spread":false},{"title":"hpipm_interface.h <span style='color:#111;'> 4.94KB </span>","children":null,"spread":false},{"title":"hpipm_interface.cpp <span style='color:#111;'> 13.39KB </span>","children":null,"spread":false}],"spread":false},{"title":"README.md <span style='color:#111;'> 4.06KB </span>","children":null,"spread":false},{"title":".gitignore <span style='color:#111;'> 110B </span>","children":null,"spread":false},{"title":"Model","children":[{"title":"model.h <span style='color:#111;'> 2.48KB </span>","children":null,"spread":false},{"title":"model.cpp <span style='color:#111;'> 12.68KB </span>","children":null,"spread":false},{"title":"integrator.cpp <span style='color:#111;'> 2.41KB </span>","children":null,"spread":false},{"title":"integrator.h <span style='color:#111;'> 1.24KB </span>","children":null,"spread":false}],"spread":false},{"title":"Params","children":[{"title":"track.h <span style='color:#111;'> 1.42KB </span>","children":null,"spread":false},{"title":"cost.json <span style='color:#111;'> 402B </span>","children":null,"spread":false},{"title":"track.cpp <span style='color:#111;'> 2.16KB </span>","children":null,"spread":false},{"title":"model.json <span style='color:#111;'> 495B </span>","children":null,"spread":false},{"title":"normalization.json <span style='color:#111;'> 173B </span>","children":null,"spread":false},{"title":"track.json <span style='color:#111;'> 43.47KB </span>","children":null,"spread":false},{"title":"config.json <span style='color:#111;'> 302B </span>","children":null,"spread":false},{"title":"params.h <span style='color:#111;'> 3.16KB </span>","children":null,"spread":false},{"title":"params.cpp <span style='color:#111;'> 6.37KB </span>","children":null,"spread":false},{"title":"bounds.json <span style='color:#111;'> 365B </span>","children":null,"spread":false}],"spread":false}],"spread":false}],"spread":true}],"spread":true}]

评论信息

免责申明

【只为小站】的资源来自网友分享,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,【只为小站】 无法对用户传输的作品、信息、内容的权属或合法性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论 【只为小站】 经营者是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。
本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二条之规定,若资源存在侵权或相关问题请联系本站客服人员,zhiweidada#qq.com,请把#换成@,本站将给予最大的支持与配合,做到及时反馈和处理。关于更多版权及免责申明参见 版权及免责申明