Ipopt, lg(mu) 随着进一步迭代而增加

如何解决Ipopt, lg(mu) 随着进一步迭代而增加

我正在开发一个摩托车单圈时间模拟器,该模拟器使用 IPOPT 来解决最小化单圈时间的最佳控制问题。我遇到了一个奇怪的问题,它有几个症状。我不确定这是否与问题公式或我的优化器设置或其他方面有关。

优化器没有收敛,所以我在 30 次迭代后将其切断。我能够得到自行车时间序列的一些结果,尽管它们有点颠簸。

首先,当自行车接近一圈终点时,自行车会出现非常大的减速。虽然看起来自行车的速度没有受到影响,但时间序列中的最终值与之前的速度值大致相同。

在整个优化过程中,对偶和原始不可行性值仍然很高。

lg(mu) 值在整个问题中仍然很高,实际上在整个问题中都在增加。

我认为可能是我错误地定义了问题,并且自行车正试图准确地在终点线上完成,并且使用加速度来校正速度以实现这一目标。这可能就是 lg(mu) 稳步增加的原因。虽然我不知道这是否正确。

这里有一些迭代:

iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
   0  5.0000000e+01 7.61e+00 1.06e+00   0.0 0.00e+00    -  0.00e+00 0.00e+00   0
   1  5.2354734e+01 1.25e+02 2.61e+04   1.0 3.72e+02    -  4.49e-01 1.05e-01f  2
   2  5.8209179e+01 1.13e+02 4.89e+04   1.3 5.74e+02    -  3.30e-01 2.38e-01f  1
   3  5.8427608e+01 1.09e+02 7.80e+04   1.3 2.26e+03    -  5.29e-02 3.40e-02h  1
   4  5.7286457e+01 1.05e+02 1.58e+05   1.3 3.27e+03    -  5.93e-02 4.73e-02h  1
   5  5.4742469e+01 1.00e+02 1.68e+05   1.3 1.08e+03    -  9.76e-02 9.39e-02h  1
   6  5.3103432e+01 9.65e+01 3.23e+05   1.3 8.30e+02    -  3.88e-02 4.60e-02h  1
   7  5.1403543e+01 9.27e+01 2.96e+05   1.3 3.32e+02    -  9.96e-02 4.42e-02h  1
   8  4.8435240e+01 8.68e+01 3.25e+05   1.3 9.18e+02    -  1.33e-01 7.93e-02h  1
   9  4.6636072e+01 8.34e+01 2.54e+05   1.8 1.96e+03    -  7.10e-02 4.57e-02h  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  10  4.5624201e+01 8.31e+01 5.34e+05   2.6 6.59e+03    -  3.66e-02 2.25e-02f  1
  11  4.5396562e+01 8.15e+01 8.21e+06  -4.4 2.19e+03    -  5.52e-02 2.13e-02h  1
  12  4.4770540e+01 8.64e+01 1.35e+06   3.1 2.09e+04    -  1.89e-02 1.28e-02f  1
  13  4.3376367e+01 9.29e+01 1.63e+06   3.4 9.37e+03    -  3.07e-02 2.18e-02f  1
  14  4.3629802e+01 1.05e+02 9.69e+06   3.3 3.05e+03    -  3.69e-02 2.34e-02f  1
  15  4.3981118e+01 1.03e+02 3.18e+06   3.3 5.75e+03    -  8.46e-02 4.62e-02f  1
  16  4.4061311e+01 1.01e+02 3.15e+06   3.6 5.42e+03    -  4.83e-02 2.46e-02f  1
  17  4.4041548e+01 1.00e+02 3.58e+06   3.6 2.39e+03    -  6.00e-02 3.60e-03h  1
  18  4.3262006e+01 8.41e+01 3.57e+07   3.2 3.70e+03    -  2.31e-02 3.58e-02h  1
  19  4.4835984e+01 9.57e+01 4.87e+07   4.4 3.48e+04    -  3.97e-02 1.57e-02f  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  20  4.4439370e+01 9.39e+01 5.39e+07   3.2 5.56e+03    -  4.40e-03 8.81e-03h  2
  21  4.3925581e+01 9.28e+01 5.73e+07   3.2 8.07e+03    -  3.75e-02 1.32e-02h  1
  22  4.2768412e+01 1.03e+02 1.72e+08   3.2 5.42e+03    -  2.22e-02 3.43e-02h  1
  23  4.2551257e+01 1.02e+02 2.15e+08   3.6 5.82e+03    -  8.74e-02 7.16e-03h  1
  24  4.2023292e+01 9.45e+01 3.90e+08   3.7 3.55e+03    -  2.65e-02 4.02e-02h  1
  25  4.1719605e+01 9.26e+01 1.44e+08   4.2 4.45e+03    -  7.99e-02 5.57e-02f  1
  26  4.1331097e+01 8.89e+01 2.64e+07   2.9 2.85e+03    -  5.92e-02 3.60e-02h  1
  27  4.1143710e+01 8.75e+01 4.59e+07   3.7 2.73e+03    -  6.33e-02 1.50e-02h  1
  28  4.2020100e+01 2.19e+02 4.59e+08   4.6 1.56e+04    -  2.37e-03 7.91e-02f  1
  29  4.1767670e+01 2.16e+02 4.52e+08   3.4 3.64e+03    -  3.53e-02 1.56e-02h  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  30  4.0837002e+01 2.13e+02 3.87e+08   3.4 9.14e+03    -  3.52e-02 4.11e-02h  1
  31  4.0047846e+01 2.15e+02 9.25e+08   4.4 2.67e+04    -  1.35e-01 2.10e-02h  1
  32  3.9770188e+01 2.14e+02 2.55e+08  -2.2 1.80e+04    -  1.50e-02 7.12e-03h  1
  33  3.9584783e+01 2.13e+02 3.63e+08   4.6 3.79e+04    -  5.50e-02 8.17e-03h  1
  34  3.9240198e+01 2.12e+02 4.33e+08   4.6 5.02e+04    -  4.00e-03 1.47e-02h  1
  35  3.8725727e+01 2.10e+02 2.96e+08   4.6 3.30e+04    -  5.70e-02 2.37e-02f  2
  36  3.8716577e+01 2.12e+02 2.19e+08   4.6 6.89e+03    -  6.33e-03 1.19e-02H  1
  37r 3.8716577e+01 2.12e+02 1.00e+03   4.6 0.00e+00    -  0.00e+00 2.92e-07R 16
  38r 3.8713861e+01 2.40e+02 3.60e+03  -1.5 2.46e+04    -  1.12e-01 4.00e-02f  1
  39  3.8709293e+01 2.40e+02 1.02e+05   1.9 2.12e+03    -  4.93e-01 8.65e-04f  1
iter    objective    inf_pr   inf_du lg(mu)  ||d||  lg(rg) alpha_du alpha_pr  ls
  40  4.0422833e+01 3.28e+02 8.00e+05   3.0 4.39e+04    -  4.88e-02 5.47e-02f  1

如果您想看一下,这里有一个存储库,IPOPT 选项位于 problemSolver.py 中。 https://github.com/RoryMcDonald/LTS-Help

解决方法

是的,您绝对没有收敛。我查看了您的 TrackingODE,许多输出都具有除以 (1-n*k) 形式的奇点。我注意到 IPOPT 确实不能很好地处理奇点。

在我的例子中,奇点是由 v 速度除法引起的,我在初始阶段使用不包含奇点的简化 ODE 解决了这个问题,当 v 大到不会引起问题时结束。

我认为类似的东西不会适用于您的系统,但这只是粗略地查看。也许您可以将 1/(1-x) 展开为泰勒级数 1 + x + x^2 + x^3 + ... 并忽略高于某个幂的项。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


使用本地python环境可以成功执行 import pandas as pd import matplotlib.pyplot as plt # 设置字体 plt.rcParams['font.sans-serif'] = ['SimHei'] # 能正确显示负号 p
错误1:Request method ‘DELETE‘ not supported 错误还原:controller层有一个接口,访问该接口时报错:Request method ‘DELETE‘ not supported 错误原因:没有接收到前端传入的参数,修改为如下 参考 错误2:cannot r
错误1:启动docker镜像时报错:Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen 解决方法:重启docker -> systemctl r
错误1:private field ‘xxx‘ is never assigned 按Altʾnter快捷键,选择第2项 参考:https://blog.csdn.net/shi_hong_fei_hei/article/details/88814070 错误2:启动时报错,不能找到主启动类 #
报错如下,通过源不能下载,最后警告pip需升级版本 Requirement already satisfied: pip in c:\users\ychen\appdata\local\programs\python\python310\lib\site-packages (22.0.4) Coll
错误1:maven打包报错 错误还原:使用maven打包项目时报错如下 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources)
错误1:服务调用时报错 服务消费者模块assess通过openFeign调用服务提供者模块hires 如下为服务提供者模块hires的控制层接口 @RestController @RequestMapping("/hires") public class FeignControl
错误1:运行项目后报如下错误 解决方案 报错2:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project sb 解决方案:在pom.
参考 错误原因 过滤器或拦截器在生效时,redisTemplate还没有注入 解决方案:在注入容器时就生效 @Component //项目运行时就注入Spring容器 public class RedisBean { @Resource private RedisTemplate<String
使用vite构建项目报错 C:\Users\ychen\work>npm init @vitejs/app @vitejs/create-app is deprecated, use npm init vite instead C:\Users\ychen\AppData\Local\npm-
参考1 参考2 解决方案 # 点击安装源 协议选择 http:// 路径填写 mirrors.aliyun.com/centos/8.3.2011/BaseOS/x86_64/os URL类型 软件库URL 其他路径 # 版本 7 mirrors.aliyun.com/centos/7/os/x86
报错1 [root@slave1 data_mocker]# kafka-console-consumer.sh --bootstrap-server slave1:9092 --topic topic_db [2023-12-19 18:31:12,770] WARN [Consumer clie
错误1 # 重写数据 hive (edu)> insert overwrite table dwd_trade_cart_add_inc > select data.id, > data.user_id, > data.course_id, > date_format(
错误1 hive (edu)> insert into huanhuan values(1,'haoge'); Query ID = root_20240110071417_fe1517ad-3607-41f4-bdcf-d00b98ac443e Total jobs = 1
报错1:执行到如下就不执行了,没有显示Successfully registered new MBean. [root@slave1 bin]# /usr/local/software/flume-1.9.0/bin/flume-ng agent -n a1 -c /usr/local/softwa
虚拟及没有启动任何服务器查看jps会显示jps,如果没有显示任何东西 [root@slave2 ~]# jps 9647 Jps 解决方案 # 进入/tmp查看 [root@slave1 dfs]# cd /tmp [root@slave1 tmp]# ll 总用量 48 drwxr-xr-x. 2
报错1 hive> show databases; OK Failed with exception java.io.IOException:java.lang.RuntimeException: Error in configuring object Time taken: 0.474 se
报错1 [root@localhost ~]# vim -bash: vim: 未找到命令 安装vim yum -y install vim* # 查看是否安装成功 [root@hadoop01 hadoop]# rpm -qa |grep vim vim-X11-7.4.629-8.el7_9.x
修改hadoop配置 vi /usr/local/software/hadoop-2.9.2/etc/hadoop/yarn-site.xml # 添加如下 <configuration> <property> <name>yarn.nodemanager.res