`

ztress

 
阅读更多

官网地址:http://www.baby666.cn/hunter/index.html

在官网能够下载到zTree的源码、实例和API,其中作者pdf的API写得非常详细(中文的哦)

 

 【部分函数和属性介绍】

  • 核心:zTree(setting, [zTreeNodes])

    这个函数接受一个JSON格式的数据对象setting和一个JSON格式的数据对象zTreeNodes,从而建立 Tree。

     

  • 核心参数:setting

    zTree 的参数配置都在这里完成,简单的说:树的样式、事件、访问路径等都在这里配置

    setting 举例:

    Js代码 复制代码 收藏代码
    1. var setting = {    
    2.     showLine: true,    
    3.     checkable: true    
    4. };   
    var setting = { 
        showLine: true, 
        checkable: true 
    }; 

     

    因为参数太多,具体参数详见zTreeAPI

     

  • 核心参数:zTreeNodes

    zTree 的全部节点数据集合,采用由JSON对象组成的数据结构,简单的说:这里使用Json格式保存了树的所有信息

    zTreeNodes的格式分为两种:利用Json格式嵌套体现父子关系和Array简单格式

    ①带有父子关系的标准 zTreeNodes 举例:

    Js代码 复制代码 收藏代码
    1. var zTreeNodes = [    
    2.     {"id":1, "name":"test1""nodes":[    
    3.       {"id":11, "name":"test11""nodes":[    
    4.         {"id":111, "name":"test111"}    
    5.       ]},    
    6.       {"id":12, "name":"test12"}    
    7.     ]},    
    8.     ......    
    9. ];   
    var zTreeNodes = [ 
        {"id":1, "name":"test1", "nodes":[ 
          {"id":11, "name":"test11", "nodes":[ 
            {"id":111, "name":"test111"} 
          ]}, 
          {"id":12, "name":"test12"} 
        ]}, 
        ...... 
    ]; 

    ②带有父子关系的简单 Array 格式(isSimpleData)的 zTreeNodes 举例:

    Js代码 复制代码 收藏代码
    1. var treeNodes = [                                                                          
    2.     {"id":1, "pId":0, "name":"test1"},    
    3.     {"id":11, "pId":1, "name":"test11"},    
    4.     {"id":12, "pId":1, "name":"test12"},    
    5.     {"id":111, "pId":11, "name":"test111"},    
    6.     ......    
    7. ];   
    var treeNodes = [                                                                       
        {"id":1, "pId":0, "name":"test1"}, 
        {"id":11, "pId":1, "name":"test11"}, 
        {"id":12, "pId":1, "name":"test12"}, 
        {"id":111, "pId":11, "name":"test111"}, 
        ...... 
    ]; 

      

     

    【实例一】(Java代码)

    ①在页面引用zTree的js和css:

    Html代码 复制代码 收藏代码
    1. <!-- ZTree树形插件 -->  
    2. <link rel="stylesheet" href="<%=root%>/Web/common/css/zTreeStyle/zTreeStyle.css" type="text/css">  
    3. <!-- <link rel="stylesheet" href="<%=root%>/Web/common/css/zTreeStyle/zTreeIcons.css" type="text/css">  -->  
    4. <script type="text/javascript" src="<%=root%>/Web/common/js/jquery-ztree-2.5.min.js"></script>  
    <!-- ZTree树形插件 -->
    <link rel="stylesheet" href="<%=root%>/Web/common/css/zTreeStyle/zTreeStyle.css" type="text/css">
    <!-- <link rel="stylesheet" href="<%=root%>/Web/common/css/zTreeStyle/zTreeIcons.css" type="text/css">  -->
    <script type="text/javascript" src="<%=root%>/Web/common/js/jquery-ztree-2.5.min.js"></script>

    ②在script脚本中定义setting和zTreeNodes

    Java代码 复制代码 收藏代码
    1. var setting = {   
    2.         isSimpleData : true,              //数据是否采用简单 Array 格式,默认false   
    3.         treeNodeKey : "id",               //在isSimpleData格式下,当前节点id属性   
    4.         treeNodeParentKey : "pId",        //在isSimpleData格式下,当前节点的父节点id属性   
    5.         showLine : true,                  //是否显示节点间的连线   
    6.         checkable : true                  //每个节点上是否显示 CheckBox   
    7.     };   
    8.   
    9. var treeNodes = [    
    10.     {"id":1"pId":0"name":"test1"},    
    11.     {"id":11"pId":1"name":"test11"},    
    12.     {"id":12"pId":1"name":"test12"},    
    13.     {"id":111"pId":11"name":"test111"},    
    14. ];   
    var setting = {
    		isSimpleData : true,              //数据是否采用简单 Array 格式,默认false
    		treeNodeKey : "id",               //在isSimpleData格式下,当前节点id属性
    		treeNodeParentKey : "pId",        //在isSimpleData格式下,当前节点的父节点id属性
    		showLine : true,                  //是否显示节点间的连线
    		checkable : true                  //每个节点上是否显示 CheckBox
    	};
    
    var treeNodes = [ 
        {"id":1, "pId":0, "name":"test1"}, 
        {"id":11, "pId":1, "name":"test11"}, 
        {"id":12, "pId":1, "name":"test12"}, 
        {"id":111, "pId":11, "name":"test111"}, 
    ]; 
    
    

     ③在进入页面时生成树结构:

    Js代码 复制代码 收藏代码
    1. var zTree;  
    var zTree;
    Js代码 复制代码 收藏代码
    1. $(function() {   
    2.     zTree = $("#tree").zTree(setting, treeNodes);   
    3.  });  
    $(function() {
    	zTree = $("#tree").zTree(setting, treeNodes);
     });

     ④最后查看效果:


     

    【实例二】(从后台获取简单格式Json数据)

    ①后台代码封装简单格式Json数据:

    Java代码 复制代码 收藏代码
    1. public void doGetPrivilegeTree() throws IOException{   
    2.         String s1 = "{id:1, pId:0, name:\"test1\" , open:true}";   
    3.         String s2 = "{id:2, pId:1, name:\"test2\" , open:true}";   
    4.         String s3 = "{id:3, pId:1, name:\"test3\" , open:true}";   
    5.         String s4 = "{id:4, pId:2, name:\"test4\" , open:true}";   
    6.         List<String> lstTree = new ArrayList<String>();   
    7.         lstTree.add(s1);   
    8.         lstTree.add(s2);   
    9.         lstTree.add(s3);   
    10.         lstTree.add(s4);   
    11.         //利用Json插件将Array转换成Json格式   
    12.         response.getWriter().print(JSONArray.fromObject(lstTree).toString());   
    13.     }  
    public void doGetPrivilegeTree() throws IOException{
    		String s1 = "{id:1, pId:0, name:\"test1\" , open:true}";
    		String s2 = "{id:2, pId:1, name:\"test2\" , open:true}";
    		String s3 = "{id:3, pId:1, name:\"test3\" , open:true}";
    		String s4 = "{id:4, pId:2, name:\"test4\" , open:true}";
    		List<String> lstTree = new ArrayList<String>();
    		lstTree.add(s1);
    		lstTree.add(s2);
    		lstTree.add(s3);
    		lstTree.add(s4);
    		//利用Json插件将Array转换成Json格式
    		response.getWriter().print(JSONArray.fromObject(lstTree).toString());
    	}

     

    ②页面使用Ajax获取zTreeNodes数据再生成树

    Js代码 复制代码 收藏代码
    1. var setting = {   
    2.     isSimpleData : true,              //数据是否采用简单 Array 格式,默认false   
    3.     treeNodeKey : "id",               //在isSimpleData格式下,当前节点id属性   
    4.     treeNodeParentKey : "pId",        //在isSimpleData格式下,当前节点的父节点id属性   
    5.     showLine : true,                  //是否显示节点间的连线   
    6.     checkable : true                  //每个节点上是否显示 CheckBox   
    7. };   
    8.   
    9. var zTree;   
    10. var treeNodes;   
    11.   
    12. $(function(){   
    13.     $.ajax({   
    14.         async : false,   
    15.         cache:false,   
    16.         type: 'POST',   
    17.         dataType : "json",   
    18.         url: root+"/ospm/loginInfo/doGetPrivilegeTree.action",//请求的action路径   
    19.         error: function () {//请求失败处理函数   
    20.             alert('请求失败');   
    21.         },   
    22.         success:function(data){ //请求成功后处理函数。     
    23.             alert(data);   
    24.             treeNodes = data;   //把后台封装好的简单Json格式赋给treeNodes   
    25.         }   
    26.     });   
    27.   
    28.     zTree = $("#tree").zTree(setting, treeNodes);   
    29. });  
    var setting = {
    	isSimpleData : true,              //数据是否采用简单 Array 格式,默认false
    	treeNodeKey : "id",               //在isSimpleData格式下,当前节点id属性
    	treeNodeParentKey : "pId",        //在isSimpleData格式下,当前节点的父节点id属性
    	showLine : true,                  //是否显示节点间的连线
    	checkable : true                  //每个节点上是否显示 CheckBox
    };
    
    var zTree;
    var treeNodes;
    
    $(function(){
    	$.ajax({
    		async : false,
    		cache:false,
    		type: 'POST',
    		dataType : "json",
    		url: root+"/ospm/loginInfo/doGetPrivilegeTree.action",//请求的action路径
    		error: function () {//请求失败处理函数
    			alert('请求失败');
    		},
    		success:function(data){ //请求成功后处理函数。  
    			alert(data);
    			treeNodes = data;   //把后台封装好的简单Json格式赋给treeNodes
    		}
    	});
    
    	zTree = $("#tree").zTree(setting, treeNodes);
    });

     ③最后显示效果

     

    【实例三】从后台动态获取数据,树节点提供右键菜单功能

    ①配置setting:

    Js代码 复制代码 收藏代码
    1. var url = "/ospm/loginInfo/doGetPrivilegeTree.action";   
    2.     //zTree基本设置   
    3.     var setting = {   
    4.         async : true//需要采用异步方式获取子节点数据,默认false   
    5.         asyncUrl : root + url, //当 async = true 时,设置异步获取节点的 URL 地址 ,允许接收 function 的引用   
    6.         asyncParam : ["id"], //提交的与节点数据相关的必需参数   
    7.         isSimpleData : true//数据是否采用简单 Array 格式,默认false   
    8.         treeNodeKey : "id"//在isSimpleData格式下,当前节点id属性   
    9.         treeNodeParentKey : "parentId"//在isSimpleData格式下,当前节点的父节点id属性   
    10.         nameCol : "privName",            //在isSimpleData格式下,当前节点名称   
    11.         expandSpeed : "fast"//设置 zTree节点展开、折叠时的动画速度或取消动画(三种默认定义:"slow", "normal", "fast")或 表示动画时长的毫秒数值(如:1000)    
    12.         showLine : true//是否显示节点间的连线   
    13.         callback : { //回调函数   
    14.             rightClick : zTreeOnRightClick   //右键事件   
    15.         }   
    16.     };  
    var url = "/ospm/loginInfo/doGetPrivilegeTree.action";
    	//zTree基本设置
    	var setting = {
    		async : true, //需要采用异步方式获取子节点数据,默认false
    		asyncUrl : root + url, //当 async = true 时,设置异步获取节点的 URL 地址 ,允许接收 function 的引用
    		asyncParam : ["id"], //提交的与节点数据相关的必需参数
    		isSimpleData : true, //数据是否采用简单 Array 格式,默认false
    		treeNodeKey : "id", //在isSimpleData格式下,当前节点id属性
    		treeNodeParentKey : "parentId", //在isSimpleData格式下,当前节点的父节点id属性
    		nameCol : "privName",            //在isSimpleData格式下,当前节点名称
    		expandSpeed : "fast", //设置 zTree节点展开、折叠时的动画速度或取消动画(三种默认定义:"slow", "normal", "fast")或 表示动画时长的毫秒数值(如:1000) 
    		showLine : true, //是否显示节点间的连线
    		callback : { //回调函数
    			rightClick : zTreeOnRightClick   //右键事件
    		}
    	};

     

    ②配置鼠标右键事件,显示右键菜单的代码

    Js代码 复制代码 收藏代码
    1. //显示右键菜单   
    2.     function showRMenu(type, x, y) {   
    3.         $("#rMenu ul").show();   
    4.         if (type=="root") {   
    5.             $("#m_del").hide();   
    6.             $("#m_check").hide();   
    7.             $("#m_unCheck").hide();   
    8.         }   
    9.         $("#rMenu").css({"top":y+"px""left":x+"px""display":"block"});   
    10.     }   
    11.     //隐藏右键菜单   
    12.     function hideRMenu() {   
    13.         $("#rMenu").hide();   
    14.     }   
    15.        
    16.     //鼠标右键事件-创建右键菜单   
    17.     function zTreeOnRightClick(event, treeId, treeNode) {   
    18.         if (!treeNode) {   
    19.             zTree.cancelSelectedNode();   
    20.             showRMenu("root", event.clientX, event.clientY);   
    21.         } else if (treeNode && !treeNode.noR) { //noR属性为true表示禁止右键菜单   
    22.             if (treeNode.newrole && event.target.tagName != "a" && $(event.target).parents("a").length == 0) {   
    23.                 zTree.cancelSelectedNode();   
    24.                 showRMenu("root", event.clientX, event.clientY);   
    25.             } else {   
    26.                 zTree.selectNode(treeNode);   
    27.                 showRMenu("node", event.clientX, event.clientY);   
    28.             }   
    29.         }   
    30.     }  
    //显示右键菜单
    	function showRMenu(type, x, y) {
    		$("#rMenu ul").show();
    		if (type=="root") {
    			$("#m_del").hide();
    			$("#m_check").hide();
    			$("#m_unCheck").hide();
    		}
    		$("#rMenu").css({"top":y+"px", "left":x+"px", "display":"block"});
    	}
    	//隐藏右键菜单
    	function hideRMenu() {
    		$("#rMenu").hide();
    	}
    	
    	//鼠标右键事件-创建右键菜单
    	function zTreeOnRightClick(event, treeId, treeNode) {
    		if (!treeNode) {
    			zTree.cancelSelectedNode();
    			showRMenu("root", event.clientX, event.clientY);
    		} else if (treeNode && !treeNode.noR) { //noR属性为true表示禁止右键菜单
    			if (treeNode.newrole && event.target.tagName != "a" && $(event.target).parents("a").length == 0) {
    				zTree.cancelSelectedNode();
    				showRMenu("root", event.clientX, event.clientY);
    			} else {
    				zTree.selectNode(treeNode);
    				showRMenu("node", event.clientX, event.clientY);
    			}
    		}
    	}
    Js代码 复制代码 收藏代码
    1. <P><SPAN style="BACKGROUND-COLOR: #fafafa"><!-- 右键菜单div -->   
    2.  <div id="rMenu" style="position:absolute; display:none;">   
    3.  <li>   
    4.  <ul id="m_add" onclick="addPrivilege();"><li>增加</li></ul>   
    5.  <ul id="m_del" onclick="delPrivilege();"><li>删除</li></ul>   
    6.  <ul id="m_del" onclick="editPrivilege();"><li>编辑</li></ul>   
    7.  <ul id="m_del" onclick="queryPrivilege();"><li>查看</li></ul>   
    8.  </li>   
    9.  </div></SPAN></P>  

    <!-- 右键菜单div -->  <div id="rMenu" style="position:absolute; display:none;">  <li>  <ul id="m_add" onclick="addPrivilege();"><li>增加</li></ul>  <ul id="m_del" onclick="delPrivilege();"><li>删除</li></ul>  <ul id="m_del" onclick="editPrivilege();"><li>编辑</li></ul>  <ul id="m_del" onclick="queryPrivilege();"><li>查看</li></ul>  </li>  </div>

     ③页面加载时生成树并且监听鼠标点击事件,及时隐藏右键菜单

    Js代码 复制代码 收藏代码
    1. function reloadTree() {   
    2.         hideRMenu();   
    3.         zTree = $("#tree").zTree(setting, treeNodes);   
    4.     }      
    5.        
    6.     var zTree;   
    7.     var treeNodes = [];   
    8.        
    9.   
    10. $(function() {   
    11.         reloadTree();   
    12.   
    13.         $("body").bind(//鼠标点击事件不在节点上时隐藏右键菜单   
    14.                 "mousedown",   
    15.                 function(event) {   
    16.                     if (!(event.target.id == "rMenu" || $(event.target)   
    17.                             .parents("#rMenu").length > 0)) {   
    18.                         $("#rMenu").hide();   
    19.                     }   
    20.                 });   
    21.     });  
    function reloadTree() {
    		hideRMenu();
    		zTree = $("#tree").zTree(setting, treeNodes);
    	}	
    	
    	var zTree;
    	var treeNodes = [];
    	
    
    $(function() {
    		reloadTree();
    
    		$("body").bind(//鼠标点击事件不在节点上时隐藏右键菜单
    				"mousedown",
    				function(event) {
    					if (!(event.target.id == "rMenu" || $(event.target)
    							.parents("#rMenu").length > 0)) {
    						$("#rMenu").hide();
    					}
    				});
    	});

     

    ④后台代码根据id获取树节点信息

    -----------------------Action层-----------------------

    Java代码 复制代码 收藏代码
    1. public void doGetPrivilegeTree() throws IOException{   
    2.         String sId = request.getParameter("id");   
    3.         int treeId = 0;   
    4.         if(sId!=null&&!"".equals(sId)){   
    5.             treeId = Integer.parseInt(sId);   
    6.         }   
    7.         List<Privilege> lstPriv = privilegeService.findPrivilegeTreeById(treeId);   
    8.         response.setCharacterEncoding("UTF-8");   
    9.         response.getWriter().print(JSONArray.fromObject(lstPriv).toString());   
    10.     }  
    public void doGetPrivilegeTree() throws IOException{
    		String sId = request.getParameter("id");
    		int treeId = 0;
    		if(sId!=null&&!"".equals(sId)){
    			treeId = Integer.parseInt(sId);
    		}
    		List<Privilege> lstPriv = privilegeService.findPrivilegeTreeById(treeId);
    		response.setCharacterEncoding("UTF-8");
    		response.getWriter().print(JSONArray.fromObject(lstPriv).toString());
    	}

     

    -----------------------Service层-----------------------

    Java代码 复制代码 收藏代码
    1. /**  
    2.      * 根据节点id,查询其下级节点的数据  
    3.      */  
    4.     @SuppressWarnings("unchecked")   
    5.     @Override  
    6.     public List<Privilege> findPrivilegeTreeById(int treeId) {   
    7.         StringBuffer sbTree= new StringBuffer();   
    8.         sbTree.append("SELECT NEW Privilege(p.id,p.privName,p.description,p.status,p.isLeaf,p.parentId) FROM Privilege p ");   
    9.         sbTree.append("WHERE p.parentId=:treeId ");   
    10.         sbTree.append("AND p.status!=:del ");   
    11.            
    12.         Map<String,Object> mapTree = new HashMap<String, Object>();   
    13.         mapTree.put("treeId", treeId);   
    14.         mapTree.put("del", Privilege.PRIV_STATUS_DELETE);   
    15.            
    16.         return (List<Privilege>) privilegeDao.findByHql(sbTree.toString(), mapTree);   
    17.     }  
    /**
    	 * 根据节点id,查询其下级节点的数据
    	 */
    	@SuppressWarnings("unchecked")
    	@Override
    	public List<Privilege> findPrivilegeTreeById(int treeId) {
    		StringBuffer sbTree= new StringBuffer();
    		sbTree.append("SELECT NEW Privilege(p.id,p.privName,p.description,p.status,p.isLeaf,p.parentId) FROM Privilege p ");
    		sbTree.append("WHERE p.parentId=:treeId ");
    		sbTree.append("AND p.status!=:del ");
    		
    		Map<String,Object> mapTree = new HashMap<String, Object>();
    		mapTree.put("treeId", treeId);
    		mapTree.put("del", Privilege.PRIV_STATUS_DELETE);
    		
    		return (List<Privilege>) privilegeDao.findByHql(sbTree.toString(), mapTree);
    	}

     ⑤最后查看效果:

    • 大小: 60.3 KB
    • 大小: 57.6 KB
    分享到:
    评论

    相关推荐

      实训商业源码-头像挂件-毕业设计.zip

      实训商业源码-头像挂件-毕业设计.zip

      环境工程中高斯烟团模型的纯Python实现及其应用

      内容概要:本文详细介绍了如何使用Python实现高斯烟团模型,这是一种用于预测大气中污染物扩散的模型。主要内容涵盖大气稳定度计算、坐标转换、扩散系数计算及三维浓度叠加值的实现。首先,文章解释了高斯烟团模型的基本概念,即假设污染源释放的污染物在空气中形成一个高斯烟团,该烟团随时间扩散、混合和沉降。接着,文章逐步讲解了Python代码的具体实现步骤,包括导入必要库、定义大气稳定度分类、实现坐标转换函数、计算扩散系数以及编写浓度叠加值计算函数。最后,通过该模型可以预测大气中污染物的扩散情况,为环境工程和气象学领域提供有价值的参考。 适合人群:从事环境工程、气象学研究的专业人士,以及对大气污染物扩散模拟感兴趣的科研人员和技术开发者。 使用场景及目标:适用于需要评估大气污染物扩散情况的研究项目,帮助研究人员更好地理解和预测污染物的行为,从而制定有效的环境保护措施。 其他说明:文中提供的Python代码实现了高斯烟团模型的关键部分,能够作为教学工具或实际项目的参考。

      基于EMD-KPCA-LSTM的北半球光伏功率多维时间序列预测MATLAB代码实现

      内容概要:本文档提供了基于经验模态分解(EMD)、核主成分分析(KPCA)和长短期记忆网络(LSTM)的多维时间序列预测MATLAB代码实现。具体应用案例为北半球光伏功率预测,涉及的数据集包含太阳辐射度、气温、气压和大气湿度四个输入特征,以及光伏功率作为输出预测。文档详细介绍了从数据加载与预处理到EMD和KPCA处理,再到LSTM模型训练与预测的具体步骤,并进行了EMD-LSTM、EMD-KPCA-LSTM和纯LSTM模型的对比分析。此外,还强调了代码的注释清晰度和调试便利性,确保用户能够顺利运行和理解整个流程。 适用人群:适用于具有一定MATLAB编程基础和技术背景的研究人员、工程师或学生,特别是那些对时间序列预测、机器学习和光伏功率预测感兴趣的群体。 使用场景及目标:① 使用EMD、KPCA和LSTM组合模型进行多维时间序列预测;② 对比不同模型的效果,选择最优模型;③ 掌握MATLAB环境下复杂模型的构建和调优方法。 其他说明:代码已验证可行,支持本地EXCEL数据读取,附带详细的“说明”文件帮助用户快速上手。建议用户在实践中结合实际需求调整参数和模型配置,以获得最佳预测效果。

      BLDC无刷电机Matlab仿真:转速电流双闭环控制及换相策略研究

      内容概要:本文详细介绍了如何利用Matlab进行BLDC无刷电机的仿真,重点在于转速电流双闭环控制以及两种主要的换相方式——有感hall换相和无感反电动势过零换相。文章从仿真准备、模型创建与设置、具体控制方法到最后的仿真结果与分析进行了全面讲解。通过PI控制器调整电流和转速反馈值,确保电机运行的稳定性和高效性。文中还对比了两种换相方式的优缺点,帮助读者更好地理解BLDC无刷电机的工作原理及其控制方法。 适合人群:对电机控制有一定兴趣并希望通过Matlab进行仿真的工程技术人员、研究人员及高校学生。 使用场景及目标:适用于希望深入了解BLDC无刷电机控制原理和技术细节的人群,尤其是那些想要通过实际操作加深理解的学习者。目标是让读者能够独立完成BLDC无刷电机的基本仿真,并掌握关键控制技术和换相策略。 其他说明:本文基于作者的经验总结,提供了一个较为完整的入门指南,虽然不是严格的学术论文,但对于初学者来说非常实用。

      碱性水电解槽乳突主极板三维建模与流体动力学仿真教程—基于Fluent软件的研究

      内容概要:本文详细介绍了如何使用Fluent软件进行碱性水电解槽乳突主极板的三维建模及其流体动力学仿真。主要内容包括乳突主极板的三维模型创建方法,探讨了凹面和凸面的深度与间距对流场的影响,并进行了后处理分析,如压力分布、温度分布、流线轨迹和涡分布等。通过这些分析,能够更好地理解碱性水电解槽的工作原理和优化其性能。 适合人群:从事氢能研究的技术人员、科研工作者、工程师及相关专业学生。 使用场景及目标:适用于需要深入了解碱性水电解槽内部流场特性的研究人员,目标是提高电解效率和优化设备性能。 其他说明:文中提供了简化的示例代码,用于指导读者如何利用Fluent软件进行仿真设置和分析。实际操作时需结合Fluent的帮助文档进一步学习。

      第九届飞思卡尔杯全国大学生智能汽车竞赛技术报告-哈尔滨工业大学创意组

      内容概要:本文档是哈尔滨工业大学创意组参加第九届“飞思卡尔”杯全国大学生智能汽车竞赛的技术报告,涵盖了旋转LED车、漂移车、翻转车和过山车的设计与实现。文档详细介绍了各车型的系统架构、硬件设计(包括传感器、电源、驱动电路等)、软件设计(如PID控制算法、中断调用等)以及机械调校(如前轮调整、差速调整等)。每个车型都有独特的控制需求和技术难点,如旋转LED车的直立控制、漂移车的速度和转向控制、翻转车的角度和速度控制、过山车的传感器优化和电机驱动等。 适合人群:电气工程、自动化、计算机科学等相关专业的本科生或研究生,特别是对智能车竞赛感兴趣的学生。 使用场景及目标:①了解智能车竞赛的基本原理和技术实现;②掌握传感器、电机驱动、PID控制等关键技术的应用;③学习如何进行系统集成和机械调校,以优化车辆性能;④为参加类似的智能车竞赛提供参考和借鉴。 其他说明:文档中引用了大量参考文献,为读者提供了丰富的背景资料和深入学习的途径。此外,文档不仅展示了硬件和软件设计的细节,还强调了实际调试和优化的重要性,有助于读者在实践中更好地理解和应用所学知识。

      配电网分布式光伏电源选址定容的多目标寻优PSO粒子群算法Matlab实现

      内容概要:本文详细介绍了如何利用多目标寻优技术和PSO粒子群算法,在配电网中实现分布式光伏电源的选址定容。文中阐述了选址定容对配电网的重要意义,并具体解释了多目标寻优技术和PSO粒子群算法的工作原理。通过Matlab编程,作者实现了以网损、电压偏差和光伏消纳为优化目标的程序,能够调节光伏接入个数并输出数据对比图,便于分析不同方案的效果。最终,通过程序运行和数据分析,得出了最优的分布式光伏电源选址定容方案。 适合人群:从事电力系统规划、分布式能源研究以及对优化算法感兴趣的科研人员和技术开发者。 使用场景及目标:适用于希望提升配电网性能的研究机构和企业,旨在降低网损、改善电压质量和提高光伏消纳率。通过调整光伏接入点的数量,满足不同配电网的需求。 其他说明:本文不仅提供了理论背景,还附带了实际的Matlab代码实现,有助于读者深入理解和实践相关技术。

      2001年数二顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶

      数学复习

      电力电子领域移相全桥电路(PSFB)与DCDC转换器的关键技术及其实现方法

      内容概要:本文深入探讨了移相全桥电路(PSFB)与DCDC转换器的技术细节及其应用场景。首先介绍了PSFB相较于传统全桥电路的优势,特别是零电压开关(ZVS)特性对提高效率的作用。接着详细解释了PSFB的工作原理,包括通过STM32配置互补PWM来实现相位差的具体步骤,以及确保安全运行所需的死区时间配置。此外,还讨论了LLC谐振腔的设计与调试技巧,提供了基于Python的ZVS可行性评估工具。对于控制策略部分,则重点讲解了电压模式闭环控制中的斜率补偿机制,并分享了一个高效的数字实现方法。最后提到变压器设计中的常见挑战及解决方案,强调了精确选择元件参数的重要性。 适用人群:从事电力电子产品研发的技术人员,尤其是专注于高效能电源设计的工程师。 使用场景及目标:帮助读者掌握PSFB和DCDC转换器的设计要点和技术难点,提升产品性能和可靠性。适用于需要优化电源系统效率的实际项目中。 其他说明:文中不仅有理论分析,还有具体的代码实例和实践经验分享,有助于加深理解和实际应用。

      基于麻雀优化算法的VMD变分模态分解:参数寻优与可视化分析

      内容概要:本文详细介绍了VMD(变分模态分解)的基本原理及其优化方法,特别聚焦于利用麻雀优化算法对VMD的关键参数——惩罚因子和模态数进行寻优。文中不仅阐述了VMD的工作机制,还展示了如何通过麻雀优化算法在解空间中找到最佳参数组合,以提升信号分解的效果。此外,文章还讨论了分解模态图、三维可视化和边际谱图等工具在分析VMD分解结果中的应用,通过实验验证了优化方法的有效性和优越性。 适合人群:从事信号处理、数据分析及相关领域的研究人员和技术人员,尤其是对VMD变分模态分解及其优化感兴趣的学者。 使用场景及目标:适用于需要对非线性、非平稳信号进行精确分解的研究项目,旨在提高信号处理的精度和效率,帮助研究人员更好地理解和分析复杂信号的特性。 其他说明:本文提供了详细的理论背景和实验数据支持,有助于读者深入了解VMD及其优化方法的实际应用价值。

      汽车电动助力转向(EPS)系统建模与量产技术方案——基于MATLAB和Simulink的企业级ASW模型

      内容概要:本文详细介绍了电动助力转向(EPS)系统及其建模方法,重点讨论了MATLAB和Simulink在EPS建模中的应用。EPS系统通过电子控制系统提供辅助转向力,提升驾驶的安全性和舒适性。文中不仅涵盖了EPS的基本原理和技术细节,还深入探讨了MATLAB和Simulink在EPS建模中的具体应用,包括仿真和分析。此外,文章还介绍了eps量产模型和企业级量产asw模型的功能和技术方案,如随速助力、回正、摩擦、惯性、末端保护等功能的具体实现。 适合人群:从事汽车工程领域的研究人员、工程师及相关专业学生。 使用场景及目标:适用于希望深入了解EPS系统建模和仿真的技术人员,旨在提高对EPS系统的设计、生产和优化能力。 其他说明:文章提供了详细的理论背景和技术实现路径,有助于读者全面掌握EPS系统的开发流程和技术要点。

      基于模糊控制的PMSM闭环PI矢量控制系统仿真及其应用前景

      内容概要:本文详细介绍了基于模糊控制的永磁同步电机(PMSM)闭环PI矢量控制系统的仿真研究。首先阐述了PMSM闭环PI矢量控制系统的基本原理,即通过PI控制器对电机电流进行闭环控制,利用矢量控制技术实现电机的解耦控制。接着探讨了模糊控制在该系统中的应用,通过模糊控制器优化PI控制器参数,提高了系统的动态性能和鲁棒性。随后,文中描述了采用MATLAB/Simulink进行仿真的具体模型和环境设置,包括PMSM模型、PI控制器模型、模糊控制器模型及相关电路模型。最后展示了仿真结果,证明了该系统在静态和动态性能方面的优越表现,并验证了其有效性和可行性。 适合人群:从事电机控制、自动化控制领域的研究人员和技术人员,尤其是对模糊控制和PMSM有研究兴趣的专业人士。 使用场景及目标:适用于需要深入了解PMSM闭环PI矢量控制系统的设计原理和仿真方法的研究人员,旨在提升PMSM控制系统的性能和稳定性。 其他说明:本文不仅提供了详细的仿真结果和分析,还讨论了该系统的优化方向和潜在应用领域,为进一步研究奠定了基础。

      【智能汽车竞赛】基于MC9S12DG128微控制器的跳舞小车系统设计:音乐频率识别与蓝牙通信协同控制

      内容概要:本文介绍了西安邮电大学设计的跳舞小车系统,该系统旨在通过音乐频率控制两辆小车的协同动作,实现类似跳舞的效果。系统以MC9S12DG128微控制器为核心,结合YS-V0.7语音识别模块、蓝牙无线通信模块、传感器模块和电机驱动模块。小车通过检测音乐频率,将其转换为电信号,再通过蓝牙模块发送给另一辆小车,使两辆车同步动作。文章详细描述了系统的硬件和软件设计,包括车模的规格、电源模块、电机驱动电路、传感器电路及软件编程。此外,还进行了系统调试和性能检测,确保各模块的稳定性和准确性。; 适合人群:对智能汽车竞赛、嵌入式系统设计、短距离无线通信技术和机器人控制感兴趣的高校学生及科研人员。; 使用场景及目标:①适用于智能汽车竞赛、机器人设计课程及科研项目;②帮助读者理解语音识别、蓝牙通信、传感器应用及电机控制等关键技术的实际应用;③提升读者在嵌入式系统开发和硬件电路设计方面的能力。; 其他说明:本文不仅提供了详细的硬件和软件设计方案,还记录了系统调试和性能检测的过程,有助于读者在实际操作中遇到问题时进行参考和改进。文中提到的系统仍有优化空间,如提高蓝牙通信的强度和路径规划的优化,未来可进一步探索人工智能技术的应用,使系统更加智能化和美观。

      光纤光栅技术中1550nm倾斜光栅的应用研究及其仿真模型构建

      内容概要:本文深入探讨了1550nm倾斜光纤光栅(FBG)的技术特点及其应用前景。首先介绍了倾斜光栅的基本概念,即通过改变布拉格光栅的倾斜角度,使光栅能够与包层模式发生相互作用,从而拓展了其应用场景。文中详细描述了倾斜光栅的关键参数设置,如倾斜角θ、栅区长度L、折射率调制深度Δn以及周期Λ,并提供了基于Python的耦合模方程求解方法,用于模拟倾斜光栅内部的光传播行为。实验结果显示,在不同环境折射率条件下,倾斜光栅表现出更高的灵敏度,尤其适用于高精度折射率传感。此外,还讨论了倾斜光栅在WDM通信系统中的潜在应用价值,特别是在色散补偿方面。 适用人群:从事光纤传感、光学工程及相关领域的科研人员和技术开发者。 使用场景及目标:①为研究人员提供理论依据和技术支持,帮助他们更好地理解和优化倾斜光栅的设计;②指导工程师将倾斜光栅应用于实际项目中,如环境监测、生物医学等领域;③探索倾斜光栅在光通信系统中的创新应用。 其他说明:本文不仅涵盖了倾斜光栅的基础理论,还包括具体的数学建模和实验数据,有助于读者全面掌握这一先进技术。

      3.10-线代基础10.mp4

      3.10-线代基础10.mp4

      cJSON项目JSON数据文件

      cJSON项目JSON数据文件

      实训商业源码-母婴商城小程序模板-毕业设计.zip

      实训商业源码-母婴商城小程序模板-毕业设计.zip

      基于S7-200西门子PLC的自动洗车控制系统组态模拟仿真及程序编写

      内容概要:本文详细介绍了基于S7-200西门子PLC的自动洗车控制系统的设计与实现。首先概述了S7-200西门子PLC的特点及其在自动洗车控制系统中的应用价值。接着阐述了组态王软件的功能以及它与S7-200 PLC的协同工作方式,用于实现洗车设备的自动化控制和监控。然后讨论了模拟仿真控制系统的作用,通过模拟真实洗车环境来进行系统测试和优化。最后讲解了PLC程序的具体编写方法,包括输入/输出程序、主程序和子程序等部分,确保洗车设备能按预期高效运作。 适合人群:从事工业自动化领域的工程师和技术人员,特别是那些对PLC编程和洗车控制系统感兴趣的从业者。 使用场景及目标:①帮助工程师理解和掌握S7-200西门子PLC的工作原理及其在实际项目中的应用;②指导技术人员完成自动洗车控制系统的搭建、配置和调试;③为相关专业学生提供理论与实践相结合的学习资料。 其他说明:文中还附有一段简化的S7-200 PLC程序代码片段,便于读者直观理解编程思路。

      实训商业源码-升级版手机检测微信工具小程序源码-支持多种流量主模式-毕业设计.zip

      实训商业源码-升级版手机检测微信工具小程序源码-支持多种流量主模式-毕业设计.zip

      面向3D目标检测任务的数据增强方法研究进展.pdf

      面向3D目标检测任务的数据增强方法研究进展.pdf

    Global site tag (gtag.js) - Google Analytics