如果滑膜控制中涉及位置偏差三阶导,一般在matlab的s函数中是如何处理的呢?
尝试过:1.将运算后的实际位置输出经过微分模块后再输入回去进行计算,但这似乎会出现时间差,导致运算值是一种叠加;2.在s-function中对加速度用diff函数求导得到位置偏差三阶导,但得到的是一个空值。
如果滑膜控制中涉及位置偏差三阶导,一般在matlab的s函数中是如何处理的呢?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
关注 不知道你这个问题是否已经解决, 如果还没有解决的话:- 这个问题的回答你可以参考下: 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函数
- function[sys.x0,str,ts]=timekb(t.x.,u,flag,k,b)
如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^解决 无用评论 打赏 举报
悬赏问题
- ¥15 使用STM32F103C6微控制器设计两个从0到F计数的一位数计数器(数字),同时,有一个控制按钮,可以选择哪个计数器工作:需要两个七段显示器和一个按钮。
- ¥15 在yolo1到yolo11网络模型中,具体有哪些模型可以用作图像分类?
- ¥15 AD9910输出波形向上偏移,波谷不为0V
- ¥15 淘宝自动下单XPath自动点击插件无法点击特定<span>元素,如何解决?
- ¥15 曙光1620-g30服务器安装硬盘后 看不到硬盘
- ¥15 抖音直播广场scheme
- ¥15 为什么我明明有这个文件调试器还显示错误?
- ¥15 软件工程用例图的建立(相关搜索:软件工程用例图|画图)
- ¥15 如何在arcgis中导出拓扑关系表
- ¥15 处理数据集文本挖掘代码