• 论文阅读疑惑,算法问题,求余,控制问题


    关注 码龄 粉丝数 原力等级 -- 被采纳 被点赞 采纳率 m0_57609499 2024-04-15 17:33 采纳率: 0% 浏览 0 首页/ 运维 / 论文阅读疑惑,算法问题,求余,控制问题 自动化算法 图中,/% Online Implementation Part %/中循环里,第三条运行的语句为什么要这么设置?为什么要使用求余函数?为什么余数为0,就要重新计算控制增益? 论文:Secure Leader-Follower Formation Control of Networked Mobile Robots Under Replay Attackshttps://webofscience.clarivate.cn/wos/alldb/full-record/WOS:001085447400001 收起 写回答 好问题 0 提建议 追加酬金 关注问题 微信扫一扫 点击复制链接 分享 邀请回答 编辑 收藏 删除 结题 收藏 举报 追加酬金 (90%的用户在追加酬金后获得了解决方案) 当前问题酬金 ¥ 0 (可追加 ¥500) ¥ 15¥ 20¥ 50¥ 100¥ 200 支付方式 扫码支付 二维码出错 点击刷新 支付金额 15 元 提供问题酬金的用户不参与问题酬金结算和分配 支付即为同意 《付费问题酬金结算规则》 结题 再想想 删除 再等等

    3条回答 默认 最新

    • 专家-赤兔[在线] 全栈领域优质创作者 2024-04-15 17:33
      关注

      引自免费微信小程序:皆我百晓生

      在您提供的论文《Secure Leader-Follower Formation Control of Networked Mobile Robots Under Replay Attacks》中,作者提出了一种名为LFF(Leader-Follower Formation)的控制策略,用于网络化移动机器人的编队控制,并且考虑了重播攻击的安全性。在算法的在线实现部分,循环中的第三条语句设计了一个周期性的控制器增益更新机制。

      具体来说,这个过程是为了应对可能存在的网络延迟或者系统参数变化。在网络环境下,通信可能存在不可预知的延迟,这可能导致先前设计的控制器增益不再是最优的。因此,为了确保系统的稳定性和性能,需要定期对控制器增益进行更新,使其适应当前环境的变化。

      这里使用求余函数(mod)的原因是它提供了一种简单的方法来确定何时执行特定的操作。在这个例子中,mod(g, LT)会返回g除以LT的余数。当余数为0时,意味着g是LT的整数倍,即到达了预定的时间间隔。这样做的好处是可以将增益更新与一个固定时间步长关联起来,而不是依赖于实时的、可能会受到网络不稳定影响的绝对时间戳。

      具体到代码实现,可以这样写:

      % ... 其他代码 ...
      
      % 设定总时间Tr,更新周期LT
      Tr = 10; % 总时间为10秒
      LT = 2;  % 更新周期为2秒
      
      % 初始化
      g = 0;
      Tm = 1; % 网络通道监控窗口大小
      
      while g <= Tr
          % ... 执行其他步骤 ...
          
          % 检查是否达到更新周期
          if mod(g, LT) == 0
              % 根据最新状态A,使用Lemma 2找到新的Kin
              new_Kin = lemma2(A); % 假设lemma2是一个函数,根据最新状态A计算新的控制增益
              Kin = new_Kin; % 更新控制增益
          end
          
          g = g + 1/Tm; % 更新g值,模拟时间推进
      end
      
      % ... 其他代码 ...
      

      这段伪代码展示了如何在循环中使用求余运算符来触发定时器事件,即每过LT秒,就调用lemma2函数计算并更新控制增益Kin。这有助于保持控制系统对环境变化的适应性,从而提高整个系统的鲁棒性。

      展开全部

      评论 编辑记录
    • GISer Liu 2024-04-15 18:36
      关注

      该回答引用自GPT-3.5,由博主GISer Liu编写:

      首先,让我们深入分析一下问题:

      1. 为什么要在循环中使用求余函数? 在循环中使用求余函数的目的是为了实现周期性执行某些操作。求余操作可以将一个连续变化的值限制在一个特定的范围内,这样可以模拟出周期性的行为。在控制算法中,可能需要周期性地执行某些任务,例如重新计算控制增益,以保证系统的稳定性和性能。
      2. 为什么余数为0,就要重新计算控制增益? 控制算法中的参数(比如控制增益)可能需要根据系统状态或者时间变化而调整。当余数为0时,表示已经过了一个完整的周期,这时重新计算控制增益可以确保控制算法在每个周期内都是有效的。如果不重新计算控制增益,可能导致系统在长时间运行后性能下降或者失效。
        针对这些问题,我会给出以下解决方案:
      3. 在循环中使用求余函数的设置:
        pythonCopy code
        if (t % T_update == 0):
        # 重新计算控制增益
        update_control_gain()
        
        这段代码中,t 表示当前的时间步,T_update 表示更新控制增益的周期。当 t 能够被 T_update 整除时,即余数为0,就执行重新计算控制增益的操作。
      4. 重新计算控制增益的实现:
        pythonCopy code
        def update_control_gain():
        # 根据当前系统状态或者时间,重新计算控制增益
        # 这里假设有一个函数可以根据系统状态或者时间重新计算控制增益
        new_control_gain = compute_new_control_gain()
        # 更新控制增益
        update_gain(new_control_gain)
        
        update_control_gain() 函数中,我们假设有一个 compute_new_control_gain()
        函数可以根据当前系统状态或者时间重新计算控制增益,并将其更新到系统中。
        通过这样的设置,可以确保控制算法在每个周期内都是有效的,从而提高系统的稳定性和性能。

      如果该回答解决了您的问题,请采纳!如果没有,请私信联系或评论您的疑惑

      展开全部

      评论
    • Kwan的解忧杂货铺 Java领域优质创作者 2024-04-16 13:41
      关注

      下午好🌅🌅🌅
      本答案参考ChatGPT-3.5

      问题解答:

      1.第三条语句的作用:

      第三条语句是为了更新控制增益,将控制增益的变化量乘以采样时间,并加到当前的控制增益上,从而得到最新的控制增益。这里的控制增益是指PD控制器中的比例增益和微分增益。该语句用来实现PD控制器的在线实现。

      2.为什么要使用求余函数?

      在第三条语句中,使用了求余函数,是为了限制控制增益的大小。由于控制增益可能会随着时间的推移而不断地增加,如果不限制控制增益的大小,就可能导致系统失稳。因此,通过设置一个控制增益的最大值,当控制增益超过最大值时,就将其重新设置为最大值,从而保证系统的稳定性。

      3.为什么余数为0,就要重新计算控制增益?

      当余数为0时,说明当前时间已经达到了控制增益的更新周期,即控制增益需要重新计算。如果不重新计算控制增益,就可能会导致系统不稳定。因此,通过设置余数为0来触发控制增益的重新计算。

      解决方案:

      1.第三条语句修改后的代码如下:

      Kp[i] += (Kp_delta[i] * dt) % Kp_update_period;
      Kd[i] += (Kd_delta[i] * dt) % Kp_update_period;
      

      2.限制控制增益大小的代码如下:

      if (Kp[i] > Kp_max)
          Kp[i] = Kp_max;
      if (Kd[i] > Kd_max)
          Kd[i] = Kd_max;
      

      3.重新计算控制增益的代码如下:

      if (time_count % Kp_update_period == 0) {
          //重新计算控制增益
          //...
      }
      

      展开全部

      评论
    编辑
    预览

    报告相同问题?

  • 相关阅读:
    python-爬虫-三字代码网站爬取
    github常用搜索指令
    物联网感知-高压直流长距离供电在线实时监测(光纤传感技术)
    信号处理-卡尔曼滤波
    centos 7.9安装和配置分析型数据库clickhouse
    函数式编程
    【技术番外篇】国家高新技术企业 认定
    内在不足外需存疑,是谁给了波司登继续涨价的“勇气”?
    协议-TCP协议-基础概念01-TCP头格式-TCP连接状态图-三次握手和四次挥手
    C++string类重要函数模拟实现
  • 原文地址:https://ask.csdn.net/questions/8088935