数学过程推导
具'j体的数i学推导过程a就不做详绍了,在现代控制理论教材中都有,这儿贴两张图片
matlab 程序编写
根据上面公式推导,假设存在系统,其中,
其离散系统表达式为
求系统的状态转移矩阵,式中为拉氏反变换
matlab求解过程为
A = [0 1;0 -2];
B1 = [0 ;1];
syms s t Ls; % 求状态转移矩阵 利用拉氏变换,syms为符号函数用来定义数学函数
I = eye(size(A));
Ls = inv(s*I - A);
STM = ilaplace(Ls,s,t) %状态转移矩阵,ilaplace为拉氏反变换函数
同理可以求H
syms s t Ls; % 求状态转移矩阵 利用拉氏变换
I = eye(size(A));
Ls = inv(s*I - A);% collect 函数为合并同类项
STM = ilaplace(Ls,s,t) %状态转移矩阵
syms T
HLs = int(STM,t,0,T);
H = HLs*B1
运行结果如下
在simulink仿真过程中,我们需要G和H为已知的矩阵,当T固定时就可以求出G和H的具体数值了,这是需要用到符号函数求解函数subs,设步长T为0.001;matlab命令为
dt = 0.001;A = [0 1;0 -2];B1 = [0 ;1];syms s t Ls; % 求状态转移矩阵 利用拉氏变换 I = eye(size(A)); Ls = inv(s*I - A);% collect 函数为合并同类项 STM = ilaplace(Ls,s,t); %状态转移矩阵 G = double(subs(STM,t,dt)) % 符号函数求解syms T HLs = int(STM,t,0,T); H = HLs*B1; H = real(double(subs(H,T,dt))) % 符号函数求解 结果如下:
到这matlab部分就完成了剩下的就是在simulink中的具体仿真了,这个有需要再写吧,贴下自己做的一个简单仿真和连续系统同时进行的以便对数据对比,结果是连续系统和离散系统仿真数据是一样的。
数学过程推导
具'j体的数i学推导过程a就不做详绍了,在现代控制理论教材中都有,这儿贴两张图片
matlab 程序编写
根据上面公式推导,假设存在系统,其中,
其离散系统表达式为
求系统的状态转移矩阵,式中为拉氏反变换
matlab求解过程为
A = [0 1;0 -2];
B1 = [0 ;1];
syms s t Ls; % 求状态转移矩阵 利用拉氏变换,syms为符号函数用来定义数学函数
I = eye(size(A));
Ls = inv(s*I - A);
STM = ilaplace(Ls,s,t) %状态转移矩阵,ilaplace为拉氏反变换函数
同理可以求H
syms s t Ls; % 求状态转移矩阵 利用拉氏变换
I = eye(size(A));
Ls = inv(s*I - A);% collect 函数为合并同类项
STM = ilaplace(Ls,s,t) %状态转移矩阵
syms T
HLs = int(STM,t,0,T);
H = HLs*B1
运行结果如下
在simulink仿真过程中,我们需要G和H为已知的矩阵,当T固定时就可以求出G和H的具体数值了,这是需要用到符号函数求解函数subs,设步长T为0.001;matlab命令为
dt = 0.001;A = [0 1;0 -2];B1 = [0 ;1];syms s t Ls; % 求状态转移矩阵 利用拉氏变换 I = eye(size(A)); Ls = inv(s*I - A);% collect 函数为合并同类项 STM = ilaplace(Ls,s,t); %状态转移矩阵 G = double(subs(STM,t,dt)) % 符号函数求解syms T HLs = int(STM,t,0,T); H = HLs*B1; H = real(double(subs(H,T,dt))) % 符号函数求解 结果如下:
到这matlab部分就完成了剩下的就是在simulink中的具体仿真了,这个有需要再写吧,贴下自己做的一个简单仿真和连续系统同时进行的以便对数据对比,结果是连续系统和离散系统仿真数据是一样的。
举报