blockahead / MIMO_PredictiveFunctionalControl

0 stars 1 forks source link

Any written document representing this coding implementation #1

Closed Aysticky closed 1 year ago

Aysticky commented 1 year ago

Thank you for sharing this wonderful code.

However, could you please provide the paper (even if not published), or any similar text document or link, showing the mathematical equations leading to this coded algorithm?

Thank you.

blockahead commented 1 year ago

Hello sir,

I am grad you are interested in my code. Unfortunately, this code was written for my learning and there are no public documentation in English yet.

It is based on the following book with a few modifications. (cf. section 2CV-2MV)

Predictive Functional Control -Principles and Industrial Applications- https://link.springer.com/book/10.1007/978-1-84882-493-5

For documents in Japanese, please refer to my blog.

SISO PFC implementation https://hamachannel.hatenablog.com/entry/2018/01/13/233521

Extend to MIMO https://hamachannel.hatenablog.com/entry/2018/07/29/102239

Regards.

Aysticky commented 1 year ago

Dear sir,

Thank you for your response and those material links you provided. It helped a lot using Google translator.

However, I also found this paper of yours very interesting, can share the codes please?

"Design of an Estimator-Based Predictive Functional Control for Ramp Disturbance Suppression"

Yours sincerely,

Ayobami Meadows, MSc. Graduate Researcher, Department of Computer and Control Engineering. Ahmadu Bello University, Zaria. @. @. +234-7030727885 https://www.linkedin.com/in/ayobami-meadows-38016568

On Mon, Jan 30, 2023, 2:45 AM Kazuki Hamada @.***> wrote:

Hello sir,

I am grad you are interested in my code. Unfortunately, this code was written for my learning and there are no public documentation in English yet.

It is based on the following book with a few modifications. (cf. section 2CV-2MV)

Predictive Functional Control -Principles and Industrial Applications- https://link.springer.com/book/10.1007/978-1-84882-493-5

For documents in Japanese, please refer to my blog.

SISO PFC implementation https://hamachannel.hatenablog.com/entry/2018/01/13/233521

Extend to MIMO https://hamachannel.hatenablog.com/entry/2018/07/29/102239

Regards.

— Reply to this email directly, view it on GitHub https://github.com/blockahead/MIMO_PredictiveFunctionalControl/issues/1#issuecomment-1407864620, or unsubscribe https://github.com/notifications/unsubscribe-auth/AQKJZTVUFIY6LFCPDFA2YADWU4MLJANCNFSM6AAAAAAUIVUKFU . You are receiving this because you authored the thread.Message ID: @.*** com>

blockahead commented 1 year ago

Dear sir,

I apologize for the inadequacy English documentation. I see now that the comments in the code are also in Japanese.

Now, could you send me a URL for the paper? I wrote an article "Predictive functional control for integral process" in Japanese on my blog, is that it? https://hamachannel.hatenablog.com/entry/2018/08/04/200708

Or is it the following paper? https://www.jstage.jst.go.jp/article/kikaic/79/808/79_4890/_article

If latter, it's not mine, however you can get it as free access.

Regards.

Aysticky commented 1 year ago

Dear sir,

Yes, it's the paper in the latter link. I have access to the paper, I'm only requesting for the matlab codes if available. However, almost everything I need is on your blog, so thank you for putting up that blog.

Yours sincerely,

Ayobami Meadows, MSc. Graduate Researcher, Department of Computer and Control Engineering. Ahmadu Bello University, Zaria. @. @. +234-7030727885 https://www.linkedin.com/in/ayobami-meadows-38016568

On Thu, Feb 16, 2023, 3:22 AM Kazuki Hamada @.***> wrote:

Dear sir,

I apologize for the inadequacy English documentation. I see now that the comments in the code are also in Japanese.

Now, could you send me a URL for the paper? I wrote an article "Predictive functional control for integral process" in Japanese on my blog, is that it? https://hamachannel.hatenablog.com/entry/2018/08/04/200708

Or is it the following paper? https://www.jstage.jst.go.jp/article/kikaic/79/808/79_4890/_article

If latter, it's not mine, however you can get it as free access.

Regards.

— Reply to this email directly, view it on GitHub https://github.com/blockahead/MIMO_PredictiveFunctionalControl/issues/1#issuecomment-1432379443, or unsubscribe https://github.com/notifications/unsubscribe-auth/AQKJZTQMZDFOIS3AS37XR6TWXWFPTANCNFSM6AAAAAAUIVUKFU . You are receiving this because you modified the open/close state.Message ID: <blockahead/MIMO_PredictiveFunctionalControl/issues/1/1432379443@ github.com>

Aysticky commented 1 year ago

Hello sir,

Sorry for igniting this conversation again. I noticed in this code uploaded to github, there is no parameter for control horizon or prediction horizon, or perhaps I'm wrong, kindly help direct where it is in the code sir.

Thank you sir the help.

Yours sincerely,

Ayobami Meadows, MSc. Graduate Researcher, Department of Computer and Control Engineering. Ahmadu Bello University, Zaria. @. @. +234-7030727885 https://www.linkedin.com/in/ayobami-meadows-38016568

On Thu, Feb 16, 2023, 8:13 AM Ayobami Meadows @.***> wrote:

Dear sir,

Yes, it's the paper in the latter link. I have access to the paper, I'm only requesting for the matlab codes if available. However, almost everything I need is on your blog, so thank you for putting up that blog.

Yours sincerely,

Ayobami Meadows, MSc. Graduate Researcher, Department of Computer and Control Engineering. Ahmadu Bello University, Zaria. @. @. +234-7030727885 https://www.linkedin.com/in/ayobami-meadows-38016568

On Thu, Feb 16, 2023, 3:22 AM Kazuki Hamada @.***> wrote:

Dear sir,

I apologize for the inadequacy English documentation. I see now that the comments in the code are also in Japanese.

Now, could you send me a URL for the paper? I wrote an article "Predictive functional control for integral process" in Japanese on my blog, is that it? https://hamachannel.hatenablog.com/entry/2018/08/04/200708

Or is it the following paper? https://www.jstage.jst.go.jp/article/kikaic/79/808/79_4890/_article

If latter, it's not mine, however you can get it as free access.

Regards.

— Reply to this email directly, view it on GitHub https://github.com/blockahead/MIMO_PredictiveFunctionalControl/issues/1#issuecomment-1432379443, or unsubscribe https://github.com/notifications/unsubscribe-auth/AQKJZTQMZDFOIS3AS37XR6TWXWFPTANCNFSM6AAAAAAUIVUKFU . You are receiving this because you modified the open/close state.Message ID: <blockahead/MIMO_PredictiveFunctionalControl/issues/1/1432379443@ github.com>

Aysticky commented 1 year ago

Also please, I noticed some inputs were not defined in the function getForceOutput.m

The inputs are ( InputIndex, CoincidencePoint, BasisFunction, pfc )

I have tried looking for where you defined them but I couldn't find them. Although I saw input pfc been defined in PFC_config.m but couldn't locate for other inputs.

Please help.

Yours sincerely,

Ayobami Meadows, MSc. Graduate Researcher, Department of Computer and Control Engineering. Ahmadu Bello University, Zaria. @. @. +234-7030727885 https://www.linkedin.com/in/ayobami-meadows-38016568

On Thu, Mar 2, 2023, 12:40 PM Ayobami Meadows @.***> wrote:

Hello sir,

Sorry for igniting this conversation again. I noticed in this code uploaded to github, there is no parameter for control horizon or prediction horizon, or perhaps I'm wrong, kindly help direct where it is in the code sir.

Thank you sir the help.

Yours sincerely,

Ayobami Meadows, MSc. Graduate Researcher, Department of Computer and Control Engineering. Ahmadu Bello University, Zaria. @. @. +234-7030727885 https://www.linkedin.com/in/ayobami-meadows-38016568

On Thu, Feb 16, 2023, 8:13 AM Ayobami Meadows @.***> wrote:

Dear sir,

Yes, it's the paper in the latter link. I have access to the paper, I'm only requesting for the matlab codes if available. However, almost everything I need is on your blog, so thank you for putting up that blog.

Yours sincerely,

Ayobami Meadows, MSc. Graduate Researcher, Department of Computer and Control Engineering. Ahmadu Bello University, Zaria. @. @. +234-7030727885 https://www.linkedin.com/in/ayobami-meadows-38016568

On Thu, Feb 16, 2023, 3:22 AM Kazuki Hamada @.***> wrote:

Dear sir,

I apologize for the inadequacy English documentation. I see now that the comments in the code are also in Japanese.

Now, could you send me a URL for the paper? I wrote an article "Predictive functional control for integral process" in Japanese on my blog, is that it? https://hamachannel.hatenablog.com/entry/2018/08/04/200708

Or is it the following paper? https://www.jstage.jst.go.jp/article/kikaic/79/808/79_4890/_article

If latter, it's not mine, however you can get it as free access.

Regards.

— Reply to this email directly, view it on GitHub https://github.com/blockahead/MIMO_PredictiveFunctionalControl/issues/1#issuecomment-1432379443, or unsubscribe https://github.com/notifications/unsubscribe-auth/AQKJZTQMZDFOIS3AS37XR6TWXWFPTANCNFSM6AAAAAAUIVUKFU . You are receiving this because you modified the open/close state.Message ID: <blockahead/MIMO_PredictiveFunctionalControl/issues/1/1432379443@ github.com>

blockahead commented 1 year ago

Hello sir,

In the PFC method, the prediction horizon is only 3 points, and is defined as pfc.h in the config.m script. The control horizon is the same as the prediction horizon. It is called "coincidence points" in the PFC. Specifically, coincidence points are {T_CLRT/3, T_CLRT/2, T_CLRT/3}, where T_CLRT is the only design parameter of the PFC.

In general, model predictive controller have more points of horizon and are evenly distributed. There are two reasons for this

  1. the controlled system is nonlinear
  2. the control input generated by controller is arbitrary

PFC is only for the linear systems, and the control inputs are constrained to a combination of the "basis function" such as step, lamp, and parabola. Therefore, the PFC has few points which are unevenly distributed.

For getForceOutput.m, this project is a simulink project, and some variables are defined by MATLAB function in the simulink model. However, the arguments InputIndex, CoincidencePoint, and BasisFunction are define as loop variable in getYmfo.m.

If you need a dependency tree, please open the MATLAB project (MIMO_PFC.prj) and use the dependency analyzer. In the tree, we can see that "getForceOutput.m" dependent "getYmfo.m".

Regards.

Aysticky commented 1 year ago

Dear sir,

Thank you for this great explanation about the coincidence points and how it differs from MPC.

Eventually, I have understood where the inputs of the getForceOutput.m came from.

You've been such a great help in understanding and applying PFC. Thank you.

Yours sincerely,

Ayobami Meadows, MSc. Graduate Researcher, Department of Computer and Control Engineering. Ahmadu Bello University, Zaria. @. @. +234-7030727885 https://www.linkedin.com/in/ayobami-meadows-38016568

On Wed, Mar 8, 2023, 7:27 AM Kazuki Hamada @.***> wrote:

Hello sir,

In the PFC method, the prediction horizon is only 3 points, and is defined as pfc.h in the config.m script. The control horizon is the same as the prediction horizon. It is called "coincidence points" in the PFC. Specifically, coincidence points are {T_CLRT/3, T_CLRT/2, T_CLRT/3}, where T_CLRT is the only design parameter of the PFC.

In general, model predictive controller have more points of horizon and are evenly distributed. There are two reasons for this

  1. the controlled system is nonlinear
  2. the control input generated by controller is arbitrary

PFC is only for the linear systems, and the control inputs are constrained to a combination of the "basis function" such as step, lamp, and parabola. Therefore, the PFC has few points which are unevenly distributed.

For getForceOutput.m, this project is a simulink project, and some variables are defined by MATLAB function in the simulink model. However, the arguments InputIndex, CoincidencePoint, and BasisFunction are define as loop variable in getYmfo.m.

If you need a dependency tree, please open the MATLAB project (MIMO_PFC.prj) and use the dependency analyzer. In the tree, we can see that "getForceOutput.m" dependent "getYmfo.m".

Regards.

— Reply to this email directly, view it on GitHub https://github.com/blockahead/MIMO_PredictiveFunctionalControl/issues/1#issuecomment-1459610904, or unsubscribe https://github.com/notifications/unsubscribe-auth/AQKJZTTRUFXDRSQF5342YS3W3ARGZANCNFSM6AAAAAAUIVUKFU . You are receiving this because you modified the open/close state.Message ID: <blockahead/MIMO_PredictiveFunctionalControl/issues/1/1459610904@ github.com>