连续时间系统离散化,矩阵指数,输出截断

时间:2016-06-29 07:47:25

标签: matlab controls discretization

有一个连续时间系统如下所示: enter image description here enter image description here

matlab代码是:

t=0.01;
syms s;
a2=[0 0 -285.7143;0 -0.4533 9.0662;5.2650 -5.2131 -42.5958];
b2=[571.4286;0;82.5714];
c2=[1 0 0];
A2=expm(a2*t);
B2=(int(expm(a2*s),0,t)*b1);

但是,当我计算B1时,计算机显示'输出被截断'。

请帮帮我。

非常感谢。

1 个答案:

答案 0 :(得分:0)

我认为没有必要使用符号数学来表示矩阵值函数的这个积分。相反,您可以将integral'ArrayValued' option

一起使用
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/1.0.25/vue.min.js"></script>

<div id="app">
    <ul class="plans">
        <plan-component name="Basic"></plan-component>
        
        <plan-component name="Recreational"></plan-component>
        
        <plan-component name="Team" most-popular></plan-component>
        
        <plan-component name="Club"></plan-component>
    </ul>
</div>

<template id="plan-component">
    <li v-bind:class="{ 'most-popular': mostPopular }">
        <p>{{ name }} <small v-if="mostPopular" class="popular-plan-label" style="color: red">Most popular</small></p>
    </li>
</template>

这要快得多,并返回与t = 0.01; a2 = [0 0 -285.7143; 0 -0.4533 9.0662; 5.2650 -5.2131 -42.5958]; integral(@(s)expm(a2*s),0,t,'ArrayValued',true) syms s;非常相似的结果(忽略由于数值误差导致的微小虚部)。另请参阅this question