微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

MPC 控制器 Python

如何解决MPC 控制器 Python

从这里得到代码Implementation of a Lateral contoller using non linear model predictive control in GEKKO

我似乎无法运行它。我得到的错误是:

求解器开始......

错误:dyld:库未加载:/usr/local/opt/gcc/lib/gcc/9/libquadmath.0.dylib

引用自: /anaconda3/envs/wsb/lib/python3.6/site-packages/gekko/bin/apm_mac

原因:找不到图片

错误:找不到“results.json”。检查上面是否有其他错误 详情

回溯(最近一次调用最后一次): m.solve(disp=True) 文件“/anaconda3/envs/wsb/lib/python3.6/site-packages/gekko/gekko.py”,行 2216,在解决 self.load_JSON() 文件“/anaconda3/envs/wsb/lib/python3.6/site-packages/gekko/gk_post_solve.py”, 第 13 行,在 load_JSON f = 打开(os.path.join(self._path,'options.json')) FileNotFoundError: [Errno 2] 没有这样的文件或目录: '/var/folders/wr/gchm_8mx0dz3sr20158wz4bm0000gn/T/tmp6i1ltndkgk_model0/options.json'

我也试过调试: Python gekko cant find "options.json" file

from gekko import GEKKO
import numpy as np
import matplotlib.pyplot as plt

m = GEKKO()
m.time = np.linspace(0,20,41)

# Parameters
mass = 500
b = m.Param(value=50)
K = m.Param(value=0.8)

# Manipulated variable
p = m.MV(value=0,lb=0,ub=100)
p.STATUS = 1  # allow optimizer to change
p.dcosT = 0.1 # smooth out gas pedal movement
p.DMAX = 20   # slow down change of gas pedal

# Controlled Variable
v = m.CV(value=0)
v.STATUS = 1  # add the SP to the objective
m.options.CV_TYPE = 2 # squared error
v.SP = 40     # set point
v.TR_INIT = 1 # set point trajectory
v.TAU = 5     # time constant of trajectory

# Process model
m.Equation(mass*v.dt() == -v*b + K*b*p)

m.options.IMODE = 6 # control
m.solve(disp=False)

# get additional solution information
import json
with open(m.path+'//results.json') as f:
    results = json.load(f)

plt.figure()
plt.subplot(2,1,1)
plt.plot(m.time,p.value,'b-',label='MV Optimized')
plt.legend()
plt.ylabel('Input')
plt.subplot(2,2)
plt.plot(m.time,results['v1.tr'],'k-',label='Reference Trajectory')
plt.plot(m.time,v.value,'r--',label='CV Response')
plt.ylabel('Output')
plt.xlabel('Time')
plt.legend(loc='best')
plt.show()

解决方法

脚本成功运行,因为它写在您的问题陈述中。您收到的错误是因为您使用的是 MacOS 并切换到 m=GEKKO(remote=False)。此 GitHub issue 中描述了错误和解决方案。如果您使用远程服务器,则没有错误。

MPC

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