您好,欢迎访问三七文档
华南师范大学系统仿真期中设计基于Qt的Lorenz混沌系统在Linux平台上的实现指导老师:李军院系:物理与电信工程学院专业:电子与通信工程一、实验背景近年来,随着移动互联网的飞速发展和手机平板电脑等移动设备的大量普及,如何将电脑上科研软件移植到手持移动设备上来,成了新的难题。本设计基于嵌入式Linux平台上实现了混沌系统仿真,对于在研究Lorenz混沌系统的相关科研人员来说提供了很多方便与支持。二、实验目的和实现平台实验目的:借助于嵌入式平台,在Linux系统上编程,让Lorenz混沌系统的Qt程序能在嵌入式Linux系统中实现模拟仿真。实现平台:ArmCortex-A8、Qtcreator、Qt4.5库文件、Ubuntu三、实验原理1.混沌系统的介绍在非线性科学中,混沌现象指的是一种确定的但不可预测的运动状态。它的外在表现和纯粹的随机运动很相似,即都不可预测。但和随机运动不同的是,混沌运动在动力学上是确定的,它的不可预测性是来源于运动的不稳定性。或者说混沌系统对无限小的初值变动和微扰也具于敏感性,无论多小的扰动在长时间以后,也会使系统彻底偏离原来的演化方向。2.混沌系统的基本特征2.1混沌系统对初值的敏感性以及长期行为的不可预测性。对初始条件的敏感依赖是混沌的基本特征,也有人用它来定义混沌:混沌系统是其终极状态极端敏感地依赖于系统的初始状态的系统。敏感依赖性的一个严重后果就在于,使得系统的长期行为变得不可预见。人们总希望能够预见未来,科学家希望能预见系统的后继行为,以便控制和利用系统;普通人希望能预见物价的起伏和自己的命运。2.2混沌系统的非周期性绝多数非线性动力学系统,既有周期性,又有混沌运动,而混沌即不是具有周期性和对称性的有序,又不是绝对的无序,而是一种复杂的有序。也就是说混沌是非周期的有序性。如Lorenz吸引子。我们研究混沌的目的就是是要揭示貌似随机的现象背后所隐藏的规律。3.混沌系统模型3.1混沌系统模型可以用下列三个微分方程描述:dxdtaytazt()()dydtrtxtytxtzt()()()()()dzdtxtytbzt()()()系数a通常取值为10.0;b通常取值为8/3,该方程组的初始条件为:xtx()00,yty()00,ztz()003.2混沌系统微分方程的离散化上面三个微分方程与初始条件一起构成一个一阶微分方程组,可以采用四阶龙格-库塔(Runge-Kutta)法求解.龙格—库塔方法计算公式为:如果微分方程为dxdtfxyzt/(,,,),则:1(,,,)*2(1/2,1/2,1/2,/2)*3(2/2,2/2,2/2,/2)*xincfxyztdtxincfxxincyyinczzinctdtdtxincfxxincyyinczzinctdtdt14(3,3,3,)*(122234)/6**nnxincfxxincyyinczzinctdtdtxxxincxincxincxinc其中xn为第n个迭代点,xn+1为第n+1个迭代点,dt为为时间步长.根据上式,从初始值xtx()00、yty()00、ztz()00开始就可以计算出以后各个时间的x、y和z的值.4.洛伦兹混沌系统4.1Lorenz混沌吸引子.混沌是一种非周期的动力学过程,看似无序,杂乱无章,但却隐含着丰富的内容,如混沌吸引子,分支,窗口等等.它是一种无序中的有序,决不仅仅是一个无从控制的随机过程.混沌吸引子是相空间的某部分,从它附近出发的任何点都逐渐趋近于它.在(x,y)平面上,我们可以看到形如肾脏的两叶的Lorenz混沌吸引子图.其中的点时而转到左页,时而转到右页.所有点的轨迹都螺旋趋近两叶中心,不会离开闭合的曲面.4.2Lorenz混沌的倍周期运动尽管Lorenz方程所反映的是一个非线性的混沌系统.但是,进一步的实验表明,在某些条件下,仍然可以有周期性的轨迹出现.例如,在采用周期RayleighLorenz系统的混沌吸引子.0.10a,0.30.8b,5.260r,01r数rtrrt()cos01时,无论系统的初始状态(x、y、z的初值)如何,如果r1从0增加至5.0,在r0=26.5时,如果我们观察系统经过较长时间迭代后的状态,可以发现此时系统出现了稳态的单周期(图a).在r0增大的过程中,可以获得稳态的双周期图(b),稳态的4周期图(c),稳态的64周期图(d)等.(a)单周期轨迹.5.260r,0.51r,63.7(b)双周期轨迹.5.270r,0.51r,63.7(c)4周期轨迹.9.270r,0.51r,63.7(d)64周期轨迹.987.270r,0.51r,63.7混沌系统中稳定的倍周期运动5.嵌入式Linux平台上实现仿真根据Lorenz混沌系统的原理来编写相关Qt程序,首先在Ubuntu虚拟机上模拟运行,运行成功后,再使用ARM的Qt链接库重新构建,将Qt程序移植到嵌入式Linux移动设备上,使Qt程序能在Linux系统上运行,得到预期的仿真图像效果。四、实验仿真的效果将Qt程序移植到嵌入式Linux移动设备上后,开启linux系统,启动Qt程序,出现如下图所示的进入界面.点击进入系统仿真,出现Lorenz混沌系统仿真界面,有参数设置和坐标选择以及显示清除窗口,选择不同的坐标和不同参数,可以得到不同的仿真图.下图2显示的是在不同参数下X-Y的仿真效果图.进入界面图X-Y坐标的仿真效果图五、实验总结和展望混沌是一种非周期的动力学过程,看似无序,杂乱无章,但却隐含着丰富的内容.它是一种无序中的有序,决不仅仅是一个无从控制的随机过程。Lorenz混沌系统显示在某些条件下,系统可以有周期性的轨迹出现.随着r1值的增大,x、y、z初值的敏感性会消失,系统趋于稳态对流状态.在嵌入式Linux平台上实现传统电脑软件的相关功能,给科研人员带来了很多便捷,也将成为时代发展的潮流。相信在嵌入式移动设备大量普及的今天,将科研软件移植到手持移动设备上,将会得到越来越多人的关注和期待.相关程序代码#includemainwindow.h#includeui_mainwindow.h#includeQPainter#includemath.h#includeQPrinter#includeQScrollArea#includeQHBoxLayout#includeQPushButton#includeQScrollBar#includemydialog.hfloata=10.0;floatb=8.0/3;floatc=28;floatw=7.62;floatr0=26.5;floatr1=0.0;floatdt=0.001;floatm0=-0.2;floatm1=0.4;floatxmax=0;floatxmin=0;floatymax=0;floatymin=0;floatzmax=0;floatzmin=0;intDisplayAfter=50000;intpaintSelect=0;intmodelSelect=1;intradioFlag=0;boolpaintFlag=true;boolrepaintFlag=true;intstart_paint=0;MainWindow::MainWindow(QWidget*parent):QMainWindow(parent),ui(newUi::MainWindow){ui-setupUi(this);show_init();set_init();on_clicking();}MainWindow::~MainWindow(){deleteui;}voidMainWindow::show_init(){//ui-show_area-setAutoFillBackground(true);//QPalettepalette;//palette.setColor(QPalette::Background,QColor(255,255,255));//ui-show_area-setPalette(palette);this-setAutoFillBackground(true);QPixmappixmap(/images/background.jpg);QPalettepalette1;palette1.setBrush(backgroundRole(),QBrush(pixmap));setPalette(palette1);}voidMainWindow::set_init(){ui-m_r0-setText(26.5);//r0ui-m_r1-setText(0.0);//r1ui-m_w-setText(7.62);//wui-m_n-setText(50000);//N,ui-m_x-setText(1);//xui-m_y-setText(1);//yui-m_z-setText(1);//zui-m_a-setText(10.0);//aui-m_b-setText(2.67);//b=8/3ui-m_t-setText(0.001);}voidMainWindow::on_clicking(){connect(ui-hundun,SIGNAL(triggered()),this,SLOT(hundun()));connect(ui-wave,SIGNAL(triggered()),this,SLOT(wave()));connect(ui-m_x,SIGNAL(clicked()),this,SLOT(changex()));//L(on_model_select_activated(intindex)//connect(ui-model_select,SIGNAL(on_model_select_activated(intindex)),this,SLOT(model_select(QString)));connect(ui-model_select,SIGNAL(currentIndexChanged(QString)),this,SLOT(model_select(QString)));}voidMainWindow::model_select(QStrings){if(QString::compare(s,X-T)==0){paintSelect=1;if(repaintFlag)ui-show_area-update();}elseif(QString::compare(s,X-Y)==0){paintSelect=2;if(repaintFlag)ui-show_area-update();}elseif(QString::compare(s,X-Z)==0){paintSelect=3;if(repaintFlag)ui-show_area-update();}elseif(QString::compare(s,Y-T)==0){paintSelect=4;//ui-calc_group-hide();if(repaintFlag)ui-show_area-update();}elseif(QString::compare(s,Z-T)==0){paintSelect=5;if(repaintFlag)ui-show_area-update();}elseif(QString::compare(s,Y-Z)==0){paintSelect=6;if(repaintFlag)ui-show_area-update();}else{paintSelect=0;}}voidMainWindow::on_btn_check_clicked(){}voidMainWindow:
本文标题:系统仿真期中设计
链接地址:https://www.777doc.com/doc-2102082 .html