速度环和电流环的PI响应哪个应该快些

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了速度环和电流环的PI响应哪个应该快些相关的知识,希望对你有一定的参考价值。

参考技术A 电流环快很多,微秒级,速度环,毫秒级。能差几十倍。 参考技术B 速度环相对电流环来说是外环,要想外环能控好,内环必须要响应快,建议电流环放在微秒级任务,速度环放在毫秒级任务 参考技术C 回复
2#
我的意思是两个环的PI调试很容易满偏到限幅值
参考技术D 回复
4#
你的意思是说在相同的PI调节情况下,电机的速度响应较慢而电流响应会快一些吧?按照这样理解是不是电流环的PI参数设置要比速度环小一些?使速度环调节慢一点,以弥补电气时间常数小?

推断单向链表中是否有环和查找环的入口

快慢指针

算法描写叙述

定义两个指针slow, fast。

slow指针一次走1个结点,fast指针一次走2个结点。假设链表中有环,那么慢指针一定会再某一个时刻追上快指针(slow == fast)。假设没有环,则快指针会第一个走到NULL。

实现

结点定义例如以下:

class Node {
    public Node next;
    public Object data;

    public static int sequence = 0;
}

算法:

/**
     * 快慢指针
     * @param head
     * @return
     */
    public static boolean checkCircle(Node head) {
        Node fast = null;
        Node slow = null;

        fast = head;
        slow = head;
        while (true) {
            // 慢指针移动一步
            if (null != slow.next) {
                slow = slow.next;
            } else {
                return false;
            }

            // 快指针移动两步
            if (null != fast.next && null != fast.next.next) {
                fast = fast.next.next;
            } else {
                return false;
            }

            // 检查是否相遇
            if (slow == fast) {
                return true;
            }
        }
    }

步数检查

算法描写叙述

上面的算法仅仅能推断链表中有没有环,假设我们想找出环的入口怎么办呢?

定义两个指针p, q。p每走一个结点(即一步),q则从头一直向后走,直到q走到NULL或p, q走到同一个结点但走过的步数不同样为止。

此时q的步数就是环入口在结点中的位置。假设走到NULL则说明链表不存在环。

为什么p, q走到同一个结点但步数不相等时就说明有环呢?由于假设p, q步数同样,说明它们走过的结点是一样的,假设p, q步数不同了。则说明p是从环里走了一圈又回到了环的入口。此时q到达该结点时还没有走过环,因此步数不相等,并且此时q的步数就是环的入口。

实现

/**
     * 查找环的起点
     * @param head
     * @return 返回元素的索引,从0開始。没有找到返回-1
     */
    public static int findCircleEntry(Node head) {
        Node p = head; // 总是从头開始
        Node q = head;

        int pSteps = 0;
        int qSteps = 0;
        while (null != q.next) {
            q = q.next;
            ++qSteps;

            // p从头開始走
            while (null != p.next) {
                p = p.next;
                ++pSteps;

                // 当p与q指向同一个结点时
                if (p == q) {
                    // 假设走的步数不同,则这就是入口
                    if (pSteps != qSteps) {
                        return pSteps - 1;
                    } else {
                        // 走的步数同样,不是入口
                        break;
                    }
                }
            }

            p = head; // 回到头结点
            pSteps = 0;
        }

        // 当中有一个指针走到了头,说明没有环
        return -1;
    }

以上是关于速度环和电流环的PI响应哪个应该快些的主要内容,如果未能解决你的问题,请参考以下文章

《机电传动控制》第十一周作业

电机三环调控学习

伺服电机三环(电流环速度环位置环)控制原理及参数调节

论查询速度,MS和Mysql哪个快?

程序备忘_PI参数整定_LV41

伺服电机三环控制的原理(位置环,运动环,电流环)