2024年6月2日发(作者:)
Matlab基本算术命令:
数组的计算:
x=[3,5,11,17,8,9,31,40,12];
y=x+16 //数组里每个数加16
y=sqrt(x) //数组每个数开平方
n=length(x) //数组里偶数加2
for i=1:n
if mod(x(i),2)==0
x(i)=x(i)+2
end
end
sum(x(1:2:length(x))) //数组里系数为奇数的数的和
========================================
数组的阶乘运算须知:
当x是一组数时,如:x=1:0.1:4
此时:y=x^3、y=exp(x*x) 会出错
应为:y=x.^3、y=exp(x.*x) 用“点乘”
========================================
数组操作命令:
>> x=[3,1,5,7,9,2,6]; 定义一个数组
>> x(3) 该数组的第三个数是?
>> x(1:7) (显示该数组第1到第7个数)
>> x(1:end-1) 示该数组1~(7-1)个数
>> x(6:-2:1) 第六个数开始,从后往前隔着取数
>> sum(x) (数组内所有数求和)
========================================
矩阵命令:
>> A = [ 1 2 3; 3 4 5; 6 7 8] 按行写3X3矩阵
>> B = [ [1 2 3]' [2 4 7]' [3 5 8]'] 按列写3X3矩阵
>> B = zeros (m,n) m X n零矩阵
>> E = ones (m, n) m X n单位矩阵
>> N = rand(m, n) 随即矩阵
>> A' 矩阵转置
其他矩阵操作命令见
"
第一次作业
"
=====================================
控制系统模型相关命令:
用ode45 解常微分方程:
例题:求解dy/dt = -2y/t + 4t 在区间[1,3]的解
f=-2.*y./t+4*t //定义函数
[T,Y]=ode45(f,[1 3],2); //调用ode45命令
//[1,3]为区间,2为初值
Y_analysis = T.^2 + 1./(T.^2); //
size(T);
size(Y);
size(Y_analysis);
plot(T,Y,'r',T,Y_analysis,'g')
========================================
传函模型:
num1=[1]
den1=[1000 50]
sys=tf(num1,den1)
========================================
分子或分母由多个多项式乘积时的传函模型:
例如:G(s) = 4(s+2)(s2+6s+6)/[s(s+1)3(s3+3s2+2s+5)]
用conv命令处理:
num = 4*conv([1 2],[1 6 6])
den = conv([1 0],conv([1 1],conv([1 1],conv([1 1],[1 3 2 5]))))
Sys=tf(num,den)
或者另一种方法:
例如 1/(((s+1)^2+s+2)^3+1) ?
s=tf('s'); //定义算子
G=1/(((s+1)^2+s+2)^3+1)
可以得出结果
========================================
零极点模型:
>> h=zpk({[-3]},{[-1 -2 -5]},6)
Zero/pole/gain:
6 (s+3)
-----------------
(s+1) (s+2) (s+5)
========================================
状态空间模型:
ss
用法略
三种模型之间的转换:


发布评论