Tools Used
- Visual C++, Intel C++
- Win32 SDK, MFC, Boost C++
C++ is not FORTRAN, like XINU is not UNIX
- C/C++ source code for online controller MHEMPC
- No MATLAB or any third party Math routine used
- Entire code base is written and tested by one person
- Single executable, no 'DLL hell'
Current Work (Done)
-
Simulate 7X5 Heavy Oil Fractionator, "Fundamental Process Control", by Prett & Gracia using Boost C++ odeint package (z-Transform is obsolete). Use it in place of 2X2 CSTR example
- Conduct step test, collect data, identify response models (Link to download zip-file to test 7X5 system will be forwarded only on email request.)
- Sample screenshots, progress on 7X5 system below
- QP based MPC, a report (based on section 6.1 of book by Prett and Gracia)
All finished
- Design MHEMPC, version 2 is ready, goto here
- System Identification for all dynamic models
- Write documentation and user manual for MHEMPC
- Same software can handle linear design, nonlinear design and mixed design as well as choice of non-quadratic objective functions, nonlinear constraints
- Configurable with user-clicks, in-built C++ code for Process Control Database (MS SQL) and Scheduler
- Nonlinear plant simulation, hooked to actual MHEMPC, fine-tuned, can reduce 'time and production loss during MPC implementation'
- Package the software into MHEMPCproduct
- ChemEng students to be trained to implement
Business Plan
- Develop the base prototype of MHEMPC, done
- A demo of MHEMPC that works on 7X5 plant
- Test the demo among a selected audience, having extensive MPC implementation experience
- First simulate, tune, then implement on-line
- Price of MHEMPC suite is comparable to competition
- Nonlinear MHEMPC can deploy all possible objective functions and constraints, and
- All process models, linear and nonlinear can be developed and used, so no technology comparisons
- In a typical 1 minute MPC cycle, execution <3 secs
Design Choices
- C++ app cannot be hacked, unlike Java, C#
- Free MSSQL LocalDB of 10GB table storage each, good for APC of any size, using multiple .mdf files, as spreadsheets without indexing or fancy tools
- MATLAB components not used
- High school computer programming knowledge will be sufficient for Chemical Engineers to design, implement and maintain this product without any help from Instrumentation/Electrical Engineers
- Use of safe programming techniques so that MPC software and Data system are protected even in internet (e.g. no use of commercial RDBMS, open source or third party software binaries, no DLLs)
- MPC fine-tuning will be done using zero-based process data (as seen in demo), passed over internet, without exposing critical operating data
- Does not recommend use of 'Cloud', not safe
Declarations
- MHEMPC comes with complete suite of solution for Advanced Process Control
- Business model to help MHEMPC salesperson
- Sales will be empowered by a demo software, user shall input plant descriptions by ss gains, lags and dead times which will simulate any given plant
- MPC configuration, tuning, performance test can be done to convince potential costumer, before order
- Sales demo will be released on October, 2016
- Hardware requirement: i7 Windows 10
- Software requirement: OPC server connection to DCS
- Nonlinear dynamic ODE model, optionally, from user
Acknowledgements
- To Visual C++, intel C++ and Boost C++
- A good understanding of floating point numbers
- A good book
MHEMPC is a property ofBuddhadeva Das,
- No part of MHEMPC is and will be created as an employee of another business house.
- No math used inside MHEMPC is previously published by anyone, except my PhD work
- No use of published security mechanisms like RSA, if it is published, it can be broken
- No need to boast technology superiority, if maths are compared publicly, they shall be copied, then courtroom drama decides who survives
ScreenShots: Step Test and ModelIdentification
Doing a step test on the plant (7X5), watch dead-time responses. Model coefficients are found as pictured below...
Does it look familiar? Yes, they are step responses, gain normalized to 1. No of coefficients=180 and multi-variable identification.
Or more precisely, with dead-time and gain estimation. Some gains are close to as in Table 3.1, like the 6th output and some gains are not, like 1st output. This is because of the quality of step test done and number of coefficients are less than required by the steady-state. Will it contribute to plant-model mismatch? We shall see later.
And two dead-time estimations are not matching, like last input vs 1st output, as between 23 and 27 coefficients are negative. No filtering involved yet.
Here goes the step test file.
The best liars always tell the truth. The only predictable item about humans is that they tend to predict other humans. So