声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1293|回复: 0

[线性振动] 模型误差与噪声 【转】

[复制链接]
发表于 2016-3-24 15:48 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
本帖最后由 Posion 于 2016-3-24 15:50 编辑

这几天单自由度总做不出来。用Matlab做了点儿数字试验。控制对象是一个质量块,给定外力,看它的阶跃响应。
一开始的实验,zhhSys_03,位置和速度都是微分方程计算的结果,是完全精确的,自然收敛没有问题。
随后的zhhSys_04,模拟实际过程,不用计算得来的位置和速度,把每次计算得到的位置,加上正态噪声,作为位置的测量值,给比例环节;前后两次的位置测量值的差,给微分环节。此时系统会不太稳定,有震荡。
再后的zhhSys_05,06没有区别。在04的基础上,如果力是减小的,就多减一点儿,是加大的,就少加一点儿。模拟磁轴承力模型线性化的误差。这会造成最终的静态误差。
做了四组实验。
1.png




这四个图大概说明:
1、模型线性化的误差,和测量误差会造成系统的震荡和稳态误差。
2、线性化误差小而测量误差大,与线性化误差大而测量误差小,效果差不多。
3、线性化误差测量误差都大,可能根本看不到系统做出预期的动作。如图0202,本来预期它向1的方向跃升,实际却变得更小,在-0.5左右大幅震荡。在CXF04上,就好像转子贴在一侧不动了。


程序
%sysZhh_04,张华的模拟系统文件
%每个时间段用x和x'计算控制力,一个时间段内控制力不变。
%把这个文件作为一系列数字试验的基础20151111
%现在这个文件模拟一个PD控制,控制一个质量快
%这个程序比03增加了噪声
function [t,y,zao]=sysZhh_04()
opt=odeset;
opt.RelTol = 1e-8;

t=zeros(1001,1);
y=zeros(1001,2);
zao=randn(1001,1)*0.3;  %产生均值为0,方差为0.04的随机数
t(1,1)=0;
y(1,:)=[0 0 ];
index=1;
global Fx;
for i=0:0.1:100-0.1   
    if i==0
        Fx=0;
    else
        Fx=PD2(y(index,1)+zao(index,1),(y(index,1)+zao(index,1)-y(index-1,1)-zao(index-1,1))*10);      
    end
    [tt,yy]=ode45(@shell_move2,[i,i+0.1],y(index,:),opt);
    index=index+1;
    lengthTemp = length(tt);
    t(index,1)= i+0.1;
    y(index,:)=yy(lengthTemp,:);
end;

function F=PD2(xx,xxx)
%PD控制计算
%第一个1是Kp,第二个1是位置的目标值,2是Kd
F=1*(1-xx)-2*xxx;

%这是一个质量快的运动方程
function dx=shell_move2(t,x)
global Fx;
dx=[x(2);
    0.1*Fx];    %0.1对应质量

>> [t,y,zao]=sysZhh_06
>>plot(y(1:900,:))


转自:http://blog.sina.com.cn/s/blog_4d9f829f0102vxpp.html

2.png
回复
分享到:

使用道具 举报

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-12-23 19:50 , Processed in 0.060771 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表