基于MATLAB的分子相互作用的表征模型
分子在永不停息地作无规则运动。扩散现象是分子作无规则运动的例证。所谓扩散是指两种不同的物质相互接触时,彼此进入对方的现象。分子之间既有引力,又有斥力。固体能保持一定的形状和体积且难以拉断,说明分子之间存在引力,而固体和液体分子间保持一定的间隙且很难被压缩,说明分子间又存在斥力。物质内分子间引力和斥力是同时存在的,引力和斥力都随分子间距离的增大而减小,斥力减小得更快。当分子间距为某一定值r0时,引力等于斥力,此时分子处于平衡位置;当分子间距大于r0时,引力起主要作用;当分子间距小于r0时,斥力起主要作用。若分子间距大于分子直径的10倍时,分子间作用力变得十分微弱,可以认为此时分子间作用力为零。
MATLAB是一种面向科学与工程计算的高级语言,它集科学计算、自动控制、信号处理、神经网络和图像处理等学科的处理功能于一体,具有极高的编程效率。MATLAB是一个高度集成的系统,MATLAB提供的Simulink是一个用来对动态系统进行建模、仿真和分析的软件包,它支持线性和非线性系统,能够在连续时间域、离散时间域或者两者的混合时间域里进行建模,它同样支持具有多种采样速率的系统。在过去几年里,Simulink已经成为数学和工业应用中对动态系统进行建模时使用得最为广泛的软件包。
3.2 分子函数的设计
在本例中,我们要通过输入的坐标值,来显示分子的位置,所以我们首先来设计分子函数。其MATLAB代码如下所示:
x=linspace(x1,x2,Mx);
y=linspace(y1,y2,My);
z=linspace(z1,z2,Mz);
load pot.out;
data=pot(1:220881);
va=reshape(data,My,Mx,Mz);
load FF.out;
data1=FF(1:220881);
w=reshape(data1,My,Mx,Mz);
p = patch(isosurface(x, y, z, va,-0.36073643,w));
isonormals(x,y,z,va, p)
set(p, 'FaceColor', 'interp', 'EdgeColor', 'none');
hidden on
daspect([1 1 1])
view(3)
lighting phong
hsurf=isosurface(x, y, z, va,-0.3566);
vertices=hsurf.vertices(:,:);
save vertice.txt vertices -ascii;
faces=hsurf.faces(:,:);
save face.txt faces -ascii ;
·linspace
x=linspace(a1,a2,a3);a1为第一个元素,a2为最末一个元素,a3表示x共有a3个元素,每个元素间距相等。
·load
加载外部数据。
·reshape
可以对数组进行重组变形, Y = reshape(X,m,n) 前提条件 Y与X中所含的元素个数必须相等。则上述命令将X转为 m*n的矩阵。
·isosurface
形成的曲面的点集
那么,我们可以得到如下的仿真结果。
3.3 分子定位设计
本模块,我们主要设计这么一个功能,输入x,y,z坐标值,然后在相应的位置显示分子。在本章3.2,我们已经设计了分子函数,下面我们主要通过输入坐标值来显示分子。其设计代码如下所示:
其顶层代码为:
clc;
clear;
close all;
NUM=input('请输入的要显示的分子的个数');
for i=1:NUM
x1=input('请输入分子X轴的坐标上限MIN\n');
x2=input('请输入分子X轴的坐标下限MAX\n');
y1=input('请输入分子Y轴的坐标上限MIN\n');
y2=input('请输入分子Y轴的坐标下限MAX\n');
z1=input('请输入分子Z轴的坐标上限MIN\n');
z2=input('请输入分子Z轴的坐标下限MAX\n');
fenzi(x1,x2,y1,y2,z1,z2);
hold on;
end
为了使系统的显示效果根据的明显,我们修改分子函数。
……………………………………
%(x1,y1,z1)UP
hndl=plot3(x1,y1,z1);
set(hndl,'markersize',30,'marker','.','color','k');
A=text(x1,y1,z1,'A');
set(A,'fontsize',18,'color','k');
hold on
%(x1,y2,z1)UP
hndl=plot3(x1,y2,z1);
set(hndl,'markersize',30,'marker','.','color','k');
B=text(x1,y2,z1,'B');
set(B,'fontsize',18,'color','k');
hold on
%(x2,y1,z1)UP
hndl=plot3(x2,y1,z1);
set(hndl,'markersize',30,'marker','.','color','k');
C=text(x2,y1,z1,'C');
set(C,'fontsize',18,'color','k');
hold on
%(x2,y2,z1)UP
hndl=plot3(x2,y2,z1);
set(hndl,'markersize',30,'marker','.','color','k');
D=text(x2,y2,z1,'D');
set(D,'fontsize',18,'color','k');
hold on
%(x1,y1,z1)DOWN
hndl=plot3(x1,y1,z2);
set(hndl,'markersize',30,'marker','.','color','k');
E=text(x1,y1,z2,'E');
set(E,'fontsize',18,'color','k');
hold on
%(x1,y2,z2)DOWN
hndl=plot3(x1,y2,z2);
set(hndl,'markersize',30,'marker','.','color','k');
F=text(x1,y2,z2,'F');
set(F,'fontsize',18,'color','k');
hold on
%(x2,y1,z2)DOWN
hndl=plot3(x2,y1,z2);
set(hndl,'markersize',30,'marker','.','color','k');
G=text(x2,y1,z2,'G');
set(G,'fontsize',18,'color','k');
hold on
%(x2,y2,z2)DOWN
hndl=plot3(x2,y2,z2);
set(hndl,'markersize',30,'marker','.','color','k');
H=text(x2,y2,z2,'H');
set(H,'fontsize',18,'color','k');
hold on
lx2=[x1 x2];ly2=[y1 y1];lz2=[z1 z1];
BL2=plot3(lx2,ly2,lz2,'b');
set(BL2,'linewidth',1);
hold on
lx4=[x1 x2];ly4=[y2 y2];lz4=[z1 z1];
BL4=plot3(lx4,ly4,lz4,'b');
set(BL4,'linewidth',1);
hold on
lx8=[x1 x2];ly8=[y2 y2];lz8=[z2 z2];
BL8=plot3(lx8,ly8,lz8,'b');
set(BL8,'linewidth',1);
hold on
lx11=[x1 x2];ly11=[y1 y1];lz11=[z2 z2];
BL11=plot3(lx11,ly11,lz11,'b');
set(BL11,'linewidth',1);
hold on
lx1=[x1 x1];ly1=[y1 y2];lz1=[z1 z1];
BL1=plot3(lx1,ly1,lz1,'b');
set(BL1,'linewidth',1);
hold on
lx7=[x2 x2];ly7=[y1 y2];lz7=[z1 z1];
BL7=plot3(lx7,ly7,lz7,'b');
set(BL7,'linewidth',1);
hold on
lx9=[x2 x2];ly9=[y1 y2];lz9=[z2 z2];
BL9=plot3(lx9,ly9,lz9,'b');
set(BL9,'linewidth',1);
hold on
lx12=[x1 x1];ly12=[y1 y2];lz12=[z2 z2];
BL12=plot3(lx12,ly12,lz12,'b');
set(BL12,'linewidth',1);
hold on
lx3=[x1 x1];ly3=[y1 y1];lz3=[z1 z2];
BL3=plot3(lx3,ly3,lz3,'b');
set(BL3,'linewidth',1);
hold on
lx5=[x1 x1];ly5=[y2 y2];lz5=[z1 z2];
BL5=plot3(lx5,ly5,lz5,'b');
set(BL5,'linewidth',1);
hold on
lx6=[x2 x2];ly6=[y2 y2];lz6=[z1 z2];
BL6=plot3(lx6,ly6,lz6,'b');
set(BL6,'linewidth',1);
hold on
lx10=[x2 x2];ly10=[y1 y1];lz10=[z1 z2];
BL10=plot3(lx10,ly10,lz10,'b');
set(BL10,'linewidth',1);
hold on
我们对系统进行仿真,可以得到如下的结果。
·输入一个分钟的情况
图3-2 分子位置显示
·输入二个分钟的情况
图3-2 多个分子的位置显示仿真效果图
基于MATLAB的分子相互作用的表征模型相关推荐
- 【分子相互作用】基于MATLAB的分子相互作用的表征模型仿真
1.软件版本 matlab2013b 2.本算法理论知识 分子在永不停息地作无规则运动.扩散现象是分子作无规则运动的例证.所谓扩散是指两种不同的物质相互接触时,彼此进入对方的现象.分子之间既有引力,又 ...
- 基于matlab/simulink同步发电机电路模型仿真,基于MATLAB/SIMULINK同步发电机电路模型仿真...
基于MATLAB/SIMULINK同步发电机电路模型仿真 维普资讯 http://www.1mpi.com 第 1第 3期 8卷 2003年 9月 青岛大学学报 J UR AL OFQI GD NI ...
- matlab 随机骨料程序,基于matlab的混凝土三维圆形骨料模型随机投放方法.pdf
一试验研究 斑楚遽1村 2Ol2年 基于matlab的混凝土三维圆形骨料模型 随机投放 方法 张海波 ,.何军拥. (1.广州航海高等专科学校,广东 广州 510330:2.广东工贸职业技术学院,广东 ...
- matlab 随机骨料程序,基于matlab的混凝土三维圆形骨料模型随机投放方法
2012 年■ 试验研究 基于 matlab 的混凝土三维圆形骨料模型随机投放方法 张海波 1,何军拥 2 (1.广州航海高等专科学校,广东广州 510330: 2.广东工贸职业技术学院,广东广州 5 ...
- matlab建立风速模型,基于MATLAB的风力发电系统风速模型的研究
<工业控制计算机}2016年第 29卷第 7期 13 基于 MATLAB的风力发电系统风速模型的研究 Research on Wind Speed Model of Wind Power Gen ...
- bouc wen matlab,基于Matlab磁流变阻尼器Bouc-Wen模型的参数识别
2018年 3月 第 46卷 第 5期 机床与液压 MACHINE TO0L& HYDRAULICS Mat.2018 Vo1.46 No.5 DOI:10.3969/j.issn.1001- ...
- 用matlab分析时间响应教程,基于Matlab的多自由度耦合滑移模型的动力响应可靠度分析...
Hi~我是mania 参考资料: (1)基于耦合滑移模型的岩体地震可靠性分析方法 (3)结构可靠度分析:方法与程序 简化模型及运动平衡方程 如下图1所示的多层隔震建筑,当受到地震作用时每层结构体都会产 ...
- 怎样用matlab建立igbt的仿真分析模型,基于MATLAB/Simulink的IGBT导通模型研究
<电气自动化)2o15年第37卷第6期 电力 系统及其 自动· Power System & Automation 基 于 MATLAB/Simu¨nk的 IGBT导通模型研究 朱永超, ...
- matlab dividend,[原创]基于(Matlab/R/C++)的方差Gamma模型(Hull期权期货)随机抽样[by fantuanxiaot]...
// 基于方差Gamma模型的随机抽样 // by fantuanxiaot #include #include #include #include #include #include using ...
- 基于matlab的电机运行分析,电机模型分析及拖动仿真:基于MATLAB的现代方法
第1章绪论 1.1MATLAB概述 1.2Simulink平台与MATLAB工具箱 1.2.1Simulink平台 1.2.2MATLAB工具箱 1.2.3SimPowerSystems工具箱 1.3 ...
最新文章
- 基于 Spring Boot 的车牌识别系统(附项目地址)
- 8086汇编学习笔记10-端口
- html缓存特效代码,HTML特效代码
- gpu的单位表示_GPU是如何工作的
- IDEA中双击两下shift全局搜索怎样取消和修改
- 2018-2019-1 20165318 20165322 20165326 实验一 开发环境的熟悉
- App Class Loader
- 哈工大威海c语言实验报告 第八章 无法运行程序,哈工大威海c语言实验报告.doc...
- 实战使用Axure设计App,使用WebStorm开发(4) – 实现页面UI
- 2017.10.1 atcoder TK1 D 思考记录
- NOIP2016提高组 天天爱跑步
- Android Studio实现学生信息管理系统,基础入门项目
- phpcms加载系统类与加载应用类的区别
- 证件照怎么换底色?不用ps,Word就能一键更换红白蓝底色
- myeclipse中设置项目编码方式
- 水清冷冷:PSCC2021安装图文教程及学习技巧(附工具)
- 虚拟机安装Hellosystem的几点收获
- A. New Year and Hurry
- 使用PyCharm批量爬取小说
- Linux入门系列视频教程(共45集)