coin-or / qpOASES

Open-source C++ implementation of the recently proposed online active set strategy
GNU Lesser General Public License v2.1
365 stars 127 forks source link

dSPACE, when simulink compilding, Cannot load real-time application.[0.000] Internal error. dSPACE Support information: Invalid real-time application (ID 0x6be756) state (ID 53739520) after loading application.[26425.847] #91

Open svigerske opened 4 years ago

svigerske commented 4 years ago

Issue created by migration from Trac.

Original creator: Shuai

Original creation time: 2019-04-20 17:30:29

Assignee: ferreau

Version: 3.2.1

Keywords: dSPACE, simulink, cannot download real-time application

Hello, I am a beginer of installing qpOASES. I am using cygwin64, Matlab R2015a, dSPACE ds1007, dSPACE ControlDesk 5.4. Microsoft Windows SDK 7.1 (C++) c++ compiler in matlab I copy the s-function example in /interfaces/simulink/example_SQProblem.mdl for a MPC control. What I did as the manual (https://www.coin-or.org/qpOASES/doc/3.2/manual.pdf) tells is:

  1. install qpOASES by comment line 35 and and uncomment line 36 in make.mk file in /. then compile by make command in cygwin64 terminal
  2. in /interfaces/matlab, run make command by choosing Microsoft Windows SDK 7.1 (C++) c++ compiler in matlab
  3. in /interfaces/simulink, run make command by choosing Microsoft Windows SDK 7.1 (C++) c++ compiler in matlab
  4. copy the s-function in /interfaces/simulink/example_SQProblem.mdl, in a new created, test_compile.slx(I give the name) simulink model. Then I uncomment the compiler flag DSPACE, line 45 within /include/qpOASES/Types.hpp, and compile the simulink model for the first time, which generates a test_compile_usr.mk file.
  5. in this test_compile_usr.mk file, I add USER BUILD CPP APPL = ON at the top,
  6. Then, in this test_compile_usr.mk file, I add, USER SRCS = OQPinterface.cpp SolutionAnalysis.cpp SQProblemSchur.cpp SparseSolver.cpp SQProblem.cpp QProblem.cpp QProblemB.cpp Bounds.cpp Constraints.cpp SubjectTo.cpp Indexlist.cpp Flipper.cpp Utils.cpp Options.cpp Matrices.cpp BLASReplacement.cpp LAPACKReplacement.cpp MessageHandling.cpp
  7. Then, in this test_compile_usr.mk file, I add the directory to these above files, USER_SRCS_DIR = "\src"
  8. Then, in this test_compile_usr.mk file, I add Path names for user include files, USER_INCLUDES_PATH = "\include" "\src" "\interfaces\simulink"
  9. last, I build this simulink model and download it to dSPACE ds1007.

However, there is a error during the compiling, shown as below:

LINKING APPLICATION ... LINKING FINISHED

LOADING APPLICATION "xiwojiba.sdf" ... PLATFORM: ds1007 Cannot load real-time application.[0.000] Internal error. dSPACE Support information: Invalid real-time application (ID 0x6be756) state (ID 53739520) after loading application.[26425.847] Cannot load application process. See message log for further information. dSPACE Support information: Affected application process: 1. Total number of application processes in application group: 1.[0.000] Could not download application. Download of real-time application 'C:\qpOASES-3.2.1\interfaces\simulink\xiwojiba.rta' failed.

An error occurred while loading the application. Application unload (0x6be755).[26424.802] System information: PHS bus board DS2004 found at address 0x00. (5/8011)[26424.343] Application loaded by host 'ISIR2015032' (192.168.140.100).[26425.200] System information: PHS bus board DS3001 found at address 0x10. (5/8011)[26424.343] System information: PHS bus board DS3001 found at address 0x40. (5/8011)[26424.343] System information: PHS bus board DS2102 found at address 0x90. (5/8011)[26424.343] System information: Hardware initialization succeeded. (5/8001)[26424.351] LOADING FAILED (1)

MAKE PROCESS ABORTED

I check the dSPACE ControlDesk, the processor ds1007 has already register in ControlDesk.

If I dont put qpOASES s-function block in simulink model, and dont add extra lines as the manual tells in the _usr.mk file, the compilation to dSPACE works well. Once I put the qpOASES s-function block in simulink model, and add extra lines as the manual tells in the _usr.mk file, this error appears.

So, can anybody give me some suggestion to fix this please? This is urgent....

Thank you very much