【问题标题】:ss2tf returns unexpected value in matlab RS2016ass2tf 在 matlab RS2016a 中返回意外值
【发布时间】:2016-03-23 16:14:11
【问题描述】:

我正在尝试将状态空间模型转换为 matlab RS2016a 中的传递函数。我正在使用函数ss2tf(A,B,C,D),根据文档,它完全符合我的需要。例如,我使用 2 的静态增益。

ma​​tlab返回的答案:

>> ss2tf(0,0,0,2)
ans =
    2   0

*编辑: [2,0] 表示 s 域中的传递函数 2/0。以 0 作为分母的传递函数没有多大意义,在这种特殊情况下它是错误的。正确答案是[2,1],它代表传递函数 2/1 而不是 2/0。

*原文: [2,0] 表示 s 域中的传递函数 2/0。在我看来,答案应该是 [2,1],因此传递函数应该是 2/1 而不是 2/0。

预期答案:

>> ss2tf(0,0,0,2)
ans =
    2   1

对这种行为有解释吗?

【问题讨论】:

  • “在我看来”在你看来是什么意思。这是一个数学问题,而不是一个主观问题。在我看来ss2tf 应该在晚餐时做一个美味的比萨饼,但不幸的是它代表了传递函数的状态空间。可惜它没有做我认为应该做的事情,但是,它正确地做了它应该做的事情
  • 你说得对,“在我看来”并不是表达我想说的话的理想方式。如果该功能能够为晚餐做披萨,那就太好了;-)

标签: matlab state-space transfer-function


【解决方案1】:

ss2tf 是一个有两个输出参数的函数,用两个输出参数调用它:

[b,a]=ss2tf(0,0,0,2)

您只是在读取分母,而分母a 在您调用函数的方式中丢失了。

【讨论】:

  • 正确使用该函数时,输出为:>> [NUM,DEN]=ss2tf(0,0,0,2) NUM = 2 0 DEN = 1 0 这表示 tf 2*s/s 相当于 2/1,因此是正确的。我想知道为什么 matlab 不自己简化 tf...
  • 返回大小可预测的结果的函数有一些优势。
猜你喜欢
  • 1970-01-01
  • 2020-12-08
  • 2020-06-24
  • 1970-01-01
  • 1970-01-01
  • 2020-06-23
  • 2013-06-26
  • 2014-12-11
  • 2016-01-30
相关资源
最近更新 更多