- 浏览: 391414 次
- 性别:
- 来自: 成都
-
最新评论
-
宋建勇:
你爷爷的,这个很给力啊!找了好久了!赞一个!
maven的属性过滤功能 -
蒲公英的约定:
其實也可以通過尋找id來得到組建,不過還是綁定方便得多。不知道 ...
JSF中UI控件binding属性的用法 -
蒲公英的约定:
...
JSF中UI控件binding属性的用法 -
le5u:
请问,怎么给tableviewer加行编号呀
tableviewer -
Surmounting:
现在火狐好像把 iframe 的 contentDocumen ...
iframe交互使用大全
1:解决PDF生成时候的中文问题:
1. ireport生成中文PDF报表时,需设置:
1)增加itext中文包在lib目录下
2)pdf encoding 选 UniGB-UCS2-H (Chinese Simplified)
pdf font name 选 stsong-light
(可以使用View->Report Fonts一次解决)
2. ireport有时侯不能显示数据库中数据的解决方式:
1)每一个element:设置:print when details overflow ;stretch overflow
2)字段高度不够
3. dori.jasper.engine.JRException: Error loading object
from file : D:\jakarta-tomcat-4.0.1\jakarta-tomcat-4.0.1\webapps\safe\safe1.jasper
新的jasperreport的版本是0.5.2,ireport用的是0.5.0,你把你的搜索路径里面的库换一下就好了
4. 一段测试代码:
package test;
/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2003</p>
* <p>Company: est</p>
* @author mgp
* @version 1.0
*/
import dori.jasper.engine.*;
import dori.jasper.engine.util.*;
import java.sql.*;
import java.util.*;
import dori.jasper.engine.JasperReport;
import java.util.Date;
import java.text.SimpleDateFormat;
public class report {
public report() {
}
public static void main(String[] args){
JRResultSetDataSource jrds=null;
JasperPrint jasperPrint=null;
Map reportParams = new HashMap();
ResultSet rs=null;
Connection con = null;
Statement stmt = null;
String sql = "select * from wms_sku";
String driver = "oracle.jdbc.driver.OracleDriver";
String url = "jdbc:oracle:thin:@192.168.0.254:1521:server1";
try {
JasperReport jasperReport = (JasperReport) JRLoader.loadObject(
"C:/est/helix/helix/reports/testdao.jasper");
Class.forName(driver);
con = DriverManager.getConnection(url, "****", "****");
stmt = con.createStatement();
rs = stmt.executeQuery(sql);
if(!rs.next())
return ;
jrds = new JRResultSetDataSource(rs);
jasperPrint =
JasperFillManager.fillReport(
jasperReport,
reportParams,
jrds
);
JasperPrintManager.printReportToPdfFile(jasperPrint, "c:/abcd.pdf");
}
catch (ClassNotFoundException ex) {
ex.printStackTrace();
}
catch (SQLException ex) {
ex.printStackTrace();
}
catch (JRException e) {
e.printStackTrace();
}
}
}
5. 利用mysql数据库,生成pdf报表,在Tomcat中显示:
<%@ page import="dori.jasper.engine.*" %>
<%@ page import="java.util.*" %>
<%@ page import="java.io.*" %>
<%@ page import="java.sql.*" %>
<%
File reportFile = new File(application.getRealPath("/reports/mydoc5.jasper"));
Map parameters = new HashMap();
Class.forName("org.gjt.mm.mysql.Driver").newInstance();
String url ="jdbc:mysql://localhost/clients?user=sa&password=&useUnicode=true&characterEncoding=GB2312";
Connection conn= DriverManager.getConnection(url);
byte[] bytes =
JasperRunManager.runReportToPdf(
reportFile.getPath(),
parameters,
conn
);
response.setContentType("application/pdf");
response.setContentLength(bytes.length);
ServletOutputStream ouputStream = response.getOutputStream();
ouputStream.write(bytes, 0, bytes.length);
ouputStream.flush();
ouputStream.close();
%>
note:
1)<%@ page contentType="text/html;charset=gb2312"%> 这句话不能有,不然会提示下载
2)从数据库中获取中文数据Encoding=GB2312是必须的
3)由于ireport使用的jasperreport版本与jasperreport发行的版本不一致,所以会造成很多错误,例如:
dori.jasper.engine.JRException: Error loading object
from file : D:\jakarta-tomcat-4.0.1\jakarta-tomcat-4.0.1\webapps\safe\safe1.jasper
---------------------------------------
2、预览、打印JasperPrint等:
JasperReports学习笔记
版本:jasperreports-0.6.7
学习资料来源:http://jasperreports.sourceforge.net
一、 需求(requirements)
JasperReports要用到的工具和类
1. JDK(java开发环境)
JDK 1.2.2 or higher
2. XML
JAXP 1.1 XML Parser(XML解析器)
Jakarta Commons Digester Component (version 1.1 or later)
http://jakarta.apache.org/commons/digester/
Jakarta Commons BeanUtils Component (version 1.1 or later)
http://jakarta.apache.org/commons/beanutils/
Jakarta Commons Collections Component (version 1.0 or later)
http://jakarta.apache.org/commons/collections/
Jakarta Commons Logging Component (version 1.0 or later)
http://jakarta.apache.org/commons/logging/
3. JDBC(连接数据库用)
JDBC 2.0 Driver
4. PDF(转换为PDF文件用到)
iText - Free Java-PDF library by Bruno Lowagie and Paulo Soares
(version 1.01 or later)
http://www.lowagie.com/iText/
5. XLS(转换为excel文件用)
Jakarta POI (version 2.0 or later)
http://jakarta.apache.org/poi/
二、快速了解(quick how to)
1. Main classes(主要的类)
用JasperReports 时,用到的主要类
net.sf.jasperreports.engine.JasperCompileManager
net.sf.jasperreports.engine.JasperFillManager
net.sf.jasperreports.engine.JasperPrintManager
net.sf.jasperreports.engine.JasperExportManager
这些类提供了很多静态方法,用来编译、填充、打印和导出报表。详细信息请参考JasperReports的javadoc文档。
net.sf.jasperreports.view.JasperViewer
此类用来预览生成的报表(generated reports.)。
net.sf.jasperreports.view.JasperDesignViewer
此类用来预览报表设计(view the report design)。
2. 编译报表设计Compiling a report design
xml文件定义报表设计(report design)。编译报表设计(report design)产生报表(generate reports)。网页http://jasperreports.sourceforge.net/quick.how.to.html中介绍用net.sf.jasperreports.engine.JasperCompileManager类的静态方法compileReportXXX()来编译报表设计(report design)。但是JasperCompileManager不赞成使用此方法编译报表设计(report design),推荐使用JasperCompileManager的方法compileReportXXX()来代替。
编译报表设计(report design)时,jasperreports engine首先检查模板,确定是否一致,然后转换所有的报表表达式(report expressions),最后产生.jasper文件。 要想使编译工作尽可能灵活,你可以实现接口net.sf.jasperreports.engine.design.JRCompiler。
3.预览报表设计 Viewing a report design
使用net.sf.jasperreports.view.JasperDesignViewer的程序来预览。他的main()方法接受报表设计文件名(xml)或者编译后的.jasper文件。
4. 填充报表 Filling a report
编译报表设计(xml文件)得到报表文件(.jasper),再调用net.sf.jasperreports.engine.JasperFillManager类的方法fillReportXXX(),可以得到报表(JasperPrint)。
5. 预览报表 Viewing a report
Generated reports can be viewed using the net.sf.jasperreports.view.JasperViewer application.
In its main() method, it receives the name of the file which contains the report to view.
我没有测试成功。
6. Printing a report
Generated reports can be printed using the printReport(), printPage() or printPages() static methods exposed by the net.sf.jasperreports.engine.JasperPrintManager class.
7. Exporting to PDF, HTML, XLS, CSV or XML format
填充报表文件(.jasper文件)得到报表(JasperPrint)后,可以使用net.sf.jasperreports.engine.JasperExportManager类的方法exportReportXXX()导出为各种格式的文件PDF,HTML,XML。
After having filled a report, we can also export it in PDF, HTML or XML format using the exportReportXXX() methods of the net.sf.jasperreports.engine.JasperExportManager class.
三、JasperReports的工作流程:
根据上图的流程,JasperReports做报表有一下步骤:
1、 报表设计,可以用ireport可视化工具来实现,生成xml文件。完成后,可以直接到步骤3,直接编译xml文件。
2、 如果已经存在报表设计文件(xml文件),可以用net.sf.jasperreports.engine.xml.JRXmlLoader.load()方法载入报表设计,该方法返回JasperDesign对象,通过JasperDesign对象,可以修改报表设计,比如:添加、删除字段,添加、删除变量,添加、删除分组,等等。
3、 完成报表设计后,接下来就可以编译报设计,编译报表设计可以用类net.sf.jasperreports.engine.JasperCompileManager的compileReport()方法来实现,该方法可以编译xml文件或JasperDesign对象,产生JasperReport对象,JasperReport对象可序列化,能够保存为文件(通常是.jasper文件)。类net.sf.jasperreports.engine.JasperCompileManager还可以把报表转化为报表设计文件(xml文件)。得到JasperReport对象(可从.jasper文件实例化一个JasperReport对象)后,给报表填充数据产生JasperPrint对象。JasperPrint对象可序列化,保存为文件。有了JasperPrint对象后,可以打印、浏览、转换为其他格式的文件,如:PDF,HTML,XML,XLS,CSV等等,这些操作就是我们想得到的最终结果。尽管JasperPrintManager类可以导出为PDF,XML文件,但是不赞成使用JasperPrintManager类来导出,建议用JasperExportManager类来导出PDF,HTML,XML文件;要导出XLS和CSV文件,用专业的导出类net.sf.jasperreports.engine.export.JRXlsExporter类和net.sf.jasperreports.engine.export.JRCsvExporter类
导出为XLS的代码段:
JRXlsExporter exporter = new JRXlsExporter();//创建实例
//设计参数
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, strDestFile);
exporter.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET, Boolean.FALSE);
exporter.exportReport();//导出
导出为CSV文件和XLS类似。
1. ireport生成中文PDF报表时,需设置:
1)增加itext中文包在lib目录下
2)pdf encoding 选 UniGB-UCS2-H (Chinese Simplified)
pdf font name 选 stsong-light
(可以使用View->Report Fonts一次解决)
2. ireport有时侯不能显示数据库中数据的解决方式:
1)每一个element:设置:print when details overflow ;stretch overflow
2)字段高度不够
3. dori.jasper.engine.JRException: Error loading object
from file : D:\jakarta-tomcat-4.0.1\jakarta-tomcat-4.0.1\webapps\safe\safe1.jasper
新的jasperreport的版本是0.5.2,ireport用的是0.5.0,你把你的搜索路径里面的库换一下就好了
4. 一段测试代码:
package test;
/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2003</p>
* <p>Company: est</p>
* @author mgp
* @version 1.0
*/
import dori.jasper.engine.*;
import dori.jasper.engine.util.*;
import java.sql.*;
import java.util.*;
import dori.jasper.engine.JasperReport;
import java.util.Date;
import java.text.SimpleDateFormat;
public class report {
public report() {
}
public static void main(String[] args){
JRResultSetDataSource jrds=null;
JasperPrint jasperPrint=null;
Map reportParams = new HashMap();
ResultSet rs=null;
Connection con = null;
Statement stmt = null;
String sql = "select * from wms_sku";
String driver = "oracle.jdbc.driver.OracleDriver";
String url = "jdbc:oracle:thin:@192.168.0.254:1521:server1";
try {
JasperReport jasperReport = (JasperReport) JRLoader.loadObject(
"C:/est/helix/helix/reports/testdao.jasper");
Class.forName(driver);
con = DriverManager.getConnection(url, "****", "****");
stmt = con.createStatement();
rs = stmt.executeQuery(sql);
if(!rs.next())
return ;
jrds = new JRResultSetDataSource(rs);
jasperPrint =
JasperFillManager.fillReport(
jasperReport,
reportParams,
jrds
);
JasperPrintManager.printReportToPdfFile(jasperPrint, "c:/abcd.pdf");
}
catch (ClassNotFoundException ex) {
ex.printStackTrace();
}
catch (SQLException ex) {
ex.printStackTrace();
}
catch (JRException e) {
e.printStackTrace();
}
}
}
5. 利用mysql数据库,生成pdf报表,在Tomcat中显示:
<%@ page import="dori.jasper.engine.*" %>
<%@ page import="java.util.*" %>
<%@ page import="java.io.*" %>
<%@ page import="java.sql.*" %>
<%
File reportFile = new File(application.getRealPath("/reports/mydoc5.jasper"));
Map parameters = new HashMap();
Class.forName("org.gjt.mm.mysql.Driver").newInstance();
String url ="jdbc:mysql://localhost/clients?user=sa&password=&useUnicode=true&characterEncoding=GB2312";
Connection conn= DriverManager.getConnection(url);
byte[] bytes =
JasperRunManager.runReportToPdf(
reportFile.getPath(),
parameters,
conn
);
response.setContentType("application/pdf");
response.setContentLength(bytes.length);
ServletOutputStream ouputStream = response.getOutputStream();
ouputStream.write(bytes, 0, bytes.length);
ouputStream.flush();
ouputStream.close();
%>
note:
1)<%@ page contentType="text/html;charset=gb2312"%> 这句话不能有,不然会提示下载
2)从数据库中获取中文数据Encoding=GB2312是必须的
3)由于ireport使用的jasperreport版本与jasperreport发行的版本不一致,所以会造成很多错误,例如:
dori.jasper.engine.JRException: Error loading object
from file : D:\jakarta-tomcat-4.0.1\jakarta-tomcat-4.0.1\webapps\safe\safe1.jasper
---------------------------------------
2、预览、打印JasperPrint等:
JasperReports学习笔记
版本:jasperreports-0.6.7
学习资料来源:http://jasperreports.sourceforge.net
一、 需求(requirements)
JasperReports要用到的工具和类
1. JDK(java开发环境)
JDK 1.2.2 or higher
2. XML
JAXP 1.1 XML Parser(XML解析器)
Jakarta Commons Digester Component (version 1.1 or later)
http://jakarta.apache.org/commons/digester/
Jakarta Commons BeanUtils Component (version 1.1 or later)
http://jakarta.apache.org/commons/beanutils/
Jakarta Commons Collections Component (version 1.0 or later)
http://jakarta.apache.org/commons/collections/
Jakarta Commons Logging Component (version 1.0 or later)
http://jakarta.apache.org/commons/logging/
3. JDBC(连接数据库用)
JDBC 2.0 Driver
4. PDF(转换为PDF文件用到)
iText - Free Java-PDF library by Bruno Lowagie and Paulo Soares
(version 1.01 or later)
http://www.lowagie.com/iText/
5. XLS(转换为excel文件用)
Jakarta POI (version 2.0 or later)
http://jakarta.apache.org/poi/
二、快速了解(quick how to)
1. Main classes(主要的类)
用JasperReports 时,用到的主要类
net.sf.jasperreports.engine.JasperCompileManager
net.sf.jasperreports.engine.JasperFillManager
net.sf.jasperreports.engine.JasperPrintManager
net.sf.jasperreports.engine.JasperExportManager
这些类提供了很多静态方法,用来编译、填充、打印和导出报表。详细信息请参考JasperReports的javadoc文档。
net.sf.jasperreports.view.JasperViewer
此类用来预览生成的报表(generated reports.)。
net.sf.jasperreports.view.JasperDesignViewer
此类用来预览报表设计(view the report design)。
2. 编译报表设计Compiling a report design
xml文件定义报表设计(report design)。编译报表设计(report design)产生报表(generate reports)。网页http://jasperreports.sourceforge.net/quick.how.to.html中介绍用net.sf.jasperreports.engine.JasperCompileManager类的静态方法compileReportXXX()来编译报表设计(report design)。但是JasperCompileManager不赞成使用此方法编译报表设计(report design),推荐使用JasperCompileManager的方法compileReportXXX()来代替。
编译报表设计(report design)时,jasperreports engine首先检查模板,确定是否一致,然后转换所有的报表表达式(report expressions),最后产生.jasper文件。 要想使编译工作尽可能灵活,你可以实现接口net.sf.jasperreports.engine.design.JRCompiler。
3.预览报表设计 Viewing a report design
使用net.sf.jasperreports.view.JasperDesignViewer的程序来预览。他的main()方法接受报表设计文件名(xml)或者编译后的.jasper文件。
4. 填充报表 Filling a report
编译报表设计(xml文件)得到报表文件(.jasper),再调用net.sf.jasperreports.engine.JasperFillManager类的方法fillReportXXX(),可以得到报表(JasperPrint)。
5. 预览报表 Viewing a report
Generated reports can be viewed using the net.sf.jasperreports.view.JasperViewer application.
In its main() method, it receives the name of the file which contains the report to view.
我没有测试成功。
6. Printing a report
Generated reports can be printed using the printReport(), printPage() or printPages() static methods exposed by the net.sf.jasperreports.engine.JasperPrintManager class.
7. Exporting to PDF, HTML, XLS, CSV or XML format
填充报表文件(.jasper文件)得到报表(JasperPrint)后,可以使用net.sf.jasperreports.engine.JasperExportManager类的方法exportReportXXX()导出为各种格式的文件PDF,HTML,XML。
After having filled a report, we can also export it in PDF, HTML or XML format using the exportReportXXX() methods of the net.sf.jasperreports.engine.JasperExportManager class.
三、JasperReports的工作流程:
根据上图的流程,JasperReports做报表有一下步骤:
1、 报表设计,可以用ireport可视化工具来实现,生成xml文件。完成后,可以直接到步骤3,直接编译xml文件。
2、 如果已经存在报表设计文件(xml文件),可以用net.sf.jasperreports.engine.xml.JRXmlLoader.load()方法载入报表设计,该方法返回JasperDesign对象,通过JasperDesign对象,可以修改报表设计,比如:添加、删除字段,添加、删除变量,添加、删除分组,等等。
3、 完成报表设计后,接下来就可以编译报设计,编译报表设计可以用类net.sf.jasperreports.engine.JasperCompileManager的compileReport()方法来实现,该方法可以编译xml文件或JasperDesign对象,产生JasperReport对象,JasperReport对象可序列化,能够保存为文件(通常是.jasper文件)。类net.sf.jasperreports.engine.JasperCompileManager还可以把报表转化为报表设计文件(xml文件)。得到JasperReport对象(可从.jasper文件实例化一个JasperReport对象)后,给报表填充数据产生JasperPrint对象。JasperPrint对象可序列化,保存为文件。有了JasperPrint对象后,可以打印、浏览、转换为其他格式的文件,如:PDF,HTML,XML,XLS,CSV等等,这些操作就是我们想得到的最终结果。尽管JasperPrintManager类可以导出为PDF,XML文件,但是不赞成使用JasperPrintManager类来导出,建议用JasperExportManager类来导出PDF,HTML,XML文件;要导出XLS和CSV文件,用专业的导出类net.sf.jasperreports.engine.export.JRXlsExporter类和net.sf.jasperreports.engine.export.JRCsvExporter类
导出为XLS的代码段:
JRXlsExporter exporter = new JRXlsExporter();//创建实例
//设计参数
exporter.setParameter(JRExporterParameter.JASPER_PRINT, jasperPrint);
exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, strDestFile);
exporter.setParameter(JRXlsExporterParameter.IS_ONE_PAGE_PER_SHEET, Boolean.FALSE);
exporter.exportReport();//导出
导出为CSV文件和XLS类似。
发表评论
-
我的个人知识管理工具软件
2010-09-22 11:36 1398前些天看了一本书《你 ... -
SMART Goal Setting: A Surefire Way To Achieve Your Goals.
2009-12-25 09:22 2028Paragraf1 Internationally ... -
怎样把博客加入到搜索引擎中
2009-10-01 09:32 2154以下内容来自:http://blog.sina.com.cn ... -
tableviewer
2008-09-22 21:41 4330package aaa; import or ... -
eclipse 与 weblogic及tomcat的无插件断点调试
2008-08-29 22:08 1653一、eclipse 无需插件使用tomcat调试 第一步、配 ... -
TransactionDefinition
2008-08-21 10:24 2594/* Font definitions */ html ... -
动态创建FORM和表格
2008-08-18 21:20 2382<script> //helper fu ... -
Wicket
2008-08-14 13:23 1281目前存在的大多数Web框架对于服务端的状态管理都仅仅提供了较弱 ... -
javascript异步解决方案
2008-08-10 11:45 2416var cache = {}; function getArt ... -
免费在线网站性能测试工具大全
2008-06-22 16:24 7178网站代码验证工具1 . WDG HTML Validator ... -
找回回收站
2008-04-10 20:04 1360有时候进行某些误操作可能会让桌面的回收站消失 如果不想改注册 ... -
应该记住的
2008-04-06 14:31 1064计算机是不会被淘汰的,只要自己跟上发展的步伐就行了,那些30后 ... -
linux环境下安装cwp的地震专业软件su
2008-03-19 11:54 4401最近看到很多朋友因为装su(seismic unix)遇到问题 ... -
JAVA informix临时表的操作
2008-03-14 20:49 2627import java.sql.*; public cl ... -
天下第二
2008-01-30 15:58 1380... -
把信送给加西亚
2008-01-30 12:10 1053把信送给加西亚 http://www.cclw.net/fam ... -
通过IP地址获得主机名
2008-01-30 12:01 5065package org.jr.net; ... -
vc会遇到的一些问题
2007-12-25 11:24 12371:使用vc开发项目时,常 ... -
english articles
2007-12-20 09:37 1241Dear friend, I have a grea ... -
配置tomcat主目录有感
2007-12-19 19:33 2186以下小结使用tomcat5.0.28测试通过,tomcat安装 ...
相关推荐
内容概要:本文探讨了充电站位置规划的数学建模方法及其应用,尤其关注城乡不同环境下的挑战与解决方案。对于农村地区,采用加权Voronoi图和最小生成树算法解决地形复杂性和需求分散的问题;对于城市,则利用排队论模型优化充电站的服务效率。此外,还讨论了如何通过灵敏度分析和机器学习方法提高模型的适应性和准确性。 适用人群:从事电动汽车基础设施规划的研究人员和技术人员,以及对智能交通系统感兴趣的学者。 使用场景及目标:适用于需要进行充电站选址规划的实际工程项目,旨在提高充电设施的覆盖率和服务质量,降低建设和运营成本。 其他说明:文中提供了多个Python代码片段作为实例,帮助读者更好地理解和应用所介绍的技术手段。同时强调了理论模型与实际情况相结合的重要性,指出了一些常见的误区和改进方向。
少儿编程scratch项目源代码文件案例素材-洞穴矿工.zip
文档支持目录章节跳转同时还支持阅读器左侧大纲显示和章节快速定位,文档内容完整、条理清晰。文档内所有文字、图表、函数、目录等元素均显示正常,无任何异常情况,敬请您放心查阅与使用。文档仅供学习参考,请勿用作商业用途。 Rust 以内存安全、零成本抽象和并发高效的特性,重塑编程体验。无需垃圾回收,却能通过所有权与借用检查机制杜绝空指针、数据竞争等隐患。从底层系统开发到 Web 服务构建,从物联网设备到高性能区块链,它凭借出色的性能和可靠性,成为开发者的全能利器。拥抱 Rust,解锁高效、安全编程新境界!
文档支持目录章节跳转同时还支持阅读器左侧大纲显示和章节快速定位,文档内容完整、条理清晰。文档内所有文字、图表、函数、目录等元素均显示正常,无任何异常情况,敬请您放心查阅与使用。文档仅供学习参考,请勿用作商业用途。 编译闪电般迅速,并发性能卓越,部署轻松简单!Go 语言以极简设计理念和出色工程性能,成为云原生时代的首选编程语言。从 Docker 到 Kubernetes,全球顶尖科技企业都在采用 Go。点击了解 Go 语言的核心优势、实战窍门和未来走向,开启高效编程的全新体验!
文档支持目录章节跳转同时还支持阅读器左侧大纲显示和章节快速定位,文档内容完整、条理清晰。文档内所有文字、图表、函数、目录等元素均显示正常,无任何异常情况,敬请您放心查阅与使用。文档仅供学习参考,请勿用作商业用途。 Rust 以内存安全、零成本抽象和并发高效的特性,重塑编程体验。无需垃圾回收,却能通过所有权与借用检查机制杜绝空指针、数据竞争等隐患。从底层系统开发到 Web 服务构建,从物联网设备到高性能区块链,它凭借出色的性能和可靠性,成为开发者的全能利器。拥抱 Rust,解锁高效、安全编程新境界!
内容概要:本文深入探讨了基于模型参考自适应系统(MRAS)的三相永磁同步电机(PMSM)无速度传感器控制技术。首先介绍了传统PMSM控制依赖速度传感器的问题,引出了无速度传感器控制的优势。接着详细解释了MRAS的工作原理,包括参考模型和可调模型的构建以及自适应机制的作用。文中提供了具体的数学模型和代码实现,如三相PMSM的电压方程、MRAS算法框架等。同时讨论了该技术面临的挑战,如电机参数变化和低速运行时的噪声干扰,并提出了相应的解决方案。最后强调了MRAS在降低系统成本、提高可靠性和扩展应用场景方面的潜力。 适合人群:从事电机控制系统研究与开发的技术人员,尤其是对无速度传感器控制感兴趣的工程师和研究人员。 使用场景及目标:适用于希望减少系统成本、提高可靠性的工业伺服驱动和其他电机控制应用场景。目标是掌握基于MRAS的无速度传感器控制技术的具体实现方法和技术细节。 其他说明:文中提供的代码片段和数学模型有助于理解和实现MRAS控制算法,建议读者结合实际项目进行调试和优化。
内容概要:本文详细介绍了如何利用MATLAB和YALMIP工具箱构建并优化孤岛微电网的混合整数线性规划(MILP)调度模型。主要内容涵盖模型搭建的关键步骤,如定义决策变量、设置约束条件(尤其是电池充放电互斥约束)、处理光伏出力预测、设定目标函数(兼顾甩负荷惩罚和发电成本),以及求解器配置技巧。文中强调了模型的实际应用挑战,如应对天气变化引起的预测误差,并分享了一些实用的经验和技巧,如调整权重系数、优化求解器参数等。 适合人群:从事电力系统优化、微电网调度研究的专业人士,以及对混合整数线性规划感兴趣的科研人员和技术开发者。 使用场景及目标:适用于需要精确控制微电网内部发电、储能和用电平衡的应用场合,旨在减少不必要的甩负荷现象,最大化利用可再生能源,确保用户稳定供电的同时降低运营成本。 其他说明:文章提供了详细的MATLAB代码片段,帮助读者更好地理解和复现模型。此外,作者还分享了许多实战经验和常见错误规避方法,有助于提升模型性能和可靠性。
少儿编程scratch项目源代码文件案例素材-海底冒险.zip
内容概要:本文详细介绍了采用模型预测控制(MPC)方法构建的混合储能微电网两层能源管理系统。系统分为上层预测层和下层实时优化层,分别负责24小时滚动优化和5分钟实时调整。核心创新点包括将储能设备的老化成本纳入优化目标,通过频域分割法提高响应速度,以及引入温度补偿机制提升电池寿命。文中展示了具体的目标函数设计、约束条件设定及关键代码实现,强调了系统在实际应用中的经济效益和技术挑战。 适合人群:从事微电网、储能系统、能源管理和自动化控制领域的研究人员、工程师及高校相关专业师生。 使用场景及目标:适用于需要高效管理储能设备、降低运营成本并延长设备使用寿命的微电网项目。目标是在保证供电稳定性的前提下,最大化经济效益,同时兼顾设备健康状况。 其他说明:文章不仅提供了详细的算法实现细节,还分享了许多实践经验,如光伏预测误差处理、功率变化率约束等,为后续研究和实际部署提供了宝贵参考。
内容概要:本文详细介绍了利用Verilog在FPGA上实现I2C Master的具体方法,涵盖模块接口定义、状态机设计、地址位宽处理以及具体的应用实例。首先,作者展示了如何构建支持8位和16位地址宽度的I2C Master模块,确保能够灵活地与不同的外设进行交互。接着,深入探讨了状态机的设计,强调了START和STOP状态的时序处理对于确保通信稳定性至关重要。此外,还提供了两个具体的实战案例:一是配置TFP410视频芯片,二是对AT24C系列EEPROM进行读写操作。文中不仅分享了代码片段,还指出了实际开发过程中可能会遇到的问题及解决方案,如时钟拉伸、写周期延迟等。 适用人群:熟悉FPGA开发环境并对Verilog有一定了解的研发人员,尤其是那些正在从事嵌入式系统设计或需要实现特定外设接口的人群。 使用场景及目标:本篇文章旨在帮助开发者掌握在FPGA平台上创建可靠的I2C Master控制器的方法,适用于需要通过I2C协议与其他设备(如传感器、存储器等)进行通信的项目。主要目标是提高开发者对该主题的理解深度,并提供可以直接应用于实际项目的代码示例。 其他说明:文中提到的所有代码均已在Xilinx Artix-7 FPGA板上进行了充分测试,证明其稳定性和可靠性。同时,作者也在GitHub上开放了源代码供更多人学习交流。
内容概要:本文详细介绍了利用三菱PLC及其QD75模块实现五角星轨迹控制的方法。首先解释了五角星的数学原理,即通过极坐标系计算五个顶点坐标并将其转换为直角坐标。接着阐述了QD75模块的硬件配置要点,如伺服驱动器的接线、参数设置以及单位换算。随后展示了核心运动程序的编写步骤,包括定位数据表的构建、运动参数的设定和定位指令的执行。此外,还分享了一些调试过程中遇到的问题及解决方案,如路径不闭合、拐角抖动等问题。最后强调了此类非标准应用对于深入理解运动控制底层逻辑的意义。 适合人群:从事工业自动化领域的工程师和技术人员,尤其是对三菱PLC和QD75模块有一定了解的人群。 使用场景及目标:适用于需要精确控制伺服电机进行复杂轨迹运动的应用场合,如激光切割、点胶机等。目的是帮助读者掌握如何使用三菱PLC配合QD75模块来实现特定形状(如五角星)的轨迹控制。 其他说明:文中提供了大量具体的代码片段和配置示例,便于读者理解和实践。同时提醒读者注意一些常见的陷阱,并给出了相应的解决措施。
内容概要:本文详细介绍了利用MATLAB实现基于二阶锥松弛(SOCP)的无功优化方法。首先解释了为何选择二阶锥松弛技术,因其能够将复杂的非线性混合整数规划问题转化为较为简单的二阶锥规划问题,从而降低求解难度并获得接近最优解的结果。接着展示了具体的MATLAB代码示例,涵盖变量定义、目标函数设定、等式与不等式约束条件的建立等方面。此外,还讨论了实际应用过程中可能出现的问题及其解决方案,如单位换算错误、内存管理等。最后强调了该方法在提高计算效率的同时保持较高精度的优点。 适合人群:从事电力系统研究和技术开发的专业人士,尤其是那些对无功优化感兴趣的研究人员和工程师。 使用场景及目标:适用于需要对电力系统进行精细化管理和优化的情境,特别是针对配电网中的无功优化问题。目的是通过改进现有算法,提升电压质量和稳定性,减少网络损耗,确保电力系统的高效运行。 其他说明:文中提供了详细的代码片段和理论解析,有助于读者深入理解SOCP技术的具体应用流程。同时也指出了实际操作中需要注意的一些细节问题,为后续研究提供了宝贵的实践经验。
二维码批量识别工具,借助先进图像识别技术,能快速准确读取大量二维码信息。适用于物流与供应链管理,如库存盘点和货物追踪;可用于资产管理,像固定资产盘点与设备巡检;还能助力数据收集与市场调研,比如问卷调查与活动签到。它能将识别信息导出为 Excel 等常见表格,表格结构清晰,方便用户对海量二维码数据高效采集、整理与分析,大幅提升工作效率
内容概要:本文探讨了在电力系统中,特别是在面对风光等分布式能源的不确定性时,如何利用MATLAB和遗传算法实现主动配电网的随机优化调度。文章详细介绍了目标函数的定义,包括上级电网购电费用、网损费用和弃风光费用的计算;遗传算法的关键参数设置及其调用方式;以及多场景分析的具体实现步骤。此外,文章还在IEEE33节点系统中进行了仿真验证,展示了不同场景下的调度效果,并讨论了优化过程中的一些技巧和注意事项。 适合人群:从事电力系统优化、智能电网调度的研究人员和技术人员,尤其是对遗传算法和MATLAB有一定了解的读者。 使用场景及目标:适用于需要处理风光不确定性、提高配电网调度效率和经济性的场合。目标是通过合理的数学建模和算法设计,找到在多种复杂情况下最优的调度方案,从而降低成本并提高系统的稳定性。 其他说明:文中提供了详细的代码示例,有助于读者理解和复现实验结果。同时,作者还分享了一些实践经验,如场景缩减技术和并行计算的应用,为后续研究提供了有益的参考。
少儿编程scratch项目源代码文件案例素材-海滩排球.zip
少儿编程scratch项目源代码文件案例素材-果冻竞技场.zip
CodeFormer是由南洋理工大学-商汤科技联合研究中心S-Lab在NeurIPS 2022上提出的一种基于VQGAN+Transformer的人脸复原模型。该方法基于预训练VQGAN离散码本空间,改变复原任务的固有范式,将人脸复原任务转成Code序列的预测任务,大幅度降低了复原任务映射的不确定性,同时VQGAN的码本先验也为复原任务提供了丰富的人脸细节。
内容概要:本文详细介绍了将暗通道先验算法应用于FPGA平台进行图像去雾处理的技术实现过程。首先,作者在Matlab中展示了暗通道先验算法的基本原理和实现方法,包括计算暗通道、获取大气光值以及估算透射率等步骤。随后,重点讨论了如何在Quartus 13.0环境下利用Verilog语言将这些算法转换为硬件电路的具体实现方式,如构建最小值计算模块、大气光估计模块和透射率优化模块。此外,文中还探讨了在浓雾区域和天空区域处理中存在的问题及解决方案,指出了现有实现的局限性和未来的改进方向。 适合人群:从事图像处理、FPGA开发的研究人员和技术爱好者,尤其是对图像去雾算法感兴趣的开发者。 使用场景及目标:适用于希望深入了解暗通道先验算法在FPGA平台上实现的读者,旨在帮助他们掌握相关技术和解决实际应用中的难点。 其他说明:文章不仅提供了详细的理论解释和技术实现细节,还分享了许多实践经验,有助于读者更好地理解和应对可能出现的各种挑战。
内容概要:本文详细介绍了三菱PLC 5u与台达变频器通过Modbus RTU协议进行通讯的全过程。涵盖了硬件接线方法,确保RS-485接口正确连接;变频器参数设置,包括通讯地址、波特率、数据格式等关键参数的调整;PLC程序编写,利用Modbus RTU功能块实现数据读写;以及威纶通触摸屏程序配置,提供友好的人机交互界面。每一步骤均配有详尽解释和实例代码,确保实施过程顺畅。 适合人群:从事工业自动化领域的工程师和技术人员,尤其是对PLC和变频器通讯有一定了解的基础用户。 使用场景及目标:适用于需要将三菱PLC 5u与台达变频器集成到同一系统中的工程项目,旨在建立稳定的通讯链路,实现高效的数据交换和远程控制。通过本文的学习,可以掌握完整的通讯解决方案,提高系统的可靠性和可控性。 其他说明:文中提供了丰富的调试技巧和常见问题解决方法,如通讯超时排查、CRC校验注意事项等,有助于快速定位并解决问题。同时附带了完整的程序包和接线图,便于实际应用。
少儿编程scratch项目源代码文件案例素材-房间视差.zip