将复位功能添加到Simscape积分器块

6次浏览(过去30天)
威廉•亨特
威廉•亨特 2015年7月20日
回答: 大卫•约翰 2022年4月19日
我试图使用simscape将重置输入添加到自定义积分器块。如果重置输入为1,积分器将正常工作,如果重置输入为0,积分器将重置到初始条件。为了实现这一点,我试图将变量x设置为初始条件(x0),当“reset == 0”,但不知道如何填充else条件,以保持x相同,如果“reset == 1”(“if”必须附带“else”在simscape语言根据文档)。我尝试设置x == x,但这没有工作。我的代码写在下面。任何帮助都将不胜感激。
输入
I = {0,' 1 '};%:左
R = {0,' 1 '};% r:左
结束
输出
O = {0,' 1 '};% B:对
结束
参数
X0 = {0,' 1 '};初始条件
结束
变量(Access = public)
X = {0,' 1 '};
结束
函数设置
X = x0;
结束
方程
如果R <= 0
X == x0;%重置x
其他的
%什么也不做
结束
x.der == I * {1,“1 / s”};
O == x;%设置输出
结束
1评论
马修索恩
马修索恩 2017年12月7日
嘿,
你找到解决这个问题的办法了吗?
使用2014 b。我能想到的唯一解决方案是有一个if语句,并将else设置为积分一个大的正或负常数,直到我接近零。
但这显然不是一个好的解决方案。

登录评论。

答案(2)

尼古拉斯Schmit
尼古拉斯Schmit 2018年1月24日
我不是一名Simscape开发人员,但据我所知,Simscape不允许您手动重置积分器。一种解决方法是使用Simulink积分器和Simulink- ps转换器块。

大卫•约翰
大卫•约翰 2022年4月19日
在2018年,Simscape确实不允许你重置积分器。但是,在最近的版本中,至少从R2021a开始,您可以使用所附的代码来实现。

2022世界杯八强谁会赢?

世界杯预选赛小组名单社区寻宝

在MATLAB Central中找到宝藏,并发现社区如何帮助您!世界杯预选赛小组名单

开始狩猎!

Baidu
map