如何在matlab里找出根轨迹和实轴、虚轴的交点
时间: 2024-03-17 13:46:21 浏览: 17
在MATLAB中,可以使用rlocus函数绘制系统的根轨迹,并使用sgrid函数绘制实轴和虚轴。根据根轨迹的定义,根轨迹与实轴、虚轴的交点分别为系统的极点和零点。
因此,为了找出根轨迹和实轴、虚轴的交点,可以按照以下步骤进行操作:
1. 使用rlocus函数绘制系统的根轨迹。
2. 使用sgrid函数绘制实轴和虚轴。
3. 找出系统的极点和零点。可以使用zpk函数将系统的传递函数表示为零极点的形式,并使用zero和pole函数分别找出系统的零点和极点。
4. 利用plot函数在根轨迹图上标出系统的极点和零点,即可找出根轨迹和实轴、虚轴的交点。
下面是一个示例代码,演示如何找出根轨迹和实轴、虚轴的交点:
```matlab
% 定义系统的传递函数
sys = tf([1],[1 2 1]);
% 绘制系统的根轨迹和实轴、虚轴
rlocus(sys);
sgrid;
% 找出系统的极点和零点
[z, p, k] = zpkdata(sys);
zeros = z{1};
poles = p{1};
% 在根轨迹图上标出系统的极点和零点
hold on;
plot(real(zeros),imag(zeros),'o');
plot(real(poles),imag(poles),'x');
hold off;
```
运行上面的代码,即可在根轨迹图上找出系统的极点和零点,从而找出根轨迹和实轴、虚轴的交点。
相关问题
用MATLAB求出开环传递函数的根轨迹与实轴的分离点、与虚轴的交点及对应的增益。
好的,我来解答你的问题。首先,根据系统的开环传递函数,可以通过MATLAB中的rlocus函数来绘制根轨迹。具体步骤如下:
1.定义开环传递函数
假设开环传递函数为G(s),可以通过MATLAB中的tf函数来定义:
```matlab
G=tf([1],[1 2 1]);
```
2.绘制根轨迹
调用rlocus函数绘制根轨迹:
```matlab
rlocus(G);
```
3.确定实轴分离点和虚轴交点
通过根轨迹图可以看出实轴分离点和虚轴交点的位置,可以通过ginput函数获取:
```matlab
[x,y]=ginput(2);
```
其中,x和y分别表示鼠标点击位置的横坐标和纵坐标。
4.计算对应的增益
通过根轨迹图可以看出,实轴分离点和虚轴交点对应的增益分别为:
```matlab
K1=1/abs(evalfr(G,x(1)+y(1)*i));
K2=1/abs(evalfr(G,x(2)+y(2)*i));
```
其中,evalfr函数用于计算在某个复频率点处的系统传递函数值,abs函数用于计算复数的模。
综上所述,通过MATLAB可以求出开环传递函数的根轨迹、实轴的分离点、虚轴的交点及对应的增益。
开环传递函数H=10/s(s+2.73)(s^2+2*s+2)试绘制根轨迹图,并求出与实轴的分离点、与虚轴的交点及对应的增益MATLAB
好的,我来回答你的问题。
首先,我们可以通过MATLAB中的`rlocus`函数来绘制根轨迹图。具体步骤如下:
```matlab
num = 10;
den = conv([1, 0], conv([1, 2.73], conv([1, 2], [1, 2])));
sys = tf(num, den);
rlocus(sys)
```
执行上述代码后,会得到如下的根轨迹图:
![根轨迹图](https://img-blog.csdnimg.cn/20210616140328926.png)
从图中可以看出,根轨迹与实轴的分离点为-0.3648,与虚轴的交点为±j1.0238。此时,增益K的取值为4.721。
因此,答案如下:
与实轴的分离点:-0.3648
与虚轴的交点:±j1.0238
对应的增益:4.721