控制系统仿真课程设计(2011级)题目控制系统仿真课程设计学院自动化专业自动化班级学号学生姓名指导教师王永忠/刘伟峰完成日期2014年6月控制系统仿真课程设计一———交流异步电机动态仿真一 设计目的1.了解交流异步电机的原理,组成及各主要单元部件的原理。
2. 设计交流异步电机动态结构系统;3.掌握交流异步电机调速系统的调试步骤,方法及参数的整定。
二 设计及Matlab 仿真过程异步电机工作在额定电压和额定频率下,仿真异步电机在空载启动和加载过程中的转速和电流变化过程。
仿真电动机参数如下:1.85,2.658,0.2941,0.2898,0.2838s r s r m R R L H L H L H =Ω=Ω===,20.1284Nm s ,2,380,50Hz p N N J n U V f =⋅===,此外,中间需要计算的参数如下:21ms r L L L σ=-,r r r L T R =,222s r r m t rR L R L R L +=,10N m TL =⋅。
αβ坐标系状态方程:其中,状态变量:输入变量:电磁转矩:2p m p s r s Lr d ()d n L n i i T t JL J βααωψψβ=--r m r r s r r d 1d L i t T T ααβαψψωψ=--+r m r r s r r d 1d L i t T T ββαβψψωψ=-++22s s r r mm m s r r s s 2r r r rd d i R L R L L L L i u t L T L L ααβαασψωψ+=+-+22s s r r m m m s r r s s 2r r r r d d i R L R L L L L i u t L T L L ββαββσψωψ+=--+[ ]Tr r s s X i i αβαβωψψ=[ ]Ts s L U u u T αβ=()p m e s s s s r n LT i i L βααβψψ=-图00 打开simulink仿真程序图01打开库按钮图3 异步电机simulink结构图封装图4 带3相输入的异步电机框图图5. 3/2转换子系统图6. 2/3转换子系统注意:1)图5,6中标注的三角形增益为矩阵增益,假设输入为U,增益为矩阵C,那么,增益(Gain)环节的设置如下:图6. 增益环节设置2)UA电流输入设置如下:图7. 正弦电流参数设置3)仿真参数设置:如下步骤1:打开simulink仿真程序。
见上页图0.步骤1:首先,绘制如下图框图(见附图1)。
步骤2:封装图2中的框图。
选择图2中所有模块,单击鼠标右键,点击create subsystem,获得如下的子系统,把subsystem名字改为AC Motor步骤3:绘制3/2转换环节。
在上图3封装基础上,添加三相交流UA、UB、UC输入,该输入经过3/2坐标变换,作为 坐标系的输入,如下图4。
步骤4:添加2/3转换环节,如下图4和图6。
其中,3/2 transform子系统框图如下图5;2/3 transform见下图6:步骤5:输入相应的数据步骤6:运行simulink仿真程序。
仿真结果:1.动态:在空载启动大约0.15s内,为异步电机动态过程,转矩初始为0,启动转矩和启动电流很大,较大的启动转矩维持一段时间使电机转速快速提升至稳定值,未出现超调,动态时间大约持续0.15s。
2.稳定:0.s之后异步电动机空载启动完成进入稳定运行阶段,由于电机负载为0,故最终转矩稳定在0左右,电机稳定运行。
四设计问题回答1.交流异步电机的工作原理?电动机工作原理是根据电磁感应定律、全电流定律、电路定律和电磁力定律等得出的。
异步电动机定子上有三相对称的交流绕组,三相对称交流绕组通入三相对称交流电流时,将在电机气隙空间中产生旋转磁场,转子绕组导体处于旋转磁场中, 转子导体切割磁极的磁力线,并产生感应电势,利用右手定则可判断感应电势方向。
转子导体通过端环自成闭路,于是转子中产生感应电流。
感应电流与旋转磁极的磁场相互作用产生电磁力,利用左手定则可判断电磁力的方向。
电磁力作用在转子上进而产生电磁转矩,转子就旋转起来。
2.什么是3/2转换?三相绕组可以用相互独立的两相正交对称绕组等效代替,等效的原则是产生的磁动势相等。
两相绕组,通以两相平衡交流电流,也能产生旋转磁动势。
当三相绕组和两相绕组产生的旋转磁动势大小和转速都相等时,即认为两相绕组与三相绕组等效。
这就是3/2转换。
控制系统仿真课程设计二————单目标跟踪仿真一设计内容1.了解目标跟踪目的,原理和方法。
2. 仿真单目标运动航迹,杂波产生过程;3.掌握单目标数据关联和目标状态估计步骤,方法及参数的整定。
二设计及Matlab仿真过程1. 系统方程试验一:线性高斯例子(CV 运动)监测区域为,目标出生点为,检测概率为0.98,杂波密度为,既平均20个杂波点,状态协方差阵,,目标的初始分布为,其中,。
2. 跟踪方法⑴初始条件为: 00|00|000|000|0)~cov(,ˆ~,ˆP x x x x x x =-==⑵一步提前预测值和预测误差的协方差阵分别是预测状态: 1|1111|ˆ)|(ˆ-----==k k k k k k k x F Z x E x预测状态协方差阵:T k k k T k k k k k k k k Q F P F x P 11111|111|1|)~cov(---------+==ΓΓ其中1|1|ˆ~---=k k k k k x x x 是一步预测误差; ⑶获取新的量测k z 后,滤波更新值和相应的滤波误差的协方差阵分别是 量测误差协方差阵:|1Tk k k k k k S H P H R -=+滤波增益: 1|1Tk k k k k K P H S --= 状态协方差阵: |||1cov()Tk k k k k k k k k P x P K S K -==-状态估计: )ˆ(ˆ)|(ˆ1|1||---+==k k k k k k k k k k k x H z K x Z x E x 3.数据关联方法滤波方法将在统计意义上与被跟踪目标预测位置最近的量测作为与目标关联的回波信号。
统计距离定义为新息向量的加权系数:1|11|2~~---=k k k T k k k z S z d |1|1ˆk k k k k k z z H x--=- 其中,1|~-k k z 表示滤波新息(滤波残差向量),k S 为新息协方差矩阵,2k d 为残差向量的范数,理解为目标预测位置与有效回波之间的统计距离。
最近邻算法便于实现,且计算量小,主要适用于信噪比高、目标密度小的情况。
但是由于抗干扰能力差,在目标回波密度较大的情况,容易产生关联错误。
4. 杂波产生方法:zc=unifrnd(-1000,1000,[2 100]);%产生100个杂波点¨仿真代码:clear all;A=[1 1 0 0;0 1 0 0;0 0 1 1;0 0 0 1];B=[0.5 0;1 0;0 0.5;0 1];C=[1 0 0 0;0 0 1 0];B0=[10 0 0 0;0 5 0 0;0 0 10 0;0 0 0 5];Sk1=[20 0;0 20];Sk2=[20 0;0 20];Q=[25 0;0 25];%噪声过程的协方差阵R=[100 0;0 100];%量测噪声协方差阵Sz1=inv(Sk1);Sz2=inv(Sk2);n=50;m=100;%PD = 0.9;%-----------定义矩阵含义-------------X1=zeros(4,n);%目标1的真实状态X2=zeros(4,n);%目标2的真实状态Xp=zeros(4,2*n);%目标状态的提前一步预测Xe=zeros(4,2*n);%目标某时刻的估计状态Z1=zeros(2,n);%目标1真实量测Z2=zeros(2,n);%目标2真实量测Zp=zeros(2,2*n);%某时刻目标量测的提前一步预测Zk=zeros(2,2*n);%认定为目标量测的集合D=zeros(1,m+1,2*n);%目标可能的量测与提前一步预测的距离Pe=zeros(4,4,2*n);%滤波误差的协方差阵Pp=zeros(4,4,2*n);%预测误差的协方差阵K=zeros(4,2,2*n);%滤波增益%------------初始化两个目标的状态----X1(:,1)=[-900;30;900;-30]+B0*randn(4,1);%X2(:,1)=[-900;30;900;-30]+B0*randn(4,1);Xe(:,1)=[-900;30;900;-30];%Xe(:,51)=[-900;30;900;-30];Pe(:,:,1)=[100 0 0 0; 0 25 0 0;0 0 100 0;0 0 0 25];%Pe(:,:,51)=[100 0 0 0; 0 25 0 0;0 0 100 0;0 0 0 25];%------------Kalman滤波跟踪过程-----for k=1:n-1%--两个目标的真实航迹和量测------X1(:,k+1)=A*X1(:,k)+B*randn(2,1);Z1(:,k+1)=C*X1(:,k+1)+10*randn(2,1);%X2(:,k+1)=A*X2(:,k)+B*randn(2,1);%Z2(:,k+1)=C*X2(:,k+1)+10*randn(2,1);%---kalman滤波预测过程Xp(:,k+1)=A*Xe(:,k);%求k时刻目标1状态的提前一步预测Zp(:,k+1)=C*Xp(:,k+1);%求k时刻目标1量测的提前一步预测Pp(:,:,k+1)=A*Pe(:,:,k)*A'+B*Q*B';%求k时刻目标1预测误差的协方差阵%Xp(:,k+51)=A*Xe(:,k+50);%求k时刻目标2状态的提前一步预测%Zp(:,k+51)=C*Xp(:,k+51);%求k时刻目标2量测的提前一步预测%Pp(:,:,k+51)=A*Pe(:,:,k+50)*A'+B*Q*B';%求k时刻目标2预测误差的协方差阵%----模拟杂波并获得所有可能的两侧点Xc=unifrnd(-1000,1000,[1 100]);%模拟目标1的杂波Yc=unifrnd(-1000,1000,[1 100]);Zc=[Xc;Yc];% if rand > PD% Zx=[Zc];%目标1的所有可能的量测点% elseZx=[Z1(:,k+1),Zc];%目标1的所有可能的量测点% end%Xd=unifrnd(-1000,1000,[1 100]);%模拟目标2的杂波%Yd=unifrnd(-1000,1000,[1 100]);%Zd=[Xd;Yd];%Zy=[Z2(:,k+1),Zd];%目标2的所有可能的量测点%------获取最近邻量测---------------for i=1:m+1D(1,i,k+1)=(Zx(:,i)-Zp(:,k+1))'*Sz1*(Zx(:,i)-Zp(:,k+1));%D(1,i,k+51)=(Zy(:,i)-Zp(:,k+51))'*Sz2*(Zy(:,i)-Zp(:,k+51)); endd1=min(D(1,:,k+1));%求距离中的最小值x=find(D(1,:,k+1)==d1);%找到最小值的位置%d2=min(D(1,:,k+51));%y=find(D(1,:,k+51)==d2);%------kalman滤波更新过程Zk(:,k+1)=Zx(:,x);%获取目标1的新的量测Sk1=(C*Pp(:,:,k+1)*C'+R);K(:,:,k+1)=Pp(:,:,k+1)*C'*inv(Sk1);%k时刻系统的滤波增益a=Zk(:,k+1)-Zp(:,k+1);%新息%Zk(:,k+51)=Zy(:,y);%获取目标2的新量测%Sk2=(C*Pp(:,:,k+51)*C'+R);%K(:,:,k+51)=Pp(:,:,k+51)*C'*inv(Sk2);%b=Zk(:,k+51)-Zp(:,k+51);%新息Xe(:,k+1)=Xp(:,k+1)+K(:,:,k+1)*a;%目标1的滤波更新值Pe(:,:,k+1)=Pp(:,:,k+1)-K(:,:,k+1)*C*Pp(:,:,k+1);%目标1的滤波误差的协方差阵%Xe(:,k+51)=Xp(:,k+51)+K(:,:,k+51)*b;%目标2的滤波更新值%Pe(:,:,k+51)=Pp(:,:,k+51)-K(:,:,k+51)*C*Pp(:,:,k+51);%目标2的滤波误差的协方差阵clf;plot(Zk(1,2:k+1),Zk(2,2:k+1),'^-g',Zp(1,k+1),Zp(2,k+1),'oy',Xe(1,2:k+1),Xe(3 ,2:k+1),'p-b',X1(1,2:k+1),X1(3,2:k+1),'.-r',Xc,Yc,'+k');hold on;%plot(Zk(1,52:k+51),Zk(2,52:k+51),'v-m',Zp(1,k+51),Zp(2,k+51),'oy',Xe(1,52 :k+51),Xe(3,52:k+51),'h-k',X2(1,2:k+1),X2(3,2:k+1),'.-c',Xd,Yd,'*k');hold off;pause(0.1);endfigure;subplot(2,1,1);plot(1:n,Xe(2,1:n),'.-k');hold on;plot(1:n,X1(2,1:n),'*-k');%plot(1:n,X1(2,51:51+n-1),'*-k');legend('估计','真实');xlabel('t(s)');ylabel('X向速度(m/s)');subplot(2,1,2);plot(1:n,Xe(4,1:n),'.-k');hold on;plot(1:n,X1(4,1:n),'*-k');%plot(1:n,Xe(4,51:51+n-1),'*-k');legend('估计','真实');xlabel('t(s)');ylabel('Y向速度(m/s)');仿真结果:目标运动轨迹目标的x,y方向速度随时间变化过程目标跟踪过程三设计问题回答1.目标跟踪的原理?将探测器所接收到的量测数据分解为对应于不同信息源所产生的不同观测集合或轨迹。