当前位置:首页 » 操作系统 » 仿真算法

仿真算法

发布时间: 2022-01-09 22:42:07

A. 蚁群算法怎样用MATLAB仿真

蚁群算法采用matlab开发的仿真平台:算法实现,路径显示,人机交互控制等
希望对你有帮助!
是可以运行的
% the procere of ant colony algorithm for VRP
%
% % % % % % % % % % %

%initialize the parameters of ant colony algorithms
load data.txt;
d=data(:,2:3);
g=data(:,4);
m=31; % 蚂蚁数
alpha=1;
belta=4;% 决定tao和miu重要性的参数
lmda=0;
rou=0.9;%衰减系数
q0=0.95;
% 概率
tao0=1/(31*841.04);%初始信息素
Q=1;%蚂蚁循环一周所释放的信息素
defined_phrm=15.0; % initial pheromone level value
QV=100; % 车辆容量
vehicle_best=round(sum(g)/QV)+1;%所完成任务所需的最少车数
V=40;
% 计算两点的距离
for i=1:32;
for j=1:32;
dist(i,j)=sqrt((d(i,1)-d(j,1))^2+(d(i,2)-d(j,2))^2);
end;
end;
%给tao miu赋初值
for i=1:32;
for j=1:32;
if i~=j;
%s(i,j)=dist(i,1)+dist(1,j)-dist(i,j);
tao(i,j)=defined_phrm;
miu(i,j)=1/dist(i,j);
end;
end;
end;

for k=1:32;
for k=1:32;
deltao(i,j)=0;
end;
end;
best_cost=10000;
for n_gen=1:50;
print_head(n_gen);
for i=1:m;
%best_solution=[];
print_head2(i);
sumload=0;
cur_pos(i)=1;
rn=randperm(32);
n=1;
nn=1;
part_sol(nn)=1;
%cost(n_gen,i)=0.0;
n_sol=0; % 由蚂蚁产生的路径数量
M_vehicle=500;
t=0; %最佳路径数组的元素数为0

while sumload<=QV;

for k=1:length(rn);
if sumload+g(rn(k))<=QV;
gama(cur_pos(i),rn(k))=(sumload+g(rn(k)))/QV;
A(n)=rn(k);
n=n+1;
end;
end;
fid=fopen('out_customer.txt','a+');
fprintf(fid,'%s %i\t','the current position is:',cur_pos(i));
fprintf(fid,'\n%s','the possible customer set is:')
fprintf(fid,'\t%i\n',A);
fprintf(fid,'------------------------------\n');
fclose(fid);

p=compute_prob(A,cur_pos(i),tao,miu,alpha,belta,gama,lmda,i);
maxp=1e-8;
na=length(A);
for j=1:na;
if p(j)>maxp
maxp=p(j);
index_max=j;
end;
end;

old_pos=cur_pos(i);
if rand(1)<q0
cur_pos(i)=A(index_max);
else
krnd=randperm(na);
cur_pos(i)=A(krnd(1));
bbb=[old_pos cur_pos(i)];
ccc=[1 1];
if bbb==ccc;
cur_pos(i)=A(krnd(2));
end;
end;

tao(old_pos,cur_pos(i))=taolocalupdate(tao(old_pos,cur_pos(i)),rou,tao0);%对所经弧进行局部更新

sumload=sumload+g(cur_pos(i));

nn=nn+1;
part_sol(nn)=cur_pos(i);
temp_load=sumload;

if cur_pos(i)~=1;
rn=setdiff(rn,cur_pos(i));
n=1;
A=[];
end;

if cur_pos(i)==1; % 如果当前点为车场,将当前路径中的已访问用户去掉后,开始产生新路径
if setdiff(part_sol,1)~=[];
n_sol=n_sol+1; % 表示产生的路径数,n_sol=1,2,3,..5,6...,超过5条对其费用加上车辆的派遣费用
fid=fopen('out_solution.txt','a+');
fprintf(fid,'%s%i%s','NO.',n_sol,'条路径是:');
fprintf(fid,'%i ',part_sol);
fprintf(fid,'\n');
fprintf(fid,'%s','当前的用户需求量是:');
fprintf(fid,'%i\n',temp_load);
fprintf(fid,'------------------------------\n');
fclose(fid);

% 对所得路径进行路径内3-opt优化
final_sol=exchange(part_sol);

for nt=1:length(final_sol); % 将所有产生的路径传给一个数组
temp(t+nt)=final_sol(nt);
end;
t=t+length(final_sol)-1;

sumload=0;
final_sol=setdiff(final_sol,1);
rn=setdiff(rn,final_sol);
part_sol=[];
final_sol=[];
nn=1;
part_sol(nn)=cur_pos(i);
A=[];
n=1;

end;
end;

if setdiff(rn,1)==[];% 产生最后一条终点不为1的路径
n_sol=n_sol+1;
nl=length(part_sol);
part_sol(nl+1)=1;%将路径的最后1位补1

% 对所得路径进行路径内3-opt优化
final_sol=exchange(part_sol);

for nt=1:length(final_sol); % 将所有产生的路径传给一个数组
temp(t+nt)=final_sol(nt);
end;

cost(n_gen,i)=cost_sol(temp,dist)+M_vehicle*(n_sol-vehicle_best); %计算由蚂蚁i产生的路径总长度

for ki=1:length(temp)-1;
deltao(temp(ki),temp(ki+1))=deltao(temp(ki),temp(ki+1))+Q/cost(n_gen,i);
end;

if cost(n_gen,i)<best_cost;
best_cost=cost(n_gen,i);
old_cost=best_cost;
best_gen=n_gen; % 产生最小费用的代数
best_ant=i; %产生最小费用的蚂蚁
best_solution=temp;
end;

if i==m;%如果所有蚂蚁均完成一次循环,,则用最佳费用所对应的路径对弧进行整体更新
for ii=1:32;
for jj=1:32;
tao(ii,jj)=(1-rou)*tao(ii,jj);
end;
end;

for kk=1:length(best_solution)-1;

tao(best_solution(kk),best_solution(kk+1))=tao(best_solution(kk),best_solution(kk+1))+deltao(best_solution(kk),best_solution(kk+1));
end;
end;

fid=fopen('out_solution.txt','a+');
fprintf(fid,'%s%i%s','NO.',n_sol,'路径是:');
fprintf(fid,'%i ',part_sol);
fprintf(fid,'\n');
fprintf(fid,'%s %i\n','当前的用户需求量是:',temp_load);
fprintf(fid,'%s %f\n','总费用是:',cost(n_gen,i));
fprintf(fid,'------------------------------\n');
fprintf(fid,'%s\n','最终路径是:');
fprintf(fid,'%i-',temp);
fprintf(fid,'\n');
fclose(fid);
temp=[];
break;
end;
end;

end;
end;

B. 哪些仿真算法是稳定的

标 题: 电力系统电磁暂态分析与机电暂态分析的功能区别和模型特点
发信站: BBS 水木清华站 (Thu Jul 22 16:46:31 2004), 站内

电磁暂态过程数字仿真是用数值计算方法对电力系统中从数微秒至数秒之间的电磁暂
态过程进行仿真模拟。电磁暂态过程仿真必须考虑输电线路分布参数特性和参数的频
率特性、发电机的电磁和机电暂态过程以及一系列元件(避雷器、变压器、电抗器等
)的非线性特性。因此,电磁暂态仿真的数学模型必须建立这些元件和系统的代数或
微分、偏微分方程。一般采用的数值积分方法为隐式积分法。
由于电磁暂态仿真不仅要求对电力系统的动态元件采用详细的非线性模型,还要计及
网络的暂态过程,也需采用微分方程描述,使得电磁暂态仿真程序的仿真规模受到了
限制。一般进行电磁暂态仿真时,都要对电力系统进行等值化简。
电磁暂态仿真程序目前普遍采用的是电磁暂态程序(electromagnetic transients program
,简称为EMTP),1987年以来,EMTP的版本更新工作在多国合作的基础上继续发展,
中国电力科学研究院(简称电科院)在EMTP的基础上开发了EMTPE。具有与EMTP相似功
能的程序还有加拿大Manitoba直流研究中心的EMTDC/PSCAD、加拿大哥伦比亚大学的
MicroTran、德国西门子的NETOMAC等。

机电暂态过程的仿真,主要研究电力系统受到大扰动后的暂态稳定和受到小扰动后的
静态稳定性能。其中暂态稳定分析是研究电力系统受到诸如短路故障,切除线路、发
电机、负荷,发电机失去励磁或者冲击性负荷等大扰动作用下,电力系统的动态行为
和保持同步稳定运行的能力。
电力系统机电暂态仿真的算法是联立求解电力系统微分方程组和代数方程组,以获得
物理量的时域解。微分方程组的求解方法主要有隐式梯形积分法、改进尤拉法、龙格
-库塔法等,其中隐式梯形积分法由于数值稳定性好而得到越来越多的应用。代数方
程组的求解方法主要采用适于求解非线性代数方程组的牛顿法。按照微分方程和代数
方程的求解顺序可分为交替解法和联立解法。
目前,国内常用的机电暂态仿真程序是电力系统综合程序(PSASP)和中国版BPA电力系
统分析程序。国际上常用的有美国PTI公司的PSS/E,美国EPRI的ETMSP,以及国际电
气产业公司开发的程序如:ABB的SIMPOW程序、德国西门子的NETOMAC也有机电暂态仿
真功能。

C. 如何用Matlab实现算法的仿真

可以去csdn下载
相关论坛应该也找得到啊,还可以找到相关资料
希望可以帮到你哈!

仿真、计算、研发、CAE、
广州工|程仿真科|技有限公司

D. 什么叫超实时仿真与实时仿真,欠实时仿真的区别。

超实时仿真的定义是:系统仿真模型的时间过程快于实际系统的时间过程的仿真研究。
实时仿真的定义是:通过模拟器设备输入操纵量,通过实时计算机中对已编译的动力学仿真模型进行计算的过程。
欠实时仿真的定义是:系统仿真模型的时间过程慢于实际系统的时间过程的仿真研究。

实时仿真 :

实时仿真是指仿真模型的时间比例尺等于系统原模型的时间比例尺的一类仿真。对系统进行仿真试验时,如果仿真系统有实物(包括人)处在仿真系统中,由于实物和人是按真实时间变化和运动的,因此就需要进行实时仿真。实时仿真要求仿真系统接收实时动态输入,并产生实时动态输出,输入和输出通常为具有固定采样时间间隔的数列。实现实时仿真固然首先依赖于计算机的运行速度,但仿真算法的实时性同样也是必须保证的,必须采用实时仿真算法,因此在算法上实时仿真要求能采用较大的仿真步长,并能实时地取得计算所需的外部输入信号。前面介绍的各种算法中只有一部分可以用于实时仿真,它们是实时的龙格-库塔方法、显式亚当姆斯方法、亚当姆斯预估-校正方法和离散相似法等等。

E. 加密算法仿真一般可以用什么软件实现

绝对给力嘚,原创!

F. MATLAB算法与SIMULINK 仿真的关系

我学自动化的,用MATLAB主要是进行数值计算,算法方面有很多工具箱可以在MATLAB里运行,如遗传算法工具箱、神经网络工具箱;simulink是MATLAB里面的仿真模块,主要是基于MALAB强大的计算能力建立起来的,绘制系统框图然后进行系统分析,通信方面还可以进行信号的处理和分析,这方面我们自动化就用得比较少了。

G. matlab里面的 仿真算法 ode23t 什么意思我用来仿真双侧电源双绕组三相变压器空载合闸时励磁涌流的分析

解微分方程的额

H. 电磁仿真 常用的算法有哪些哪一种最好用

电磁学中的算法有很多种,常见的有时域有限差分法(FDTD)、时域有限积分法(FITD)、矩量法(MoM)、有限元法(FE)、边界元法(BEM)、 谱域法(SM)、传输线法(TLM)、模式匹配法(MM)、横向谐振法(TRM)、线方法(ML)和解析法等等。最近,又多了一种EIT算法,这是一种基于FDTD算法的革新技术。EIT算法克服了传统FDTD算法在模拟弯曲金属界面和介质界面时的梯形误差,避免精度损失,保持算法精度和效率;解决了共形FDTD算法稳定性要求导致时间步长降低的效率问题,无需减少时间步长,保持计算速度。简单来说,在确保同等精度的情况下,EIT的计算速度更快。目前,EIT算法主要代表性CAE软件是中望电磁仿真软件,适合求解天线/天线阵列,雷达,微波器件,电磁兼容/电磁干扰,高速互联SI,电磁传播和散射等,以及任意结构电大宽带的电磁问题。

I. 为什么仿真中学习具体的数值算法

技术是解决问题的方法及方法原理,是指人们利用现有事物形成新事物,或是改变现有事物功能、性能的方法。技术应具备明确的使用范围和被其它人认知的形式和载体,如原材料(输入)、产成品(输出)、工艺、工具、设备、设施、标准、规范、指标、计量方法等。

J. 已知算法 怎么用Matlab进行仿真

按运行快捷键F5即可实现仿真图。 MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。 MATLAB是matrix&laboratory两个词的组合.

热点内容
aspnet数据库路径 发布:2024-12-26 11:47:35 浏览:972
皮卡堂怎么找到以前玩过的服务器 发布:2024-12-26 11:45:59 浏览:122
浏览器如何变电脑版安卓 发布:2024-12-26 11:44:36 浏览:178
vivo微信怎么加密码锁 发布:2024-12-26 11:34:14 浏览:403
对蚁群算法 发布:2024-12-26 11:15:53 浏览:807
tiobe编程语言社区 发布:2024-12-26 10:48:11 浏览:423
日立存储微码升级 发布:2024-12-26 10:43:48 浏览:152
如何建立家庭网站服务器 发布:2024-12-26 10:40:46 浏览:185
安卓显示e是什么意思 发布:2024-12-26 10:35:13 浏览:705
电磁炉编程 发布:2024-12-26 10:30:51 浏览:97