带焦点的线性系统的相图绘制matlab代码
时间: 2024-01-24 14:17:20 浏览: 82
以下是一个简单的 MATLAB 代码,可以绘制带焦点的线性系统的相图:
```matlab
% 定义系统矩阵 A 和控制输入矩阵 B
A = [1 0;0 -2];
B = [1;0];
% 定义状态向量 x 和控制输入向量 u 的取值范围
x_min = -5;
x_max = 5;
u_min = -5;
u_max = 5;
% 定义网格密度
n_points = 20;
% 生成状态向量和控制输入向量的网格
x1 = linspace(x_min, x_max, n_points);
x2 = linspace(x_min, x_max, n_points);
u1 = linspace(u_min, u_max, n_points);
u2 = linspace(u_min, u_max, n_points);
% 生成网格点的组合
[X1,X2] = meshgrid(x1,x2);
[U1,U2] = meshgrid(u1,u2);
% 计算系统的状态变化率
xdot1 = A(1,1)*X1 + A(1,2)*X2 + B(1,1)*U1;
xdot2 = A(2,1)*X1 + A(2,2)*X2 + B(2,1)*U1;
% 绘制相图
quiver(X1,X2,xdot1,xdot2);
xlabel('x1');
ylabel('x2');
title('Phase Portrait');
```
这段代码首先定义了一个带焦点的线性系统,然后生成了状态和控制输入向量的网格,并计算了系统状态的变化率。最后,使用 quiver 函数绘制相图。
请注意,这只是一个简单的示例,可以根据实际需要进行修改和优化。
阅读全文