You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
此处显示自定义终止代码。 /
/ Terminate_END /
}
Occur followed issues:
C:\Users\zhouh\AppData\Local\Temp\mex_58524969571628_4908\Modelprective_wrapper.obj: In function Modelprective_Outputs_wrapper(double const*, double const*, double const*, double*, double*, double const*)': E:/newcar/Modelprective_wrapper.cpp:360: undefined reference to OsqpEigen::Solver::Solver()'
E:/newcar/Modelprective_wrapper.cpp:361: undefined reference to OsqpEigen::Solver::settings() const' E:/newcar/Modelprective_wrapper.cpp:361: undefined reference to OsqpEigen::Settings::setVerbosity(bool)'
E:/newcar/Modelprective_wrapper.cpp:362: undefined reference to OsqpEigen::Solver::settings() const' E:/newcar/Modelprective_wrapper.cpp:362: undefined reference to OsqpEigen::Settings::setWarmStart(bool)'
E:/newcar/Modelprective_wrapper.cpp:365: undefined reference to OsqpEigen::Solver::data() const' E:/newcar/Modelprective_wrapper.cpp:365: undefined reference to OsqpEigen::Data::setNumberOfVariables(int)'
E:/newcar/Modelprective_wrapper.cpp:366: undefined reference to OsqpEigen::Solver::data() const' E:/newcar/Modelprective_wrapper.cpp:366: undefined reference to OsqpEigen::Data::setNumberOfConstraints(int)'
E:/newcar/Modelprective_wrapper.cpp:367: undefined reference to OsqpEigen::Solver::data() const' E:/newcar/Modelprective_wrapper.cpp:369: undefined reference to OsqpEigen::Solver::data() const'
E:/newcar/Modelprective_wrapper.cpp:369: undefined reference to OsqpEigen::Data::setGradient(Eigen::Ref)' E:/newcar/Modelprective_wrapper.cpp:371: undefined reference to OsqpEigen::Solver::data() const'
E:/newcar/Modelprective_wrapper.cpp:373: undefined reference to OsqpEigen::Solver::data() const' E:/newcar/Modelprective_wrapper.cpp:373: undefined reference to OsqpEigen::Data::setLowerBound(Eigen::Ref)'
E:/newcar/Modelprective_wrapper.cpp:375: undefined reference to OsqpEigen::Solver::data() const' E:/newcar/Modelprective_wrapper.cpp:375: undefined reference to OsqpEigen::Data::setUpperBound(Eigen::Ref)'
E:/newcar/Modelprective_wrapper.cpp:379: undefined reference to OsqpEigen::Solver::initSolver()' E:/newcar/Modelprective_wrapper.cpp:384: undefined reference to OsqpEigen::Solver::solveProblem()'
E:/newcar/Modelprective_wrapper.cpp:391: undefined reference to OsqpEigen::Solver::getSolution()' C:\Users\zhouh\AppData\Local\Temp\mex_58524969571628_4908\Modelprective_wrapper.obj: In function bool OsqpEigen::Data::setHessianMatrix(Eigen::SparseCompressedBase const&)':
E:/C++/osqp-eigen/include/OsqpEigen/Data.tpp:16: undefined reference to OsqpEigen::debugStream()' E:/C++/osqp-eigen/include/OsqpEigen/Data.tpp:23: undefined reference to OsqpEigen::debugStream()'
E:/C++/osqp-eigen/include/OsqpEigen/Data.tpp:31: undefined reference to OsqpEigen::debugStream()' E:/C++/osqp-eigen/include/OsqpEigen/Data.tpp:40: undefined reference to OsqpEigen::debugStream()'
C:\Users\zhouh\AppData\Local\Temp\mex_58524969571628_4908\Modelprective_wrapper.obj: In function bool OsqpEigen::Data::setLinearConstraintsMatrix(Eigen::SparseCompressedBase const&)': E:/C++/osqp-eigen/include/OsqpEigen/Data.tpp:52: undefined reference to OsqpEigen::debugStream()'
C:\Users\zhouh\AppData\Local\Temp\mex_58524969571628_4908\Modelprective_wrapper.obj:E:/C++/osqp-eigen/include/OsqpEigen/Data.tpp:59: more undefined references to OsqpEigen::debugStream()' follow C:\Users\zhouh\AppData\Local\Temp\mex_58524969571628_4908\Modelprective_wrapper.obj: In function std::default_deleteOsqpEigen::Settings::operator()(OsqpEigen::Settings) const':
C:/ProgramData/MATLAB/SupportPackages/R2022b/3P.instrset/mingw_w64.instrset/lib/gcc/x86_64-w64-mingw32/6.3.0/include/c++/bits/unique_ptr.h:76: undefined reference to OsqpEigen::Settings::~Settings()' C:\Users\zhouh\AppData\Local\Temp\mex_58524969571628_4908\Modelprective_wrapper.obj: In function std::default_deleteOsqpEigen::Data::operator()(OsqpEigen::Data*) const':
C:/ProgramData/MATLAB/SupportPackages/R2022b/3P.instrset/mingw_w64.instrset/lib/gcc/x86_64-w64-mingw32/6.3.0/include/c++/bits/unique_ptr.h:76: undefined reference to OsqpEigen::Data::~Data()' C:\Users\zhouh\AppData\Local\Temp\mex_58524969571628_4908\Modelprective_wrapper.obj: In function bool OsqpEigen::SparseMatrixHelper::createOsqpSparseMatrix(Eigen::SparseCompressedBase const&, csc*&)':
E:/C++/osqp-eigen/include/OsqpEigen/SparseMatrixHelper.tpp:30: undefined reference to OsqpEigen::debugStream()' E:/C++/osqp-eigen/include/OsqpEigen/SparseMatrixHelper.tpp:35: undefined reference to csc_spalloc'
collect2.exe: error: ld returned 1 exit status
The text was updated successfully, but these errors were encountered:
E:/C++/osqp-eigen/include/OsqpEigen/SparseMatrixHelper.tpp:30: undefined reference to OsqpEigen::debugStream()' E:/C++/osqp-eigen/include/OsqpEigen/SparseMatrixHelper.tpp:35: undefined reference to csc_spalloc'
the system is windows10, osqp 0.6.3,osqp-eigen0.8.1.
In s-function-builder of matlab, configure is (E:\C++\eigen\install1\include\eigen3;E:\C++\osqp\include;E:\C++\osqp-eigen\include).
code is:
/* Includes_BEGIN */
#include <math.h>
#include
#include <Eigen/Dense>
#include<osqp.h>
#include <OsqpEigen/OsqpEigen.h>
#define PI acos(-1)
//幂计算函数
Eigen::MatrixXd multi_matrix(Eigen::MatrixXd Matrix_1, Eigen::MatrixXd Matrix_2, const int n)
//两个方阵相乘,n为方阵维度
{
Eigen::MatrixXd Matrix;
Matrix.resize(Matrix_1.rows(), Matrix_1.cols());
Matrix = Eigen::MatrixXd::Zero(Matrix_1.rows(), Matrix_1.cols());
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
//Matrix(i,j) = 0;
for (int k = 0; k < n; k++) {
Matrix(i, j) += Matrix_1(i, k) * Matrix_2(k, j);
}
}
}
}
Eigen::MatrixXd calc_power(Eigen::MatrixXd Matrix, const int m, const int n)
//计算次幂 ,m> 0;
//m 为次方数 n为方阵维度
{
if (m == 1)
return Matrix;
else
{
Eigen::MatrixXd Matrix_copy; //复制当前矩阵
Matrix_copy.resize(Matrix.rows(), Matrix.cols());
Matrix_copy = Matrix;
// Matrix_copy = Eigen::MatrixXd::Zero(Matrix.rows(), Matrix.cols());
for (int i = 0; i < m - 1; i++)
{
Matrix = multi_matrix(Matrix, Matrix_copy, n);
}
return Matrix;
}
}
//kron实现
Eigen::MatrixXd kron(Eigen::MatrixXd a,Eigen::MatrixXd b)
{
Eigen::MatrixXd p(a.rows()b.rows(),a.cols()b.cols());
for (int i=0;i<a.rows();i++)
for (int j=0;j<a.cols();j++)
for (int ii=0;ii<b.rows();ii++)
for (int jj=0;jj<b.cols();jj++)
{
//行ib.row+ii,列jb.column+jj
p(ib.rows()+ii,jb.cols()+jj)=a(i,j)b(ii,jj);
}
return p;
}
/ Includes_END */
/* Externs_BEGIN /
/ extern double func(double a); */
Eigen::Vector<double,Eigen::Dynamic> r;
Eigen::Vector<double,Eigen::Dynamic> U;
/* Externs_END */
void Modelprective_Start_wrapper(real_T xD)
{
/ Start_BEGIN /
/
/
/ Start_END */
}
void Modelprective_Outputs_wrapper(const real_T *x_r,
const real_T *y_r,
const real_T *yaw_r,
real_T *vx,
real_T *steer,
const real_T xD)
{
/ Output_BEGIN /
/ 此示例将输出设置为等于输入
y0[0] = u0[0];
对于复信号,使用: y0[0].re = u0[0].re;
y0[0].im = u0[0].im;
y1[0].re = u1[0].re;
y1[0].im = u1[0].im;
*/
// 为了转化为标准二次规划问题,进行矩阵转化
// 状态和控制合并为一个新的向量
Eigen::Vector<double,Eigen::Dynamic> kesi;
kesi = Eigen::VectorXd::Zero(5,1);
kesi << xD[0],
xD[1],
xD[2],
U(0),
U(1);
// Eigen::VectorXd f(61);
// Eigen::SparseMatrix A_cons(2230,230+1);
Eigen::Matrix<double, Eigen::Dynamic, Eigen::Dynamic> A_cons;
A_cons = Eigen::MatrixXd::Zero(2230,230+1);
A_cons.block(0, 0, Nu * Nc, Nu * Nc)=A_I;
A_cons.block(0, 60, Nu * Nc, 1)=p3;
A_cons.block(60, 0, Nu * Nc, Nu * Nc)=-A_I;
A_cons.block(60, 60, Nu * Nc, 1)=p3;
// Eigen::VectorXd lb(2);
Eigen::Matrix<double, Eigen::Dynamic, Eigen::Dynamic> lb;
lb = Eigen::MatrixXd::Zero(2,1);
lb << delta_Umin,0;
// Eigen::VectorXd ub(2);
Eigen::Vector<double, Eigen::Dynamic> ub;
ub = Eigen::VectorXd::Zero(2,1);
ub << delta_Umax,10;
// Eigen::Vector<double, Eigen::Dynamic> X;
// double solve_quadprog(Eigen::Matrix<double,61,61>& H, Eigen::Vector<double,61>& f,const Eigen::Matrix<double,120,61>& A_cons, const Eigen::Vector<double,120>& b_cons, const Eigen::Matrix<double,2,1>& lb, const Eigen::Vector<double,2>& ub, Eigen::Vector<double,2>& X);
/* Output_END */
}
void Modelprective_Update_wrapper(const real_T *x_r,
const real_T y_r,
const real_T yaw_r,
real_T vx,
real_T steer,
real_T xD)
{
/ Update_BEGIN /
sample = sample+T;
r(0) = 25sin(0.2sample);
r(1) = 35-25cos(0.2sample);
r(2) = 0.2sample;
/* Update_END */
}
void Modelprective_Terminate_wrapper(real_T xD)
{
/ Terminate_BEGIN /
/
/
/ Terminate_END /
}
Occur followed issues:
C:\Users\zhouh\AppData\Local\Temp\mex_58524969571628_4908\Modelprective_wrapper.obj: In function
Modelprective_Outputs_wrapper(double const*, double const*, double const*, double*, double*, double const*)': E:/newcar/Modelprective_wrapper.cpp:360: undefined reference to
OsqpEigen::Solver::Solver()'E:/newcar/Modelprective_wrapper.cpp:361: undefined reference to
OsqpEigen::Solver::settings() const' E:/newcar/Modelprective_wrapper.cpp:361: undefined reference to
OsqpEigen::Settings::setVerbosity(bool)'E:/newcar/Modelprective_wrapper.cpp:362: undefined reference to
OsqpEigen::Solver::settings() const' E:/newcar/Modelprective_wrapper.cpp:362: undefined reference to
OsqpEigen::Settings::setWarmStart(bool)'E:/newcar/Modelprective_wrapper.cpp:365: undefined reference to
OsqpEigen::Solver::data() const' E:/newcar/Modelprective_wrapper.cpp:365: undefined reference to
OsqpEigen::Data::setNumberOfVariables(int)'E:/newcar/Modelprective_wrapper.cpp:366: undefined reference to
OsqpEigen::Solver::data() const' E:/newcar/Modelprective_wrapper.cpp:366: undefined reference to
OsqpEigen::Data::setNumberOfConstraints(int)'E:/newcar/Modelprective_wrapper.cpp:367: undefined reference to
OsqpEigen::Solver::data() const' E:/newcar/Modelprective_wrapper.cpp:369: undefined reference to
OsqpEigen::Solver::data() const'E:/newcar/Modelprective_wrapper.cpp:369: undefined reference to
OsqpEigen::Data::setGradient(Eigen::Ref)' E:/newcar/Modelprective_wrapper.cpp:371: undefined reference to
OsqpEigen::Solver::data() const'E:/newcar/Modelprective_wrapper.cpp:373: undefined reference to
OsqpEigen::Solver::data() const' E:/newcar/Modelprective_wrapper.cpp:373: undefined reference to
OsqpEigen::Data::setLowerBound(Eigen::Ref)'E:/newcar/Modelprective_wrapper.cpp:375: undefined reference to
OsqpEigen::Solver::data() const' E:/newcar/Modelprective_wrapper.cpp:375: undefined reference to
OsqpEigen::Data::setUpperBound(Eigen::Ref)'E:/newcar/Modelprective_wrapper.cpp:379: undefined reference to
OsqpEigen::Solver::initSolver()' E:/newcar/Modelprective_wrapper.cpp:384: undefined reference to
OsqpEigen::Solver::solveProblem()'E:/newcar/Modelprective_wrapper.cpp:391: undefined reference to
OsqpEigen::Solver::getSolution()' C:\Users\zhouh\AppData\Local\Temp\mex_58524969571628_4908\Modelprective_wrapper.obj: In function
bool OsqpEigen::Data::setHessianMatrix(Eigen::SparseCompressedBase const&)':E:/C++/osqp-eigen/include/OsqpEigen/Data.tpp:16: undefined reference to
OsqpEigen::debugStream()' E:/C++/osqp-eigen/include/OsqpEigen/Data.tpp:23: undefined reference to
OsqpEigen::debugStream()'E:/C++/osqp-eigen/include/OsqpEigen/Data.tpp:31: undefined reference to
OsqpEigen::debugStream()' E:/C++/osqp-eigen/include/OsqpEigen/Data.tpp:40: undefined reference to
OsqpEigen::debugStream()'C:\Users\zhouh\AppData\Local\Temp\mex_58524969571628_4908\Modelprective_wrapper.obj: In function
bool OsqpEigen::Data::setLinearConstraintsMatrix(Eigen::SparseCompressedBase const&)': E:/C++/osqp-eigen/include/OsqpEigen/Data.tpp:52: undefined reference to
OsqpEigen::debugStream()'C:\Users\zhouh\AppData\Local\Temp\mex_58524969571628_4908\Modelprective_wrapper.obj:E:/C++/osqp-eigen/include/OsqpEigen/Data.tpp:59: more undefined references to
OsqpEigen::debugStream()' follow C:\Users\zhouh\AppData\Local\Temp\mex_58524969571628_4908\Modelprective_wrapper.obj: In function
std::default_deleteOsqpEigen::Settings::operator()(OsqpEigen::Settings) const':C:/ProgramData/MATLAB/SupportPackages/R2022b/3P.instrset/mingw_w64.instrset/lib/gcc/x86_64-w64-mingw32/6.3.0/include/c++/bits/unique_ptr.h:76: undefined reference to
OsqpEigen::Settings::~Settings()' C:\Users\zhouh\AppData\Local\Temp\mex_58524969571628_4908\Modelprective_wrapper.obj: In function
std::default_deleteOsqpEigen::Data::operator()(OsqpEigen::Data*) const':C:/ProgramData/MATLAB/SupportPackages/R2022b/3P.instrset/mingw_w64.instrset/lib/gcc/x86_64-w64-mingw32/6.3.0/include/c++/bits/unique_ptr.h:76: undefined reference to
OsqpEigen::Data::~Data()' C:\Users\zhouh\AppData\Local\Temp\mex_58524969571628_4908\Modelprective_wrapper.obj: In function
bool OsqpEigen::SparseMatrixHelper::createOsqpSparseMatrix(Eigen::SparseCompressedBase const&, csc*&)':E:/C++/osqp-eigen/include/OsqpEigen/SparseMatrixHelper.tpp:30: undefined reference to
OsqpEigen::debugStream()' E:/C++/osqp-eigen/include/OsqpEigen/SparseMatrixHelper.tpp:35: undefined reference to
csc_spalloc'collect2.exe: error: ld returned 1 exit status
The text was updated successfully, but these errors were encountered: