1996_PODC_queues[simple,fast,and practical non-blocking and blocking concurrent queue algorithms]

1996_PODC_queues[simple,fast,and practical non-blocking and blocking concurrent queue algorithms]
1996_PODC_queues[simple,fast,and practical non-blocking and blocking concurrent queue algorithms]

Simple,Fast,and Practical Non-Blocking and Blocking Concurrent Queue Algorithms

Maged M.Michael Michael L.Scott

Department of Computer Science

University of Rochester

Rochester,NY14627-0226

michael,scott@https://www.360docs.net/doc/c02861935.html,

Abstract

Drawing ideas from previous authors,we present a new non-blocking concurrent queue algorithm and a new two-lock queue algorithm in which one enqueue and one de-queue can proceed concurrently.Both algorithms are sim-ple,fast,and practical;we were surprised not to?nd them in the literature.Experiments on a12-node SGI Challenge multiprocessor indicate that the new non-blocking queue consistently outperforms the best known alternatives;it is the clear algorithm of choice for machines that provide a universal atomic primitive(https://www.360docs.net/doc/c02861935.html,pare and swap or load linked/store conditional).The two-lock concurrent queue outperforms a single lock when several processes are competing simultaneously for access;it ap-pears to be the algorithm of choice for busy queues on ma-chines with non-universal atomic primitives(e.g.test and set).Since much of the motivation for non-blocking algorithms is rooted in their immunity to large,unpre-dictable delays in process execution,we report experimental results both for systems with dedicated processors and for systems with several processes multiprogrammed on each processor.

Keywords:concurrent queue,lock-free,non-blocking, compare and swap,multiprogramming.

This work was supported in part by NSF grants nos.CDA–94–01142 and CCR–93–19445,and by ONR research grant no.N00014–92–J–1801 (in conjunction with the DARPA Research in Information Science and Technology—High Performance Computing,Software Science and Tech-nology program,ARPA Order no.8930).1Introduction

Concurrent FIFO queues are widely used in parallel ap-plications and operating systems.To ensure correctness, concurrent access to shared queues has to be synchronized. Generally,algorithms for concurrent data structures,in-cluding FIFO queues,fall into two categories:blocking and non-blocking.Blocking algorithms allow a slow or de-layed process to prevent faster processes from completing operations on the shared data structure inde?nitely.Non-blocking algorithms guarantee that if there are one or more active processes trying to perform operations on a shared data structure,some operation will complete within a?nite number of time steps.On asynchronous(especially multi-programmed)multiprocessor systems,blocking algorithms suffer signi?cant performance degradation when a process is halted or delayed at an inopportune moment.Possible sources of delay include processor scheduling preemption, page faults,and cache misses.Non-blocking algorithms are more robust in the face of these events.

Many researchers have proposed lock-free algorithms for concurrent FIFO queues.Hwang and Briggs[7], Sites[17],and Stone[20]present lock-free algorithms based on compare and swap.1These algorithms are in-completely speci?ed;they omit details such as the handling of empty or single-item queues,or concurrent enqueues and https://www.360docs.net/doc/c02861935.html,mport[9]presents a wait-free algorithm that restricts concurrency to a single enqueuer and a single dequeuer.2

Gottlieb et al.[3]and Mellor-Crummey[11]present algorithms that are lock-free but not non-blocking:they do not use locking mechanisms,but they allow a slow process to delay faster processes inde?nitely.

1Compare and swap,introduced on the IBM System370,takes as arguments the address of a shared memory location,an expected value, and a new value.If the shared location currently holds the expected value, it is assigned the new value atomically.A Boolean return value indicates whether the replacement occurred.

2A wait-free algorithm is both non-blocking and starvation free:it guarantees that every active process will make progress within a bounded number of time steps.

Treiber[21]presents an algorithm that is non-blocking but inef?cient:a dequeue operation takes time propor-tional to the number of the elements in the queue.Her-lihy[6];Prakash,Lee,and Johnson[15];Turek,Shasha, and Prakash[22];and Barnes[2]propose general method-ologies for generating non-blocking versions of sequential or concurrent lock-based algorithms.However,the result-ing implementations are generally inef?cient compared to specialized algorithms.

Massalin and Pu[10]present lock-free algorithms based on a double compare and swap primitive that oper-ates on two arbitrary memory locations simultaneously,and that seems to be available only on later members of the Mo-torola68000family of processors.Herlihy and Wing[4] present an array-based algorithm that requires in?nite ar-rays.V alois[23]presents an array-based algorithm that re-quires either an unaligned compare and swap(not sup-ported on any architecture)or a Motorola-like double compare and swap.

Stone[18]presents a queue that is lock-free but non-linearizable3and not non-blocking.It is non-linearizable because a slow enqueuer may cause a faster process to enqueue an item and subsequently observe an empty queue, even though the enqueued item has never been dequeued. It is not non-blocking because a slow enqueue can delay dequeues by other processes inde?nitely.Our experiments also revealed a race condition in which a certain interleaving of a slow dequeue with faster enqueues and dequeues by other process(es)can cause an enqueued item to be lost permanently.Stone also presents[19]a non-blocking queue based on a circular singly-linked list.The algorithm uses one anchor pointer to manage the queue instead of the usual head and tail.Our experiments revealed a race condition in which a slow dequeuer can cause an enqueued item to be lost permanently.

Prakash,Lee,and Johnson[14,16]present a lineariz-able non-blocking algorithm that requires enqueuing and dequeuing processes to take a snapshot of the queue in order to determine its“state”prior to updating it.The algo-rithm achieves the non-blocking property by allowing faster processes to complete the operations of slower processes in-stead of waiting for them.

Valois[23,24]presents a list-based non-blocking algo-rithm that avoids the contention caused by the snapshots of Prakash et al.’s algorithm and allows more concurrency by keeping a dummy node at the head(dequeue end)of a singly-linked list,thus simplifying the special cases as-sociated with empty and single-item queues(a technique suggested by Sites[17]).Unfortunately,the algorithm al-lows the tail pointer to lag behind the head pointer,thus preventing dequeuing processes from safely freeing or re-3An implementation of a data structure is linearizable if it can always give an external observer,observing only the abstract data structure opera-tions,the illusion that each of these operations takes effect instantaneously at some point between its invocation and its response[5].using dequeued nodes.If the tail pointer lags behind and a process frees a dequeued node,the linked list can be broken,

so that subsequently enqueued items are lost.Since mem-

ory is a limited resource,prohibiting memory reuse is not an acceptable option.V alois therefore proposes a special

mechanism to free and allocate memory.The mechanism

associates a reference counter with each node.Each time a

process creates a pointer to a node it increments the node’s reference counter atomically.When it does not intend to

access a node that it has accessed before,it decrements the

associated reference counter atomically.In addition to tem-

porary links from process-local variables,each reference counter re?ects the number of links in the data structure

that point to the node in question.For a queue,these are the

head and tail pointers and linked-list links.A node is freed

only when no pointers in the data structure or temporary variables point to it.

We discovered and corrected[13]race conditions in the

memory management mechanism and the associated non-blocking queue algorithm.Even so,the memory manage-

ment mechanism and the queue that employs it are imprac-

tical:no?nite memory can guarantee to satisfy the memory

requirements of the algorithm all the time.Problems oc-cur if a process reads a pointer to a node(incrementing the

reference counter)and is then delayed.While it is not run-

ning,other processes can enqueue and dequeue an arbitrary

number of additional nodes.Because of the pointer held by the delayed process,neither the node referenced by that

pointer nor any of its successors can be freed.It is therefore

possible to run out of memory even if the number of items in the queue is bounded by a constant.In experiments with

a queue of maximum length12items,we ran out of mem-

ory several times during runs of ten million enqueues and

dequeues,using a free list initialized with64,000nodes.

Most of the algorithms mentioned above are based on

compare and swap,and must therefore deal with the

ABA problem:if a process reads a value in a shared loca-tion,computes a new value,and then attempts a compare

and swap operation,the compare and swap may suc-ceed when it should not,if between the read and the

compare and swap some other process(es)change the to a and then back to an again.The most common so-lution is to associate a modi?cation counter with a pointer,

to always access the counter with the pointer in any read-

modify-compare and swap sequence,and to increment it in each successful compare and swap.This solution does not guarantee that the ABA problem will not occur,but it makes it extremely unlikely.To implement this solution, one must either employ a double-word compare and swap,or else use array indices instead of pointers,so that they may share a single word with a counter.Valois’s ref-erence counting technique guarantees preventing the ABA problem without the need for modi?cation counters or the double-word compare and swap.Mellor-Crummey’s lock-free queue[11]requires no special precautions to avoid

the ABA problem because it uses compare and swap in a fetch and store-modify-compare and swap se-quence rather than the usual read-modify-compare and swap sequence.However,this same feature makes the algorithm blocking.

In section2we present two new concurrent FIFO queue algorithms inspired by ideas in the work described above. Both of the algorithms are simple and practical.One is non-blocking;the other uses a pair of locks.Correctness of these algorithms is discussed in section3.We present experimental results in https://www.360docs.net/doc/c02861935.html,ing a12-node SGI Challenge multiprocessor,we compare the new algorithms to a straightforward single-lock queue,Mellor-Crummey’s blocking algorithm[11],and the non-blocking algorithms of Prakash et al.[16]and Valois[24],with both dedicated and multiprogrammed workloads.The results con?rm the value of non-blockingalgorithms on multiprogrammed sys-tems.They also show consistently superior performance on the part of the new lock-free algorithm,both with and without multiprogramming.The new two-lock algorithm cannot compete with the non-blocking alternatives on a multiprogrammed system,but outperforms a single lock when several processes compete for access simultaneously. Section5summarizes our conclusions.

2Algorithms

Figure1presents commented pseudo-code for the non-blocking queue data structure and operations.The algo-rithm implements the queue as a singly-linked list with Head and Tail pointers.As in Valois’s algorithm,Head always points to a dummy node,which is the?rst node in the list.Tail points to either the last or second to last node in the list.The algorithm uses compare and swap,with modi?cation counters to avoid the ABA problem.To allow dequeuing processes to free dequeued nodes,the dequeue operation ensures that Tail does not point to the dequeued node nor to any of its predecessors.This means that de-queued nodes may safely be re-used.

To obtain consistent values of various pointers we rely on sequences of reads that re-check earlier values to be sure they haven’t changed.These sequences of reads are similar to,but simpler than,the snapshots of Prakash et al.(we need to check only one shared variable rather than two).A similar technique can be used to prevent the race condition in Stone’s blocking algorithm.We use Treiber’s simple and ef?cient non-blocking stack algorithm[21]to implement a non-blocking free list.

Figure2presents commented pseudo-code for the two-lock queue data structure and operations.The algorithm employs separate Head and Tail locks,to allow complete concurrency between enqueues and dequeues.As in the non-blocking queue,we keep a dummy node at the begin-ning of the list.Because of the dummy node,enqueuers never have to access Head,and dequeuers never have to access Tail,thus avoiding potential deadlock problems that arise from processes trying to acquire the locks in different orders.

3Correctness

3.1Safety

The presented algorithms are safe because they satisfy the following properties:

1.The linked list is always connected.

2.Nodes are only inserted after the last node in the linked

list.

3.Nodes are only deleted from the beginning of the

linked list.

4.Head always points to the?rst node in the linked list.

5.Tail always points to a node in the linked list.

Initially,all these properties hold.By induction,we show that they continue to hold,assuming that the ABA problem never occurs.

1.The linked list is always connected because once a

node is inserted,its next pointer is not set to NULL before it is freed,and no node is freed until it is deleted from the beginning of the list(property3).

2.In the lock-free algorithm,nodes are only inserted

at the end of the linked list because they are linked through the Tail pointer,which always points to a node in the linked-list(property5),and an inserted node is linked only to a node that has a NULL next pointer, and the only such node in the linked list is the last one (property1).

In the lock-based algorithm nodes are only inserted at the end of the linked list because they are inserted after the node pointed to by Tail,and in this algorithm Tail always points to the last node in the linked list,unless it is protected by the tail lock.

3.Nodes are deleted from the beginning of the list,be-

cause they are deleted only when they are pointed to by Head and Head always points to the?rst node in the list(property4).

4.Head always points to the?rst node in the list,because

it only changes its value to the next node atomically (either using the head lock or using compare and

swap).When this happens the node it used to point to is considered deleted from the list.The new value of Head cannot be NULL because if there is one node in the linked list the dequeue operation returns without deleting any nodes.

structure pointer t ptr:pointer to node t,count:unsigned integer

structure node t value:data type,next:pointer t

structure queue t Head:pointer t,Tail:pointer t

initialize(Q:pointer to queue t)

node=new node()#Allocate a free node

node–>next.ptr=NULL#Make it the only node in the linked list

Q–>Head=Q–>Tail=node#Both Head and Tail point to it

enqueue(Q:pointer to queue t,value:data type)

E1:node=new node()#Allocate a new node from the free list

E2:node–>value=value#Copy enqueued value into node

E3:node–>next.ptr=NULL#Set next pointer of node to NULL

E4:loop#Keep trying until Enqueue is done

E5:tail=Q–>Tail#Read Tail.ptr and Tail.count together

E6:next=tail.ptr–>next#Read next ptr and count?elds together

E7:if tail==Q–>Tail#Are tail and next consistent?

E8:if next.ptr==NULL#Was Tail pointing to the last node?

E9:if CAS(&tail.ptr–>next,next,)#Try to link node at the end of the linked list

E10:break#Enqueue is done.Exit loop

E11:endif

E12:else#Tail was not pointing to the last node

E13:CAS(&Q–>Tail,tail,)#Try to swing Tail to the next node

E14:endif

E15:endif

E16:endloop

E17:CAS(&Q–>Tail,tail,)#Enqueue is done.Try to swing Tail to the inserted node dequeue(Q:pointer to queue t,pvalue:pointer to data type):boolean

D1:loop#Keep trying until Dequeue is done

D2:head=Q–>Head#Read Head

D3:tail=Q–>Tail#Read Tail

D4:next=head–>next#Read Head.ptr–>next

D5:if head==Q–>Head#Are head,tail,and next consistent?

D6:if head.ptr==tail.ptr#Is queue empty or Tail falling behind?

D7:if next.ptr==NULL#Is queue empty?

D8:return FALSE#Queue is empty,couldn’t dequeue

D9:endif

D10:CAS(&Q–>Tail,tail,)#Tail is falling behind.Try to advance it

D11:else#No need to deal with Tail

#Read value before CAS,otherwise another dequeue might free the next node

D12:*pvalue=next.ptr–>value

D13:if CAS(&Q–>Head,head,)#Try to swing Head to the next node

D14:break#Dequeue is done.Exit loop

D15:endif

D16:endif

D17:endif

D18:endloop

D19:free(head.ptr)#It is safe now to free the old dummy node

D20:return TRUE#Queue was not empty,dequeue succeeded

Figure1:Structure and operation of a non-blocking concurrent queue.

structure node t value:data type,next:pointer to node t

structure queue t Head:pointer to node t,Tail:pointer to node t,H lock:lock type,T lock:lock type initialize(Q:pointer to queue t)

node=new node()#Allocate a free node

node–>next.ptr=NULL#Make it the only node in the linked list

Q–>Head=Q–>Tail=node#Both Head and Tail point to it

Q–>H lock=Q–>T lock=FREE#Locks are initially free

enqueue(Q:pointer to queue t,value:data type)

node=new node()#Allocate a new node from the free list

node–>value=value#Copy enqueued value into node

node–>next.ptr=NULL#Set next pointer of node to NULL

lock(&Q–>T lock)#Acquire T lock in order to access Tail

Q–>Tail–>next=node#Link node at the end of the linked list

Q–>Tail=node#Swing Tail to node

unlock(&Q–>T lock)#Release T lock

dequeue(Q:pointer to queue t,pvalue:pointer to data type):boolean

lock(&Q–>H lock)#Acquire H lock in order to access Head

node=Q–>Head#Read Head

new head=node–>next#Read next pointer

if new head==NULL#Is queue empty?

unlock(&Q–>H lock)#Release H lock before return

return FALSE#Queue was empty

endif

*pvalue=new head–>value#Queue not empty.Read value before release

Q–>Head=new head#Swing Head to next node

unlock(&Q–>H lock)#Release H lock

free(node)#Free node

return TRUE#Queue was not empty,dequeue succeeded

Figure2:Structure and operation of a two-lock concurrent queue.

5.Tail always points to a node in the linked list,because

it never lags behind Head,so it can never point to a deleted node.Also,when Tail changes its value it always swings to the next node in the list and it never tries to change its value if the next pointer is NULL.

3.2Linearizability

The presented algorithms are linearizable because there is a speci?c point during each operation at which it is con-sidered to“take effect”[5].An enqueue takes effect when the allocated node is linked to the last node in the linked list.A dequeue takes effect when Head swings to the next node.And,as shown in the previous subsection(properties 1,4,and5),the queue variables always re?ect the state of the queue;they never enter a transient state in which the state of the queue can be mistaken(e.g.a non-empty queue appears to be empty).

3.3Liveness

The Lock-Free Algorithm is Non-Blocking

The lock-free algorithm is non-blockingbecause if there are non-delayed processes attempting to perform operations on the queue,an operation is guaranteed to complete within ?nite time.

An enqueue operation loops only if the condition in line E7fails,the condition in line E8fails,or the compare and swap in line E9fails.A dequeue operation loops only if the condition in line D5fails,the condition in line D6holds(and the queue is not empty),or the compare and swap in line D13fails.

We show that the algorithm is non-blocking by showing that a process loops beyond a?nite number of times only if

another process completes an operation on the queue.

The condition in line E7fails only if Tail is written by an intervening process after executing line E5.Tail always points to the last or second to last node of the linked list,and when modi?ed it follows the next pointer of the node it points to.Therefore,if the condi-tion in line E7fails more than once,then another pro-cess must have succeeded in completing an enqueue operation.

The condition in line E8fails if Tail was pointing to the second to last node in the linked-list.After the compare and swap in line E13,Tail must point to the last node in the list,unless a process has succeeded in enqueuing a new item.Therefore,if the condition in line E8fails more than once,then another process must have succeeded in completing an enqueue operation.

The compare and swap in line E9fails only if an-other process succeeded in enqueuing a new item to the queue.

The condition in line D5and the compare and

swap in line D13fail only if Head has been writ-ten by another process.Head is written only when a process succeeds in dequeuing an item.

The condition in line D6succeeds(while the queue is not empty)only if Tail points to the second to last node in the linked list(in this case it is also the?rst node).After the compare and swap in line D10, Tail must point to the last node in the list,unless a pro-cess succeeded in enqueuing a new item.Therefore, if the condition of line D6succeeds more than once, then another process must have succeeded in complet-ing an enqueue operation(and the same or another process succeeded in dequeuing an item).

The Two-Lock Algorithm is Livelock-Free

The two-lock algorithm does not contain any loops.There-fore,if the mutual exclusion lock algorithmused for locking and unlocking the head and tail locks is livelock-free,then the presented algorithmis livelock-free too.There are many mutual exclusion algorithms that are livelock-free[12].

4Performance

We use a12-processor Silicon Graphics Challenge mul-tiprocessor to compare the performance of the new algo-rithms to that of a single-lock algorithm,the algorithm of Prakash et al.[16],V alois’s algorithm[24](with correc-tions to the memory management mechanism[13]),and Mellor-Crummey’s algorithm[11].We include the algo-rithm of Prakash et al.because it appears to be the best of the known non-blocking alternatives.Mellor-Crummey’s algorithm represents non-lock-based but blocking alterna-tives;it is simpler than the code of Prakash et al.,and could be expected to display lower constant overhead in the absence of unpredictable process delays,but is likely to degenerate on a multiprogrammed system.We include Valois’s algorithmto demonstrate that on multiprogrammed systems even a comparatively inef?cient non-blocking al-gorithm can outperform blocking algorithms.

For the two lock-based algorithms we use test-and-test and set locks with bounded exponential back-off[1,12].We also use backoff where appropriate in the non-lock-based algorithms.Performance was not sensitive to the exact choice of backoff parameters in programs that do at least a modest amount of work between queue operations.We emulate both test and set and the atomic operations required by the other algorithms(compare and swap,fetch and increment,fetch and decrement,etc.)using the MIPS R4000load linked and store conditional instructions.

To ensure the accuracy of the experimental results,we used the multiprocessor exclusively and prevented other users from accessing it during the experiments.To evaluate the performance of the algorithms under different levels of multiprogramming,we used a feature in the Challenge mul-tiprocessor that allows programmers to associate processes with certain processors.For example,to represent a ded-icated system where multiprogramming is not permitted, we created as many processes as the number of processors we wanted to use and locked each process to a different processor.And in order to represent a system with a multi-programming level of2,we created twice as many processes as the number of processors we wanted to use,and locked each pair of processes to an individual processor.

C code for the tested algorithms can be ob-tained from ftp://https://www.360docs.net/doc/c02861935.html,/pub/ packages/sched conscious synch/ concurrent queues.The algorithms were compiled at the highest optimization level,and were carefully hand-optimized.We tested each of the algorithms in hours-long executions on various numbers of processors.It was during this process that we discovered the race conditions men-tioned in section1.

All the experiments employ an initially-empty queue to which processes perform a series of enqueue and dequeue operations.Each process enqueues an item,does“other work”,dequeues an item,does“other work”,and repeats. With processes,each process executes this loop106

or106times,for a total of one millionenqueues and de-queues.The“other work”consists of approximately6s of spinningin an empty loop;it serves to make the experiments more realistic by preventing long runs of queue operations by the same process(which woulddisplay overly-optimistic performance due to an unrealistically low cache miss rate). We subtracted the time required for one processor to com-

plete the“other work”from the total time reported in the

?gures.

Figure3shows net elapsed time in seconds for one million enqueue/dequeue pairs.Roughly speaking,this corresponds to the time in microseconds for one en-queue/dequeue pair.More precisely,for processors,the

graph shows the time one processor spends performing 106enqueue/dequeue pairs,plus the amount by which the critical path of the other1061pairs performed by other processors exceeds the time spent by the?rst pro-

cessor in“other work”and loop overhead.For1,the second term is zero.As increases,the?rst term shrinks to-ward zero,and the second term approaches the critical path length of the overall computation;i.e.one million times the serial portion of an enqueue/dequeue pair.Exactly how much execution will overlap in different processors depends on the choice of algorithm,the number of processors,and the length of the“other work”between queue operations.

With only one processor,memory references in all but

the?rst loop iteration hit in the cache,and completion times are very low.With two processors active,contention for head and tail pointers and queue elements causes a high fraction of references to miss in the cache,leading to sub-stantially higher completion times.The queue operations of processor2,however,?t into the“other work”time of pro-cessor1,and vice versa,so we are effectively measuring the time for one processor to complete5105enqueue/dequeue pairs.At three processors,the cache miss rate is about the same as it was with two processors.Each processor only has to perform1063enqueue/dequeue pairs,but some of the operations of the other processors no longer?t in the ?rst processor’s“other work”time.Total elapsed time decreases,but by a fraction less than13.Toward the right-hand side of the graph,execution time rises for most algorithms as smaller and smaller amounts of per-processor “other work”and loop overhead are subtracted from a total time dominated by critical path length.In the single-lock and Mellor-Crummey curves,the increase is probably ac-celerated as high rates of contention increase the average cost of a cache miss.In Valois’s algorithm,the plotted time continues to decrease,as more and more of the memory management overhead moves out of the critical path and into the overlapped part of the computation.

Figures4and5plot the same quantity as?gure3,but for a system with2and3processes per processor,respectively. The operating system multiplexes the processor among pro-cesses with a scheduling quantum of10ms.As expected, the blocking algorithms fare much worse in the presence of multiprogramming,since an inopportune preemption can block the progress of every process in the system.Also as expected,the degree of performance degradation increases with the level of multiprogramming.

In all three graphs,the new non-blocking queue outper-

forms all of the other alternatives when three or more pro-cessors are active.Even for one or two processors,its per-

Figure3:Net execution time for one million en-

Figure4:Net

execution time for one million en-queue/dequeue pairs on a multiprogrammed system with2

Figure5:Net execution time for one million en-queue/dequeue pairs on a multiprogrammed system with3 processes per processor.

formance is good enough that we can comfortably recom-mend its use in all situations.The two-lock algorithm out-performs the one-lock algorithm when more than5proces-sors are active on a dedicated system:it appears to be a rea-sonable choice for machines that are not multiprogrammed, and that lack a universal atomic primitive(compare and swap or load linked/store conditional).

5Conclusions

Queues are ubiquitous in parallel programs,and their performance is a matter of major concern.We have pre-sented a concurrent queue algorithm that is simple,non-blocking,practical,and fast.We were surprised not to?nd it in the literature.It seems to be the algorithm of choice for any queue-based application on a multiprocessor with universal atomic primitives(https://www.360docs.net/doc/c02861935.html,pare and swap or load linked/store conditional).

We have also presented a queue with separate head and tail pointer locks.Its structure is similar to that of the non-blocking queue,but it allows only one enqueue and one dequeue to proceed at a given time.Because it is based on locks,however,it will work on machines with such simple atomic primitives as test and set.We recommend it for heavily-utilized queues on such machines(For a queue that is usually accessed by only one or two processors,a single lock will run a little faster.)

This work is part of a larger project that seeks to evaluate the tradeoffs among alternative mechanisms for atomic update of common data structures.Structures under consideration include stacks,queues,heaps,search trees, and hash tables.Mechanisms include single locks,data-structure-speci?c multi-lock algorithms,general-purpose and special-purpose non-blocking algorithms,and function shipping to a centralized manager(a valid technique for situations in which remote access latencies dominate com-putation time).

In related work[8,25,26],we have been developing general-purpose synchronization mechanisms that coop-erate with a scheduler to avoid inopportune preemption. Given that immunity to processes delays is a primary bene-?t of non-blocking parallel algorithms,we plan to compare these two approaches in the context of multiprogrammed systems.

References

[1]T.E.Anderson.The Performance of Spin Lock Alter-

natives for Shared-Memory Multiprocessors.IEEE

Transactions on Parallel and Distributed Systems,

1(1):6–16,January1990.

[2]G.Barnes.A Method for Implementing Lock-Free

Data Structures.In Proceedings of the Fifth Annual

ACM Symposium on Parallel Algorithms and Archi-

tectures,Velen,Germany,June–July1993.[3] A.Gottlieb,B.D.Lubachevsky,and L.Rudolph.

Basic Techniques for the Ef?cient Coordination of

Very Large Numbers of Cooperating Sequential Pro-

cessors.ACM Transactions on Programming Lan-

guages and Systems,5(2):164–189,April1983. [4]M.P.Herlihy and J.M.Wing.Axions for Concurrent

Objects.In Proceedings of the14th ACM Symposium

on Principles of Programming Languages,pages13–

26,January1987.

[5]M.P.Herlihy and J.M.Wing.Linearizability:A

Correctness Conditionfor Concurrent Objects.ACM

Transactions on Programming Languages and Sys-

tems,12(3):463–492,July1990.

[6]M.Herlihy.A Methodology for Implementing

Highly Concurrent Data Objects.ACM Trans-

actions on Programming Languages and Systems,

15(5):745–770,November1993.

[7]K.Hwang and https://www.360docs.net/doc/c02861935.html,puter Architecture

and Parallel Processing.McGraw-Hill,1984. [8]L.Kontothanassis and https://www.360docs.net/doc/c02861935.html,ing Sched-

uler Information to Achieve Optimal Barrier Syn-

chronization Performance.In Proceedings of the

Fourth ACM Symposium on Principles and Practice

of Parallel Programming,May1993.

[9]https://www.360docs.net/doc/c02861935.html,mport.Specifying Concurrent Program Mod-

ules.ACM Transactions on Programming Languages

and Systems,5(2):190–222,April1983.

[10]H.Massalin and C.Pu.A Lock-Free Multiproces-

sor OS Kernel.Technical Report CUCS-005-91,

Computer Science Department,Columbia Univer-

sity,1991.

[11]J.M.Mellor-Crummey.Concurrent Queues:Practi-

cal Fetch-and-ΦAlgorithms.TR229,Computer Sci-

ence Department,University of Rochester,Novem-

ber1987.

[12]J.M.Mellor-Crummey and M.L.Scott.Algorithms

for Scalable Synchronization on Shared-Memory

Multiprocessors.ACM Transactions on Computer

Systems,9(1):21–65,February1991.

[13]M.M.Michael and M.L.Scott.Correction of a

Memory Management Method for Lock-Free Data

Structures.Technical Report599,Computer Sci-

ence Department,University of Rochester,Decem-

ber1995.

[14]S.Prakash,Y.H.Lee,and T.Johnson.A

Non-Blocking Algorithm for Shared Queues Using

Compare-and Swap.In Proceedings of the1991

International Conference on Parallel Processing,

pages II:68–75,1991.

[15]S.Prakash,Y.H.Lee,and T.Johnson.Non-Blocking

Algorithms for Concurrent Data Structures.Techni-

cal Report91-002,University of Florida,1991. [16]S.Prakash,Y.H.Lee,and T.Johnson.A

Nonblocking Algorithm for Shared Queues Using

Compare-and-Swap.IEEE Transactions on Com-

puters,43(5):548–559,May1994.

[17]R.Sites.Operating Systems and Computer Architec-

ture.In H.Stone,editor,Introduction to Computer

Architecture,2nd edition,Chapter12,1980.Science

Research Associates.

[18]J.M.Stone.A Simple and Correct Shared-Queue Al-

gorithm Using Compare-and-Swap.In Proceedings

Supercomputing’90,November1990.

[19]J.M.Stone.A Non-Blocking Compare-and-Swap

Algorithm for a Shared Circular Queue.In S.Tzafes-

tas et al.,editors,Parallel and Distributed Comput-

ing in Engineering Systems,pages147–152,1992.

Elsevier Science Publishers.

[20]H.S.Stone.High Performance Computer Architec-

ture.Addison-Wesley,1993.

[21]R.K.Treiber.Systems Programming:Coping with

Parallelism.In RJ5118,IBM Almaden Research

Center,April1986.

[22]J.Turek,D.Shasha,and S.Prakash.Locking with-

out Blocking:Making Lock Based Concurrent Data

Structure Algorithms Nonblocking.In Proceedings

of the11th ACM SIGACT-SIGMOD-SIGART Sym-

posium on Principles of Database Systems,pages

212–222,1992.

[23]J.D.V alois.Implementing Lock-Free Queues.In

Seventh International Conference on Parallel and

Distributed Computing Systems,Las V egas,NV,Oc-

tober1994.

[24]J.D.V alois.Lock-Free Data Structures.Ph.D.

dissertation,Rensselaer Polytechnic Institute,May

1995.

[25]R.W.Wisniewski,L.Kontothanassis,and M.L.

Scott.Scalable Spin Locks for Multiprogrammed

Systems.In Proceedings of the Eighth Interna-

tional Parallel Processing Symposium,pages583–

589,Cancun,Mexico,April1994.Earlier but ex-

panded version available as TR454,Computer Sci-

ence Department,University of Rochester,April

1993.

[26]R.W.Wisniewski,L.I.Kontothanassis,and M.L.

Scott.High Performance Synchronization Algo-

rithms for Multiprogrammed Multiprocessors.In Proceedings of the Fifth ACM Symposium on Prin-ciples and Practice of Parallel Programming,Santa Barbara,CA,July1995.

pr值计算方法

2012谷歌pr值计算方法大揭秘(将启用新颖度算法) 一,2012年谷歌友情链接计算新方法 + 十大谷歌参数值(为了方便理解姑且定义为参数) A B N代表不同的站点 很少有SEO人员懂的这种终极算法,这种谷歌参数超级重要,就算没有友情链接,只要将参数作到极致,完全可以提高pr值.这就是量变而引起的质变,也就是说不设置一个友情链接,pr照样可以提高到5,这篇文章我会好好解答其中的奥妙,以及谷歌在2012年pr值计算方面的新改变。 二,对pr计算公式的解析 谷歌对于网站友情链接或者是页面pr的计算方式是: PR(A)=(1-d)+d(PR(t1)/C(t1)+PR(t2)/C(t2)..........PR(tn)/C(tn))+(参数) 大家不知道这个d0.85是啥意思,d为固定的常数,也就是0.85 而PR(A)则是你网站可以获得的pr值,PR(t1)是交换网站的pr值,C(t1)则表示该网站所含有的导出的友情链接数,以此类推。专业名词叫阻尼因数(damping factor),实际上是计算PR分值所设置的系数,Google 的阻尼因数一般是0.85PR(A)表示的是从一个外部链接站点t1上,依据Pagerank(tm)系统给你的网站所增加的PR分值PR(t1)表示该外部链接网站本身的PR分值;C(t1)则表示该外部链接站点所拥有的外部链接数量,很多SEO们的行家们迷信这个基础算法,而忽视了后边的参数,如果简单的利用这个基本的公式计算,发现会有一个漏洞,就是老网站获得的PR值会高,新网站即使很受欢迎仍然不能获得PR!

实则不然!大家都会发现三个怪现象, 1,有的网站刚上线没几天pr会更新到4 , 2,有的网站友情链接做的越来越多,而pr却不断的在下降 3,有的网站根本没有友情链接,pr却也很高 这就是中国式的常规猜想,而忽略了后边的后浪参数,所以搜索引擎会有很复杂的算法来解决。不要深究算法,因为你不是搜索引擎工程师,研究提高PR没有更大的意义,所谓万变不离其宗,网站要获得高的PR值,友情链接不管是质量和数量上都有优势的时候才能走向PR的巅峰。同样,光靠参数,pr也可以走向一个巅峰。 三,友情链接因参数而不同 交换友链要考虑三方面的因素: (1)pr越高越好(最好是让高PR值的网站首页链接上你的网站,这是大部分人在做的) (2)pr不太高,但是导出连接比较少(很多做友情链接都不能彻底明白这一点,但通过计算公式很多人就明白了,pr不太高,但导出链接少的,甚至比pr高的网站,但为啥pr高是首要因素呢?因为导出链接少的pr还凑合的网站比较稀少) (3)权威网站的主要页面,或者叫后浪参数比较高的页面(很多做友情链接的都忽视这一点,网站是否权威,网站权威性与网页权威性这两个概念是有所区此外。网站权威性是由一张张高质量的网页、网站声望、用户口碑等等身分形成。搜索引擎判定一张网页的主要性,可能会优先判定网站的权威性。基于网站的权威性,再判定某一网页

船舶舵机控制系统改进设计【文献综述】

文献综述 电气工程及其自动化 船舶舵机控制系统改进设计 引 言 设计船舶自动操舵系统首先要确定船舶舵机的数学模型和船舶航行动态模型。船舶舵机的传动机构主要有两类,机械传动和液压传动。随着船舶排水量和航速的增加,舵机上的转矩迅速增大。采用机械传动机构的舵机其重量和体积将变得很大,同时它的效率较低,电动机的容量势必很大。因而目前大型船舶均采用液压传动舵机,甚至中小型船舶也不例外。 船舶舵机 船舶舵机是能够转舵并保持舵位的装置。舵机的大小由外舾装按照船级社的规范决定,选型时主要考虑扭矩大小。船用舵机目前多用电液式,即液压设备由电动设备进行遥控操作。有两种类型:一种是往复柱塞式舵机,其原理是通过高低压油的转换而作工产生直线运动,并通过舵柄转换成旋转运动。另一种是转叶式舵机,其原理是高低压油直接作用于转子,体积小而高效,但成本较高。 船舶操舵系统是实现船舶操纵功能的一个自动控制系统。它把电罗经,舵角传感器等送来的船舶实际航向信号,预定航向信号,及给定的各种限束条件自动地按照一定的调节规律进行信号处理,从而控制舵机,使船舶沿着给定的航向航行。由此可见,该系统的性能直接影响着船舶航行的操纵性,经济性和安全性。因此,船舶操纵系统的性能,一直被当作是一个具有较高经济价值和社会效益的重要问题,引起人们的关注。并吸引着世界各国一代又一代的工程技术人员围绕着进一步改善该系统的性能这一课题而不断地进行研究和探索。

自动舵 自动舵是根据电罗经送来的船舶实际航向与给定航向信号的偏差进行控制的。在舵机投入自动工作时,如果船舶偏离了航向,不用人的干预,自动舵就能自动投入运行,转动舵叶,使船舶回到给定航向上来。 电动—液压式自动舵 国产“HD—5L型自动舵应用半导体无触点控制的比例-微分-积分控制系统。驾驶室具有自动、随动及应急操作三种操舵方式。两套参数相同的放大器互为备用,通过转换开关选择其中一套为自动、随动操舵时使用。应急操舵为随动控制方式,单独使用一套放大器。该型自动舵有A、B、C、D四种型式。A型为电液伺服阀变量泵系统;B型为电磁换向阀、伺服油缸、变量泵系统;C型为伺服马达变量系统;D型为地磁功率阀定量泵系统,它们的电气系统基本上是一致的。 液压伺服系统 液压伺服系统是使系统的输出量,如位移、速度或力等,能自动地、快速而准确地跟随输入量的变化而变化,与此同时,输出功率被大幅度地放大。液压伺服系统以其响应速度快、负载刚度大、控制功率大等独特的优点在工业控制中得到了广泛的应用。 电液伺服系统 电液伺服系统是一种由电信号处理装置和液压动力机构组成的反馈控制系统。最常见的有电液位置伺服系统﹑电液速度控制系统和电液力(或力矩)控制系统 发展现状 众所周知,自动控制系统是自动控制理论在工业生产中应用的产物。船舶操舵系统也不例外。在自动控制理论发展的不同历史阶段,取得了不同的研究成果,开发出一代又一代新型的自动舵产品,为航运业的发展作出了巨大的贡献。

简述船舶操纵自动舵原理

简述船舶操纵自动舵原理 摘要:船舶操纵的自动舵是船舶系统中的一个不可缺少的重要设备,是用来控制船舶航向的设备,能使船舶在预定的航向上运行,随着现代科学技术的不断进步,各种先进仪器的使用,使得船舶操纵开始向智能化方向发展,本文就船舶操纵自动舵的构成和工作原理方面进行了综述。 关键字:船舶自动舵现代船舶自动化 船舶操纵的自动舵是船舶系统中的一个不可缺少的重要设备,是用来控制船舶航向的设备,能使船舶在预定的航向上运行,它能克服使船舶偏离预定航向的各种干扰影响,使船舶自动地稳定在预定的航向上运行,是操纵船舶的关键设备。它的性能直接关系到船舶的航行安全和经济效益。代替人力操舵的自动舵的发展在相当程度上减少了人力,节省了燃料,降低了机械磨损,直接影响到船舶航行的操纵性、经济性和安全性。 舵机装置由操舵装置、舵机、传动机构和舵叶四部分组成。 (1)操舵装置:操舵装置的指令系统,由驾驶室的发送装置和舵机房的接受装置组成。 (2)舵机:转舵的动力。 (3)传动机构:能将多机产生的转舵力矩传递给舵杆。 (4)舵叶:环绕舵柱偏转,承受水流的作用力,以产生转舵力矩。 在自动操舵仪中,按控制系统分类可分为三种操舵方式: (1)直接控制系统或称单舵系统、应急操舵。 (2)随动控制系统。 (3)自动操舵控制系统,又称自动航向稳定系统。 自动操舵适用于船舶在海面上长时间航行.随动操舵供船舶经常改变航向时使用,如在内河、狭航道区和进出港口。当自动航向/航迹、随动操纵出现故障时,可用应急的简单操舵,直接由人工控制电磁换向阀.使舵正、反或停转。 原理:利用电罗经检测船舶实际航向α,然后与给定航向K°进行比较,其差值作为操舵装置的输入信号,使操舵装置动作,改变偏舵角β。在舵角的作用下,船舶逐渐回到正航向上。船舶回到正航向后,舵叶不再偏转。

自动舵控制系统设计

自动舵控制系统设计 船舶借助螺旋桨的推力和舵力来改变或保持航速和航向,实现从某港出发按计划的航线到达预定的目的港。由此可见,操舵系统是一个重要控制系统,其性能直接影响着船舶航行的操纵性、经济性和安全性。自动操舵仪是总结了人的操舵规律而设计的装置,是用来控制船舶航向的设备,能使船舶在预定的航向上运行,它能克服使船舶偏离预定航向的各种干扰影响,使船舶自动地稳定在预定的航向上运行,是操纵船舶的关键设备。系统的调节对象是船,被调节量是航向。自动舵是一个闭环系统,它包括:航向给定环节;航向检测环节;给定航向与实际航向比较环节;航向偏差与舵角反馈比较环节;控制器;执行机构;舵;调节对象—船;舵角反馈机构等。自1922年自动舵问世到今天, 代替人力操舵的自动舵的发展确实取得了长足的进展, 在 相当程度上减少了人力, 节约了燃料, 降低了机械磨损, 但是 距离真正意义上的操舵自动化还有相。当大的距离。 一国内外研究现状 自70 年代起,国内一些科研院所、高校开展自动舵的理论与开发工作,并取得了不少成果,一些航海仪表厂家也独立或与研究所、高校合作开展了自动舵的试制和生产,其产品以模拟PID 舵为主。目前虽然国产自适应舵已经投入实船使用,但效果并不明显。智能控制舵还处于理论研究阶段,还没有产品化。航迹舵基

本上也处于研究阶段,还没有过硬的产品。 目前国外市场上有多种成熟的航向舵、航迹舵产品,其控制方法大多为比较成熟的自适应控制,例如日本Tokimec 公司的PR - 8000 系列自适应自动舵、德国Anschuz 公司的NAU TO CONTROL 综合系统中的自动舵、美国Sperry 公司VISIONTECHNOLOGY系统中的自适应自动舵等。近几年发展起来的智能控制及其它近代控制在自动舵上应用尚处于方案可行性论证及实验仿真阶段,还有待于进一步工程实现研究。 我国对自适应舵的研究起步较晚,自80年代以来,有关单位开展了对自适应舵的研究工作,发表了一些设计方案,仿真研究结果和产品。 1980年,南开大学袁著祉、卢桂章老师采用Norrbin性能指标,利用最小方差自校正控制器自适应律设计了船舶航向保持的自适应舵,发表了仿真结果。 1984年,中船总公司系统工程部林钧清利用最小方差自校正调节器,设计了自适应自动舵的软件,并进行了仿真研究。 1986年,大连海事大学陆样润、黄义新老师等人,采用了对偏航速率进行加权的最小方差自校正控制方案,进行了自适应舵的研制,他们先在实验室的实时仿真器上进行了联机实验,随后

船舶操舵仪与自动舵

船舶操舵仪与自动舵 [size=10.5pt]操舵仪有自动操舵仪(俗称电罗经或磁罗经操舵自动跟踪操舵仪)、随动操舵仪(俗称舵轮操舵,包括遥控操舵)和应急操舵仪(俗称手动操舵、手柄操舵),自动操舵仪是按照设定的航向直线运行;随动操舵仪是按照驾驶员的指令,按一定的舵角做回转运动,只要合理使用,能使船舶处于最佳航行状态;应急操舵仪是最简易可靠的操舵仪(缺点是精度太差,往往使船舶走S形,耗油严重)。 1、应急操舵仪是不存在操舵的精度,只要在规定的时间内(如24-28s)达到左右满舵,就行。 2、随动操舵仪比应急操舵仪精度高得多,因为它具备了简单的人机对话功能,所以应用的船舶最多(因为它成本低,尤其使用于近海航线). 3、自动操舵仪是在随动操舵仪的基础上,利用电罗经或磁罗经(现在利用GPS)等设备,增加了航向的偏航信号,利用航向信号的偏差代替人工舵轮,这一部分性能的好坏,直接关系到航线的准确度 早期日本生产的ES-11、TG-3000、TG-5000等电罗经所配备的自动舵,性能稳定,价格低廉。但是随着使用寿命的延长,这些操舵仪有一个共同的通病。 1.自动状态走S形,0点不稳 2.随动状态左右舵角不平蘅,0点不稳 3.随动状态(包括自动)死角过大 4.舵震荡严重,继电器损坏过快,船舶震动严重 5.无法使用随动状态(包括自动) 对以上问题检修的办法 1.自动部分对2KC的震动和相敏整流进行检查 2.随动部分对舵轮和跟踪的5K电位器进行检查 3.对跟踪部分的电缆检查,有无漏电 4.对舵机执行部分的阻尼系统检查 通过以上检查,一般情况下都能得到解决 如果还是不行,可以更换价格低廉性能稳定的国产随动板和自动板,一步到位,彻底解决以上的5个故障通病,既快又好,省时、省力、省成本,

自动控制原理课程设计实验

上海电力学院 自动控制原理实践报告 课名:自动控制原理应用实践 题目:水翼船渡轮的纵倾角控制 船舶航向的自动操舵控制 班级: 姓名: 学号:

水翼船渡轮的纵倾角控制 一.系统背景简介 水翼船(Hydrofoil)是一种高速船。船身底部有支架,装上水翼。当船的速度逐渐增加,水翼提供的浮力会把船身抬离水面(称为水翼飞航或水翼航行,Foilborne),从而大为减少水的阻力和增加航行速度。 水翼船的高速航行能力主要依靠一个自动稳定控制系统。通过主翼上的舵板和尾翼的调整完成稳定化操作。该稳定控制系统要保持水平飞行地穿过海浪。因此,设计上要求系统使浮力稳定不变,相当于使纵倾角最小。 航向自动操舵仪工作时存在包括舵机(舵角)、船舶本身(航向角)在内的两个反馈回路:舵角反馈和航向反馈。 当尾舵的角坐标偏转错误!未找到引用源。,会引起船只在参考方向上发生某一固定的偏转错误!未找到引用源。。传递函数中带有一个负号,这是因为尾舵的顺时针的转动会引起船只的逆时针转动。有此动力方程可以看出,船只的转动速率会逐渐趋向一个常数,因此如果船只以直线运动,而尾舵偏转一恒定值,那么船只就会以螺旋形的进入一圆形运动轨迹。 二.实际控制过程 某水翼船渡轮,自重670t,航速45节(海里/小时),可载900名乘客,可混装轿车、大客车和货卡,载重可达自重量。该渡轮可在浪高达8英尺的海中以航速40节航行的能力,全靠一个自动稳定控制系统。通过主翼上的舵板和尾翼的调整完成稳定化操作。该稳定控制系统要保持水平飞行地穿过海浪。因此,设计上要求该系统使浮力稳定不变,相当于使纵倾角最小。

上图:水翼船渡轮的纵倾角控制系统 已知,水翼船渡轮的纵倾角控制过程模型,执行器模型为F(s)=1/s。 三.控制设计要求 试设计一个控制器Gc(s),使水翼船渡轮的纵倾角控制系统在海浪扰动D (s)存在下也能达到优良的性能指标。假设海浪扰动D(s)的主频率为w=6rad/s。 本题要求了“优良的性能指标”,没有具体的量化指标,通过网络资料的查阅:响应超调量小于10%,调整时间小于4s。 四.分析系统时域 1.原系统稳定性分析 num=[50]; den=[1 80 2500 50]; g1=tf(num,den); [z,p,k]=zpkdata(g1,'v'); p1=pole(g1); pzmap(g1) 分析:上图闭环极点分布图,有一极点位于原点,另两极点位于虚轴左边,故处于临界稳定状态。但还是一种不稳定的情况,所以系统无稳态误差。 2.Simulink搭建未加控制器的原系统(不考虑扰动)。

舵结构题

舵复习题 1、影响舵效的主要因素是________ ①舵角大小;②流经舵面的流速;③船的转动惯性及纵横倾;④风流、浅水等海况;⑤舵机的性能。 A.①~④B.②~⑤C.①③④⑤D.①~⑤ 2、舵力为________。 A.由于舵的两侧面水流相对速度不同而产生的压力差 B.由于舵叶两侧水流产生的压力差与水流和舵面产生的摩擦力的合力 C.水流冲击舵面的反作用力D.使船舶回旋的力 3、海船的极限舵角一般为________;超大型船舶的极限舵角一般为________。A.25°左右/32B.30°左右/35C.35°左右/35~40D.40°左右/35~40 4、舵机上限制最大舵角的装置对流线形舵和平板舵分别是________。 A.流线型舵为36°,平板舵为32°B.流线型舵为32°,平板舵为36° C.流线型舵为35°,平板舵为30°D.流线型舵为32°,平板舵为35° 5、据乔塞尔普通舵实验,当海船转船力矩达最大值时的极限舵角约为________。A.25°B.35°C.45°D.55° 6、操舵装置可包括________。 A.舵机和转舵装置B.舵机和舵C.舵和转舵装置D.操舵装置的控制装置 7、操舵装置是指________。 A.使舵能够转动的装置B.转舵机构C.舵机装置动力设备 D.向舵杆施加转矩的装置 8、不平衡舵的特点是________。 ①舵叶面积全部在舵杆轴线的后方;②舵钮支点多,舵杆强度易于保证;③转舵时需要较大的转舵力矩。 A.①②B.②③C.①③D.①~③ 9、舵的类型按舵杆轴线位置分有________。 ①不平衡舵;②平衡舵;③半平衡舵;④双支承舵。 A.①~③B.②~④C.①③④D.①~④ 10、整流帽舵的特点是________。 ①能改善螺旋桨后面的水流状态;②能提高螺旋桨的推力;③能改善船尾的振动程度。 A.①②B.①~③C.②③D.①③ 11、襟翼舵在使用时的最大特点是________。 ①能产生更大的流体动力;②具有较大的转船力矩;③所需舵机功率也较大。A.①②B.②③C.①③D.①~③ 12、反应舵舵叶的上下线型分别向左右扭曲一些,其目的是________。 ①诱导排出流的方向;②减少阻力而增加推力;③改善船尾震动情况。 A.①②B.②③C.①③D.①②③ 13、目前海船上普遍采用的舵是________。 Ⅰ.流线型舵;Ⅱ.平衡舵;Ⅲ.双支承舵。 A.Ⅰ,ⅡB.Ⅰ,ⅢC.Ⅱ,ⅢD.Ⅰ,Ⅱ,Ⅲ 14、按舵的支承情况分,不平衡舵属于________。 A.多支承舵B.双支承舵C.悬挂舵D.半悬挂舵

自动舵的发展及其特性

自动舵的发展及其特性 自动操舵控制装置,简称自动舵autopilot,是在随动操舵基础上发展起来的一种全自动控制的操舵方式。它是船舶运动控制问题中具有特殊重要性的一个系统,用于航向保持/航向改变/航迹保持控制。它是根据陀螺罗经的航向信号和指定的航向相比较来控制操纵系统,自动使船舶保持在指定的航向上。由于自动舵灵敏度和准确性都较高,它替代人工操舵后,相对提高了航速和减轻了舵工的工作量。早在20世纪20年代已出现商品化的机械式PID自动舵用于商船的航向保持。在此后的历史进程中,随着科学的发展和技术,工艺的进步,自动舵的构造变化巨大,电气式,电子式,微型计算机化的产品相继问世。目前商船均配置有自动舵,当定向航行且航区没有其他船往来时,则可改手操舵为自动舵。船舶借助螺旋桨的推力和舵力来改变或保持航速和航向,实现从某港口出发按计划的航线到达预定的目的港。由此可见,操舵系统是一个重要的控制系统,其性能直接影响着船舶航行的操纵性,经济性和安全性。因此,船舶操纵系统的性能,一直被当作是一个具有较高经济价值和社会效益的重要问题,引起人们的关注,并吸引着世界各国一代又一代的工程技术人员围绕着进一步改善该系统的性能这一课题而不断地进行研究和探索。 自动操舵仪是总结了人的操舵规律而设计的装置。系统的调节对象是船,被调节量是航向。自动舵是一个闭环系统,它包括:航向给定环节;航向检测环节;给定航向和实际航向比较环节;航向偏差与舵角反馈比较环节;控制器;执行机构;舵;舵角反馈机构等。舵系统的性能主要是由控制器的性能决定的,因此自动舵的技术发展,也主要表现在控制技术的推陈出新。 自动舵的发展是随着自动控制理论和技术的发展而发展。在自动控制理论和技术发展的不同阶段,取得了不同的研究及应用成果,开发出一代又一代新型的自动舵产品,为航运业的发展作出了巨大的贡献。 自动舵的发展及其特性: 船舶在海上航行时,由于受到海风,海浪及海流等海洋环境扰动的作用,不可避免地要产生各种摇荡和航向改变,其运动形式可以分为两大类:一是船舶的操纵运动,另一个是船舶的摇荡运动。所谓操纵运动是指驾驶者借助于操纵装置,来改变或保持船的运动状态;而摇荡运动是指在风,浪,流的干扰下产生的往复运动。 自从20世纪20年代机械式自动舵应用于船舶航向控制到现在航向自动舵及其控制算法发展可以划分为四个阶段: (1)第一代机械自动舵:经典控制的自动舵,率先推出自动舵产品的是德国和美国。德国的Aushutz和美国的Sperry分别于1920年和1923年独立研制成了机械式的自动操舵仪,其出现是一个重要里程碑,因为它使人们看到了在船舶操纵方面摆脱体力劳动实动自动控制的希望。机械式自动舵只能进行简单的比例控制,这种自动舵需要采用低增益以避免震荡,只能用于低精度的航向保持。 (2)第二代PID自动舵:20世纪50年代,随着电子学和伺服机构理论的发展与集控制技术和电子器件的发展成果于一体的PID自动舵横空出世,使得航向自动舵的控制精度明显提高。缺陷是对外界变化应变能力差,操舵频繁,幅度大,能耗显著。如对海浪高频干扰,PID控制过于敏感,为避免高频干扰引起的频繁操舵,常采用“死区”非线性来进行天气调节,但死区会导致控制系统的低

seo中pr值什么意思

Seo中pr值的意思 Seo中pr值的意思?这是seo学习过程中必须了解的一个常识,pr值越高说明该网页越受欢迎。pr值是什么。影响网页PR值的因素有很多,但主要的有: 一、网站被三大知名网络目录DMOZ,Yahoo和Looksmart收录 众所周知,Google的PageRank系统对那些门户网络目录如DMOZ 、Yahoo和Looksmart尤为器重。特别是对DMOZ。一个网站上的DMOZ链接对Google的PageRank来说,就好象一块金子一样有价值。如果你的网站为ODP收录,则可有效提升你的页面等级。 如果你的网站为Yahoo和Looksmart所收录,那么你的PR值会得到显著提升。如果你的网站是非商业性质的或几乎完全是非商业性质的内容,那么你可以通过https://www.360docs.net/doc/c02861935.html, 使你的网站为著名的网络目录Looksmart所收录。 如果你是一个网站管理员,而你的网站又已经收录在三大知名的开放目录DMOZ、Yahoo和Looksmart中,我想你的网站的PR值一定比较高,而且搜索排名也不会差。 二、Google抓取您网站的页面数量 让搜索引擎尽量多的抓取你网站的网页,这样搜索引擎才会认为你网站的内容非常丰富,因为搜索引擎喜欢内容丰富的网站,才会认为你的网站很重要。而且这些内容最好是原创的文章,因为搜索引擎同样喜欢原创的东西。 三、网站外部链接的数量和质量 Google在计算PR值时,会将网站的外部链接数量考虑进去,但并不是说一个网站的外部链接数越多其PR值就越高,因为网页的PR值并不是简单地由计算网站的外部链接数来决定的,还要考虑外部链接的质量,与相关网站做交换链接的分值要比与一般网站做敛接的分值高。让我们来看一下PR值的计算公式: PR(A)=(1-d)+d(PR(t1)/C(t1)+…+PR(tn)/C(tn)) 其中PR(A)表示的是从一个外部链接站点t1上,依据PageRank系统给你的网站所增

自动舵

自动舵报警面板 其中 其中NO1和NO2表示对应的两只自动舵控制箱。当自动舵控制箱正常运行时,对应的灯会亮。 如果自动舵控制箱没有电源输入,则对应的灯会亮。 当自动舵控制箱和舵机正常运行的时候,对应的灯会亮 某些设备会有“ACT FAIL”灯,灯亮时表示舵机对自动舵发出的指令执行时有大的出入。

自动舵系统内部故障时灯会亮 紧急报警,如使用电罗经操舵时,电罗经断电,灯会亮。 如使用电罗经操舵时,磁罗经断电,灯会亮 磁罗经的偏航报警 警报消除 g 上图右边为模式转换开关,左边为系统选择开关。

1、当模式转换开关在HAND状态时,使用 手轮或者系统选择开关NFU旋钮 进行操作。 若使用手轮,则选择系统选择开关中的FU-1和FU-2(操作时,如果FU-1工作不正常,可迅速切换至FU-2,同理FU-2。) 若使用NFU旋钮,则选择档位(如果一只NFU工作不正常,可迅速切换至另一个。) 2、当模式转换开关在AUTO状态时,使用自动舵操作单元操作。 为选择使用电罗经操舵还是磁罗经操舵

报警消除 这个按钮不要进去设置,里面有初始设置的参数,改动了会影响操舵 低速报警,一般不用特意设置。请根据实际情况选用。 舵角限制,在使用自动舵操舵单元操作时,限制最大舵角 磁罗经偏航报警,设置磁罗经的偏航报警度数以及响应时间 操作模式。PRECISION2灵敏度最高,PRECISION1其次,ECONOMY灵敏度最低 吃水模式 ADJUST菜单,进入后,里面的选项如下(均已翻译),其中,除了1、设置调光和对比度,2、设置电罗经的偏航报警外,其它选项一般不需要改动,改动之后有可能会对正常操舵产生不好影响。 1、设置调光和对比度 2、设置电罗经的偏航报警,此处,以设置电罗经为例,介绍自动舵操作单元调节一个 选项的大致按键操作。 按自动舵操舵单元的,再按,选取第二个选项“OFF HEADING”(即为电罗经偏航报警)。 再按"ENT",“=”变成“<”,此时进行调节,结束之后按“ENT”保存使“<”再变成“=”,再ADJUST退出。 3、设置航向监控器限制角度和时间。 4、显示故障原因 5、设置控制功能 6、初始化控制参数

教学操舵仪

操舵仪模拟器 一、概述 该操舵仪模拟器运用现代控制技术,在开发了经典操舵仪手动、随动控制技术。采用先进的单片机技术操作监控界面,达到智能化水平。该操舵仪模拟器是专为船舶驾驶专业学习、训练用的,具备船舶广泛使用的操舵仪的功能,罗盘可模拟实船的转速和回转惯性。 典型操舵仪DD101 以大型散货船操舵仪为参考模型,实用性强。 二、技术指标 a.显示板:电源指示、运行指示; b.随动舵令发送范围±40°; c.舵角指示值±40°; d. 罗经盘360°、精度1°; e. 操舵方式:随动、应急、自动; f.海况选择:平静、中浪、大浪; g.船速调节::进3、进2、进1、进微速、停、退微速、退1、退2、退3 h.供电源:交流220V ±2%50Hz 80W 三、功能简介 a.应急操舵:搬动操舵开关手柄进行左舵或右舵训练。此时舵角指示器将 显示实际的舵叶方向,如果停止搬动手柄,则舵角指示器将停止在相应的 角度。 b.随动操舵:随动操舵系统是指在操舵者发出操舵指令后,不仅可使舵 叶按指定方向转动,而且可以指定舵叶的转舵角度。在训练时转动随动舵

操舵手轮到某一位置,舵角指示器将同步指示该位置所对应的角度。即此 时舵机将带动舵叶按照一定的速度转到舵角指示器所指示的角度,舵角指 示器将滞后于舵令。 c.自动操舵:自动把定当前航向。 d.船速调节:可模拟船在水中的航行速度。分前进四个档位、停止、后退四个档位。 e.海况调节:可模拟海上天气,分平静、中浪、大浪种状态。 f.航向指示:罗经盘显示船舶的实际航向。通过船速、海况、操舵角度的 选择可使罗经盘相应的转动。 根据教学材料转速公式得出转速如下公式: 转速=海况±(基本值X 船速平方X sin(2 X 操舵角度)) 四、面板介绍 五、使用说明 首先接通总电源开关给系统供电,电源指示灯会亮起。然后启动舵机, 将舵机油泵选择开关打到1#启动或2#启动,相应的指示灯会亮起。之后 将操舵方式选择开关转换到相应的操舵方式上进行操舵。

自动操舵仪操作规程

CSGZ 版本号:QSMS-2 文件编号:QSMR-NA4-D-01 页次:1/1 HQ-系列型自动操舵仪操作规程 一.根据需要将机组选择开关由停止位置转到I或II的位置来接通I或II舵机机组。 二.视情况调整“亮度调节旋钮”使罗经面板航向改正及舵角指示器到所需的亮度。 三.向下拉航向匹配旋钮的保险销并按住航向匹配旋钮,转动该旋钮修正自动舵面板上的航向指示刻度盘与陀螺罗经的同步误差。(无特殊情况勿动该旋钮) 四.手动操舵: a.先将操纵选择开关转到手动位置。 b.操作左及右两个手柄即可操纵左、右两台舵机至所要的舵角位置(舵角指 示器位于操纵台的左边)。 c.当要操某一舵角时,操纵操舵手柄并看住舵角指示至该舵角之前就要松开 手柄,此时舵就转到所要求的舵角位置。 五.随动操舵: a.将操纵选择开关转到随动位置。 b.转动手轮到所要的舵角位置,即可操纵舵机进行左、右操舵。 六.自动操舵: a.当要走某一即定的航向时,先用随动操舵将船首稳定在该航向上。 b.向下拉航向改正旋钮保险销,并按住航向改正旋钮,转动该旋钮使航向改 正显示窗内的航向刻度至所要走的航向。 c.将操纵选择开关转到自动的位置,舵机即可自动操舵。 七.面板上的各旋钮的功能: a.灵敏度调节旋钮(也称天气调节旋钮) 在良好海况下,灵敏度可以调节高些;反之,在恶劣海况下,灵敏度应调低些。 b.比例调节 调节时应根据海况、船舶装载情况和舵叶浸水面积等不同情况而定。海况恶劣、空载、舵叶浸水面积小,应选用高档;风平浪静船舶操纵性能好时用低档。 c.微分调节 重载、旋回惯性大时微分要调大;反之,要调小。海况恶劣,微分作用要调小或调至0。 d.压舵调节 (1)将压舵调节选择开关转到压舵位置,然后调节面板上的压舵旋钮使舵叶 偏转一个固定的角度,以抵消单侧偏航作用。 (2)当有不对称偏航情况下,应将压舵调节选择开关转到积分位置,舵机就 可自动向左或向右进行压舵。 e.航向改变调节 在使用自动舵时用来改变航向。若要向右改变航向5°,按下旋钮,向右转到5°处,待船舶转到给定航向时,指针能自动回零,不需人工复位。 (航向改变调节只供小角度的改向用) f.面板右边的检测旋钮和消音按钮分别用来检测舵机工作状况及消除故障报 警 八.要关闭舵机请将机组选择开关打到停止位置即可。

黑龙江省外贸发展历程与现状分析

黑龙江省外贸发展现状、技术评析与优化研究 目录 摘要1 1 近十年黑龙江省外贸发展现状2 1.1 黑龙江省外贸现状简介3 1.2 黑龙江省外贸商品的优劣势分析3 1.3 黑龙江省的对外贸易条件分析6 1.4 黑龙江省外贸比较优势和贸易条件的关系10 2 黑龙江省外贸比较优势与GDP贡献率的相关性评析11 2.1 黑龙江GDP的贡献率11 2.2 比较优势和GDP 贡献率的相关分析12 3 黑龙江对外贸易发展存在的优势分析14 3.1黑龙江对外贸易优势原因分析16 3.2 黑龙江省对外贸易发展方式转变的结果进行评价16 3.3 黑龙江省对外贸易发展方式转变的原因分析17 3.4 黑龙江省对外贸易发展方式转变的主要指标评价18 4 黑龙江对外贸易发展中存在的问题22 4.1 对外开放程度不足,外贸对经济增长的贡献率低22 4.2 没有良好的环境进行外资吸引,过低的外资流入22 4.3 区位优势发挥不健全,自身的特色贸易并未彻底形成22 4.4 外贸结构与产业结构为了促进良性机制的发展并未形成基本的模式23 5黑龙江对外贸易发展优化措施23 5.1 开拓市场23 5.2 调整结构25 5.3商业贸易多元化发展26 参考文献28

黑龙江省外贸发展现状、技术评析与优化研究 摘要:通过对黑龙江省2004-2013年间外贸进出口数据的分析,对黑龙江省的外贸发展进行简要的分析,建设和发展黑龙江省的经贸区,进行多元建设来进行对外贸易,将会对黑龙江省外贸经济的发展产生极大地促进作用。 关键字:外贸发展黑龙江分析优化 大卫·李嘉图这位英国古典经济学派集大成者在1817年的代表作《政治经济学及赋税原理》中提取出比较优势理论,并在未来百年内将此优势理论称之“国际贸易理论的基石”。在这样的理论指导下,英国顺利完成产业革命,并在19世纪成功成为全球的第一个“世界工厂”。在整个贸易实践中,发展中国家若只是遵循比较优势理论来推动社会的发展,很容易陷入到比较优势陷阱当中。初级产品和劳动密集产品的发展主要集中在发展中国家,从比较优势理论的角度上分析,相比于发达国家的资本和技术密集型产品为主要出口产品的贸易相比处于相当不利位置,甚至有可能会出现贸易利益流失的情况。 现阶段国内对于比较优势理论的研究还不是很多,但是实证研究确实不少,对其研究方法也是角度方法各一。国内主要代表研究作品主要有:张鸿(2006)采用RCA指数和NEPR(纯出口比较优势指数),

自动化控制系统设计方案

自动化控制系统设计方案标准化文件发布号:(9312-EUATWW-MWUB-WUNN-INNUL-DDQTY-KII

自动化控制系统设计方案 一、现地控制软件 现地采集控制软件采用业界领先的平台和面向对象机制的编程语言在数据库作业系统基础上进行高可靠性、实时性的现地控制应用软件 二、主控级 1、数据的采集及处理 接收现地控制单元的上送数据并进行处理及存入数据库,供分析计算、控制调节、画面显示、记录检索、操作指导、打印等使用。数据采集除周期性进行外,在所有时间内,可由操作员或应用程序发命令采集现地控制单元的过程信息。 2、运行监视、控制和调节 运行操作人员能通过上位机,对各闸门开度和启闭机的运行工况进行控制和监视。除了显示各孔闸门的位置图形和开度数据外,还设置“启动”、“停止”两个模拟操作按钮和“上升”、“下降”、“远程/现地”、“通讯状态”等模拟指示。主要内容如下: a、根据要求的过闸流量,计算出闸门当前应开启的高度(在 上下限范围内)电脑提示是否确认,若确认即可启动闸 门; b、闸门启闭控制,根据给定值启闭闸门,到位停止; c图形、表格、参数限值、状态量等画面的选择和调用; d在主控级进行操作时,在屏幕上应显示整个操作过程中的每一步骤和执行情况; 三、打印记录 显示、记录、打印功能 所有监控对象的操作、实时参数都予记录,对故障信号进行事件顺序记录、显示,实行在打印机上打印出来。主要内容如下:

(1)闸门动作过程动态显示; (2)给定开度值显示,闸门位置显示; (3)闸门升降模拟显示图; (4)上、下游水位数据显示 (5)根据上下游水位和闸门开度,自动计算出当前流量,并进行累计 (6)运行显示、打印; 四、通信功能 主控级与现地控制单元采用RS485总线通信,当通讯不正常时,报警显示。 五、现地控制单元 1、实时自动采集闸门开度在现地显示并通过处理后传送至主控层; 2、根据主控层指令,或根据人工输入的合法控闸指令,在满足下列条件的情况下,自动控制闸门的升、降,并运行到指定位置; 3、当转换开关在现地状态时,可对闸门开度进行预置,并通过电控柜的升、降、停按钮实现闸门的启闭; 4、在现地控制单元,通过权限开关,可实现远程/现地切换; 5、保留原人工手动控闸功能,人工与自动并存,以便紧急状态及维护系统时使用。 六、系统组成 (1)系统主要由信息采集与控制、集中监控和信号传输三大部分组成。启闭机室设若干台现地控制柜(PLC),其中信息采集与

发电效率PR计算公式

光伏电站发电效率的计算与监测 1、影响光伏电站发电量的主要因素 光伏发电系统的总效率主要由光伏阵列的效率、逆变器的效率、交流并网效率三部分组成。 1.1光伏阵列效率: 光伏阵列的直流输出功率与标称功率之比。光伏阵列在能量转换与传输过程中影响光伏阵列效率的损失主要包括:组件匹配损失、表面尘埃遮挡损失、不可利用的太阳辐射损失、温度的影响以及直流线路损失等。 1.2逆变器的转换效率: 逆变器输出的交流电功率与直流输入功率之比。影响逆变器转换效率的损失主要包括:逆变器交直流转换造成的能量损失、最大功率点跟踪(MPPT)精度损失等。 1.3交流配电设备效率: 即从逆变器输出至高压电网的传输效率,其中影响交流配电设备效率的损失最主要是:升压变压器的损耗和交流电气连接的线路损耗。 1.4系统发电量的衰减: 晶硅光伏组件在光照及常规大气环境中使用造成的输出功率衰减。 在光伏电站各系统设备正常运行的情况下,影响光伏电站发电量的主要因素为光伏组件表面尘埃遮挡所造成太阳辐射损失。 2、光伏电站发电效率测试原理 2.1光伏电站整体发电效率测试原理 整体发电效率E PR公式为: E PDR PR PT = —PDR为测试时间间隔(t?)内的实际发电量;—PT为测试时间间隔(t?)内的理论发电量;

理论发电量PT 公式中: i o I T I =,为光伏电站测试时间间隔(t ?)内对应STC 条件下的实际有效发电时间; -P 为光伏电站STC 条件下组件容量标称值; -I 0为STC 条件下太阳辐射总量值,Io =1000 w/m 2; -Ii 为测试时间内的总太阳辐射值。 2.2光伏电站整体效率测试(小时、日、月、年) 气象仪能够记录每小时的辐射总量,将数据传至监控中心。 2.2.1光伏电站小时效率测试 根据2.1公式,光伏电站1小时的发电效率PR H i H i PDR PR PT = 0I I i i T = —PDRi ,光伏电站1小时实际发电量,关口计量表通讯至监控系统获得; —P ,光伏电站STC 条件下光伏电站总容量标称值; —Ti ,光伏电站1小时内发电有效时间; —Ii ,1小时内最佳角度总辐射总量,气象设备采集通讯至监控系统获得; —I 0=1000w/m 2 。 2.2.2光伏电站日效率测试 根据气象设备计算的每日的辐射总量,计算每日的电站整体发电效率PR D D PDR PR PT = 0I I T = —PDR ,每日N 小时的实际发电量,关口计量表通讯至监控系统获得; —P ,光伏电站STC 条件下光伏电站总容量标称值; —T ,光伏电站每日发电有效小时数

自动舵

PR-7000-L 自动舵 第一章 综述 1.1介绍 本自动舵作为一款简便的操纵仪,具有4种操作模式:计算机辅助操纵(CPU)、手动操纵(HAND)、应急操纵(NFU)及遥控操纵(RC-1、RC-2)(可选择);并可只通过转换MODE SELECTOR SWITCH(模式选择开关)来进行选择。另外,通过按下在MODE SELECTOR SWICH键左边的MODE SELECTOR PUCH BUTTON SWICH(模式选择按钮)操纵CPU选择三种不同的操作模式:自动舵(AUTO)、积分舵(RATE)、自动导航(NA V:选择) 具有双重模式的自适应舵具有两套完整的系统,SYSTEM SELECTOR SWITCH(系统选择开关)有以下几档:NO.1-OFF-NO.2,当开关转至所需运行的系统位时,系统会自动进入运行状态,而当开关转到OFF档时,整个系统将停止工作。 自动舵是一套使船舶维持在预先设定的航向上航行的自动操舵控制装置,近来,对于自动舵的性能评估已从“能使船舶精确维持航向”变为“在各种情况下,最省油的操纵”。然而,船舶的操纵取决于船舶的尺度及具体的技术指标,同时也随着船舶的航速,装载情况及海况的不同而不同。因此,对于自动舵的评价没有明确的标准。 为了解决这些问题,本款自适应舵引入了性能测试功能以测定在自动舵协助的情况下,能节省的能量。 本款自适应舵有如下特性: ;控制操纵装置运用的是一套微处理器并且完全数字化; ;基本控制方式是自适应控制系统反馈模型 ;根据船舶速度和装载状况的改变能迅速调整,能够在各种状态下,进行最佳的操纵。 ;三种航向维持模式,可根据实际,适用于各种海况:OPEN SEA(开放水域模式)适用于只需小幅度操纵导航的情况,如在大洋上航行,为的是节省燃料的费用。CONFINED(限制模式)适用于大幅度的操纵情况,如在狭水道中航行,为的是提高航向维持的精确性。 比例舵(RATE)作为一种标准的操纵模式,可以通过旋转舵轮给出的指令指示,按设定的转向速率来控制船舶。 自动导航系统(NA V)模式结合了计划航向导航系统-TRACKING PILOT(可选择安装),并可与其他制造商的导航系统结合在一起。人工操舵(HAND steering)可通过操纵舵轮以获得所需的舵角,从一舷满舵至另一舷满舵。 自动及人工操纵(CPU & HAND操纵)是由设置在舵轮台内部的放大器单元控制。该传感器采用的是无接触型线性同步电动机且电子线路也采用了许多半导体结构以完善应用无接触式控制部分的功能,而使其能达到完美。这种自动及人工式操舵方式被称为随动控制。因为它能使舵页的转动角度与所操舵令一致。 应急舵(NFU)是通过转换开关,接通或切断电源的方式而非通过放大电路传输电能的方式来控制电磁阀。由于去除了舵角指令的分级及反馈信号电路。所以使用旋转开关来接通或切断电源进行控制的方式称为非随动控制方式。 为了保证航行安全,指示灯及警报设备应处于完好状态。指示灯显示的是自动舵的工作状态。警报设备采用了视觉报警和听觉报警的方式。 动力单元的控制舵机为液压式。当然,也可选用陀螺罗经仪型舵轮台,并在其内部安装TG-5000型陀螺罗经。 1.2组成 1.2.1部件 舵轮台(2套系统)1部液压动力系统 2部 电动机启动设备2部液压缸及舵页复示系统 2部 1.2.2基本参数 1)船舶电力供应(及泵电动机) 交流440V或220V,三相,50Hz或60Hz,最大2.5KV A 直流24V,最大电流2A 2)额定值 电压波动+10%至-15% 频率变化+5% 环境温度-20°C至+50°C 3)操舵模式 微处理器(CPU)(自适应舵通用名) ;自动(陀螺罗经操舵仪)(可选择此罗经操舵仪) ;积分(恒定转速操舵仪)

雷松公司安许茨自动舵接口和参数的设置及工作模式的选择

安许茨自动舵参数设置和操作技巧 电报员 “安许茨操舵控制系统”性能优良、设计先进、工作模式多样、参数设置灵活、操作简单方便,各种外设接口不仅满足当前规范要求,而且为未来航行设备的升级换代预留了拓展空间。特别是安许茨操舵控制系统除了保留传统意义上的非随动杆和随动手轮外,自动舵控制中的全部操作模式,包括人工操作模式都可以通过触摸健或旋钮在电脑显示屏前完成。各种航行参数,如:船首向、航向、船速、舵角、转舵速率、航向偏差、航路偏差、船舶实际航向与航路航向偏差等都能直观地显示在电脑屏幕上。在实际应用中,只要接入适当的GYRO、LOG、GPS或VTG、VHV等外部设备信号,并对操作参数和模式及接口正确选择,安许茨自动舵便能发挥它的航向控制、航路控制、自动航行、自动转向、遥控驾驶、人工控制等功能。 一.工作模式 安许茨自动舵控制系统(PILOTSTAR D)有六种操作模式:1. 航向控制模式.2. 航向控制修正模式.3.人工控制模式. 4.航路控制模式.5. 自动转向模式.6. 航向、航路遥控模式. 航向控制模式:就是传统意义上的通过设置工作参数使船首自动跟踪航向的工作模式。航向控制修正模式:根据不同海况,设置另一套工作参数的航向控制模式。 人工控制模式:与传统意义上的通过非随动杆或随动手轮人工控制舵角不同,当船舶发生偏航或做避让动作时,只需通过触摸健或旋钮在电脑显示屏前来完成对舵角的控制。 航路控制模式:通过GPS的APB语句格式发送预先设置的航路段信息给自动舵,控制船舶的航路和航向的工作模式。 自动转向模式:周期性的按照预先设定的某一固定航向变化(范围:10°-180°)自动转向的工作模式。适用于拖轮、渔船、游艇及工程和搜救作业等。 航向、航路遥控模式:船舶的航向和航路控制无需人工设置,而由航行系统和外部航路导航系统自动确定的工作模式。 二.流程图: 因原版英文说明书较厚,且包含许多前沿专业技术术语和新的理论和观点。对初次接触该设备的驾驶员,即使具有多年航海经验,研读它并融会贯通灵活应用,存在一定难度。针对这一现象和当前大多数船舶状况,笔者总结该设备的“四、四、四、二”操作法,包含参数设置,模式选择与转换并绘制成流程图,即直观又系统,免除了研读原版英文说明书烦恼,使初次接触该设备驾驶员能用很快掌握操作方法。 参数设置健为: 模式选择与转换的操作健为: 流程 图如 下:

4-5 对流传热系数关联式

知识点4-5 对流传热系数关联式 【学习指导】 1.学习目的 通过本知识点的学习,了解影响对流传热系数的因素,掌握因次分析法,并能根据情况选择相应的对流传热系数关联式。理解流体有无相变化的对流传热系数相差较大的原因。 2.本知识点的重点 对流传热系数的影响因素及因次分析法。 3.本知识点的难点 因次分析法。 4.应完成的习题 4-11 在一逆流套管换热器中,冷、热流体进行热交换。两流体进、出口温度分别为t1=20℃、t2=85℃;T1=100℃、T2=70℃。当冷流体流量增加一倍时,试求两流体的出口温度和传热量的变化情况。假设两种情况下总传热系数不变,换热器热损失可忽略。 4-12 试用因次分析法推导壁面和流体间自然对流传热系数α的准数方程式。已知α为下 列变量的函数: 4-13 一定流量的空气在蒸汽加热器中从20℃加热到80℃。空气在换热器的管内湍流流动。压强为180kPa的饱和蒸汽在管外冷凝。现因生产要求空气流量增加20%,而空气的进出口温度不变,试问应采取什么措施才能完成任务,并作出定量计算。假设管壁和污垢热阻可忽略。 4-14 常压下温度为120℃的甲烷以10m/s的平均速度在列管换热器的管间沿轴向流动,离开换热器时甲烷温度为30℃,换热器外壳内径为190mm,管束由37根ф19×2的钢管组成,试求甲烷对管壁的对流传热系数。

4-15 温度为90℃的甲苯以1500kg/h的流量流过直径为ф57×3.5mm、弯曲半径为0.6m的蛇管换热器而被冷却至30℃,试求甲苯对蛇管的对流传热系数。 4-16 流量为720kg/h的常压饱和蒸汽在直立的列管换热器的列管外冷凝。换热器的列管直径为ф25×2.5mm,长为2m。列管外壁面温度为94℃。试按冷凝要求估算列管的根数(假设列管内侧可满足要求)。换热器的热损失可以忽略。 4-17 实验测定列管换热器的总传热系数时,水在换热器的列管内作湍流流动,管外为饱和蒸汽冷凝。列管由直径为ф25×2.5mm的钢管组成。当水的流速为1m/s时,测得基于管外表面积的总传热系数为2115W/(m2.℃);若其它条件不变,而水的速度变为1.5m/s时,测得系数为2660 W/(m2.℃)。试求蒸汽冷凝的传热系数。假设污垢热阻可忽略。 对流传热速率方程虽然形式简单,实际是将对流传热的复杂性和计算上的困难转移到对流传热系数之中,因此对流传热系数的计算成为解决对流传热的关键。 求算对流传热系数的方法有两种:即理论方法和实验方法。前者是通过对各类对流传热现象进行理论分析,建立描述对流传热现象的方程组,然后用数学分析的方法求解。由于过程的复杂性,目前对一些较为简单的对流传热现象可以用数学方法求解。后者是结合实验建立关联式,对于工程上遇到的对流传热问题仍依赖于实验方法。 一、影响对流传热系数的因素 由对流传热的机理分析可知,对流传热系数决定于热边界层内的温度梯度。而温度梯度或热边界层的厚度与流体的物性、温度、流动状况以及壁面几何状况等诸多因素有关。 1.流体的种类和相变化的情况 液体、气体和蒸汽的对流传热系数都不相同,牛顿型流体和非牛顿型流体也有区别。本书只限于讨论牛顿型流体的对流传热系数。 流体有无相变化,对传热有不同的影响,后面将分别予以讨论。 2.流体的特性

相关文档
最新文档