【TME-model项目】主程序说明

介绍

主程序

项目中共有10个主程序,主程序文件以program开头
中间为程序特征描述,如3_level_magnet,如L3_Bg
末尾为程序目标,如Current_ChangeQuench

子函数

项目中还有一些子函数,它们以fun开头,函数功能结尾,如

%fun_Arc_segment_Mutual_inductance.m function M = fun_Arc_segment_Mutual_inductance(r1,r2,h,Ply,afa1,afa2,bta1,bta2) % 计算互感 % 输入三个变量时计算两个不同高度不同半径同轴圆环的互感、自感;输入五个变量时计算圆弧段和圆之间的互感;输入八个变量时计算两个不同高度同轴螺旋圆弧的互感

函数内的变量尽量进行了容易理解的命名,如上述函数中的半径r1,r2,高度差h,带材厚度Ply,角度afa1,afa2,bta1,bta2

工具函数

项目中的工具函数以tool开头,函数功能结尾,主要用于产生预处理的数据,如

%tool_level_2_2_Mutual_inductance_Matrix.m - 描述二级模型与二级模型之间的互感 % 三级模型-整个单饼;二级模型-每匝一个元素;一级模型-T*A个元素,输入高度差input,输出互感列向量output ... save([this_path,'/level_2_2_Mutual_inductance_Matrix.mat'],'level_2_2_Mutual_inductance_Matrix');

分文件介绍

program_3_level_magnet_Current_Change.m
三级尺度模型仿真32.35T磁体的电流、温度和磁场变化。一级模型为每匝分解为36个元素,二级模型为每匝为一个元素,三级模型为每个单饼一个元素

program_3L_self_adaption.m
以自适应时间间隔仿真磁体的电流变化,使用三级模型,(自适应的尝试没有成功)

program_4_level_magnet_Current_Change.m
四级尺度模型仿真32.35T磁体的电流变化,零级模型为三维模型,将带材在宽度上划分为40份,(只有DP3的第101匝被细分)

program_20_Single_pancake_Current_Change
仿真一个20个单饼的磁体的电流-温度和磁场变化,其中第一个单饼为一级模型,其他19个单饼为二级模型

program_Current_Change.m
针对单饼的早期仿真尝试,使用的子函数少

program_Data_prepare.m
早期的数据预处理尝试

program_Double_pancake_Current_Change.m
针对的单个双饼的仿真,只考虑垂直磁场,一侧为一级模型,一侧为二级模型

program_L3_Bg_Quench.m
以三级模型仿真背场磁体失超时内插磁体的电流变化

program_level_2_20_Single_pancake_Current_Change.m
以二级模型仿真20个单饼的电流变化,早期用于验证多尺度模型,忽略环向电阻

program_level_2_20_Single_pancake_Current_Change.m
二级模型的电流变化,用来验证多尺度模型,增加三级模型的影响,忽略环向电阻

program_Symmetric_DP_Current_Change.m
利用对称结构的双饼进行大致计算,早期用于验证多尺度模型

程序结构

% program_3_level_magnet_Current_Change.m % 三级尺度模型仿真电流变化:一级模型为每匝分解为36个元素,二级模型为每匝为一个元素,三级模型为每个单饼一个元素
%% 运算环境 disp('运算环境处理...') programdate = datestr(datetime,'yyyymmdd_hhMMss'); this_path = '/public1/home/sc40009/QinLang/TME-model'; % A区 %this_path = '/public1/home/sc40009/QinLang/From Lptp_2/TME-model'; % D区 addpath(this_path); disp('运算环境处理完毕...')
%% 导入数据 disp('正在载入数据...') IC = 1./1.09; % Lv.1模型 load('Single_pancake_Mutual_inductance_Matrix.mat','-mat'); %一级模型每个元素的互感矩阵,包括自感 ... disp('数据导入完毕!')
%% 初始化数值 disp('变量初始化中...') [T,A,r0,Ply,W] = single_pancake_parameter(0); %单饼参数 %时间初始值 t = 0; ... %% 数据预处理 disp('数据预处理中...') % 根据一级模型的位置调整二级模型对一级模型的垂直场和互感影响 Vertical_Field_Matrix_2_1 = fun_VMF_beta(level_2_2_Vertical_Field,Beta_up,Beta_down);% 二级垂直场计算矩阵 ... %% 数据记录 disp('展开记录文件...') % 记录值 current_record = zeros(N_4,loop_number);%电流记录 ... disp('开始循环运算...')
%% 循环计算 for loop_count = 1:loop_number % 循环时间 tic dt = 15;%fun_Time_Interval_Control('time',t); %此次循环对应的时间间隔 ... % 组合成为一个方程组 Equation = ... % 解方程 organize_time = toc;tic I = real(Equation\Canstant); %% 记录 current_record(:,loop_count) = I;%记录电流 ... %% 显示 ... end
%% 保存记录 save([this_path,'/record/','record_',programdate,'.mat'],'time_record','current_record','temperature_record','voltage_record','field_record','Circle_Resistance_Matrix_1_record','Circle_Resistance_Matrix_2_record');