极力 2023-03-22 12:54 采纳率: 25%
浏览 4

如果滑膜控制中涉及位置偏差三阶导,一般在matlab的s函数中是如何处理的呢?

如果滑膜控制中涉及位置偏差三阶导,一般在matlab的s函数中是如何处理的呢?
尝试过:1.将运算后的实际位置输出经过微分模块后再输入回去进行计算,但这似乎会出现时间差,导致运算值是一种叠加;2.在s-function中对加速度用diff函数求导得到位置偏差三阶导,但得到的是一个空值。

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-03-27 19:49
    关注
    不知道你这个问题是否已经解决, 如果还没有解决的话:
    • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/376952
    • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:matlab function
    • 除此之外, 这篇博客: Matlab学习篇之s-function中的 S函数的应用 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

      采用S函数实现y=kx+b

      (1)定义S函数

      1. 主函数
      function[sys.x0,str,ts]=timekb(t.x.,u,flag,k,b)
      switch flag
      case 0
      [sys.x0,str,ts]=mdlInitializeSizes;%初始化
      case 3
      sys=mdlOutputs(t.x.u,k,b); %计算输出量
      case{1,2,4,9}
      sys=[];
      otherwise;
      error(num2str(flag)) %出错处理
      end
      2. 初始化子函数
      function(sys.xO0,str,ts]=mdlInitializeSizes()
      sizes=simsizes;
      sizes.NumContStates-0; %无连续状态
      sizes.NumDiscStates-0; %无离散状态
      sizes.NumOutputs=1: %有一个输出量
      sizes.NumInputs=1: %有一个输入信号
      sizes.DirFeedthrough=1; %输出量中含有输入量
      sizes.NumSampleTimes=1; %单个采样周期
      sys=simsizes(sizes); %返回一个结构,包含上面的参数
      x0=[]; %设置初始状态为零状态
      str=[] ; %将str变量设置为空字符串
      ts=[-1,0]; %假定继承输入信号的采样周期
      3.输出子函数
      function sys=mdlOutputs(t,x,u,k,b) %k,b为自定义参数
      sys=k*u+b;

      (2)在Simulink模型中使用S函数

      在这里插入图片描述


    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 创建了问题 3月22日

悬赏问题

  • ¥15 使用STM32F103C6微控制器设计两个从0到F计数的一位数计数器(数字),同时,有一个控制按钮,可以选择哪个计数器工作:需要两个七段显示器和一个按钮。
  • ¥15 在yolo1到yolo11网络模型中,具体有哪些模型可以用作图像分类?
  • ¥15 AD9910输出波形向上偏移,波谷不为0V
  • ¥15 淘宝自动下单XPath自动点击插件无法点击特定<span>元素,如何解决?
  • ¥15 曙光1620-g30服务器安装硬盘后 看不到硬盘
  • ¥15 抖音直播广场scheme
  • ¥15 为什么我明明有这个文件调试器还显示错误?
  • ¥15 软件工程用例图的建立(相关搜索:软件工程用例图|画图)
  • ¥15 如何在arcgis中导出拓扑关系表
  • ¥15 处理数据集文本挖掘代码