两条根轨迹会不会交叉

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了两条根轨迹会不会交叉相关的知识,希望对你有一定的参考价值。

以看出假设的系统传递函数如图中黄色公式部分

特征方程是(s^3+4*s^2+K*s+1) = 0;

绘制根轨迹的方法是

铺垫:

1) 先把所有和K有关的项合并成一大项K(s), (相当于提公因式K)

2) 接着把得到的式子除以不含K的项(如图中蓝色字体部分)

于是可以得到,这是变形后的特征方程

这个方程就变形为1+K * G(s) = 0 的形式了,很重要的铺垫

接着有几条规则需要注意 rule 1 和rule 2

Rule 1 看分子和分母谁的阶次高,把阶次高者的阶次标记为n,那么根轨迹有n条曲线

Rule 2 当K 从0增大到无穷大的时候,根的轨迹从传递函数的极点移动到传递函数的零点

上面的分析其实很精彩,极点和零点的定义分别是

利用这个定义,那么可以与K的变化很好的对应起来

K = 0的时候,P(s) = 0,此时是极点

K趋向于无穷大,而表达式为0,Q(s)必为0,是零点

这就可以观察到,K越来越大的时候,是从极点趋向于零点的!

上图分别对应了极点数和零点数相等,极点数大于零点数,极点数小于零点数,三种情况的根轨迹大致分布图像

Rule 3 如果有的根是虚根,那么必定对称分布,不对称就错鸟。。。。

Rule 4 同一极点引出的根轨迹是不能重叠和自身发生交叉相遇的!(原谅我烂大街的翻译。。。)

简单的demo

三个极点一个零点:

1)3个极点比一个零点多,决定了系统的根轨迹有三条

2)有两条根轨迹将终止于无穷远处

3)图中ab极点根轨迹会对称分布

4)每个根轨迹不会交叉重叠

Rule 5 所有根轨迹上的点的右侧,极点和零点数目和为奇数

Rule 6 根轨迹会以和实轴夹角90度的方式离开实轴,直线延伸至无穷远处

Rule 7 如果这里没有足够的极点零点相互一一对应,对于多出的极点或者零点引出的根轨迹趋向于无穷远处

Rule 8 趋向于无穷远处根轨迹的渐近线(这里不是简简单单的一条规则能说清楚的,详细说明如下)

渐近线和实轴的夹角为theta = ( (2*q+1)/(n-m) ) * 180 此处q = n-m - 1,n是极点数,m是零点数

渐近线与实轴相交点 = ( (所有极点值的和)-(所有零点值的和) ) / (n - m)

如上图左下,只有一个极点的时候,theta = ( ( (2*(1-0-1)) +1 ) / (1-0) ) * 180 = 180

于是渐近线和实轴的夹角是 = 180°

右边两个极点的图,同理

当有三个极点的时候

n = 3 m = 0

q (max)= 3-0-1 = 2

于是q = 0 ,1, 2

对应的theta分别是60° 180° -60°

渐近线的交点是((-1-2-3)-0)/ (3-0) =- 2

这样就可以画出根轨迹啦!

4个极点的同理。。。。

Rule 9 如果这里有两条根轨迹是趋向于无穷远处的,那么所有根的和是一个常数

就是说图中如果-3处的极点左移,-1左移,-2右移,得到的三个新极点的和还是同一个常数

当K从0增大到负无穷大的过程中,这个时候得到的图像是和0从正无穷大的过程得到的图像关于虚轴对称的

求解分离点就是解这个方程即可

下图是各种根轨迹的demo

之前有个问题,故意没有强调,放在后面,现在说

两个极点,有一个落到实轴正半轴上,导致根轨迹趋向于无穷的时候是落在正半轴这边的。系统不稳定

我用matlab 做了一个demo

怎么让系统变的稳定呢?

把趋向于无穷远的根轨迹落在正半轴部分的拉到负半轴去!

怎么拉?加零点!

这样系统就会趋于稳定了

beautiful !

打开CSDN APP,看更多技术内容

...以及增益K_Mr.YunLong的博客_matlab求传递函数零极点
z代表zeros零点 p代表poles极点 K代表增益 Consider the system defined by: 为了获得零点,极点,增益,使用以下命令: >>num=[41612];>>den=[11244480];>>[z,p,K]=tf2zp(num,den) 得到: z=-3-1p=0-6.0000-4.0000-2.0000K=...
继续访问
《视觉SLAM十四讲》笔记摘抄_ncepu_Chen的博客
《视觉SLAM十四讲》笔记摘抄
继续访问
热门推荐 极点和零点的概念
极点像男人,零点像女人。
继续访问
系统零极点解释.docx
控制系统零极点传函为零就一定增益为零?开环只是为了研究闭环引入的,零点处,闭环传递函数的特征式中亦含有该零点这个特征根,是可以约掉的。从根轨迹上看,轨迹起点才是增益K为零的地方,而此时对应的是开环传递函数的极点。当然,你可能又会反问:极点处开环函数分母已经为0,式子没有意义了。可是此时K为零,正好使得开环传函在数学上存在。
数字信号处理:Z变换零极点相消的概念及收敛域
Q: 杜老师,对于这个例2.5.2题的收敛域我还有些疑问! 为什么直接给出0到正无穷的范围 不通过等比因子的模小于1来算呢? A: Q: 好的,杜老师, 谢谢。 不考虑负的值? 是因为n大于0吗 就是收敛域的范围我看没有考虑负的值 A: Z的模,如果是复数的话,就是指它的模,如果是实数的话,就是指它的绝对值,本身就是一个正值。负无穷大,和正无穷大都指“不存在”...
继续访问
自动控制原理(MIT版)中文版
MIT版的自动控制原理课件,有兴趣可以看看。
自动控制原理与系统【1】
1.对于空调这个自动控制装置组成的系统它的被控变量是() A.空调器 B.房内温度 C.房间 D.房间里的人 2.开环控制系统的特征是没有() A.执行环节 B.给定环节 C.反馈环节 D.控制环节 3.典型二阶系统的单位阶跃响应和ξ有关ξ=0的响应曲线为() A.非周期性 B.衰减震荡 C.等幅震荡 D.发散震荡 4.若系统的传递函数在右半s平面上没有零点和极点则该系统称作() A.非最小相位系统 B.最小相位系统 C.不稳定系统 D.震荡系统 5.某典型环节的传递函数是Gs=15s+1
继续访问

绘制课本中的根轨迹图与零极点分布图
《信号与系统》第三版下册-郑君里 例11-8 已知反馈系统结构如图11-21所示,试绘制其根轨迹图。 这个图绘制的是A(s)F(s)的根轨迹图,并不是整个闭环系统的根轨迹图,也不是A(s)的根轨迹图 这道题的解析部分其实是为了计算在横轴上的交汇点。 ---------------------------------------------------------------------------------------------------------------------
继续访问

方程的根的个数C语言xtu_《自动控制原理》——根轨迹法
根轨迹:闭环系统的特征根随某参数从0到∞变化时的轨迹线。绘制根轨迹的意义:可以分析系统性能,看出系统的稳准快三项指标随参数的变化会发生什么。定义:当参数Kr从0→∞变化时,特征方程的根在复平面上形成的轨迹为根轨迹。闭环极点:与开环零点、开环极点及 K* 均有关闭环零点:前向通道零点 + 反馈通道极点根轨迹的幅值相角条件根轨迹上点的必须满足幅值、相角条件根轨迹的绘制(一)根轨迹的起点和终点轨迹起始于...
继续访问
自动控制原理中的根轨迹图绘制
自动控制原理中的根轨迹图绘制
继续访问

(四)3.自动控制原理 The Root Locus Method 广义根轨迹
广义根轨迹有两种情况: 1.参数根轨迹: 除k'以外,其他参数变化时候系统的根轨迹 画法: 1.求出对应该开环传递函数的特征式 (分子+分母) 2.构造等效开环传递函数(就是把含有未知数的挪到分子上去,这样就变成K'变化的根轨迹了) 3.对照等效开环画出根轨迹图 注:等效开环增益只能在画根轨迹的时候用,对照根轨迹分析就和K’变化的根轨迹一样了 关于等效开环增益: 尽可能的化成分母阶数大于...
继续访问

【自控原理】第四章 根轨迹法
文章目录A 根轨迹法的基本概念B 根轨迹方程C 绘制根轨迹的法则C.a 根轨迹法则介绍C.b 根轨迹法则(常规根轨迹)D 利用根轨迹分析系统的方法 引言 闭环控制系统的稳定性和性能指标主要由闭环系统的极点在复数平面上的位置决定。 分析和设计系统时确定闭环极点(即特征根)在复平 面的位置是十分有意义的: 闭环系统的极点在复平面的位置决定了系统的稳 定性 系统的性能指标也主要由闭环极点的位置决定 ...
继续访问

【数字信号处理】关于滤波器零极点的理解
零点:系统输入幅度不为零,且输入频率使系统输出为零的时候,称此时的输入频率值为零点。 极点:系统输入幅度不为零,且输入频率使系统输出为无穷大的时候,称此时的频率值为极点。 说明: 若要滤除w0频率的信号,则可在单位圆上设置一对共轭零点,该极点的位置在w0处 w0为相角,幅值为1(因为在单位圆上),所以一点可写成e^(±(j*w0)) ...
继续访问
LTI系统分析中系统函数及零极点分布对时域特性和系统稳定性和因果性的影响
连续信号的收敛于中左半平面对应单位圆内,虚轴对应单位圆外,右半平面对应单位圆外。 所以性质也有相平行的关系,这主要是取决于变换的定义式
继续访问
最新发布 「自控原理」4.1 根轨迹及其绘制
根轨迹法是三大分析方法之一,直观图解。根据根轨迹增益或其他参数从0到无穷变化,绘制出系统闭环特征根的移动轨迹即为根轨迹。 根轨迹的绘制常常具有近似性,因此不需要逐点计算,可以利用文中所述的法则和定理勾勒出根轨迹。 根据变化的参数不同,非根轨迹增益变化画出的根轨迹称为参数根轨迹。根据系统构型不同,正反馈系统画出的根轨迹称为零度根轨迹。它们合称为广义根轨迹。
继续访问

【自动控制原理】根轨迹Root Locus-笔记
重点掌握根的变化规律。从而设计控制器/补偿器。“根”——“极点”(一样的概念)一阶系统比如这个系统传递函数为,对这个系统施加一个冲击u(t)=,的Laplace变换=1。所以系统的输出为,令s+a=0,得“根”P=-a进行Laplace的逆变换,得到这个系统的时间函数,这里的-a就是它的根当a>0时,它在时间轴上的表现为指数衰减对于一般的一阶系统来说,如果把它的根在复平面上(横轴为实数,竖轴为虚数)表达出来的话,它一定落在实轴上,如图一阶函数的。...
继续访问

自动控制原理:反馈控制系统的复域分析
根轨迹(root locus)是开环系统某一参数从零变到无穷时,闭环系统特征方程式的根在s平面的变化轨迹。根轨迹法的基本任务在于,如何由已知的开环零、极点的分布及根轨迹增益,通过图解法找出闭环极点。
继续访问

控制教程 —— 介绍篇:9.基于Simulink为火车系统设计PID控制器
上篇博文介绍了如何使用Simulink对火车系统进行数学建模,这篇教程将介绍如何在Simulink中为建立好的火车系统设计控制器。 开环被控对象模型 回顾上节内容,我们建立了一个火车系统的数学模型。 假设火车沿直线方向运动,我们希望能对火车的引擎进行控制,使其能够平稳的启动和停止,并能在稳态下以尽可能小的误差跟踪给定的恒定速度指令。 在Simulink中实现PID控制器 我们首先创建一个子系统来便于理解,删除三个scope模块和Singal Generator模块,并用sink库中的 out 模块和 in
继续访问

(四)2.自动控制原理 The Root Locus Method 绘制根轨迹的八条法则
我们上节课了解了根轨迹是什么东西,学到了怎么去判断一个点是不是根轨迹上的点 但怎么去画根轨迹没有提及
参考技术A 不会
根轨迹的图像无一例外的没有交叉,有分离点的根轨迹会奇妙的陡折,触于一点后立刻反方向返回,总是不会交叉。
参考技术B 两条根轨迹会交叉。周直根的分根会交错生长,有盘根错节之说。 参考技术C 两条根轨迹会不会交叉。应该不会交叉轨迹是平行的,所以不会交叉。 参考技术D 如果这两条根轨迹不是互相平行的话,那么是一定会相交的。

c++,opecv:HoughLines() 不接收轨迹栏传递的值

【中文标题】c++,opecv:HoughLines() 不接收轨迹栏传递的值【英文标题】:c++, opecv: HoughLines() doesn't receive the values passed by trackbars 【发布时间】:2019-04-20 20:48:44 【问题描述】:

我应该使用 HoughLines 函数检测道路的两条白线。我使用三个轨迹条来找到仅检测道路的两条白线的最佳参数。我试过这个:(问题是即使我更改了轨迹栏的值,它也不会更新图像,它仍然是第一个值)。我正在使用带有 C++ 的 opencv。

没有轨迹栏它可以工作,但没有它几乎不可能找到好的值,因为我不知道如何调整参数并且图像非常复杂。

#include <iostream>
#include <opencv2/core.hpp>
#include <opencv2/highgui.hpp>
#include <opencv2/imgproc.hpp>
#include <opencv2/calib3d.hpp>


using namespace cv;
using namespace std;

const int kernel_size = 3;

Mat src, src_gray;
Mat dst, detected_edges;
Mat cdst;

int slider_value_one;
int slider_value_two;
int slider_value_three;


vector<Vec2f> lines; // will hold the results of the detection

static void Hough_transform(int, void*)

    // Standard Hough Line Transform
    HoughLines(detected_edges, lines, 1, CV_PI/180, 130,slider_value_one,slider_value_two); // runs the actual detectio
    // Draw the lines
    for( size_t i = 0; i < lines.size(); i++ )
    
        float rho = lines[i][0], theta = lines[i][1];
        Point pt1, pt2;
        double a = cos(theta), b = sin(theta);
        double x0 = a*rho, y0 = b*rho;
        pt1.x = cvRound(x0 + 1000*(-b));
        pt1.y = cvRound(y0 + 1000*(a));
        pt2.x = cvRound(x0 - 1000*(-b));
        pt2.y = cvRound(y0 - 1000*(a));
        line( cdst, pt1, pt2, Scalar(0,0,255), 3, CV_AA);
    
    //printing
    imshow("standard Hough Line Transform", cdst);
//HoughTransform



int main(int argc, const char * argv[]) 
    //-----Loads an image
    src = imread("/Users/massimilianolorenzin/Documents/Progetti\ XCode/lab4/lab4/lab4/images/road2.png");
    /// ---- CANNY DETECTOR
    /// Convert the image to grayscale
    cvtColor( src, src_gray, CV_BGR2GRAY);
    /// Reduce noise with a kernel 3x3
    blur( src_gray, detected_edges, Size(3,3) );
    /// Canny detector
    Canny( detected_edges, detected_edges, 150, 450, kernel_size );

    // Copy edges to the images that will display the results in BGR
    cvtColor(detected_edges, cdst, COLOR_GRAY2BGR);



    /// ---- HOUGH LINE TRANSFORM
    namedWindow("standard Hough Line Transform"); // Create Window

    //first TrackBar
    createTrackbar( "First Par", "standard Hough Line Transform", &slider_value_one, 200, Hough_transform);
    Hough_transform(slider_value_one,0 );

    //second TrackBar
    createTrackbar( "Second Par", "standard Hough Line Transform", &slider_value_two, 100, Hough_transform);
    Hough_transform(slider_value_two, 0 );

    //third TrackBar
    createTrackbar( "Third Par", "standard Hough Line Transform", &slider_value_three, 100, Hough_transform);
    Hough_transform( slider_value_three, 0 );
//printing
    imshow("Input Image",src);
    imshow( "edges", detected_edges );

    waitKey(0);
    return 0;

HoughLines() 看起来没有回答使用轨迹栏设置的值。窗口正常显示,slider_value_one、slider_value_two、slider_value_three 有正确的值,因为我打印了,我看到了,所以我不明白为什么 HoughLines() 不接受传递的值。

【问题讨论】:

尝试在循环中添加 waitKey(1) 而不是单个 waitKey(0)。 Atm 你的 waitKey 只执行一次,所以你函数中的 imshow 在异步调用后不会显示任何内容。 请在问题中添加您预期输出的示例图像。 【参考方案1】:

enter image description here

上方是输入图像,下方是最终输出。我被问到,在这一步中,只是为了在路边创建两条线,下一步要求为两条线之间的区域着色(如照片中所示)。

【讨论】:

嗨米卡。谢谢你的回答。我按照您的建议添加了 waitKey(1),我将它放在函数 Hough_transform 的末尾,但它看起来并没有改变任何东西。实际上,(在删除最终的waitkey(0)之后,当我运行代码时,它会在三个不同(且很短)的时刻加载图像,第一个轨迹栏,然后是第二个,最后是第三个。但随后,它关闭了立即打开窗口,我无法更改任何内容。

以上是关于两条根轨迹会不会交叉的主要内容,如果未能解决你的问题,请参考以下文章

判断两条链表是否交叉,若有交叉,返回交叉节点的指针。

Visio中两条交叉线间有拱形,最么去掉?网上都说选中线条右键格式-行为-,可是我的格式的下拉菜单没行为!

怎样去掉visio中两条线之间的凸点

图论引导笔记 第九章 可平面性

用VB 编写一个道路中心线的算法, 道路有两条直线的,曲线的,或者是交叉路口。 一定要是VB的,万分感谢了

R ggplot:传说中的“交叉效应”(不会随着 show.legend = NA 而消失)