How can I evaluate the next state to take a decsion in Simulink?

1 次查看(过去 30 天)
Keeping the complicated details aside, what I want to do is this: I want to take a decision in Simulink (Choose between two controllers) based on what the next state will be using one of these controllers (the main one). If the next state meets a certain criteria then I will make a switch to the other controller. I've been trying to think of how this can be implemented but I just can't think of a way.

回答(2 个)

Jim Riggs
Jim Riggs 2018-5-8
编辑:Jim Riggs 2018-5-8
Here is my thought:
This used duplicate controller blocks.
Or if the decision only depends on the first controller:
Or maybe this would work:
  1 个评论
Yaseen Abdel Moneim Sabry El-Zawahry
Yes, this is what would come to mind at first. But the problem is that the switch logic is dependent on what would happen should we choose controller #1. So the switch logic is actually dependent on the system and the system is dependent on the switch so it can't be directly solved that way.

请先登录,再进行评论。


Yaseen Abdel Moneim Sabry El-Zawahry
After some time thinking and trying solutions I came up with one that works well enough for my application. What I did is that I created a similar system to the one I'm controlling. This new system gets updated with new initial values periodically (every 0.01s in my case) and is always controlled by the controller #1. Then the output of this system is calculated and based on this output we can do the necessary logic to choose the controller for the true system.

类别

Help CenterFile Exchange 中查找有关 Control System Toolbox 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by