SystemInfo

using System;
using System.Web;
using System.Data;
using System.Text;
using System.Configuration;
using System.Data.SqlClient;
using System.Runtime.InteropServices;

namespace HRMS
{
 /// <summary>
 /// 膀娄计沮巨摸
 /// </summary>
 public class SystemInfo
 {
  //
  //﹍て╰参獺摸
  //
  public SystemInfo()
  {
   //
   // TODO: 矪睰篶硑ㄧ计呸胯
   //
  }


  //
  //讽玡祅魁篈
  //
  public bool Logined
  {
   set
   {
    WriteSystemData("Logined",value.ToString());
   }
   get
   {
    bool bLogined=false;
    try
    {
     bLogined=(ReadSystemData("Logined")=="true");
    }
    catch
    {
     bLogined=false;
    }
    return bLogined;
   }
  }


  //
  //祅魁ノめID
  //
  public string LoginID
  {
   set
   {
    WriteSystemData("LoginID",value.Trim());
   }
   get
   {
    return ReadSystemData("LoginID");
   }
  }

  //
  //祅魁ノめ﹎
  //
  public string LoginName
  {
   set
   {
    WriteSystemData("LoginName",value.Trim());
   }
   get
   {
    return ReadSystemData("LoginName");
   }
  }


  /// <summary>
  /// 耞ノめ琌祅魁
  /// </summary>
  /// <param name="sLoginState">硈钡篈才跋だ祅魁ぃ╰参</param>
  /// <param name="sReLoginPage">狦⊿Τ祅魁璶硈钡祅魁</param>
  /// <returns></returns>
  public bool CheckLogined(string sLoginState,string sReLoginPage)
  {
   bool bLogined=false;
   try
   {
    bLogined=(ReadSystemData("Logined" + sLoginState)=="true");
    if (!bLogined)
    {
     if (sReLoginPage.Trim().Length>0) HttpContext.Current.Response.Redirect(sReLoginPage,true);
    }
   }
   catch
   {
    if (sReLoginPage.Trim().Length>0) HttpContext.Current.Response.Redirect(sReLoginPage,true);
    bLogined=false;
   }
   return bLogined;
  }

  /// <summary>
  /// 耞ノめ舦
  /// </summary>
  /// <param name="sLoginState">硈钡篈才跋だ祅魁ぃ╰参</param>
  /// <param name="nPurviewIndex">舦夹粁舦才﹃い竚硄筁琩计沮PurviewList眔Α "_" + "Bits"</param>
  /// <param name="sErrorPage">厨岿</param>
  /// <returns></returns>
  public bool CheckPurview(string sLoginState, int nPurviewIndex, string sErrorPage)
  {
   string sLoginPurview = ReadSystemData("LoginPurview" + sLoginState);//眔莱舦才﹃
   if (sLoginPurview.Length==0) goto ErrExit;//礚舦ㄏノ⊿祇瞷舦才﹃矪瞶礚舦巨
   if (sLoginPurview.Substring(0,1)=="1")return true;//禬ノめ
   if (sLoginPurview.Length<nPurviewIndex) goto ErrExit;//礚ㄏノ舦舦⊿砞竚
   if (sLoginPurview.Substring(nPurviewIndex-1,1)=="0") goto ErrExit;//礚ㄏノ舦舦砞竚窽ゎㄏノ-1琌才﹃竚眖0秨﹍璸衡
   return true;
   ErrExit:
    //砞竚铬锣礚舦薄猵铬锣厨岿
    if (sErrorPage.Trim().Length>0) HttpContext.Current.Response.Redirect(sErrorPage);
    return false;
  }
  /// <summary>
  /// 耞ノめ琌Τ舦祅魁
  /// </summary>
  /// <param name="sLoginState">ノㄓ耞讽玡琌硈巨</param>
  /// <param name="sUserID">ノめ块ノめ絪腹</param>
  /// <param name="sUserName">ノめ块ノめ絪腹癸莱ノめ嘿</param>
  /// <param name="sUserPwd">ノめ块ノめ盞絏</param>
  /// <param name="sUserDepartment">ノめ┮妮场,禬ノめ</param>
  /// <param name="nUserPurviewIndex">璶耞舦才腹</param>
  /// <param name="sErrorMessage">岿粇獺</param>
  /// <returns>喷靡硄筁true喷靡ア毖false</returns>
  public bool CheckUserLogin(string sLoginState, string sUserID, string sUserPwd, int nUserPurviewIndex, ref string sUserDepartment, ref string sUserName, ref string sErrorMessage)
  {
   string sReturnUserID=sUserID;
   string sReturnUserPwd=sUserPwd;
   string sReturnUserPurview="";//ノめ舦才﹃
   sErrorMessage ="";
   //耞硈钡才﹃琌タ絋
   SqlConnection cnnLinkServer=new SqlConnection(ServerLink);
   try
   {
    if(cnnLinkServer.State!=ConnectionState.Closed) cnnLinkServer.Close();
    cnnLinkServer.Open();
   }
   catch(Exception e)
   {
    cnnLinkServer.Close();
    sErrorMessage="<script>alert('计沮畐硈钡ア毖叫羛么硁砰揭(Tel:180183)! " + e.Message + "');</script>";
    return false;
   }

   SqlCommand cmdSelect = new SqlCommand("up_CheckUserLoginPurview",cnnLinkServer);
   cmdSelect.CommandType = CommandType.StoredProcedure;

   SqlParameter patSelect=new SqlParameter();
   SqlParameter patReturnUserID=new SqlParameter();
   SqlParameter patReturnUserName=new SqlParameter();
   SqlParameter patReturnUserPwd=new SqlParameter();
   SqlParameter patReturnUserDepartment=new SqlParameter();
   SqlParameter patReturnUserDepartmentName=new SqlParameter();
   SqlParameter patReturnUserPurview=new SqlParameter();
   SqlParameter patReturn=new SqlParameter();

   patReturnUserID=cmdSelect.Parameters.Add("@sUserID",SqlDbType.Char,20);
   patReturnUserID.Direction=ParameterDirection.InputOutput;
   patReturnUserID.Value=sReturnUserID;

   patReturnUserName=cmdSelect.Parameters.Add("@sUserName",SqlDbType.Char,20);
   patReturnUserName.Direction=ParameterDirection.Output;

   patReturnUserPwd=cmdSelect.Parameters.Add("@sUserPwd",SqlDbType.Char,18);
   patReturnUserPwd.Direction=ParameterDirection.InputOutput;
   patReturnUserPwd.Value=sReturnUserPwd;
   
   patReturnUserDepartment=cmdSelect.Parameters.Add("@sDepartmentID",SqlDbType.VarChar,10);
   patReturnUserDepartment.Direction=ParameterDirection.Output;//sUserDepartment

   patReturnUserDepartmentName=cmdSelect.Parameters.Add("@sDepartmentName",SqlDbType.VarChar,40);
   patReturnUserDepartmentName.Direction=ParameterDirection.Output;//sUserDepartmentName

   patSelect=cmdSelect.Parameters.Add("@nUserPurviewIndex",SqlDbType.Int);
   patSelect.Direction=ParameterDirection.Input ;
   patSelect.Value=nUserPurviewIndex;

   patReturnUserPurview=cmdSelect.Parameters.Add("@sUserPurview",SqlDbType.Char,100);
   patReturnUserPurview.Direction=ParameterDirection.Output;

   patSelect=cmdSelect.Parameters.Add("@Message",SqlDbType.Char,100);
   patSelect.Direction=ParameterDirection.Output;

   patReturn=cmdSelect.Parameters.Add("ReturnValue",SqlDbType.Int);
   patReturn.Direction=ParameterDirection.ReturnValue;

   try
   {
    cmdSelect.ExecuteNonQuery();
    sReturnUserID=patReturnUserID.Value.ToString().Trim();
    sReturnUserPwd=patReturnUserPwd.Value.ToString().Trim();
    sUserDepartment=patReturnUserDepartment.Value.ToString().Trim();
    sReturnUserPurview=patReturnUserPurview.Value.ToString().Trim();
    WriteSystemData("LoginPurview" + sLoginState,sReturnUserPurview.Trim());//р舦才﹃糶Sessionい称ノ
    WriteSystemData("LoginDepartment" + sLoginState, sUserDepartment);//玂场
    WriteSystemData("LoginDepartmentName" + sLoginState,patReturnUserDepartmentName.Value.ToString().Trim());//р舦才﹃糶Sessionい称ノ
    bool bReturn=(((int)patReturn.Value)==0);
    if (!bReturn)//狦纗筁祘獶0
    {
     sErrorMessage="<script>alert('" + patSelect.Value.ToString().Trim() + "');</script>";
     cnnLinkServer.Close();
     return false;
    }
    else
    {
     //耞糶琌璓
     if (sReturnUserID != sUserID)
     {
      sErrorMessage = "<script>alert('ノめ絪腹喷靡ア毖叫猔種糶琌璓');</script>";
      sErrorMessage += "<script>window.document.forms(0).txtUserID.focus();</script>";
      cnnLinkServer.Close();
      return false;
     }
     if (sReturnUserPwd != sUserPwd)
     {
      sErrorMessage = "<script>alert('ノめ盞絏喷靡ア毖叫猔種糶琌');</script>";
      sErrorMessage += "<script>window.document.forms(0).txtUserPwd.focus();</script>";
      cnnLinkServer.Close();
      return false;
     }
     sUserName=patReturnUserName.Value.ToString().Trim();
     cnnLinkServer.Close();
     
     return true;
    }
   }
   catch(Exception e)
   {
    sErrorMessage="<script>alert('计沮畐巨ア毖ア毖叫羛么硁砰揭(Tel:180183)! " + e.Message + "');</script>";
    cnnLinkServer.Close();
    return false;
   }
  }


  //
  //计沮畐硈钡才﹃
  //
  public string ServerLink
  {
   get
   {
    return ReadSystemData("ServerLink");
   }
   set
   {
    WriteSystemData("ServerLink",value.Trim());
   }
  }

  /// <summary>
  /// 计沮畐硈钡才﹃
  /// </summary>
  /// <param name="sLoginState">硈钡篈才跋だ祅魁ぃ╰参</param>
  /// <returns></returns>
  public string GetServerLink(string sLoginState)
  {
    return ReadSystemData("ServerLink" + sLoginState);
  }

  /// <summary>
  /// 眔穝计沮畐硈钡癸钩,摸 SqlConnection计沮畐硈钡ㄏノ╰参纐粄 ServerLink
  /// </summary>
  /// <returns></returns>
  public SqlConnection LinkConnection()
  {
   return LinkConnection(ServerLink);
  }

  /// <summary>
  /// 眔穝计沮畐硈钡癸钩,摸 SqlConnection
  /// </summary>
  /// <param name="sServerLink">硈钡计沮畐才﹃跑秖</param>
  /// <returns></returns>
  public SqlConnection LinkConnection(string sServerLink)
  {
   SqlConnection cnnLink=new SqlConnection(sServerLink);
   try
   {
    if(cnnLink.State!=ConnectionState.Closed) cnnLink.Close();
    cnnLink.Open();
    return cnnLink;
   }
   catch(Exception e)
   {
    cnnLink.Close();
    string sExcept=e.Message;
    HttpContext.Current.Response.Redirect(ConfigurationSettings.AppSettings["ErrSystem"]);
    return null;
   }
  }

  /// <summary>
  /// 沮絏眔だ计沮
  /// </summary>
  /// <param name="connsServerLink">计沮畐硈钡癸禜</param>
  /// <param name="sQueryText">┪琩高粂</param>
  /// <param name="nPageSize">–魁计</param>
  /// <param name="nPageCurrent">材碭</param>
  /// <param name="nPageCount">羆计</param>
  /// <param name="sShowFileds">璶陪ボ琿</param>
  /// <param name="sOrderFileds">逼琿</param>
  public DataTable SelectDataForPageIndex(string connServerLink, string sQueryText, int nPageSize, int nPageCurrent, ref int nPageCount, string sShowFileds, string sOrderFileds)
  {
   DataSet dsSelect=new DataSet();

   SqlConnection connsServerLink=LinkConnection(connServerLink);
   SqlCommand cmdSelect=new SqlCommand("up_Sunny_PageSize",connsServerLink);
   SqlDataAdapter daSelect = new SqlDataAdapter();
   
   daSelect.SelectCommand = cmdSelect;
   cmdSelect.CommandType=CommandType.StoredProcedure;

   SqlParameter patSelect=new SqlParameter();

   patSelect=cmdSelect.Parameters.Add("@QueryText",SqlDbType.VarChar, 4000);
   patSelect.Value =sQueryText;

   patSelect=cmdSelect.Parameters.Add("@PageSize",SqlDbType.Int);
   patSelect.Value =nPageSize;

   patSelect=cmdSelect.Parameters.Add("@PageCurrent",SqlDbType.Int);
   patSelect.Value =nPageCurrent;

   patSelect=cmdSelect.Parameters.Add("@ShowFields",SqlDbType.VarChar,4000);
   patSelect.Value =sShowFileds;

   patSelect=cmdSelect.Parameters.Add("@OrderFields",SqlDbType.VarChar, 1000);
   patSelect.Value =sOrderFileds;

   patSelect=cmdSelect.Parameters.Add("@PageCount",SqlDbType.Int);
   patSelect.Direction=ParameterDirection.InputOutput;
   patSelect.Value =nPageCount;

   try
   {
    daSelect.Fill(dsSelect);
    if (nPageCurrent==1) nPageCount=(int)patSelect.Value;
    connsServerLink.Close();
    return (dsSelect.Tables[0]);
   }
   catch
   {
    connsServerLink.Close();
    return null;
   }
  }


  //
  //糶计沮Session摸い
  //
  public void WriteSystemData(string SystemDataID, string SystemDataValue)
  {
   HttpContext.Current.Session[SystemDataID]=SystemDataValue.ToString().Trim();
  }

  //
  //眖Session摸い弄计沮
  //
  public string ReadSystemData(string SysteDataID)
  {
   string sValue="";
   try
   {
    sValue = HttpContext.Current.Session[SysteDataID].ToString().Trim();
   }
   catch
   {
    sValue="";
   }
   return(sValue);
  }


  /// <summary>
  /// 浪代才﹃
  /// </summary>
  /// <param name="sValue">璶浪代才﹃癸钩</param>
  /// <returns>才﹃</returns>
  public string CheckString(string sValue)
  {
   if(sValue==null) return "";
   return sValue.Trim().ToString();
  }
  /// <summary>
  /// 浪代才﹃琌猭ら戳计沮
  /// </summary>
  /// <param name="sValue">璶浪代才﹃癸钩</param>
  /// <returns>才﹃</returns>
  public string CheckDate(string sValue)
  {
   if(sValue.Trim().Length==0) return "";
   string sCheck="";
   sValue=CheckString(sValue);//
   DateTime datValue;
   int nLen=0;
   try
   {
    datValue=DateTime.Parse(sValue);//耞琌夹非ら戳yyyy-MM-dd or yyyy/mm/dd
    return datValue.Date.ToString("yyyy-MM-dd");//夹非yyyy-MM-ddら戳Α才﹃
   }
   catch
   {
    nLen=sValue.Length;//眔才﹃龟砰
   }
   
   sValue=sValue.Replace("/","-");//р"/"蠢传Θ"-"
   switch(nLen)
   {
    case 5:
    case 6:
    case 7:
     int nIndex=sValue.IndexOf("-");//才﹃い琩т"-"
     if (nIndex<0)
      sCheck=sValue.Substring(0,4) + "-" + sValue.Substring(4) + "-01";
     else
      sCheck=sValue.Substring(0,4) + sValue.Substring(4) + "-01";

     try
     {
      datValue=DateTime.Parse(sCheck);//耞琌夹非ら戳yyyy-MM-dd or yyyy/mm/dd
      return datValue.Date.ToString("yyyy-MM");//夹非yyyy-MMるΑ才﹃
     }
     catch
     {
      return "";//才弧sValue琂ぃ琌ら戳ぃ琌る
     }
    case 8:
     try
     {
      sCheck=sValue.Substring(0,4) + "-" + sValue.Substring(4,2) + "-" + sValue.Substring(6);
      datValue=DateTime.Parse(sCheck);//耞琌夹非ら戳yyyy-MM-dd or yyyy/mm/dd
      return datValue.Date.ToString("yyyy-MM-dd");//夹非yyyy-MMるΑ才﹃
     }
     catch
     {
      return "";//才弧sValue琂ぃ琌ら戳ぃ琌る
     }
    default:
     return "";//礚ら戳才
   }
  }
  /// <summary>
  /// 浪代才﹃琌猭ら戳丁计沮
  /// </summary>
  /// <param name="sValue">璶浪代才﹃癸钩</param>
  /// <returns>才﹃</returns>
  public string CheckTime(string sValue)
  {
   if(sValue.Trim().Length==0) return "";
   string sCheck="";
   sValue=CheckString(sValue);
   DateTime datValue;
   bool bIsPM=false;
   if (sValue.IndexOf("PM")>0)//才﹃い琩т"PM"
   {
    sValue=sValue.Replace("PM ","");//р"PM "蠢传Θ""
    bIsPM=true;
   }
   else
   {
    if (sValue.IndexOf("と")>0)//才﹃い琩т"と"
    {
     sValue=sValue.Replace("と ","");//р"と "蠢传Θ""
     bIsPM=true;
    }
   }

   try
   {
    sValue=sValue.Substring(sValue.Length - 8);
    if(bIsPM)
    {
     int nIndex=sValue.IndexOf(":");//才﹃い琩т":"
     int nValue=int.Parse(sValue.Substring(0,nIndex));
     if(nValue!=12) nValue=nValue+12;
     sValue=nValue.ToString() + sValue.Substring(nIndex);
    }
    datValue=DateTime.Parse("2000-01-01 " + sValue);//耞琌夹非ら戳yyyy-MM-dd or yyyy/mm/dd
    return sValue;//夹非yyyy-MM-ddら戳Α才﹃
   }
   catch
   {
    try
    {
     datValue=DateTime.Parse("2000-01-01 " + sValue);//耞琌夹非ら戳yyyy-MM-dd or yyyy/mm/dd
     return datValue.Date.ToString("HH:mm:ss");//夹非yyyy-MM-ddら戳Α才﹃
    }
    catch
    {
     switch(sValue.Length)
     {
      case 4:
       sCheck=sValue.Substring(0,2) + ":" + sValue.Substring(2,2) + ":00";
       break;
      case 5:
       sCheck=sValue + ":00";
       break;
      case 6:
       sCheck=sValue.Substring(0,2) + ":" + sValue.Substring(2,2) + ":" + sValue.Substring(4);
       break;
      default:
       return "";//礚丁才
     }

     try
     {
      datValue=DateTime.Parse("2000-01-01 " + sCheck);
      return sCheck;
     }
     catch
     {
      return "";//礚丁才
     }
    }
   }
  }
  /// <summary>
  /// 浪代才﹃琌猭丁计沮,Α:HH:mm
  /// </summary>
  /// <param name="sValue">璶浪代才﹃癸钩</param>
  /// <returns>才﹃</returns>
  public string CheckTimeHM(string sValue)
  {
   sValue=CheckString(sValue);
   if(sValue.Trim().Length==0) return "";
   string sValue1="";
   string sValue2="";
   int nValue1=0;
   int nValue2=0;

   DateTime datValue;

   int nIndex=sValue.IndexOf(":");//才﹃い琩т":"
   if (nIndex > 0)
   {
    sValue1 = sValue.Substring(0, nIndex);
    sValue2 = sValue.Substring(nIndex + 1, sValue.Length - (nIndex + 1));
   }
   else
   {
    if (sValue.Length != 4) return "";
    sValue1 = sValue.Substring(0, 2);
    sValue2 = sValue.Substring(2, 2);
   }

   try{nValue1=int.Parse(sValue1);}
   catch{nValue1 = 0;}
   try{nValue2=int.Parse(sValue2);}
   catch{nValue2 = 0;}

   if (nValue1 < 10) sValue1 = "0" + nValue1.ToString();
   if (nValue2 < 10) sValue2 = "0" + nValue2.ToString();

   try
   {
    datValue=DateTime.Parse("2000-01-01 " + sValue1 + ":" + sValue2 + ":" + "00");//耞琌夹非ら戳yyyy-MM-dd or yyyy/mm/dd
    return sValue1 + ":" + sValue2;//夹非yyyy-MM-ddら戳Α才﹃
   }
   catch
   {
    return "";//礚丁才
   }
  }
 }

}
 

基于径向基函数神经网络RBFNN的自适应滑模控制学习(Matlab代码实现)内容概要:本文介绍了基于径向基函数神经网络(RBFNN)的自适应滑模控制方法,并提供了相应的Matlab代码实现。该方法结合了RBF神经网络的非线性逼近能力和滑模控制的强鲁棒性,用于解决复杂系统的控制问题,尤其适用于存在不确定性和外部干扰的动态系统。文中详细阐述了控制算法的设计思路、RBFNN的结构与权重更新机制、滑模面的构建以及自适应律的推导过程,并通过Matlab仿真验证了所提方法的有效性和稳定性。此外,文档还列举了大量相关的科研方向和技术应用,涵盖智能优化算法、机器学习、电力系统、路径规划等多个领域,展示了该技术的广泛应用前景。; 适合人群:具备一定自动控制理论基础和Matlab编程能力的研究生、科研人员及工程技术人员,特别是从事智能控制、非线性系统控制及相关领域的研究人员; 使用场景及目标:①学习和掌握RBF神经网络与滑模控制相结合的自适应控制策略设计方法;②应用于电机控制、机器人轨迹跟踪、电力电子系统等存在模型不确定性或外界扰动的实际控制系统中,提升控制精度与鲁棒性; 阅读建议:建议读者结合提供的Matlab代码进行仿真实践,深入理解算法实现细节,同时可参考文中提及的相关技术方向拓展研究思路,注重理论分析与仿真验证相结合。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值