早教吧作业答案频道 -->其他-->
编写MATLAB s-function状态方程中的未知数怎么给进去的问题?状态方程如下:X'=A*X+B*Uy=C*x+D*U;用的是连续状态,编写s函数时因为矩阵A中有未知数w,具体的程序如下:function [sys,x0,str,ts,simStateCompliance
题目详情
编写MATLAB s-function状态方程中的未知数怎么给进去的问题?状态方程如下:
X'=A*X+B*U
y=C*x+D*U;用的是连续状态,编写s函数时因为矩阵A中有未知数w,具体的程序如下:
function [sys,x0,str,ts,simStateCompliance] = quanjie(t,x,u,flag)
Rs=1.405;
Ls=0.178039;
Rr=1.395;
Lr=0.178039;
Lm=0.1722;
Rsr=Rs+(Lm/Lr)^2*Rr;
Ls1=Ls-Lm^2/Lr;
Tsr=Ls1/Rsr;
Tr=Lr/Rr;
switch flag,
case 0,
[sys,x0,str,ts,simStateCompliance]=mdlInitializeSizes;
case 1,
sys=mdlDerivatives(t,x,u);
case 3,
sys=mdlOutputs(t,x,u);
case {2,4,9}
sys = [];
otherwise
DAStudio.error('Simulink:blocks:unhandledFlag',num2str(flag));
end
function [sys,x0,str,ts,simStateCompliance]=mdlInitializeSizes
sizes = simsizes;
sizes.NumContStates = 4;
sizes.NumDiscStates = 0;
sizes.NumOutputs = 4;
sizes.NumInputs = 2;
sizes.DirFeedthrough = 1;
sizes.NumSampleTimes = 1; % at least one sample time is needed
sys = simsizes(sizes);
x0 = [0 0 0 0]';
str = [];
ts = [0 0];
simStateCompliance = 'UnknownSimState';
function sys=mdlDerivatives(t,x,u)
A=[-1/Tsr 0 Lm/(Ls1*Lr*Tr) Lm*wr/(Ls1*Lr)
0 -1/Tsr -Lm*wr/(Ls1*Lr) Lm/(Ls1*Lr*Tr)
Lm/Tr 0 -1/Tr -wr;
0 Lm/Tr wr -1/Tr ];
B=[1/Ls1 1/Ls1 0 0]';
sys = A*x+B*u;
function sys=mdlOutputs(t,x,u)
C=[1 0 0 0
0 1 0 0
0 0 0 0
0 0 0 0];
sys = C*x;
wr是要通过观测器出来的4个量计算的,怎么把wr值给入到矩阵中进行运算啊?我理解的s函数输入参数外,其他输入为状态变量的输入.请高人指教,感激!
X'=A*X+B*U
y=C*x+D*U;用的是连续状态,编写s函数时因为矩阵A中有未知数w,具体的程序如下:
function [sys,x0,str,ts,simStateCompliance] = quanjie(t,x,u,flag)
Rs=1.405;
Ls=0.178039;
Rr=1.395;
Lr=0.178039;
Lm=0.1722;
Rsr=Rs+(Lm/Lr)^2*Rr;
Ls1=Ls-Lm^2/Lr;
Tsr=Ls1/Rsr;
Tr=Lr/Rr;
switch flag,
case 0,
[sys,x0,str,ts,simStateCompliance]=mdlInitializeSizes;
case 1,
sys=mdlDerivatives(t,x,u);
case 3,
sys=mdlOutputs(t,x,u);
case {2,4,9}
sys = [];
otherwise
DAStudio.error('Simulink:blocks:unhandledFlag',num2str(flag));
end
function [sys,x0,str,ts,simStateCompliance]=mdlInitializeSizes
sizes = simsizes;
sizes.NumContStates = 4;
sizes.NumDiscStates = 0;
sizes.NumOutputs = 4;
sizes.NumInputs = 2;
sizes.DirFeedthrough = 1;
sizes.NumSampleTimes = 1; % at least one sample time is needed
sys = simsizes(sizes);
x0 = [0 0 0 0]';
str = [];
ts = [0 0];
simStateCompliance = 'UnknownSimState';
function sys=mdlDerivatives(t,x,u)
A=[-1/Tsr 0 Lm/(Ls1*Lr*Tr) Lm*wr/(Ls1*Lr)
0 -1/Tsr -Lm*wr/(Ls1*Lr) Lm/(Ls1*Lr*Tr)
Lm/Tr 0 -1/Tr -wr;
0 Lm/Tr wr -1/Tr ];
B=[1/Ls1 1/Ls1 0 0]';
sys = A*x+B*u;
function sys=mdlOutputs(t,x,u)
C=[1 0 0 0
0 1 0 0
0 0 0 0
0 0 0 0];
sys = C*x;
wr是要通过观测器出来的4个量计算的,怎么把wr值给入到矩阵中进行运算啊?我理解的s函数输入参数外,其他输入为状态变量的输入.请高人指教,感激!
▼优质解答
答案和解析
你的问题可以化为下面向量的问题
已知a=(1,1,1),b=(-1,1,1),c=a×u,d=c×u,
c和d的夹角是50°,c和v的夹角是55°,d和v的夹角是4.9°,
u⊥v,|u|=1,|v|=1
求u,v
题中的a,b,c,d,u,v均为三维向量,×表示向量内积,|u|表示向量u的模
其中,向量b对应你以前的(m,n,p),向量u对应你以前的(h,k,l),向量v对应你以前的(u,v,w)
由上题,c=a×u,d=c×u可得c⊥u,d⊥u又u⊥v,且c,d,v有相同的起点即坐标原点,从而c,d,v在同一平面上且有相同的起点,且均与u垂直
所以c,d,v之间的夹角必定满足某个等式,回到题上也就是说,55°=50°+5°,
进一步说,你给的条件是矛盾的,所以matlab找不到解
就算你给出的条件是对的,由于你给出的前三个方程并非完全独立的,也不足以确定你想要的结果
已知a=(1,1,1),b=(-1,1,1),c=a×u,d=c×u,
c和d的夹角是50°,c和v的夹角是55°,d和v的夹角是4.9°,
u⊥v,|u|=1,|v|=1
求u,v
题中的a,b,c,d,u,v均为三维向量,×表示向量内积,|u|表示向量u的模
其中,向量b对应你以前的(m,n,p),向量u对应你以前的(h,k,l),向量v对应你以前的(u,v,w)
由上题,c=a×u,d=c×u可得c⊥u,d⊥u又u⊥v,且c,d,v有相同的起点即坐标原点,从而c,d,v在同一平面上且有相同的起点,且均与u垂直
所以c,d,v之间的夹角必定满足某个等式,回到题上也就是说,55°=50°+5°,
进一步说,你给的条件是矛盾的,所以matlab找不到解
就算你给出的条件是对的,由于你给出的前三个方程并非完全独立的,也不足以确定你想要的结果
看了 编写MATLAB s-fun...的网友还看了以下:
设A为阶方阵,则下列的矩阵为对称矩阵的是().(A)A-A^T(B)CAC^T(C为任意阶方阵)( 2020-05-14 …
线性代数题:设A为n阶方阵,A*是A的伴随矩阵,如果/A/=a≠0,则/A*/=()设A为n阶方阵 2020-05-15 …
设A为n阶方阵,因此A可以化为约旦标准型,即存在可逆矩阵P,使得 AP=PJ,其中J为约旦标准型矩 2020-05-17 …
矩阵变化,矩阵的特征向量怎么变化?如AY=λY如矩阵变为A平方老师说λ会变为λ平方Y不变(λ为特征 2020-07-20 …
矩阵方程中的一个问题矩阵方程中,A,B为矩阵,x为向量,x=-B/A-B/A*exp(-A*t)中 2020-07-23 …
不等式-1|2X-5|-|X+1|<2的解集为如果方程组2X+my=3x-2y=m(m≠-4)的解 2020-07-30 …
请问矩阵方程AX=B,如果A不是方阵该怎么解?谢谢对于矩阵方程AX=B,如果(A,B)的行最简形是 2020-08-02 …
设A为n阵方阵,I为n阶单位阵,且A^3=0,证明1-A可逆,并求其逆 2020-11-02 …
A为三阶方阵,|A|=1/2,则|A^-1-A*|=如题,表达式叙述为“方阵A的逆矩阵减去方阵A的伴 2020-11-07 …
已知(k²-1)x²+(3k+3)x-k-1=0是关于x的一元一次方程,x的解为如果方程ax-4=2 2021-02-04 …