空间分配

2024-06-21

空间分配(精选八篇)

空间分配 篇1

气候变暖是人类面临的十大生态问题之首,而人类社会大量排放二氧化碳等温室气体形成的温室效应则是气候变暖的根源。《联合国气候变化框架公约》是世界上第一个为全面控制二氧化碳等温室气体的排放,以应对全球变暖而给人类经济和社会带来不利影响的国际公约。《京都议定书》的出台具有了实际的温室气体减排目标和实际的可操作性。《京都议定书》还允许工业发达国家改善森林管理增加森林碳汇,部分抵消其二氧化碳排放额度。由此可见,在新的历史条件下,森林的生态效益和经济效益越来越受到全世界的重视。

1 二氧化碳排放空间安全利用

1989年,世界银行资深经济学家赫尔曼·戴利(H·Daly)将资源利用最低安全标准归纳为三条:“社会排放污染物的速度不得超过环境对污染物的吸收能力;社会使用可再生性资源的速度不得超过可再生资源的更新速度;社会使用不可再生资源的速度不得超过作为其替代晶的开发速度”。从全球角度考虑,二氧化碳排放空间利用应该遵循最低安全标准原则。判断二氧化碳空间利用的安全性应该首先确定大气二氧化碳浓度最高允许值,这个允许值不能够使温室效应继续增强。

假设:现时大气中二氧化碳浓度/大气中二氧化碳浓度最高允许值≤1,则是安全的。反之,则进入不安全状态。

二氧化碳排放空间的安全利用需要各国共同努力、协调行动。《京都议定书》的实质就是为了能够合理、公平的利用二氧化碳排放空间,要做到合理,一方面涉及到排放空间合理分配问题(具体表现为各国二氧化碳减排额度),另一方面国际社会还应努力避免二氧化碳的“恶意转移”。发达国家为了完成减排义务,通过其国内产业结构调整,主要发展高新科技产业和高附加值的服务业,而将一些高耗能、高排放和低附加值的基础产业转移到发展中国家。而发展中国家也需要这样的基础产业来完成其工业化和促进社会经济的发展。这样就形成了经济利益的互补,这是社会经济发展水平差异造成的。但是发展中国家在引进发达国家的资金和项目的时候也要考虑本国二氧化碳排放情况,从经济和社会的可持续发展考虑,所有国家都应该走低碳发展的道路,发展中国家尤其要注意发达国家碳排放的“恶意转移”。

2 二氧化碳排放空间分配原则

(1)人权原则。良好的生态和空气资源是每个地球公民应该享有的权力,吸收氧气排出二氧化碳也是人类生存的基本条件,而且地球上的每一个人具有的这种发展权利应该是平等的。从这一基本人权出发,二氧化碳排放权应该按照人人平等的原则进行分配,人口多的国家应该具有较多的二氧化碳排放权,现在国际公约谈判已经注意到了这一点。作为一个国家,在国际谈判中应该坚持这一原则,在制定国内有关政策的时候,也应该充分注意到这一问题。(2)历史性原则。人权原则从现在和未来发展的角度出发,强调人人具有平等的发展权利。但是温室效应是由于人类长期以来的工业生产向大气已经排放了大量二氧化碳所造成的,从历史角度讲,美国等发达资本土义国家,经过将近200年的工业化运动,完成了资本原始积累。在此期间这些国家消耗了大量能源,排放了大量二氧化碳。可以说发达国家的工业化过程是当今世界气候变暖的主要原因。而广大发展中国家从历史角度讲由于技术落后、生产落后、经济落后,其排放的二氧化碳数量很少,二氧化碳排放空间分配必须考虑历史的田素。大量研究和数据说明,工业发达同家应该对温室效应的产生负有主要责任,这个后果现在让全世界所有的人来平均承担,显然也是不公平的。发达国家的公民在继承他们的先人留下的财富的时候,也应该为他们的先人对环境的破坏负起应该担负的责任。在二氧化碳排放权分配问题上,对于历史性原则应该给与足够的重视,这也是人权原则得到切实执行的有力保证。(3)公平原则。公平要考虑历史、现状和未来,也就是说公平要体现历史公平、代际公平并以此决定现状的公平(代内公平)。

西方学者提出代际公平可以简单而又广义地叙述如下:假定当前决策的后果,将影响好几代人的利益,应该在各代人之间就上述后果进行公平的分配。为了做到代际公平,必须遵循"代际多数规则",即当某项决策涉及到若干代人的利益时,应该由这若干代人中的多数来作出决策。但是在实际决策时,尚未出世的子孙后代是没有发言权的。正因为如此,代际公平原则希望这一原则能够成为社会普遍接受的、不取决于特定利益集团的特定决策的伦理标准。二氧化碳排放空间是涉及子孙后代生存和发展的基本资源,在这一资源的利益和分配过程中,代际公平原则是为子孙后代着想的负责任的基本原则,这一原则充分体现了可持续发展的思想。

历史公平和代际公平决定了如何处理现在问题的方式和方法。在应对温室效应、气候变暖这一全球性生态问题面前,世界各国所持态度应该是一致的,但是所负的责任在度上、量上都应该有所区别,起码在一定时间内,这一点是十分重要的。这一点要求我们必须要微到"代内公平"。代内公平是当代社会就气候温度进行国际谈判和交流的基础,也是国际社会能够取得共识和采取共同行动的基础。

3 二氧化碳排放空间分配机制

既然二氧化碳排放空间是稀缺性资源,就必须要进行分配,如果不分配,就会产生挥霍性浪费,从而导致这种资源越来越短缺。二氧化碳排放空间的分配机制主要由两个层次组成:一是在世界范围内建立二氧化碳排放空间分配机制和二氧化碳排放权贸易机制。首先在国家之间对二氧化碳排放权进行分配,在此基础上,建立国际间二氧化碳排放权交换机制,使二氧化碳排放权真正纳入资源管理轨道;二是在各国国内建立直接或者间接的二氧化碳排放空间分配和二氧化碳排放权交换机制,在国家内部对二氧化碳排放权真正实现资源性管理、有偿使用和碳贸易机制。

二氧化碳排放空间是一种新型资源。这种资源具有公共性、外在性、稀缺性、可再生性和商品性,其性质正在从可更新的公共物品资源转化为可更新的商品性资源。当前这种资源的消费特征主要体现为资源产权虚位、资源使用的非排他性、资源消费背离资源供应、资源价值取向扭曲和资源没有形成市场。在此基础上,在经济发展过程中要走“低碳发展道路”,在引资和投资过程中要注意发达国家碳排放的“恶意转移”,二氧化碳排放空间分配机制应该包括国际分配机制和国内分配机制两部分。

摘要:本文从资源的定义人手,分析了二氧化碳排放空间的资源性,提出二氧化碳排放空间是一种新型资源。并对二氧化碳排放空间分配与使用进行了具体的阐述。

空间分配 篇2

实验报告

实验二

实验题目:存储器管理

系别:计算机科学与技术系

班级:

姓名:

学号:2

一、实验目的

深入理解动态分区存储管理方式下的内存空间的分配与回收。

二、实验内容

编写程序完成动态分区存储管理方式下的内存分配和回收的实现。具体内容包括:

确定用来管理内存当前使用情况的数据结构; 采用首次适应算法完成内存空间的分配; 分情况对作业进行回收;

编写主函数对所做工作进行测试。

三、实验原理

分配:动态分区存储管理方式把内存除OS占用区域外的空间看作一个大的空闲区。当作业要求装入内存时,根据作业需要内存空间的大小查询内存中各个空闲区,当从内存中找到一个大于或等于该作业大小的内存空闲区时,选择其中一个空闲区,按作业要求划出一个分区装入该作业。

回收:作业执行完后,它所占用的内存空间被收回,成为一个空闲区。如果该空闲区的相邻分区也是空闲区,则需要将相邻空闲区合并成一个空闲区。

四、实验方法

实现动态分区的分配与回收,主要考虑三个问题:

第一、设计记录内存使用情况的数据表格,用来记录空闲区和作业占用的区域(利用结构体类型数组来保存数据);

第二、在设计的数据表格基础上设计内存分配算法(采用首次适应算法找合适的分区(对空闲分区表进行排序),分配时要考虑碎片问题);

第三、在设计的数据表格基础上设计内存回收算法(分四种情况进行回收(上邻、下邻、上下邻和无相邻分区)。

五、实验步骤

第一,设计记录内存使用情况的数据表格  已分配分区表:起始地址、长度、标志(0表示“空表项”,1表示“已分配”) 空闲分区表:

起始地址、长度、标志(0表示“空表项”,1表示“未分配”)

struct used_table { float address;

//已分分区起始地址

float length;

//已分分区长度,单位为字节

int flag;

//已分配表区登记栏标志,用0表示空栏目,char zuoyename;};

//已分配区表

Struct free_table[ { float address;

//空闲分区起始地址

float length;

//空闲分区长度,单位为字节

int flag;

//空闲分区表登记栏目用0表示空栏目,1表示未配 };//空闲分区表

第二,在设计的表格上进行内存分配

 首次适应算法:为作业分配内存,要求每次找到一个起始地址最小的适合作业的分区(按起始地址递增排序)。

 最大碎片size:要求当找到的空闲分区-作业的大小的值小于或等于size时,将该分区全部分配给作业(数组后面元素向前移);  否则,给作业分割出一部分空间时,其余部分仍作为新的空闲分区登记(空闲分区长度=空闲分区长度-作业长度,  空闲分区起始地址=空闲分区起始地址+作业长度 第三,在设计的表格上进行内存回收。

1、上邻:条件:回收作业的始址=某个空闲区的始址+长度

操作:空闲区的长度=空闲区的长度+作业的大小

2、下邻:条件:回收作业的始址+作业的长度=某个空闲区的始址

操作: 空闲区的始址=回收作业的始址

空闲区的长度=空闲区的长度+作业的长度

3、上下邻:条件:1,2条件同时成立

操作:空闲区的始址=上邻的始址

空闲区的长度=上邻的长度+作业的长度+下邻的长度

删除下邻

4、无上下邻:

操作:找flag=0的行

空闲区的始址=回收作业的始址

空闲区的长度=作业的长度

六、实验代码

# include # include #define M 10 //允许的空闲区表长最大为m #define N 10 //允许的最大作业数量为n #define MIN 1 //碎片的最大值

#define SADDRESS 200 //空闲分区初始的起始地址 #define SLENGTH 150000 //空闲分区的初始长度 struct used_t{ float address;//已分分区起始地址

float length;//已分分区长度

int flag;//已分配表区登记栏标志,用0表示空栏目

}used_table[N];struct free_t{ float address;//空闲分区起始地址

float length;//空闲分区长度 int flag;//空闲分区表登记栏目用0表示空栏目,1表示未分配

}free_table[M];//空闲分区表

void allocate(char,float);//分配算法子程序 void reclaim(char);//回收算法子程序 void main(){ int i,a;float zyl;char zyn;//空闲分区表初始化

free_table[0].address=SADDRESS;//空闲分区表的起始地址

free_table[0].length=SLENGTH;//空闲分区表的长度 free_table[0].flag=1;//标志位置1表示未分配

for(i=1;i

free_table[i].length=0;

free_table[i].flag=0;} //0表示空栏目

//已分分区表初始化 for(i=0;i

used_table[i].length=0;

used_table[i].flag=0;} while(1){cout<<“请选择功能项:”<

<<“1-分配主存”<

<<“2-回收主存”<

<<“3-显示主存”<

<<“0-退出”<

<<“选择功能项(0-3):”;

cin>>a;switch(a){case 0: //当选择0时退出程序

return;

case 1: { //a=1 分配主存空间

cout<<“n请输入作业名zyn和作业所需长度zyl(作业名为一个字符,长度zyl要小于”<

cin>>zyn>>zyl;

allocate(zyn,zyl);//为作业zyn分配主存空间

break;

} case 2:{ // a=2 回收主存空间

cout<<“n请输入要回收分区的作业名:”;

cin>>zyn;

reclaim(zyn);//回收作业zyn的主存空间

break;} case 3: { //a=3 显示主存情况,输出空闲区表和已分配区表 cout<<“n输出空闲区表:”<

<<“ 起始地址 分区长度 标志”<

for(i=0;i

if(free_table[i].flag!=0)cout<

cin.get();

cout<<“n输出已分配区表:”<

<<“ 起始地址 分区长度 标志”<

for(i=0;i

cout<

<

break;}

default:{

cout<<“n没有该选项!”<

break;

}}} cin.get()}//分配算法子程序

void allocate(char zyn,float zyl){ float ad;int k=-1;int i=0;while(i

if(free_table[i].length>=zyl&&free_table[i].flag==1)

k=i;

i++;} if(k==-1){ //未找到可用空闲区,返回

cout<<“无可用空闲区!”<

return;} /*找到可用空闲区,开始分配:若空闲区大小与作业要求分配的空间差小于MIN,则将找到的空闲区全部分配给该作业;若空闲区大小与要求分配的空间的差大于minisize,则从空闲区划出一部分分配给作业。*/ if(free_table[k].length-zyl<=MIN){ free_table[k].flag=0;ad=free_table[k].address;zyl=free_table[k].length;for(i=k;i

free_table[i]=free_table[i+1];} else{ free_table[k].length=free_table[k].length-zyl;ad=free_table[k].address;free_table[k].address=free_table[k].address+zyl;} /*修改已分配区表*/ i=0;while(used_table[i].flag!=0&&i

s++;//找到作业zyn在以分配表中的表目s if(s>=N){ cout<<“找不到该作业!”<

S=used_table[s].address;//取作业zyn在内存中的首地址

L=used_table[s].length;//取作业zyn所分配到的内存的长度

j=-1;k=-1;i=0;//寻找回收分区的上下邻空闲区,上邻表目k,下邻表目j while(i

if(free_table[i].address==S+L)j=i;}

i++;} if(k!=-1){ //有上邻空闲区

if(j!=-1){ //有下邻空闲区 即有上下邻空闲区,三项合并

free_table[k].length=free_table[k].length+free_table[j].length+L;

free_table[j].flag=0;} else //上邻空闲区,下邻非空闲区,与上邻合并

free_table[k].length=free_table[k].length+L;}//if else { //k==-1 无上邻空闲区

if(j!=-1){ //无上邻空闲区,有下邻空闲区,与下邻合并 free_table[j].address=S;free_table[j].length=free_table[j].length+L;} else{ //j==-1 上下邻均为非空闲区,回收区域直接填入 t=0;//在空闲区表中寻找空栏目

while(free_table[t].flag==1&&t=M){ //空闲区表满,回收空间失败,将已分配区表复原

cout<<“主存空闲表没有空间,回收失败!”<

return;

} free_table[t].address=S;

free_table[t].length=L;

free_table[t].flag=1;}} for(i=0;i<=M-1;i++)for(int j=i;jfree_table[j].address){ free_t temp;temp=free_table[i];free_table[i]=free_table[j];free_table[j]=temp;}}

七、实验结果

1、总的存储空间

2、分配空间

3、回收空间(1)有上下邻

(2)有上邻

(3)有下邻

(4)无上下邻,回收7

八、实验总结

1、通过实验学会了理解动态分区存储管理方式下的内存空间的分配与回收

2、学会了回收的四种方式

税收调节收入分配的局限与作用空间 篇3

【关键词】税收政策;税收调节;收入局限;分配作用空间

一、前言

从基本理论上来说,设置的税收政策具有其他相关政策所不具有的财政筹集收入功能和基本的公民义务功能,虽然已经是最有效的一种政策工具之一,却在长期以来的实践和事实证明下,税收调节纵然高效但也存在着一些局限性。所以在近期的研究和各项事业的发展过程中,逐渐产生了一些对于现阶段的税收政策是无用的,亦或是认为税收政策对于国家财政方面几乎是万能的的错误结论。接下来,我们将针对税收调节收入分配的局限和作用空间进行详尽的阐述。

二、税收调节收入分配的关键点

国家目前的税收政策是根据个人在整个社会中所得到的个人收入、收入来源以及个人财务支出等等方面进行考虑的,所以,在这个过程中就格外强调个人收入和与其支出的相对平衡,其中就有一个平衡点,也就是我们要提到的关键点。而这个所谓的关键点对于税收调节收入分配的局限性和作用空间是非常重要的,因为这一点的出现就是形成阶层的重要原因,也就是我们经常提到的贫富差距。

我们在这个过程中,可以根据个人的总收入来源进行计算总和,其中就囊括了要就对象的前部收入来源,在根据个人在生活过程中的个人支出进行总结,就可以得出进行税收的一个平衡点。关键的计算之后对于个人来说,就能够形成财产。

三、税收调节收入分配的作用空间

1.在初次的分配过程中调节个人消费支出

在初次的分配过程中,如若想要达到调节目的,就要在调节过程中主要通过货物加上劳务税对个人的消费总和支出进行相关政策的征税。具体来说,根据人性化的要求,进行税收的对象,我们可以是具有选择性的,具体则根据个人消费的差距进行选择,大致分为3个选段,也就是低端消费品,其上是终端消费品,最后是高端消费品。这样的选择性的假如,我们就可以选择地进行征税,达到我们的最终目的,也就是通过有选择性的税收调节国家内部的贫富差距的目的。但这种税收制度是有很大的下次存在的,因为这种选择性的加入,在整体的税收制度中,根本不可能达到完美的中立标准,这也是我们国家内部依旧存在着很大的贫富差距的缘故。所以在初次分配过程中,起到的大多是辅助作用。

2.再分配环节在税收过程中的运用

理论上来说的话,在之前提到的初次分配环节主要起到的是辅助作用,而辅助的其实就是这里要进行阐述的二次分配环节,也就是再分配环节。因此,再分配环节是实现收入分配的主要环节。在再分配环节中,其中的税收会直接根据会对国内居民的个人的所有收入、所得财产进行二次征税,其中根据地就是个人税收义务和收益原则,以这种方式来达到平衡贫富差距,实现整个人文化社会的最后的公平性质。其次,再分配过程会直接增加个人或者企业的税务,也就是形成了一种税务的累积性质,这样,在发展过程中,再分配过程就能够自动成为整个社会金融能够稳定运行的调节器。而且,通过初次分配制度和再分配制度之间的配合,其实就是间接地实现了对居民个人税务的双重调节,促进了调节贫富差距的整体化发展。

3.在三次分配制度中激励慈善基金事业发展

三次分配制度,从根本的意义上来说,其实已经不能够算是一个制度,而是一个环节。原因就是因为需要依靠社会中的高收入的一类人去自愿的、自觉的、并且是有节制的进行社会公益事业,进行无偿捐献自己所得的财产。这些由高收入者捐献的财产大多会用于灾害救助、救济贫困人员、残疾人救助、资助部分贫困山区的教育事业、建设各种利于贫困人员的慈善基金会等等方式来回报社会的同时也救助了迫切需要帮助的人员。通过第三次分配环节的应用,我们不难发现,这种方式可以合理的调节资金的流向,促进整个社会的合理化和公平化发展。

四、税收调节收入分配的局限性

我们都知道,目前我国的税收政策针对的主要是我国内部发展的组织性质的经济亦或是个人发展的经济,但总结起来始终是对居民个人进行征税,但在这样的情况下就难以确定社会中个人的能量分配原则,导致税收去往一个分配方向并不确定的状态。而且企业所得税可以进行弹性分析,主要就是确定职员和企业所得税的最终比例,这样的情况下,企业与个人的分配制度还是存在着不确定性。

五、结论

虽然税收调节收入分配是国家财政的很大一部分,但是它最终还只是一个调节工具,不能达到调整整个社会一直公平分配的目的,如若想要达到我们彻底让社会的贫富差距消失的目的,还需要其他的相关部门和政策的共同努力,其中就更需要社会公益事业的发展。以上为税收调节收入分配的局限性和作用空间的具体分析和阐述。

参考文献:

[1]崔志坤. 中国个人所得税制度改革研究[D].财政部财政科学研究所,2011.

[2]张晓雯. 基于经济增长和收入分配视角的中国税负研究[D].山东大学,2013.

[3]王文静. 组织收入与调节经济:中国税收政策的目标权衡与制度优化[D].南开大学,2013.

空间分配 篇4

1 系统模型

如图1所示:K用户的MIMO-IC中,发射机k配置Mk根天线,发送dk个数据流给用户k,用户k配置Nk根天线,假设用户k(k=1,2,⋯,K)只期望收到来自发射机k发出的信号,把其他发射机(l=1,2,⋯,K;l≠k)传输的信号当做干扰,第k用户接收到的信号:

其中,Vl∈ℂMl×dl表示为发射机l的发送预编码矩阵;Sl∈ℂdl×1为发射机l的发送数据流,且满足功率约束条件E{SlHSl}=Pl;Hkl∈ℂNk×Ml表示为第l个发射机到第k个用户的信道增益矩阵,采用均值为0、方差为1的独立同分布的瑞丽衰落信道;Zk∈ℂNk×1为接收机k的复高斯白噪声矢量(AWGN),分布满足Zk∼CN(0,σ2I).

2 子空间干扰对齐算法

文献[4]针对多用户MIMO-IC系统提出一种传统的子空间干扰对齐算法(SIA,Subspace Interference Alignment),将组ICI子空间压缩到Nk-dk组ICI子空间,期望信号对齐于Nk维接收矩阵中剩余的dk维信号空间内。用户k能够在接收端利用ZF处理得到不存在ICI的dk维数据流,即

其中,矩阵Uk为接收机k的后处理矩阵.

文献[6]定义两正交矩阵间的欧氏距离:||A-B||M≜||A-BBHA||F,A和B均是正交矩阵,||A||F和AH表示为A的范数和共轭转置。在MIMO-IC系统中,为了使得有用信号和干扰信号分别对齐于各自的子空间内[4],以两正交矩阵间的欧氏距离为准则,后处理矩阵Uk必须满足以下两个条件:

经矩阵计算可得:

其中,为使两个IA条件之间达到均衡,定义:权重因子ω为非负实数。A⊥为A正交矩阵,为矩阵A的最小的Nk-dk组特征值对应的特征向量的集合。

同理可得,预编码矩阵Vk需满足以下两个IA条件:

经矩阵计算可得:

迭代计算公式(4)和(6),直到收敛为止。随着迭代次数L的增加,各发射机更新预编码矩阵Vk,使总干扰泄露子空间与有用信号子空间的欧氏距离逐渐增大;接收端更新接收矩阵Uk,使ICI与干扰子空间的欧氏距离逐渐减小。

3 动态功率分配算法

本文子空间干扰对齐算法(SIA)迭代求得预编码矩阵Vk和后处理矩阵Uk的过程中,发射机发送给每个接收机的功率是均等的,没充分利用系统总发射功率,针对总发射功率分配问题可描述为多维优化问题。考虑到不同的接收端信道矩阵的一致性,可针对相对较弱的信道矩阵(CSI)分配较多的系统发射功率,同时针对相对较强的信道矩阵分配较少的系统发射功率[5],降低系统总干扰功率的影响,改善接收端的接收性能。为了衡量信道整体质量,该文采用CSI的特征值的大小反映信道信息的强弱。该文采用CSI的迹,统一对各接收端进行动态发射功率分配。接收机k信道矩阵的迹为

则k个接收机t1⋯k的平均值表示为,假设发射机的发射总功率为,则针对接收端k动态分配的发射功率为,这就达到了接收机间的动态功率分配(Dynamic Power Allocation,DPA)。͂

首先将式(5)中接收机k的预编码矩阵Vk归一化,乘以DPA因子得到,再将后处理矩阵Uk归一化,接收端k利用接收矩阵左乘以Uk的共轭转置进行解码,期望信号的估计值为:

由式(8)可知,在动态功率分配下的系统容量表述为

4 仿真结果及数据分析

本文采用系统配置为:用户数K=4,收发天线为Mk=Nk=6,信噪比SNR为10~40d B,根据实验经验可得对应的权重因子ω=[0.2,0.2,0.2,0.1,0.02,0.02,0.02],发送数据流dk=2。假定所有的信道均采用独立同分布(iid)的瑞利信道,每个信道矩阵都服从均值为0方差为1的复高斯分布。由图2可看出,对比于等功率(EPA,Equip Power Allocation)子空间干扰对齐算法(EP-SIA),该文采用动态功率分配(DPA,Dynamic Power Allocation)的子空间干扰对齐算法(DPA-SIA),由于有小部分系统能量用来提高系统的平均误码率(BER)性能,系统容量略微有所损失。由图3所示,随着迭代次数(L)的增加,系统干扰功率(IP,Interference Power)呈下降趋势,在L达到40时,系统IP基本趋于平稳且DPA方案比EPA分配方案降低了1个数量级,验证了系统BER的降低,体现了本文算法的有效性。

摘要:为了更好地消除MIMO干扰信道下的多小区干扰,该文采用子空间干扰对齐算法和功率分配相结合的干扰对齐方案,该方案充分利用干扰系统总功率,将多小区干扰尽可能地重叠在相应子空间内,以提高整体系统的性能.仿真结果显示,与传统干扰对齐算法相比,本算法仅以微小的系统容量为代价,却显著地降低了整体系统的干扰总功率。

关键词:MIMO干扰信道,子空间干扰对齐算法,系统容量,功率分配

参考文献

[1]Gou T and Jafar S A,Degrees of freedom of the K user M*N MIMO interference channel[J].IEEE Trans.Inf.Theory,2010,56(12):6040-6057.

[2]Maddah-Ali M A,Motahari A S and Khandani A K,Communication over MIMO X channels:interference alignment,decompositionand performance analysis[J].IEEE Trans.Inf.Theory,2008,54(8):3457-3470.

[3]Yetis C M,Gou T,Jafar S A and Kayran A H,On feasibility of interference alignment in MIMO interference networks[J].IEEE Trans actions on Signal Processing,Sept.2010,59(9):4771-4782.

[4]Kumar K R,Xue F.An iterative algorithm for joint signal and interference alignment[J].Information Theory Proceedings(ISIT),2010IEEE International Symposium on,2010:2293–2297.

[5]周志栋,谢显中,邵奇.多小区环境中基于动态功率分配的干扰安排算法[J].吉林大学学报,2011,29(6):504-510.

空间分配 篇5

C/C++语言编译系统将供用户使用的内存空间分为程序代码区、静态存储区、栈区 (stack) 、堆区 (heap) 和字符常量区5个区域[1-2]。程序代码区存放程序中函数体的二进制代码, 该区域不允许手工操作;静态存储区也称为全局区, 存储全局变量和静态变量, 程序结束时变量所占存储空间由操作系统释放;栈区由编译器自动分配和释放, 存储动态局部变量 (自动变量auto) 、函数参数值 (形参) ;堆区由程序员手动分配和释放, C语言[1]中一般使用malloc、calloc、realloc、alloc函数、C++语言[2]则使用new运算符分配堆区存储空间 (动态变量) , C语言用free函数或C++语言用delete运算符释放堆区所分配空间;字符常量区用于存储常量字符串, 程序结束后由操作系统释放。

2 C/C++动态内存分配

从堆 (stack) 上分配内存, 又称为动态内存分配, 这些内存单元在程序运行时通过函数或命令来申请, 所申请的内存大小不受限制。在32位系统中, 堆内存可达到4GB, 由此可见, 堆内存几乎没有任何限制。程序中使用堆区存储数据是一种灵活的方法, C/C++语言提供了一系列在堆区创建存储数据空间的函数或运算符, 要求空间使用生存期结束时, 必须调用free函数或delete运算符手动释放空间。如果只分配, 没有释放, 就会造成内存泄露。程序结束时, 即便没有使用free函数或delete运算符, 操作系统也会强制释放, 但不推荐这种做法, 毕竟有很多守护进程处于长期工作状态 (如IIS等) , 长期地只创建而不释放, 系统内存资源将越来越少, 最终导致程序出错, 甚至系统崩溃。对于堆区, 频繁的new/delete等操作会造成内存空间的不连续, 从而造成大量的碎片, 使程序效率降低。由于堆内存分配是由C/C++库函数或运算符按照一定算法来实现, 其机制很复杂, 因此, 堆的分配效率比栈要低得多[3-6]。

3 C/C++数组空间定义

C/C++数组空间的定义格式为“类型说明符数组名[常量表达式1][常量表达式2]...[常量表达式n]”, 其中, 确定数组空间每一维大小的下标运算符[]内只能是“常量表达式”, 包括直接常量与符号常量或由这些常量构成的表达式。默认情况下, C++语言不允许在内存栈区动态定义数组空间的大小, 按变量与数组须先定义后使用的语法规则, 程序中所需变量或数组内存单元是在编译期间静态分配的, 即定义数组时数组大小只能在程序编译时由常量表达式明确确定, 而不能使用变量作为数组下标大小以实现程序运行时动态定义数组的大小。因此, 可能造成程序运行时所定义数组空间不够用, 或者造成内存的浪费。而实际应用中通常所需数组空间的大小需要在程序运行时通过键盘输入来确定, 这时需要定义由变量作为数组下标大小的动态数组。下面将给出程序设计中实现动态数组分配的方法。

4 C/C++动态数组空间分配

C/C++在程序运行时动态定义的变量或数组 (动态数组) 只能通过C函数或C++命令 (运算符) 与指针来实现。C使用malloc、calloc、realloc与alloc函数动态分配内存单元, 用free函数释放动态内存单元;C++则使用new运算符分配堆区存储空间 (动态变量) , 而用delete运算符释放堆区所分配空间。C动态数组定义的函数原型是“void*malloc (unsigned int size) ;”, 或“void *calloc (un-signed n, unsigned size) ;”。这两个函数的功能分别是在内存的动态存储区中分配一个长度为size的连续空间与n个长度为size的连续空间, 这个空间一般比较大, 足以保存一个数组。函数返回值是所分配区域的第一个字节的地址, 或者说, 这两个函数是指针型函数, 返回的指针指向所分配域的开头位置。释放C动态内存的函数原型是“void free (void*p) ;”, 该函数的调用功能是释放指针变量p所指向的动态空间, 使这部分空间能重新被其它变量使用, 函数参数p应是最近一次调用calloc或malloc函数时得到的函数返回值, 如“free (p) ;”表释放指针变量p所指向的已分配的动态空间, free函数无返回值。C++动态数组定义格式是“new已知数据类型标识符[ (初值表达式) ];”。当程序执行new运算时, 首先从内存的动态区中分配一块大小为new后指明的数据类型长度的存储空间, 并返回该存储空间的首地址, 对数组类型返回的是该空间中存储的第一个元素的首地址。对非数组类型, 中括号[]内为可选项, 而对于数组类型, 中括号[]内应给出作为数组长度的变量或表达式。即只能对new后的非数组类型才可以用初值表达式初始化由动态分配得到的数据空间。若执行new时无法得到所需存储空间, 则返回空指针NULL, 表动态分配失败。C++动态空间只能通过运算符*间接访问, 用户只有把new中分配的数据空间的返回地址值保存到一个类型与new运算返回类型相同的指针变量后, 才能通过该指针变量 (对数组空间, 可按下标p[i]或指针p+i两种方式) 间接地访问该动态空间中的数据对象。C++用delete运算符释放已分配的动态存储空间的格式为“delete p1;”或“delete[]p2;”, 以释放指针p1所指向的动态分配的非数组空间;或释放指针p2所指向的动态分配的数组空间 (一维或二维或多维数组动态空间) 。

5 C/C++动态数组空间分配实现方法

下面将根据上述方法, 以具体的程序实验分别给出C和C++中如何实现一维与多维数组动态分配的方法。值得注意的是C与C++中建立动态数组的方式存在区别, 如C的动态数组既可以在栈中创建, 也可在堆中创建, 而C++的动态数组只能在堆中创建。同时C中一维动态数组与二维或多维动态数组的创建方法也不同。下面将通过7个程序实验给出C与C++中一维与多维动态数组的创建方法, 供需要动态数组分配的程序设计者参考。“程序1”、“程序2”与“程序3”实现分配任意大小的动态整型一维数组空间, 并初始化由机器产生的1~100间的随机整数, 然后升序选择排序法输出整个数组空间的值。“程序4”与“程序5”分别是实现动态字符指针数组的C代码与C++代码。“程序6”与“程序7”分别为以动态二维数组处理二维矩阵的C代码与C++代码。

6 结语

本文指出程序设计中的数组空间静态分配可能出现问题, 详细论述了在C/C++语言环境中, 实现程序运行时以人机交互方式任意改变数组空间大小的动态数组分配技术。以较详细的C代码与C++代码实验给出了实现一维动态数组和多维动态数组的方法, 对需要进行动态数组空间分配的C/C++程序设计者具有参考价值。

摘要:基于C/C++语言环境, 详细论述了程序运行时以人机交互方式任意改变数组空间大小的动态数组分配技术。通过详细的C/C++代码实验提供了实现一维动态数组与多维动态数组的方法, 对需要实现动态数组空间分配的C++程序设计者具有较好的参考价值。

关键词:C/C++程序设计,动态内存分配,指针

参考文献

[1]谭浩强.C程序设计[M].第4版.北京:清华大学出版社, 2010.

[2]徐孝凯.C++语言基础教程[M].第2版.北京:清华大学出版社, 2007.

[3]BJARNE STROUSTRUP.The C++programming language[M].Special Edition.北京:机械工业出版社, 2008.

[4]冯博琴.Visual C++与面向对象程序设计教程[M].第3版.北京:高等教育出版社, 2010.

[5]孙淑霞, 肖阳春, 魏琴.C/C++程序设计教程[M].第4版.北京:电子工业出版社, 2014.

空间分配 篇6

90m2的住宅已经在很多的房地产开发项目中有所体现, 但还没有成为中国住宅的主流, 小户型究竟能不能在房地产市场中得到很好的发展, 这个问题还有待我们继续探索与研究。但是日本, 几乎一半以上的公寓住宅面积都在90m2以下, 为什么90m2的住宅能在日本成为主流, 被大范围的推广。我们也能将日本的住宅经验拿来为自己所用吗, 中日在小住宅方面究竟有怎样的差异?本文主要对中日公寓住宅进行对比和分析, 从小户型中的空间尺寸和面积分配这两点出发, 进行差异分析, 探究中日住宅之间的差异化程度。

2 在户型空间尺度上中日间的差异

在日本, 房屋开发商对住宅中走道的净宽度、卧室的面宽等都有一套比较严格细致的设计标准和规定。我们将这个标准尺度与中国的规范尺寸进行对比, 数据显示, 中日之间的差异性大概在20%~30%。同时, 日本房屋开发商对居室面积也有比较详细严格的规范标准, 将这些面积指标与中国的进行比较, 我们能发现其中有很明显的差异性, 如表1。

其实中国人和日本人在体格外貌, 甚至生活习性上, 都没有很大的差异, 但是为什么在空间标准上的差异会如此之大呢。我们主要从以下三个方面来探讨差异。

2.1 在功能设定方面的差异

住宅的空间尺度主要是根据使用功能来设定与布置的, 它是所有家具布置形式的前提与依据, 但是在主卧的空间尺度中, 日本只考虑壁柜和卧床的安排与设置, 而中国除了考虑壁柜和卧床外还要对窗前的起居空间进行布置, 这明显比日本的主卧要奢侈, 因此相应需要的进深和面宽也增加。在对次卧的布置中, 日本主要是将次卧作为儿童房, 布局也只考虑书桌、单人床和壁柜。而中国对次卧的功能没有一个定向的要求, 可以是儿童房, 也可以是作为客房, 所以在布置上类似于主卧。

对于餐厅和起居室, 中国还是保留传统的观念, 偏爱比较宽敞的空间, 这样可以接待亲戚朋友和其他来宾, 但是在日本, 没有招待亲朋好友的观念与习惯。所以, 日本住宅的起居室和客厅只是满足家庭成员的生活用餐和起居需要。

要在80m2内的面积下实现三室两厅的居室数量, 就一定要从居室的功能设计着手, 对功能需求做一定的取舍。根据中国对居室的功能要求和习惯, 相较于日本来说, 要大出1.2~1.5倍的面积。如果要在90m2内的面积下实现三室两厅, 就要从根本上改变中国消费者的居住观念与生活习惯。例如在主卧中, 其实滞留的时间不是很长, 那么可以相应减少面积, 同时, 随着液晶电视的普及, 也没有必要一定要安装电视柜。

2.2 尺度控制方面的差异

日本的房地产开发商, 会根据户型的特点和大小来设计相对科学合理的空间方案标准, 并且会为设计师提供比较详尽的空间尺寸和面积标准。设计师会严格根据开发商的设计规范与标准来进行空间设计。日本设计师在控制尺寸方面有着十分严格的标准, 绝不会任意违背设计要求, 工作严谨, 很少会出现中国户型中尺度虚大、面积虚高的现象。

而在国内, 很多开发商都没有形成一套科学合格的设计标准, 而国家对住宅的空间尺寸设计要求也没有很明确的规定和标准, 所以经常导致建筑设计和后期的装修设计有一定的差距。设计师和建筑师在模棱两可的标准范围下, 只能对尺度进行比较粗略的控制, 有些建造师对室内的尺度没有良好地进行运用和把握, 有的甚至缺乏实践经验, 导致凑模数、凑平面的状况频频发生, 大大降低了住宅空间的使用率。

3 在住宅面积分配中的中日差异性

在小户型的面积分配上, 中日之间也存在着很大的差异。我们主要对比较常见的典型户型进行具体的分析和比较, 探讨中日之间的差异。

日本的公寓户型如今已经达到模式化程度, 一般是采用“南面合适型”为主要的户型平面, 而中国还是采用实际面积比较接近的两室两厅户型, 这比较符合中国人对房屋住宅的基本消费观。通过数据分析, 我们能清楚看到其中的消费倾向, 如表2。

从上述表格中, 我们能发现以下几点差异:

(1) 起居室和餐厅在整个房屋住宅面积中的占比, 中国要明显高于日本, 这表明中国消费者对厅的重视程度比较强。而在日本住宅中有个很关键的房间叫做和室, 和室可以当作厅来使用, 关上门又可以当做卧室, 大大减少了住房的空间面积, 提高了对面积的使用率, 这种变通空间的方式很值得我们学习。

(2) 中国卧室的面积也远远高于日本, 中国还是保持着大卧室大客厅的传统观念和习惯。

(3) 在户内的交通面积上, 中国就低于日本了, 这是因为日本很重视家庭成员间的隐私性和保密性, 不允许卧室的大门朝着客厅敞开, 但是这样削弱了家庭成员之间的沟通。设置玄关主要可以作为储物空间, 提升了厅的质量。

(4) 通过对实际案例的分析和对比, 我们发现, 日本对碗柜的长度、储物柜的长度都有比较细致明确的模式和标准, 但是中国的开发商没有形成比较科学合理的规范和标准, 对面积和形状的要求都比较粗略, 厨房的面积会根据整个户型的大小相应进行改变和伸缩, 降低了小户型厨房的品质。

(5) 在卫浴方面, 日本的面积要大大超出中国的面积。主要是因为中日在卫浴方面有不同的设计理念和生活观念, 中国偏重外观和数量, 而日本更看重功能和舒适性。中国一般是采用主卧配套独卫的形式, 虽然中国选用的洁具尺度都比较大, 但是功能交叉使用, 降低了功能性和舒适性。而日本通常都是采用浴室和洗脸室分开的形式, 厕所独立, 虽然每一个空间都安排得很紧密, 但是面积的总和要大于中国的独卫, 这从侧面反应了日本对卫浴方面的重视程度。

(6) 储藏室的空间上, 中国要小于日本。中国的设计者往往先考虑居室的面积, 而忽略储藏室面积, 衣帽间、碗柜、鞋柜等都不是很普及, 而日本储藏室的面积在整个住宅中的比重却一直在上升, 储物室也是住宅舒适度的一个重要体现。

4 结语

日本能在90m2内实现所有住宅的功能, 主要是因为他们对居室的功能有很深入的了解和认识, 对面积进行了细致严格的控制, 不同的户型大小和规模都能保证达到科学合理的水准, 我国的小户型可从中借鉴。我们要积极推广对空间使用更为精细的措施和态度, 但是这并不代表要牺牲居室以外的配套功能。

参考文献

[1]吴鹏飞.基于开放建筑理论的北京市高层保障性住房设计策略研究[J].北京工业大学, 2013 (06) .

[2]崔光勋.日本集合住宅体系的类型演变与设计策略[J], 大连理工大学, 2013 (07) .

[3]赵泽宏.北京市保障性住房套型及套内空间精细化设计研究[J].北京建筑工程学院, 2012 (06) .

空间分配 篇7

多相系统具有转矩脉动小、冗余度高、系统静动态性能优良等诸多优点, 是目前实现高压大功率交流传动的一种重要途径。双Y移30°电机能够消除三相电机中5, 7次谐波磁场对电磁转矩的危害, 因此成为了目前研究较多的一种重要的多相电机结构形式[1,2,3,4]。为了在满足转矩控制要求的同时有效地抑制定子电流谐波, Yifan Zhao等[2]针对双Y移30°感应电机提出了采用空间矢量PWM控制的方法。Djafar Hadiouche[3]在此基础上分析了4种零矢量分配策略, 指出零矢量插入位置会对电机的控制性能产生影响。但是对于零矢量的具体选择和分配尚未进行系统的分析。本文在上述文献的基础上, 将空间矢量PWM控制方法扩展到双Y移30°永磁同步电机驱动系统, 详细阐述了零矢量的选择原则, 提出并分析了七种零矢量的作用模式。仿真结果显示不同的零矢量作用模式会对定子谐波电流和电磁转矩波动产生影响。

2 双Y移30°永磁同步电机的空间矢量PWM技术

双Y移30°永磁同步电机结构和逆变器驱动系统如图1所示。电压型逆变器能输出26=64种空间电压矢量 (用顺序为FEDCBA的二进制数来表示, 1代表上桥臂导通, 0代表下桥臂导通) , 其中000000、000111、111000、111111是两套三相绕组同时接到正电源或负电源, 电机端电压实际为零, 称为零矢量, 以0、7、56、63代码标记。

双Y移30°永磁同步电机数学模型是一个多变量、强耦合的非线性高阶系统, 采用空间矢量解耦坐标变换技术[2], 将双Y移30°永磁同步电机的电压方程、磁链方程和转矩方程建立在三个两两正交的二维子平面上:与机电能量转换相关的αβ子平面、与k=6m±1 (m=1, 3, 5, …) 次谐波相关的z1z2子平面和k=3m (m=1, 2, 3, …) 次谐波相关的o1o2子平面。在两套绕组中性点独立且绕组对称的情况下, o1o2子平面中定子电压矢量均为零向量, 此时双Y移30°永磁同步电机系统蜕变为四阶系统。

结合相关文献[2]对感应电机的分析, 本文进行双Y移30°永磁同步电机PWM控制时, 对于每个PWM周期, 在控制αβ子平面下合成电压矢量为参考电压矢量的同时, 需要控制z1z2子平面内的合成电压矢量为最小, 以抑制定子谐波电流。为了取得最大的直流母线电压利用率, 在αβ子平面选取四个与参考矢量v*αβ毗邻的幅值最大的电压矢量, 如图2所示。此时经空间矢量解耦坐标变换后, 在αβ子平面幅值最大的电压矢量恰是z1z2子平面中幅值最小电压矢量[2], 保证了在αβ子平面满足参考电压矢量的同时, 使z1z2子平面上产生的电流谐波含量为最小。

以图2所示参考电压矢量v*αβ在扇区1的情况为例进行分析。由v*αβ所在位置选择有效电压矢量为V1~V4, 当参考电压矢量落在扇区1时选择的有效电压矢量为45-41-9-11, 其他扇区依次类推。

选定四个有效电压矢量后, 由下式计算它们和零矢量各自的作用时间。

其中, Vxk为第k个电压矢量在x轴上的投影;Tk为第k个电压矢量在一个PWM周期里的作用时间, V5与T5分别为零矢量和其作用时间。vα*与vβ*为αβ子平面中的参考电压矢量。需要注意的是, 为了尽可能消除定子低次谐波电流, 式 (1) 已令z1z2子平面中的参考电压矢量为0, 即v*z1=v*z2=0。

3 零矢量的选择与分配

在确定零矢量的作用时间后, 还需要选择合适的零矢量并作用在恰当的位置。

为了消除偶次谐波, 电压调制波需要为对称波形, 即在一个PWM周期里, 需满足各矢量对称作用的要求。对应图2, 电压有效矢量的作用顺序为V1-V2-V3-V4-V4-V3-V2-V1, 每次有效矢量的变更六组开关均仅变化一组, 即开关动作次数仅为1。根据六相桥臂是否在每个扇区都动作, 将平面电压矢量调制模式分为连续调制模式与不连续调制模式两种。为了实现连续调制, 除了与三相SVPWM一样在有效矢量序列的首尾和中间插入零矢量外, 还需在V2-V3与V3-V2之间插入一个合适的零矢量, 以保证在一个PWM周期内, 所有开关均动作。即最后的作用顺序为

其中, V0A、V0B、V0C分别表示相应位置的零矢量。下面依次分析这三处零矢量的选择依据。

V0C:由于V0C将同一个有效矢量V4分隔为两段相同的作用时间, 故为了尽量减少开关动作次数, 需根据V4选择V0C, 保证V0C与V4相互变换过程中开关次数最少。以开关代码表示的各有效矢量对应的零矢量如表1所示。

V0A:由于给定目标矢量在一个扇区中停留的时间长达数十到上百个PWM周期 (视额定频率fn与PWM周期Tpwm的关系而定) , 为了尽量减少开关动作次数, 故在选择V0A矢量时, 需着重考虑在同一扇区中V0A与V1相互变换过程中的开关次数最少, 即V0A相当于插入在两段V1作用时间之间。因此, V0A与V1的对应关系与V0C与V4的关系一致。

V0B:V0B插入于V2与V3之间, 目的是为了保证每个PWM周期内每组开关都至少动作一次。V0B与V2的对应关系与表1中V0C与V4的关系一致, 并且如此选择的V0B是在V2与V3间插入零矢量后V2与V3相互变化过程中开关总次数最少的一个零矢量。

根据是否在三处位置插入相应零矢量, 还可选择的调制模式有V0A-V0B, V0A-V0C, V0B-V0C, V0A, V0B, V0C六种 (V0A-V0B模式即代表V0A-V1-V2-V0B-V3-V4-V3-V0B-V2-V1-V0A, 以此类推) 。如前文所述, V0A、V0B、V0C的选择均能保证开关次数最少, 故此时各种调制模式下V0A、V0B、V0C仍按表1所对应的进行选择。由表1还可以发现, 由于V0B与V0C相隔两个有效矢量, 其选择的零矢量恰好每一位都互补 (0-63, 7-56) , 故调制模式C2 (V0B-V0C) 与C1 (V0A-V0B-V0C) 均为连续调制模式。

为了进一步减少调制过程中的开关次数, 也可以选择不连续调制模式。5种不连续调制模式分别命名为DA1 (V0A-V0B) 、DA2 (V0A-V0C) 、DB1 (V0A) 、DB2 (V0B) 、DB3 (V0C) 。

图3为一个PWM周期内四种典型调制模式的PWM波形, 包含C1和C2两种连续调制模式、零矢量仅作用于首尾和中间的DA2零矢量以及仅作用于中间的DB3两种典型的不连续调制模式。由图3可知, 不连续调制模式在一个PWM周期内均至少有一个桥臂不动作。由于在同一扇区内, 空间矢量的选择是不变的, 故一个PWM周期内的开关动作情况即代表一个扇区内的开关动作情况。连续模式C1在一个PWM周期内各个开关管共动作22次, C2共动作18次, 而不连续模式DA2共动作14次, DB3共动作10次。可见, 相比连续模式C1, 不连续模式能显著降低开关次数。

三种未在图3中表示出来的调制模式动作次数分别为DA1:18次, DB1:10次, DB2:14次, 分别与图3中的C2、DB3、DA2一致, 故此处不再赘述。

4 仿真结果与分析

为了研究连续和不连续调制模式下空间矢量PWM调制方法有效性, 以一台双Y移30°永磁同步电机进行仿真研究。转速给定始终为300r/min, 给定额定负载17.5N·m。分别选择两种连续与不连续调制模式作比较。仿真结果如图4所示。

将图4的转矩脉动比较图量化得表2。

根据以上的分析和仿真结果的对比, 可以看出:

(1) 对于空间矢量调制方法, 通过合理选择零矢量并安排其作用位置, 可以减少逆变器开关管状态转换的次数, 即降低开关动作次数 (见图3) 。

(2) 不连续调制模式 (见图4 (c) 和图4 (d) ) 的αβ平面电流圆轨迹平均半径与连续调制模式 (见图4 (a) 和图4 (b) ) 相比更小, 即相应的αβ平面的电流谐波含量比连续调制模式少, 且零矢量集中于中间模式 (见图4 (d) ) 比零矢量分散于首尾两端和中间的模式 (见图4 (c) ) 谐波电流更小。

(3) 不连续调制模式的电磁转矩波动平均范围与连续调制模式相比更大, 且零矢量集中于中间模式 (图4 (d) ) 的电磁转矩波动比零矢量分散于首尾两端和中间的模式 (图4 (c) ) 更大, 但波动范围都限制在3%以内, 符合系统运行要求。

5 结论

由以上对适用于双Y移30°永磁同步电机的空间矢量PWM技术零矢量分配原则的分析和仿真能看出, 在确定零矢量作用时间的基础上, 零矢量的分配可以采用连续和不连续两种调制模式。其中不连续调制策略虽然一定程度上加大电磁转矩的脉动, 却能在大幅度减少开关次数的同时, 取得比连续调制策略更小的定子谐波电流。本文虽然选择的是参考电压矢量毗邻的最大四个矢量, 但对于其他的有效矢量选择方式 (如选择最大与次大的各两个矢量) , 零矢量的选择原则与作用方式均可类推得到。

摘要:双Y移30°永磁同步电机是一个强耦合的六维系统。为了实现转矩的解耦控制, 将该系统经解耦坐标变换, 建立在三个两两正交的子平面上, 通过空间矢量PWM技术对转矩和定子谐波电流进行统一控制。本文针对该种空间矢量PWM技术, 详细研究了连续调制模式和不连续调制模式下的零矢量的选择依据及其分配情况。仿真结果显示, 连续调制模式能取得更小的转矩波动, 而不连续调制模式能在大幅度减少开关次数的同时, 取得比连续调制策略更少的定子电流谐波含量。

关键词:双Y移30°永磁同步电机,空间矢量PWM,零矢量,连续调制,不连续调制

参考文献

[1]E A Klingshirn.High phase order induction motors part Idescription and theoretical considerations[J].IEEE Trans.on Power Apparatus and Systems, 1983, 102 (1) :47-53.

[2]Yifan Zhao, Thomas A Lipo.Vector PWM control of dual three phase induction machine using vector space decomposition[J].IEEE Trans.on Ind.Appl., 1995, 31 (5) :1100-1109.

[3]Djafar Hadiouche, Lotfi Baghli, Abderrezak Rezzoug.Space-vector PWM techniques for dual three-phase AC machine:analysis, performance evaluation, and DSP implementation[J].IEEE Trans.on Industry Applications, 2006, 42 (4) :1112-1122.

空间分配 篇8

经济负荷分配ELD (Economic Load Dispatch) 是在满足系统负荷和运行约束条件的前提下, 电力系统或电厂内合理分配各机组负荷, 使发电成本最小化的电力系统典型优化问题。由于环保问题受到重视, 其优化目标中不仅考虑发电燃料成本或市场经济, 并且考虑CO2、NOx和SO2等排放最小[1]。

在经济调度优化问题的计算方法中, 智能算法由于对变量和函数不要求连续可微, 在解决非线性、非凸性、不连续优化问题中得到了广泛的应用和认可[2]。但其计算结果随机性较大, 算法全局收敛性较差。因此, 在基本智能算法的基础上, 形成了结合遗传算法全局搜索能力强和禁忌搜索爬山能力强的优势的混合算法[3];但是这类混合算法计算量大、时间较长, 并且随机性问题难以得到改善, 使得其难以胜任实时在线调度优化问题。粒子群优化PSO (Particle Swarm Optimization) 算法由于其快速、简便而被逐渐应用和改进。引入随机变异算子[4]、融入禁忌搜索思想[5]、采用自适应变异算子的自调节[6]、随机黑洞处理与聚类[7]等方法引入了全局搜索信息, 增加了解的多样性;而改进的混沌粒子群优化算法则通过修正粒子群迭代的行动策略, 并引入混沌映射, 加强了适应度值较优的粒子的全局搜索能力[8]。这些文献主要是改进了解的搜索方式或者融合了其他算法的优势, 在一定程度改善了过早收敛的缺陷, 但效果不太令人满意, 并且计算结果的随机性问题仍很突出。

这些粒子群优化算法及其改进均是通过速度和位置2类参数对多维的控制变量进行寻优和修正, 其寻优过程有如在绵延山群中, 站在每个山腰均容易得到所在山头的制高点, 即局部最优点;但是若要寻求整个山脉的最高处, 则需要空中俯视, 改变寻优视角。因此, 可通过增加一类参数, 即高度参数, 将高度与速度、位置共同组成一个寻优空间, 探索一种新型的空间粒子群优化SPSO (Space Particle Swarm Optimization) 算法。

空间粒子群中高度参数的引入, 使所有粒子移动的方向和距离都是由其速度和高度共同决定, 构成位置、速度、高度3类参数空间;此时群体中的所有粒子对应的每一维变量均跟随最优粒子对应变量在一个全新的空间解域内搜寻, 可有效解决算法易陷入局部最优、收敛过早的缺陷, 同时粒子群在高度参数的作用下, 易于跳出早熟区间, 并且降低寻优随机性。

1 环保经济负荷分配数学模型

1.1 发电燃料成本

发电燃料成本是指发电机组在发电过程中燃料消耗花费, 单台发电机一般可用二次函数近似表示为:

其中, C (Pi) 为第i台发电机燃料消耗费用 ($/h) ;Pi为第i台发电机的有功功率;N为系统发电机总数;αi、βi、γi为第i台发电机燃料消耗特性曲线参数 (已经折算成钱) , 均为常数。由此系统总燃料花费f1 ($/h) 可表示:

1.2 环境成本

将污染气体综合排放量与对应气体单位排放价格之积作为环境成本, 污染气体主要包括CO2、SO2、NOx等, 通过排放量和折价标准折算出环境成本[9]。则在单位时间内所产生的各类污染气体排放量 (t/h) 分别为:

其中, eC i (Pi) 、eS i (Pi) 、eN i (Pi) 分别为第i台发电机单位时间内CO2、SO2、NOx的排放量;aCi、bCi、cCi、εCi和λCi为第i台发电机CO2的排放参数 (均为常数) ;aSi、bSi、cS i、εS i和λS i为第i台发电机SO2的排放参数 (均为常数) ;aN i、bN i、cN i、εN i和λN i为第i台发电机NOx的排放参数 (均为常数) 。由此可得整个系统单位时间内污染气体总的排放罚款, 即环境成本f2 (元/h) 可表示为:

其中, ωC、ωS、ωN分别为CO2、SO2、NOx对应的环境价值与由于排放所受到的罚款。

1.3 环保经济负荷分配优化模型

1.3.1 目标函数

环保经济负荷分配的目标是使系统发电燃料成本与环境成本之和达到最小值。因此, 其优化目标函数可表示为:

其中, f为系统总的发电综合成本 ($/h) 。

1.3.2 约束条件

a.发电机有功功率约束为:

其中, Pimax、Pimin分别为第i台发电机有功功率的上、下限值。

b.系统功率平衡约束为:

其中, Ploss、PD分别为系统的总网损和总负荷。另外, 在处理等式约束 (功率平衡约束) 时, 采用待定消元法将等式约束转换为不等式约束。任选一个发电机组, 以第1台为例, 可将式 (9) 变形为如下形式:

将式 (10) 分别代入到目标函数和不等式约束中, 就可以消除等式约束, 得到新的目标函数和不等式约束, 这样不仅可以精确地处理等式约束, 而且还减少了优化处理时变量的维数。

c.机组旋转备用容量约束为:

其中, SD为系统总的备用容量。

2 空间粒子群优化算法

2.1 经典粒子群优化算法及其改进

粒子群优化算法是人们受到社会体系中个体行为的启示而提出的一种优化算法, 它通过群体的信息共享与个体自身经验的总结来修正个体行动策略, 最终求取优化问题的解[10,11,12]。

在粒子群优化算法中, 每个优化问题的未知解都可以作为搜寻范围内的一个点, 即粒子。每个粒子都对应一个取决于待优化函数的适应度值, 所有粒子移动的方向和距离都是由其速度决定的, 并且群体中的所有粒子均跟随最优粒子在一个平面解域内搜寻。每次速度和位置的更新原则如下[13,14,15]:

其中, i=1, 2, …, m (m为种群规模) ;j=1, 2, …, D (D为未知量的个数) ;c1和c2为学习因子;vki j、vk+1ij分别为粒子i对应第j个变量在第k次、第k+1次修正时对应的速度;xkij、xk+1ij分别为粒子i对应第j个变量在第k次、第k+1次修正时对应的位置;pkij为粒子i对应第j个变量在第k次修正时个体最优位置;pkg j为整个群体对应第j个变量在第k次修正时全局最优位置;r1、r2为介于0~1之间均匀分布的随机数。经典粒子群优化算法中惯性权重采用线性递减修正方式来更新权重值, 具体修正模式如下[16]:

其中, ωk与ωk+1分别为粒子在第k次和第k+1次寻优所对应的惯性权重值;ωmax为最大惯性权重, 通常经验取值为0.9;ωmin为最小惯性权重, 通常经验取值为0.4;Kmax为预先设定的最大迭代次数。

经典粒子群优化算法虽然依赖经验参数少、操作原理简单、收敛速度快, 但有易陷入局部最优、收敛精度不高、优化结果随机性大等缺陷。对此, 相关研究主要从改进粒子自身速度修正方式或引入变异、扰动等改善全局搜索能力、增加粒子多样性;同时也与遗传算法、混沌优化等智能算法结合使用。

2.2 空间粒子群优化算法

与经典粒子群优化及其改进算法不同, 所提出的空间粒子群优化算法不是在速度和位置等方面改进搜索, 也不是重复经典粒子群优化算法的多维变量寻优空间;而是通过对每个粒子优化变量矩阵的每一分量附加一组高度参数, 并与原来的位置和速度共同构成一个包含位置、速度和高度3类参数的参数空间;这样使得每个待优化变量由原来在以位置x和速度v所组成的平面域内寻优转变为在一个由位置x、速度v和高度h组成的全新空间域内寻优, 即x-v-h空间。对于每一个粒子都对应一组 (x, v, h) , 同时, 位置x、速度v和高度h三者的更新策略也是相互影响的。此时, 位置的修正方式发生了变化, 按式 (15) 来更新。

其中, vijk+1为粒子i对应第j个变量在第k+1次修正时对应的速度;hijk+1为粒子i对应第j个变量在第k+1次修正时对应的高度。而速度的修正方式没有发生改变, 同样根据式 (12) 来更新。

考虑到经典粒子群优化算法中粒子速度的更新已经融入随机优化理论, 为了降低优化结果的随机性, 高度参数h的更新不再引入随机理论, 而是通过比较相邻2次优化结果对应的适应度值是否相等来选择高度修正方式。若当前粒子的适应度值与上一次寻优结果对应的适应度值相等, 则根据当前适应度以及平均适应度来调整高度, 具体更新方式如式 (16) 所示;否则维持高度不变。随着寻优过程的进行, 当前后2次寻优结果相同时, 对高度值进行调整, 使其跳到另一个寻优区域, 这样可以避免经典粒子群优化算法容易陷入局部最优解而不能跳出来的缺点;同时保证了搜索的全面性, 增强了全局搜索能力;由于在高度修正策略中也综合考虑了整个群体的适应度值, 这也保证了粒子的多样性。

其中, fkfitnessi为粒子i在第k次修正时所对应的适应度值;fkav为所有粒子在第k次修正时所对应的平均适应度值;Pgk为所有粒子在第k次修正时所对应的最优适应度值;hkij、hijk+1分别为粒子i对应第j个待优化变量在第k次、第k+1次修正时对应的高度;lj为第j个变量对应的可行区间的长度。

综上所述, 粒子i所对应的第j个待优化变量 (xij, vij, hij) , 速度vij侧重于调节粒子位置xij的变化, 仅决定着粒子位置xij的改变;若寻优前后2次结果所对应的适应度值不同, 则hij保持不变, 而此时位置xij将随着vij的变化而改变, 即此时粒子等同于在一个纵向距离 (高度) 为hij、由x-v所组成的平面区域内寻优;否则, 高度hij将按式 (16) 更新, 此时原先由x-v所组成的平面区域的高度hij发生了改变。由此可以看出, 高度hij不仅决定着粒子位置xij的变化, 还控制着粒子速度vij和位置xij所构成寻优平面区域的纵向变化, 可以使粒子跳出局部最优区域, 进而到达一个新的寻优区域。

2.3 空间粒子群优化算法的基本步骤

运用空间粒子群优化算法解决实际问题的基本步骤如下所述。

a.参数的设定。最大迭代次数Kmax、粒子个数m、变量个数D、惯性权重ωmax和ωmin、学习因子c1和c2等参数设定。

b.初始化。每个粒子的位置、速度、高度、个体极值、全局极值初始化;对于适应度函数的确定, 文中直接以目标函数作为适应度函数, 则有:

c.数据更新。根据式 (12) 、 (15) 、 (16) 分别更新每个粒子的速度vij、位置xij、高度hij。

d.根据适应度评价函数更新数据。

e.判断是否满足终止条件。若不满足, 返回步骤c;若满足, 执行步骤f。

f.计算结束, 输出结果。

3 算例仿真结果分析

3.1 算例与参数处理

选取IEEE 30节点标准测试系统[17,18]为例, 分别采用经典粒子群优化和空间粒子群优化算法进行环保经济调度的仿真计算。其中, 系统的总负荷值PD=283.4 MW, 系统的单线图见文献[19], 6个发电机组参数如表1所示。鉴于IEEE 30节点标准测试系统只给出了CO2的排放参数, 因此文章计算环境成本时仅考虑了CO2的排放部分, 其各机组CO2的排放参数如表2所示。取粒子种群规模m=40;学习因子c1、c2均取1.5;惯性权重取ωmax=0.9, ωmin=0.4;最大迭代次数为100次;旋转备用容量取符合需求的5%。并按电力行业排放标准设定各类污染气体单位排放量罚款, 具体取值情况见文献[20]。

3.2 仿真结果分析

针对上述案例分别采用经典粒子群优化算法、文献[4]中的改进粒子群优化 (IPSO) 算法和空间粒子群优化算法进行优化, 在同等条件下, 各自独立计算50次, 其总成本的优化结果如图1所示。

从仿真结果图1中可以看出, 空间粒子群优化算法优化结果的随机性明显小于经典粒子群优化算法优化结果的随机性, 同时也小于改进粒子群优化算法优化结果的随机性。分别对50次独立计算求得的总成本取平均值可求得:空间粒子群优化算法算得的综合成本为553.34$/h, 粒子群优化算法算得的综合成本为572.46$/h, 改进粒子群优化算法算得的综合成本为560.37$/h。可以发现空间粒子群优化算法的优化结果明显比粒子群优化算法和改进粒子群优化算法的优化结果更小, 即更经济环保。此外, 50次独立计算各机组出力的统计优化结果如表3所示。

从表3中可以看出, 空间粒子群优化算法所求得各发电出力优化结果的随机性也小于粒子群优化算法和改进粒子群优化算法的优化结果的随机性, 这也进一步验证了空间粒子群优化算法优化结果较高的准确性。

为了体现空间粒子群优化算法在优化性能上的优势, 选取了一次完成寻优过程的对比, 三者的寻优过程如图2所示, 图中适应度值为标幺值, 后同。

从图2中可以看出, 空间粒子群优化算法在一定程度上比文献[4]中改进粒子群优化算法更好地缓解了粒子群优化算法容易陷入局部最优且难以跳出来、导致过早收敛的缺陷。从图2中可以看出, 对于较为复杂的系统, 空间粒子群优化算法对比改进粒子群优化算法和粒子群优化算法优势更加明显。在收敛性能方面, 粒子群优化算法在迭代不到20次就陷入了局部最优而且不能自我调整跳出局部最优区域;改进粒子群优化算法虽然在前面部分跳出了局部最优区域, 但是也在不到25次又陷入了新的局部最优;而空间粒子群优化算法出现了非常明显多次自我调整的现象, 跳出局部最优区域, 而且也在寻优不到30次就找到了全局最优解, 获得了更好更精确的目标值, 这也进一步展现了其良好的收敛特性和快速稳定的寻优性能, 较好地解决粒子群优化算法容易陷入早熟且难以跳出局部最优区域的缺陷。

另外, 图3给出独立计算50次情况下每次CPU所消耗的时间对比。从图3可见, 空间粒子群优化算法虽然在粒子群优化算法的基础上增加高度参数, 但对计算时间影响不大。在同等条件下, 分别求得空间粒子群优化算法的CPU平均耗时为1.470 2 s, 改进粒子群优化算法的CPU平均耗时为2.418 5 s, 经典粒子群优化算法的CPU平均耗时为1.262 3 s。文献[4]中空间粒子群优化算法最耗费时间, 以牺牲计算时间来提高计算精度, 而空间粒子群优化算法和粒子群优化算法仅相差0.2019 s, 几乎不影响计算速度。通过算例分析结果表明:与改进粒子群优化算法相比, 空间粒子群优化算法进一步增强了全局搜索能力, 较好地改善了早熟的缺陷;其优化结果的随机性更小, 提高了计算结果的可信性;尽管引入了高度参数, 但对计算时间几乎没有影响。

3.3 检测函数分析

为了进一步体现所提出的空间粒子群优化算法的优越性, 选取了一个典型多峰值函数Rosenkbrock来进行测试, 其函数具体表达式如下式所示:

该函数在xi∈ (-5.12, 5.12) 范围内大约存在10 n个局部最小值。针对以上测试函数初始化空间粒子群优化算法参数:粒子数m取40个;变量数n取20个;最大迭代次数取1000次;ωmax取0.9;ωmin取0.4。计算结果如图4所示。

从图4中可以看出, 对于含多峰值的优化问题, 粒子群优化算法优化性能显著下降, 过早陷入局部最优, 导致很难找到全局最优解;改进粒子群优化算法虽然相比经典粒子群优化算法寻优性能有所改进, 但是其最终寻优结果精确度不高;而空间粒子群优化算法寻优性能优势明显, 仍然可以找到最优解, 而且非常稳定趋向于最优解, 可以找到更好的目标值, 使得其寻优精度高。由此进一步体现了空间粒子群优化算法的优越性。

4 结论

针对经典粒子群优化算法容易陷入局部收敛而早熟的问题, 本文提出了具备空间寻优能力的空间粒子群优化算法, 并应用于求解电力系统环保经济负荷分配的问题, 获得了满意结果。

空间粒子群优化算法通过引入一类高度参数, 使粒子的移动由其高度和速度共同决定, 对应的每个待优化变量由高度、速度和位置3类参数来寻优, 粒子在一个新的具有高度维度的空间解域内搜寻。通过比较粒子当前适应度值与平均适应度值来决定高度的修正方式, 提高了全局收敛性, 增强了全局寻优能力, 可以有效地跳出局部最优空间。

仿真结果表明, 对比经典粒子群优化算法和改进粒子群优化算法, 本文方法易于跳出早熟区间, 并可极大减少计算结果的随机性;迭代次数并未显著增加, 收敛时间相对较短, 对优化变量的可微性要求不高。因此所提出的空间粒子群优化算法在解决非线性、非凸性、不连续的优化问题中同样具有有效性和优越性。

上一篇:儿童个性空间下一篇:购置流程