123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- //using JHFX = Package_turnout_analysis_geo; //几何分析 道岔分析
- //using JHTQ = Package_turnout_identify_geo; //几何分析 道岔提取
- using LGL = Package_turnout_analysis_wrf;//轮轨力 分析
- //using LGLTQ = Package_turnout_identify_wrf;//轮轨力 提取
- using JH = sub_main_turnout_analysis_geo;
- using MathWorks.MATLAB.NET.Arrays;
- using JHWX = Package_geo_change_analysis_for_turnout;//微小算法
- namespace ZDHscript
- {
- /// <summary>
- /// 算法类
- /// </summary>
- public class AnalysisAlgorithmcs
- {
- /// <summary>
- /// 几何新算法
- /// </summary>
- /// <param name="fname_dir0">geo路径</param>
- /// <param name="fname0">geo文件名</param>
- /// <param name="mile_id">是否使用修正后里程,1为使用修正后里程,0为是用geo文件自带里程</param>
- /// <param name="linename">线路名英文缩写</param>
- /// <param name="mile_min">线路最小里程</param>
- /// <param name="mile_max">线路最大里程</param>
- /// <param name="tz_curv">道岔台账,n*3维double型数组,第一列为正线道岔尖轨尖里程,第二列为辙叉号,第三列为道岔全长</param>
- /// <param name="tz_turnout">道岔台账信息,n*3维数组</param>
- /// <param name="distance_table">道岔尖心轨间距信息表,n*3维数组,分为高速和普速</param>
- /// <param name="carname">检测车名</param>
- public static MWArray[] JHFX(string fname_dir0, string fname0, int mile_id, string linename, double mile_min, double mile_max, double[] tz_curv, double[] tz_turnout, double[] distance_table, string carname)
- {
- JH.Class1 jhfx = new JH.Class1();
- MWNumericArray tz_curv_switch = new MWNumericArray(tz_curv.Length / 6, 6, tz_curv);
- MWNumericArray tz_turnout_switch = new MWNumericArray(tz_turnout.Length / 3, 3, tz_turnout);
- MWNumericArray distance_table_switch = new MWNumericArray(distance_table.Length / 3, 3, distance_table);
- MWArray[] agrsIn = new MWArray[] { fname_dir0, fname0, linename, tz_curv_switch, tz_turnout_switch, mile_min, mile_max, mile_id, carname, distance_table_switch };
- MWArray[] agrsOut = new MWArray[12];
- jhfx.sub_main_turnout_analysis_geo(12, ref agrsOut, agrsIn);
- return agrsOut;
- }
- /// <summary>
- /// 轮轨力新算法
- /// </summary>
- /// <param name="fname_dir0">bny路径</param>
- /// <param name="fname0">bny文件名</param>
- /// <param name="linename">线路名英文缩写</param>
- /// <param name="mile_min">线路最小里程</param>
- /// <param name="mile_max">线路最大里程</param>
- /// <param name="tz_curv">道岔台账,n*3维double型数组,第一列为正线道岔尖轨尖里程,第二列为辙叉号,第三列为道岔全长</param>
- /// <param name="tz_turnout">道岔台账信息,n*3维数组</param>
- /// <param name="distance_table">道岔尖心轨间距信息表,n*3维数组,分为高速和普速</param>
- /// <param name="carname">检测车名</param>
- public static MWArray[] LGLFX(string fname_dir0, string fname0, string linename, double mile_min, double mile_max, double[] tz_curv, double[] tz_turnout, double[] distance_table, string carname)
- {
- LGL.Class1 lgl = new LGL.Class1();
- MWNumericArray tz_curv_switch = new MWNumericArray(tz_curv.Length / 6, 6, tz_curv);
- MWNumericArray tz_turnout_switch = new MWNumericArray(tz_turnout.Length / 3, 3, tz_turnout);
- MWNumericArray distance_table_switch = new MWNumericArray(distance_table.Length / 3, 3, distance_table);
- MWArray[] agrsIn = new MWArray[] { fname_dir0, fname0, linename, tz_curv_switch, tz_turnout_switch, mile_min, mile_max, carname, distance_table_switch };
- MWArray[] agrsOut = new MWArray[8];
- lgl.sub_main_turnout_analysis_wrf(8, ref agrsOut, agrsIn);
- return agrsOut;
- }
- /// <summary>
- /// 微小算法
- /// </summary>
- public static MWArray[] WXSF(string[] date, string[] car, double[] mile, double[] wave_data, double[] id_wave_all, double[] jx_loc_all, string[] line, double[] velo, string[] zc)
- {
- JHWX.Class1 wx = new JHWX.Class1();
- MWCharArray date_ = new MWCharArray(date);
- MWCharArray car_ = new MWCharArray(car);
- MWNumericArray mile_ = new MWNumericArray(mile.Length, 1, mile);
- MWNumericArray wave_data_ = new MWNumericArray(wave_data.Length / 18, 18, wave_data);
- MWNumericArray id_wave_all_ = new MWNumericArray(id_wave_all.Length / 2, 2, id_wave_all);
- MWNumericArray jx_loc_all_ = new MWNumericArray(jx_loc_all.Length / 2, 2, jx_loc_all);
- MWCharArray line_ = new MWCharArray(line);
- MWNumericArray velo_ = new MWNumericArray(velo.Length, 1, velo);
- MWCharArray zc_ = new MWCharArray(zc);
- MWArray[] agrsIn = new MWArray[] { date_, car_, mile_, wave_data_, id_wave_all_, jx_loc_all_, line_, velo_, zc_ };
- MWArray[] agrsOut = new MWArray[11];
- wx.sub_main_geometry_small_change(11, ref agrsOut, agrsIn);
- return agrsOut;
- }
- }
- }
|