matlab下的命令学习(自用)
Matlab的单步调试操作:1、设置断点的红点;2、运行;3、F10;
传递函数中的:iodelay
最小二乘法
%%%zoh 零阶保持,理想化;tustin 采用双线性逼近,间接设计法,区别参考此链接tustin-zoh
%%main
Gs = tf([0.5],[1 1 1]); % Actual system%%传递函数Gs=0.5/s^2+s+1
Ts = 0.2; %Sampling Time
Gz = c2d(Gs,Ts); %传递函数离散化dsys=c2d(sys,ts,'method');传函离散
%zoh 零阶保持, 假设控制输入在采样周期内为常值,为默认值。
%foh 一阶保持器,假设控制输入在采样周期内为线性。
%tustin 采用双线性逼近。method用tustin替代
%matched 采用SISO系统的零极点匹配法
%[num,den]=tfdata(dsys,'v'); 离散后提取分子分母
%%
u = @(t) 2*exp(-0.1*t)*sin(2*pi/2.5*t); % Input %建立一个关于t的输入函数@(t)_
t = 0:0.2:50; % Time of Operation%运行时间0到50s间隔0.2
% for i=1:length(t) %length(t)为t的数组长度
% U(i) = u(t(i)); % Input
% end
U = wgn(1,length(t),2); %wgn用于产生高斯白噪声
%y = wgn(m,n,p) 产生一个m行n列的高斯白噪声的矩阵,p以dBW为单位指定输出噪声的强度
%% Calculations of Orders
num = get(Gz,'num'); %取Gz分子 出来是CELL格式
den = get(Gz,'den'); %取Gz分母 出来是CELL格式
delay = get(Gz,'iodelay'); %延迟
Az = cell2mat(den); %元胞数组中的多个矩阵合并成一个矩阵
Az = Az./Az(1); %./点除 如果a、b是矩阵,a./b就是a、b中对应的每个元素相除,得到一个新的矩阵;如果a、b是两个数,那么a./b就是普通的除法
% Contains [1 a1 a2 ... ana]
if delay >0
Bz = [zeros(1,delay),