当前位置: 首页 > 知识库问答 >
问题:

MPC控制器Python

淳于典
2023-03-14

从这里得到代码:在GEKKO中使用非线性模型预测控制实现横向控制器

解算器开始。。。

错误:dyld:Library未加载:/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行,在solve self.load_JSON()文件“/anaconda3/envs/wsb/lib/python3.6/site packages/gekko/gk_post_solve.py”中,第13行,在load_JSON f=open(os.path.join(self.path.join,'options.JSON'))FileNotFoundError:[2]没有这样的文件或目录:'/var/folders/wr/gchm_8mx0dz3sr20158wz4bm0000gn/T/tmp6i1ltndkgk_model0/options.json'

我还尝试调试:Python gekko无法找到"options.json"文件

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,1,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()

共有1个答案

谭锐藻
2023-03-14

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

 类似资料:
  • MPC-HC,全称 Media Player Classic Home Cinema,是 Windows 平台上一个非常轻量级的开源媒体播放器。它支持所有常见的视频和音频文件格式的播放。它是 100% 免费的。

  • The source code of https://mpc-hc.org/ Getting started Install Node.js Install grunt: npm install -g grunt-cli Install the Node.js dependencies via npm: cd mpc-hc.org and then npm install Install Ruby

  • 在创建资源类和指定资源格输出式化后, 下一步就是创建控制器操作将资源通过 RESTful APIs 展现给终端用户。 Yii 提供两个控制器基类来简化创建 RESTful 操作的工作:yii\rest\Controller 和 yii\rest\ActiveController, 两个类的差别是后者提供一系列将资源处理成 Active Record 的操作。 因此如果使用 Active Recor

  • 控制器是 MVC 模式中的一部分, 是继承yii\base\Controller类的对象,负责处理请求和生成响应。 具体来说,控制器从应用主体 接管控制后会分析请求数据并传送到模型, 传送模型结果到视图,最后生成输出响应信息。 动作 控制器由 操作 组成,它是执行终端用户请求的最基础的单元, 一个控制器可有一个或多个操作。 如下示例显示包含两个动作view and create 的控制器post:

  • 简介 为了替代把所有的请求处理逻辑都定义在 routes.php 路由文件中,你或许想要使用控制来组织这些行为。控制器可以把相关的请求处理逻辑整合为一个控制器类。控制器类文件被存储在 app/Http/Controllers 目录下。 基础控制器 这里有一个基础控制器的示例。所有 Lumen 的控制器都应该继承 Lumen 安装时内置的默认的控制器基类: <?php namespace App\

  • 简介 为了代替在路由文件中以闭包的形式定义所有的请求处理逻辑,你也许想使用控制类来组织这些行为。控制器能够将相关的请求处理逻辑组成一个单独的类,控制器被存放在 app/Http/Controllers 目录下。 基础控制器 定义控制器 下面是一个基础控制器类的例子。需要注意的是,该控制器继承了一个Laravel内置的基础控制器类。该基础控制器提供了一些编辑的方法,比如 middleware 方法,