Control barrier functions basic example in 1d

29 次查看(过去 30 天)
Hi,
I'm trying to program a basic example of a control barrier functions, for a system of 1D. The idea is that this system should not go for the negatives values .
The dynamic of my system is defined by ,
The function h that is the constinst restriction is given by , such that
The enforce condition is given by,
The question is that I don't know how to program this example, I tried with the assumption that
But my code is not working.
This is my code
%% CASE: x \in R, x can only take positive values
%time interval
t_int = 0:0.001:20;
%initial condition
x_0 = 10;
b = 0.00000001;
%differential eqation
dxdt = @(t, x) -1 - x;
[t, x] = ode45(dxdt, t_int, x_0);
% Graficar la solución
figure;
plot(t, x);
xlabel('Time');
ylabel('x(t)');
grid on;
Can someone help me?
  2 个评论
Torsten
Torsten 2024-11-14
编辑:Torsten 2024-11-14
I'm completely unable to follow what you try to do.
William Rose
William Rose 2024-11-14
编辑:Voss 2024-11-14
I agree with @Torsten. I am unable to understand the dynamics of hte system you wish to simulate. You define b in your code but uyou do not use b in the differential equation, and you do not refer to b in your explanation.
The differential equation you use in your code
dx/dt=-x-1
is a decaying exponential which decays to x=-1, with time constant=1.
%% CASE: x \in R, x can only take positive values
%time interval
tSpan = [0,20];
%initial condition
x_0 = 10;
b = 0.00000001; % not used
%differential eqation
dxdt = @(t, x) -1 - x;
[t, x] = ode45(dxdt, tSpan, x_0);
% Graficar la solución
figure;
plot(t, x);
xlabel('Time');
ylabel('x(t)');
grid on;

请先登录,再进行评论。

采纳的回答

Ashok
Ashok 2024-11-25,8:40
编辑:Ashok 2024-11-25,8:40
From the equations mentioned in the query, it seems the condition for the system is incorrectly stated as , and should instead be , where is a class-K function. Additionally, the equation , suggests that the class-K function is chosen to be .
To ensure the condition on the control input, u can be chosen as , where ρ is a positive constant. However, the below line in the shared code suggests that the constant is chosen as which is contradictory.
dxdt = @(t, x) -1 - x;
To resolve the issue, replace ‘-1’ in the above line with some positive constant. Here’s a plot showing the system response for different values of ρ.
Kindly refer the following link to read more about Barrier Certificate Enforcement:

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Global or Multiple Starting Point Search 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by