- 浏览: 91928 次
- 性别:
- 来自: 深圳
-
文章分类
- 全部博客 (81)
- 读书笔记 (14)
- NetBeans学习 (1)
- JavaBeans and Bean Events (3)
- 《Pro Oracle SQL》Chapter 2 SQL Execution (13)
- 《Pro Oracle SQL》Chapter 3 Access and Join Methods (16)
- Pro Oracle SQL Chapter 5 (0)
- Pro Oracle SQL Chapter 6 (0)
- Pro Oracle SQL Chapter 7 (9)
- Pro Oracle SQL Chapter 8 (9)
- 《Pro Oracle SQL》Chapter 9 The Model Clause (11)
- 《Pro Oracle SQL》Chapter 10 Subquery Factoring (7)
最新评论
-
mojunbin:
这个不能不顶。
《Pro Oracle SQL》 Chapter2--2.1 Oracle Architecture Basics -
Branding:
谢谢,获益匪浅
《Pro Oracle SQL》--chapter 5--5.6 Building Logical Expressions -
Branding:
《Pro Oracle SQL》--Chapter 5--5.4 Questions about the Question -
Branding:
谢谢
《Pro Oracle SQL》 翻译序 -- 读书心得 -
jiaoshiguoke:
继续 加油
《Pro Oracle SQL》--Chapter 6--6.1 Explain Plans--之三
《Pro Oracle SQL》Chapter8--8.9 Advanced topics
- 博客分类:
- Pro Oracle SQL Chapter 8
Advanced topics 高级主题
(page 268)
A few advanced topics about the analytic functions are worthy of discussion. I will discuss topics such as dynamic analytic statements, nesting of analytic functions, parallelism, and PGA size.
关于分析函数的一些高级主体很值得讨论。我将讨论如动态分析语句,分析函数的嵌套,并行性
,以及PGA大小。
Dynamic SQL 动态SQL
A common question about the analytic SQL statement is whether a bind variable can be used in place of partitioning or sorting columns. No.
If you want the flexibility to modify the partitioning or sorting columns dynamically, you need to use dynamic SQL statements.
Static analytic SQL statements can not change the partitioning or sorting columns.
分析函数有一个常见的问题是:绑定变量是否能用于替换分区或排序列么?答案是不能。
如果你需要动态修改分区列和排序列(的这种弹性),你就需要使用动态SQL语句。
静态分析SQL语句不能改变分区或排序列。
If your goal is to modify the partitioning columns dynamically, then consider creating a packaged procedure to capture the logic in the procedure. In the Listing 8-24, the procedure Analytic_dynamic_prc accepts a string to be used as partitioning columns. A SQL statement is constructed using the arguments passed and executed dynamically using Execute immediate syntax. Result of the analytic statement is fetched into an array and printed using a call to dbms_output package.
如果你的目标是动态的修改分区列,就要考虑创建打包的存储过程,把逻辑封装在存储过程中。在列表8-24中,存储过程
Analytic_dynamic_prc接收一字符串用做分区列。SQL语句使用传入的参数构造且使用Execute
immediate句法动态的执行。分析语句的结果从数组中取出且调用dbms_output包打印出结果。
In the first call, the analytic_dynamic_prc passes the string product, country, region as the first argument and the columns in this list are used as the partitioning columns. The second call to the procedure uses the string product, country, region, year to use a different list of columns for the partitioning-clause.
在第一次调用中,analytic_dynamic_prc传递字符串“product, country,
region”作为第一个参数,在列表中的列用做分区列。第二次调用过程使用字符串“product, country, region,
year”作为分区子句的不同的列表。
Note that this procedure is given as an example and as such may not be construed as a production-ready code.
注意这个过程仅作为一个例子,可能用于生产环境的代码不能如此构造。
Listing 8-24. Dynamic SQL Statement
create or replace procedure
analytic_dynamic_prc ( part_col_string varchar2, v_country varchar2, v_product varchar2)
is
type numtab is table of number(18,2) index by binary_integer;
l_year numtab;
l_week numtab;
l_sale numtab;
l_rank numtab;
l_sql_string varchar2(512) ;
begin
l_sql_String :=
'select * from (
select year, week,sale,
rank() over(
partition by ' ||part_col_string ||'
order by sale desc
) sales_rank
from sales_fact
where country in (' ||chr(39) || v_country || chr(39) || '
) and
product =' || chr(39) || v_product || chr(39) ||
' order by product, country,year, week
) where sales_rank<=10
order by 1,4';
execute immediate l_sql_string bulk collect into l_year, l_week, l_sale, l_rank;
for i in 1 .. l_year.count
loop
dbms_output.put_line ( l_year(i) ||' |' || l_week (i) ||
'|'|| l_sale(i) || '|' || l_rank(i) );
end loop;
end;
/
exec analytic_dynamic_prc ( 'product, country, region','Australia','Xtend Memory');
...
1998 |48|172.56|9
2000 |46|246.74|3
2000 |21|187.48|5
2000 |43|179.12|7
2000 |34|178.52|8
2001 |16|278.44|1
2001 |4|256.7|2
exec analytic_dynamic_prc ( 'product, country,region, year','Australia','Xtend Memory');
1998 |48|172.56|1
1998 |10|117.76|2
1998 |18|117.56|3
1998 |23|117.56|3
1998 |26|117.56|3
1998 |38|115.84|6
1998 |42|115.84|6
...
Nesting Analytic Functions
Analytic functions can not be nested, but a nesting effect can be achieved with the use of subqueries.
For example, the clause lag(first_value(column,1),1) is syntactically incorrect. Subqueries can be used to
create a nesting effect, as you’ll see below.
分析函数不能嵌套,但是使用子查询能取得嵌套效果。
例如,子句lag(first_value(column,1),1)句法上是错误的。你将看到,使用子查询能创建嵌套效果。
Suppose your goal is to fetch the maximum Sale column value for the year and the prior year in the same row; if so, then analytic functions lag and first_value can be used in the subqueries to write a SQL statement. In Listing 8-25, inner subquery is fetching the Year and Week Sale column value in which the maximum sale occurred, in addition to fetching the maximum Sale column value for that year. The lag function in the outer query retrieves the prior Year Maximum Sale column value.
假设你的目标是在同一行中取出当年和上一年的最大的Sale列值。在列表8-25中,内部子查询取出的是最大sale值所在行的Year,Week列值,还有取出那年的最大Sale列值。外部查询的lag函数检索上一年最大Sale列值。
Notice that the partitioning clause is different between lag and first_value functions. Analytic function first_value is computing the top Sale row in a partition specified by the partitioning columns product, country, region, year whereas the lag is fetching the first row from the prior year specifying only sorting-clause: order by year desc .
注意lag和first_value函数的分区子句是有区别的。分析函数first_value计算的是按分区列product, country,
region, year指定分区的第一Sale列值所在行,而lag则取的是由排序子句“order by year
desc”指定的前一年的第一行。
With multi-level nesting of analytic functions, complex goals can be implemented concisely using the analytic functions.
通过多层分析函数嵌套,复杂的目标就能通过精简的使用分析函数得以执行。
Listing 8-25. Nesting Analytic Functions
select year, week, top_sale_year,
lag( top_sale_year) over ( order by year desc)
prev_top_sale_yer
from (
select distinct
first_value ( year)
over (
partition by product, country, region ,year
order by sale desc
rows between unbounded preceding and unbounded following
) year,
first_value ( week)
over (
partition by product, country, region ,year
order by sale desc
rows between unbounded preceding and unbounded following
) week,
first_value (sale)
over(
partition by product, country, region ,year
order by sale desc
rows between unbounded preceding and unbounded following
) top_sale_year
from sales_fact
where country in ('Australia') and product ='Xtend Memory'
)
order by year, week
/
YEAR WEEK TOP_SALE_YEAR PREV_TOP_SALE_YER
----- ---- ------------- -----------------
1998 48 172.56 148.12
1999 17 148.12 246.74
2000 46 246.74 278.44
2001 16 278.44
Parallelism 并行性
By specifying a parallel hint in the SQL statement or by setting parallelism at the object level, analytic functions can be parallelized.
If you have huge amount of data that needs to be processed using analytic functions, parallelism is a good choice. A SQL statement using multi-level nesting also can benefit from parallelism.
通过在SQL语句中指定并发提示或者通过在对象层级设定并行性,分析函数就能并发化(执行)。
如果你有大量的数据需要使用分析函数处理,并行性就是不错的选择。使用了多层嵌套的SQL语句也能从并行性中获益。
Listing 8-26 shows the execution plan for the query in the Listing 8-25 using parallelism. In the execution plan, there are two WINDOW operations as the SQL statement has nested the lag and first_value analytic functions.
列表8-26展示了列表8-25查询使用并行性后的执行计划。在执行计划中,有两处WINDOW操作,因为SQL语句嵌套了分析函数lag和first_value。
Optimal distribution of rows between the
PQ slaves
is critical to maintain functional correctness and that is automatically handled by Oracle database.
在
PQ副盘(Parallel Query slaves)
之间行集的优化分布对于保持功能正确性是至关重要的,且是由Oracle数据库自动处理的。
Listing 8-26. Parallelism
----------------------------------------------------
Id | Operation | Name
-----------------------------------------------------
0 | SELECT STATEMENT |
1 | SORT ORDER BY |
2 | WINDOW BUFFER
|
3 | PX COORDINATOR |
4 | PX SEND QC(ORDER) | : T Q1 0 0 03
5 | SORT ORDER BY |
6 | PX RECEIVE |
7 | PX SEND RANGE | : T Q1 0 0 02
8 | VIEW |
9 | HASH UNIQUE |
10 | PX RECEIVE |
11 | PX SEND HASH | : T Q1 0 0 01
12 | WINDOW SORT
|
13 | PX RECEIVE |
14 | PX SEND HASH | : T Q1 0 0 00
15 | PX BLOCK ITERATOR |
* 16 | TABLE ACCESS FULL | SALES_FACT
PGA size
Most operations associated with the analytic functions are performed in
the Program Global Area(PGA) of the process.
So, for optimal
performance it is important to have a big enough memory area so that
programs can execute analytic functions without spilling
to the disk.
This is very analogous to a Sort operation. If the Sort operation spills
to the disk due to a lower value of the memory size, then the
performance of the Sort operation will not be optimal.Similarly, the
execution performance of analytic functions will suffer if the operation spills to the disk.
与分析函数有关联的大部分操作在程序全局区(PGA)中执行。
如此以来,对优化性能而言有充足的内存区域将使得程序能执行分析函数而不要溢出
到磁盘中。这同Sort操作如出一辙。如果Sort操作由于低容量的内存溢出到磁盘,则Sort操作将不是优化的了。相似的,如果Sort操作溢出到磁盘则分析函数的执行性能将大打折扣。
Database initialization parameter
PGA_AGGREGATE_TARGET(PGAT) controls the cumulative maximum size of the
PGA. By default, a serial process can allocate a PGA up to the maximum
size of 5% of PGAT value. For parallel processes, the limit is up to 30%
of PGAT. It is essential to keep PGAT to a bigger value to improve the
performance of analytic functions.
数据库初始化参数
PGA_AGGREGATE_TARGET(PGAT)控制着累积的最大PGA尺寸。默认情况下,一串行进程能最多分配5%的PGAT容量的PGA。而对于并行进程,这个限制上升到30%。保持PGAT足够的大对提高分析函数的性能有实质意义。
Organizational Behavior
The hardest thing about analytic function is the organizational
resistance to change. Developers and databae administrators are
comfortable writing SQL statements using conventional syntax. Using
analytic syntax will not come easy. However, these developers and
database administrators need to embrace the change. Another plus: use of
analytic functions forces one to think in terms of sets.
关于分析函数最难的事是团队对(新事物)改变的阻力。开发者和数据库管理员满足于是用传统句法写SQL。推行分析函数将不那么顺利。然而,这些开发者和数据库管理员需要拥抱这种改变。另一个好处:使用分析函数迫使人们依照集合的方式来思考。
Oracel
Corporation releases new features in every major release of Oracle
Database. We need to harness the new features to write more efficient
and concise SQL statements. Proper training for these new features is
also essential and hopefully, this chapter provided an insight in to
analytic functions.
Oracle公司在每一个Oracle数据库主要版本发布新特性。我们需要驾驭这些新特性来写出更加有效,精简的SQL语句。对这些新特性适当的培训也是必要的和有前途的,本章深入讨论了分析函数。
When you start writing SQL statement
utilizing the analytic functions, start with simpler SQL statement. Then
add more complexity to meet tht goal.
当你开始利用分析函数写SQL语句,开始用简单的SQL语句,然后逐渐的复杂,最终达到目的。
Summary
总结
Complex SQL
statements can be written using analytic functions concisely.
Understanding analytic function provides you whole new way of thinking,
analytically speaking.
The ability to reference another row combined with
partitioning and windowing clase allows you to simplify complex SQL
statements. Many performance issues can be resolved rewriting the SQL
statement using analytic functions, and that resistance can be easily
overcome by showing the performance improvements with analytic
functions.
复杂的SQL语句能使用分析函数简明的写出来。理解分析函数给予你全新的方式思考,分析的表述。 行间引用的能力结合分区和窗口子句使得你能够简化复杂的SQL语句。许多性能问题通过使用分析函数重写SQL语句迎刃而解,且通过展示分析函数所带来的性能提升(推广它的)阻力也将容易克服。
发表评论
-
《Pro Oracle SQL》Chapter8--8.8 Performance Tuning
2012-03-02 23:11 725Performance Tuning 性能调优 ... -
《Pro Oracle SQL》Chapter 8 -- 8.7 Other Analytic Functions 之三
2012-02-29 22:09 1032NTILE (page 263) ... -
《Pro Oracle SQL》Chapter 8 -- 8.7 Other Analytic Functions 之二
2012-02-26 22:14 892Ratio_to_report ... -
《Pro Oracle SQL》Chapter 8 -- 8.7 Other Analytic Functions 之一
2012-02-26 14:35 1070Other Analytic Functions ... -
《Pro Oracle SQL》Chapter 8--8.6 First_ value & Last_value
2012-02-21 23:52 912First_value & Last_value ... -
《Pro Oracle SQL》Chapter 8 -- 8.5 Lead and Lag
2012-02-19 16:07 1053Lead and Lag (page 2 ... -
《Pro Oracle SQL》Chapter 8 -- 8.4Aggregation Functions
2012-02-17 01:47 1025Aggregation Functions 聚合 ... -
《Pro Oracle SQL》Chapter 8 -- 8.1-8.2 Anatomy of Analytic Functions -8.3
2012-02-11 11:16 1171Riyaj Shamsudeen (page 243) ...
相关推荐
# 压缩文件中包含: 中文-英文对照文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文-英文对照文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;
内容概要:本文详细探讨了基于模型预测控制(MPC)的微网共享储能优化调度技术,分为日前优化和日内滚动MPC跟踪两大部分。日前优化部分通过分析居民用电需求,制定储能充放电策略,确保整体能源利用效率最大化。日内滚动MPC跟踪部分则通过预测模型、滚动优化和反馈校正,动态调整储能状态,保持系统稳定。文中提供了多个Python和MATLAB代码片段,展示了具体的技术实现细节,如K-means聚类、CVXPY建模、LSTM+ARIMA混合预测等。 适合人群:从事微网系统设计、储能优化调度的研究人员和技术开发者,以及对模型预测控制感兴趣的工程技术人员。 使用场景及目标:适用于微网系统的储能管理,旨在提高能源利用效率、降低运营成本,并确保系统在各种工况下的稳定性。主要目标是通过合理的储能调度,实现削峰填谷和平抑负荷波动。 其他说明:文章不仅介绍了理论背景,还分享了实际应用中的经验和教训,如处理光伏出力预测误差、优化求解器性能等问题。同时,文中提到的一些关键技术点,如充放电互斥约束、终端约束等,有助于深入理解MPC的应用挑战和解决方案。
本书由Bernard Marr撰写,探讨了互联网的第三次演变——未来互联网,即Web 3.0和元宇宙的概念。作者详细分析了元宇宙技术、Web3和区块链如何共同作用,推动互联网向更沉浸式和去中心化的方向发展。书中指出,这一变革不仅将改变我们的日常生活和娱乐方式,还将深刻影响教育、金融、医疗保健以及制造业等多个行业。同时,作者也探讨了政府和公共服务如何利用未来互联网提高效率,以及企业如何在这一变革中重新思考产品、服务和业务运营。书中还强调了未来互联网对技能需求的影响,以及如何在企业中建立适应未来互联网的成功文化,并制定相应的战略。
# 压缩文件中包含: 中文-英文对照文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文-英文对照文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;
内容概要:本文详细介绍了如何使用VHDL语言在FPGA上实现16阶FIR低通滤波器的设计与实现。首先,文中给出了滤波器的基本参数设定,如采样率为50MHz,截止频率为3MHz,并采用汉明窗进行设计。接着,展示了顶层实体声明及其内部逻辑结构,包括移位寄存器作为延迟线以及乘累加操作的具体实现方法。同时提供了完整的VHDL代码片段,涵盖了从顶层实体定义到具体的功能模块,如系数生成、数据移位寄存器和乘累加模块。此外,还讨论了ModelSim仿真的配置与测试激励生成方式,确保仿真结果能够正确反映滤波器性能。最后,针对硬件实现过程中可能出现的问题进行了提示,如时钟约束、资源优化等。 适合人群:具有一定FPGA开发经验的技术人员,尤其是对VHDL编程有一定了解并希望深入研究FIR滤波器实现的人群。 使用场景及目标:适用于需要在FPGA平台上快速搭建并验证FIR低通滤波器的应用场合。主要目标是帮助开发者掌握FIR滤波器的工作原理及其在FPGA上的高效实现方法。 其他说明:文中不仅提供了详细的代码示例,还包括了许多实用的经验分享和技术要点提醒,有助于提高开发效率并减少常见错误的发生。
内容概要:本文详细介绍了车辆紧急防避撞AEB控制系统的构建与实现。首先,文章阐述了驾驶员制动模型,通过模拟人类驾驶者的制动行为,使车辆能够根据实际情况做出适当的制动反应。其次,引入了模糊控制方法用于计算期望减速度,使得车辆能够在面对不确定性环境时作出智能化决策。再次,建立了纵向发动机逆动力学模型,以确定合适的节气门开度,确保车辆的动力输出满足制动需求。此外,还探讨了制动压力与减速度的关系以及风阻和滚动阻力的影响,并展示了具体的代码实现。最后,文章描述了仿真的步骤,强调了验证模型有效性的重要性。 适合人群:从事自动驾驶技术研发的专业人士、对车辆控制感兴趣的工程师和技术爱好者。 使用场景及目标:适用于研究和开发先进的车辆安全辅助系统,旨在提高车辆在紧急情况下的避撞能力,减少交通事故的发生。通过理解和应用文中提供的模型和代码,可以为实际工程项目提供理论支持和技术指导。 其他说明:文章不仅提供了详细的理论解释,还包括了大量的代码示例,便于读者理解和实践。同时,作者还分享了一些实际开发中的经验和技巧,有助于解决可能出现的问题并优化系统性能。
Python基于Mapreduce批处理的某招聘网站爬虫及可视化展示项目源码,个人经导师指导并认可通过的高分设计项目,评审分99分,代码完整确保可以运行,小白也可以亲自搞定,主要针对计算机相关专业的正在做大作业的学生和需要项目实战练习的学习者,可作为毕业设计、课程设计、期末大作业,代码资料完整,下载可用。 Python基于Mapreduce批处理的某招聘网站爬虫及可视化展示项目源码Python基于Mapreduce批处理的某招聘网站爬虫及可视化展示项目源码Python基于Mapreduce批处理的某招聘网站爬虫及可视化展示项目源码Python基于Mapreduce批处理的某招聘网站爬虫及可视化展示项目源码Python基于Mapreduce批处理的某招聘网站爬虫及可视化展示项目源码Python基于Mapreduce批处理的某招聘网站爬虫及可视化展示项目源码Python基于Mapreduce批处理的某招聘网站爬虫及可视化展示项目源码Python基于Mapreduce批处理的某招聘网站爬虫及可视化展示项目源码Python基于Mapreduce批处理的某招聘网站爬虫及可视化展示项目源码Python基于Mapreduce批处理的某招聘网站爬虫及可视化展示项目源码Python基于Mapreduce批处理的某招聘网站爬虫及可视化展示项目源码Python基于Mapreduce批处理的某招聘网站爬虫及可视化展示项目源码Python基于Mapreduce批处理的某招聘网站爬虫及可视化展示项目源码Python基于Mapreduce批处理的某招聘网站爬虫及可视化展示项目源码Python基于Mapreduce批处理的某招聘网站爬虫及可视化展示项目源码Python基于Mapreduce批处理的某招聘网站爬虫及可视化展示项目源码Python基于Mapreduce批处理的某招聘网站爬虫及可视化展示项目源
脚本功能: 自动打开浏览器。 进入指定的登录页面。 输入预设的用户名和密码。 点击登录按钮。 登录成功后获取用户信息并打印。 点击退出按钮并退出登录。 关闭浏览器。 注意事项: 确保已安装适用于您浏览器的驱动程序,例如 ChromeDriver,并正确设置其路径。 在实际应用中,您需要根据目标网站的结构和元素修改选择器(如 By.NAME、By.ID 等)和相应的值。 此脚本仅为示例,实际使用时需要考虑更复杂的场景,例如异常处理、验证码处理、动态元素加载等。 遵守目标网站的使用条款和法律法规,不要用于非法或未经授权的操作。
# 压缩文件中包含: 中文文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;
【信息安全领域实战项目】
# 压缩文件中包含: 中文文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;
内容概要:本文探讨了基于滑膜控制的五辆车编队实现自适应协同巡航控制(ACC)的研究。通过carsim/Simulink平台进行仿真,采用分层控制结构,上层滑膜控制器根据前车的距离和速度误差计算期望加速度,下层则通过控制节气门开度和制动压力来实现车速控制。文中展示了详细的算法架构、关键代码片段以及丰富的仿真结果图,验证了滑膜控制在车辆编队中的优越性能,特别是在紧急情况下能够迅速反应并保持稳定的跟车距离。 适合人群:对自动驾驶技术和车辆控制系统感兴趣的科研人员、工程师及高校相关专业学生。 使用场景及目标:适用于研究和开发多车编队的自适应巡航控制系统,旨在提高车队行驶的安全性和效率。具体目标包括减少车速跟踪误差、优化节气门和制动控制、提升紧急情况下的响应速度。 其他说明:提供了详细的滑膜控制理论讲解和技术实现细节,附带完整的仿真数据和工程落地指导,有助于读者深入理解和应用该技术。
# 压缩文件中包含: 中文-英文对照文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文-英文对照文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;
内容概要:本文详细介绍了三相桥式整流电路采用双闭环控制(电流内环和电压外环)的方法及其在MATLAB中的仿真实现。首先阐述了为何需要引入电流内环来提高系统的动态响应速度和稳定性,特别是在负载突变情况下。接着描述了硬件配置,包括六个晶闸管的工作方式以及触发脉冲的生成机制。文中给出了具体的双PI控制器参数设置方法,并展示了如何通过调整电流环和电压环的比例和积分系数来优化系统性能。此外,还讨论了常见的调试问题及解决方案,如同步触发信号的相位补偿、PI参数的选择、采样时间的影响等。最后通过仿真实验数据对比,证明了双闭环控制相比单环控制在稳定性和抗干扰方面有着显著优势。 适合人群:从事电力电子研究的技术人员、高校相关专业师生、对电力电子控制系统感兴趣的工程技术人员。 使用场景及目标:适用于需要深入了解三相桥式整流电路双闭环控制原理并进行仿真实践的学习者;旨在帮助读者掌握双闭环控制系统的参数选择、调试技巧及应用实例。 其他说明:文中提供了大量MATLAB代码片段用于辅助理解和实施具体控制策略,同时分享了许多来自实际项目的经验教训,有助于读者更好地将理论应用于实践中。
内容概要:本文详细介绍了飞蛾扑火优化算法(Moth Flame Optimization, MFO)的原理和实现方法。首先解释了MFO的基本概念,即通过模仿飞蛾绕光飞行的行为来构建优化算法。接着展示了MFO的关键公式和Matlab代码实现,特别是飞蛾位置更新公式的具体形式。文中提供了23个经典的测试函数用于评估MFO性能,并给出了具体的调用方式。此外,还讨论了算法运行效果以及一些重要的调参经验和技巧,如种群数量、迭代次数、边界设定等。最后分享了一个实际应用案例,展示了MFO在光伏电池板排布优化中的成功应用。 适合人群:对优化算法感兴趣的科研工作者、学生以及从事相关领域研究的专业人士。 使用场景及目标:适用于需要高效求解复杂优化问题的研究项目,尤其是涉及多峰函数优化的情况。目标是帮助读者掌握MFO的工作原理并能够独立应用于实际问题中。 其他说明:本文不仅提供了详细的理论讲解和技术细节,还包括完整的代码实现和丰富的实验数据,有助于深入理解和实践MFO算法。
DBeaver 是一个通用的数据库管理工具和 SQL 客户端,具有许多功能,包括元数据编辑器、SQL 编辑器、富数据编辑器、ERD、数据导出/导入/迁移、SQL 执行计划等。支持 MySQL, PostgreSQL, Oracle, DB2, MSSQL, Sybase, Mimer, HSQLDB、Derby、Teradata、Vertica、Netezza、Informix 等。
内容概要:本文详细探讨了永磁同步电机(PMSM)中采用降阶负载转矩观测器进行转矩估计的方法,并介绍了将估计得到的负载转矩用于前馈补偿的技术。首先,文章指出传统全阶观测器存在模型复杂、参数调整困难的问题,提出利用降阶观测器简化模型并提高参数调整效率。接着,通过具体的数学推导和MATLAB/Simulink代码展示了降阶观测器的设计过程,强调了关键参数如观测器增益的选择对系统性能的影响。然后,讨论了前馈补偿的具体实现方式,即在速度环输出中加入负载转矩估计值,从而有效减小突加负载引起的转速波动。最后,通过实验数据对比证明了该方法的有效性和优越性,尤其是在应对突加负载时的表现更为突出。 适合人群:从事电机控制领域的研究人员和技术人员,尤其是关注永磁同步电机控制策略优化的专业人士。 使用场景及目标:适用于需要精确控制永磁同步电机转矩的应用场合,如电梯、电动汽车等。目标是提高系统的抗干扰能力和稳定性,减少突加负载导致的转速波动。 其他说明:文中提供了详细的MATLAB和C语言代码示例以及仿真模型构建指南,有助于读者理解和实践所介绍的技术。此外,还分享了一些实用的工程经验和调试技巧,如参数设置范围、注意事项等。
内容概要:本文详细介绍了西门子1200 PLC在水处理系统中的应用,重点讲解了SCL编程实现的关键功能块,包括模拟量换算、滤波、时间换算以及Modbus TCP通讯程序。每个功能块都有详细的代码示例和应用场景说明,展示了如何将模拟量信号转换为数字量、去除信号噪声、进行时间单位换算以及实现设备间的高效通信。此外,文中还提到了一些实用技巧,如仿真环境搭建、电气原理图解读、HMI界面设计等。 适合人群:具备一定PLC编程基础的技术人员,尤其是从事水处理行业自动化控制领域的工程师。 使用场景及目标:① 学习如何利用SCL语言编写高效的PLC功能块;② 掌握水处理系统中常见的信号处理方法;③ 实现PLC与其他设备之间的可靠通信;④ 提升对复杂工业控制系统的设计和调试能力。 其他说明:文中不仅提供了理论知识,还分享了许多实际项目中的经验和优化技巧,帮助读者更好地理解和应用所学内容。
内容概要:本文详细介绍了永磁同步电机和直流无刷电机无感FOC(磁场定向控制)的源码及其关键技术。首先探讨了速度与位置估算代码的设计,展示了如何使用实际值单位使代码更加直观。接着介绍了基于TI FOC框架的磁链观测器,强调了其开源性质和详细的注释,便于理解和扩展。此外,文章还提到了雅特力AT32平台的工程源码,以及电流环PI参数自动计算功能,显著提升了开发效率。最后,讨论了优秀的启动性能,如静止闭环启动、快速角度收敛、PLL锁相环的速度角度跟踪和鲁棒性强的特点。 适合人群:电机控制领域的工程师和技术爱好者,尤其是那些希望深入了解无感FOC控制机制并应用于实际项目的人群。 使用场景及目标:适用于需要高效、稳定的电机控制系统的设计和开发。目标是帮助读者掌握无感FOC控制的核心技术和实现方法,提高系统的响应速度和稳定性。 其他说明:文中提供的代码示例和解释有助于读者更好地理解无感FOC的工作原理,并提供了一种高效的开发方式,减少了调试时间和成本。