Файл: Microcontroller based applied digital control (D. Ibrahim, 2006).pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 14.06.2025

Просмотров: 3257

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

4 INTRODUCTION

+V

Tachogenerator

+

Motor

Difference Power

amplifier amplifier

Potentiometer

Figure 1.6 Typical analog speed control system

The purpose of developing the digital control theory is to be able to understand, design and build control systems where a computer is used as the controller in the system. In addition to the normal control task, a computer can perform supervisory functions, such as reading data from a keyboard, displaying data on a screen or liquid crystal display, turning a light or a buzzer on or off and so on.

Figure 1.6 shows a typical closed-loop analog speed control system where the desired speed of the motor is set using a potentiometer. A tachogenerator produces a voltage proportional to the speed of the motor, and this signal is used in a feedback loop and is subtracted from the desired value in order to generate the error signal. Based on this error signal the power amplifier drives the motor to obtain the desired speed. The motor will rotate at the desired speed as long as the error signal is zero.

The equivalent digital speed control system is shown in Figure 1.7. Here, the desired speed is entered from the keyboard into the digital controller. The controller also receives the converted output signal of the tachogenerator. The error signal is calculated by the controller by subtracting the tachogenerator reading from the desired speed. A D/A converter is then used to convert the signal into analog form and feed the power amplifier. The power amplifier then drives the motor.

Since the speed control can be achieved by using an analog approach, one is tempted to ask why use digital computers. Digital computers in 1960s were very large and very expensive devices and their use as controllers was not justified. They could only be used in very large

Tachogenerator

Digital

D/A

Motor

Computer

Power amplifier

A/D

Keyboard (Set-point)

Figure 1.7 Digital speed control system

CENTRALIZED AND DISTRIBUTED CONTROL SYSTEMS

5

and expensive plants, such as large chemical processing plants or oil refineries. Since the introduction of microprocessors in the early 1970s the cost and size of digital computers have been greatly reduced. Early microprocessors, such as the Intel 8085 or the Mostek Z80, were very limited and required several chips before they could be used as processing elements. The required chips were read-only memory (ROM) to store the user program, random-access memory (RAM) to store the user data, input–output (I/O) circuitry, A/D and D/A converters, interrupt logic, and timer circuits. By the time all these chips were put together the chip count, power consumption, and complexity of the basic hardware were considerable. These controllers were in the form of microcomputers which could be used in many medium and large digital control applications.

Interest in digital control has grown rapidly in the last several decades since the introduction of microcontrollers. A microcontroller is a single-chip computer, including most of a computer’s features, but in limited sizes. Today, there are hundreds of different types of microcontrollers, ranging from 8-pin devices to 40-pin, or even 64or higher pin devices. For example, the PIC16F877 is an 8-bit, 40-pin microcontroller with the following features:

operation up to 20 MHz;

8K flash program memory;

368 bytes RAM memory;

256 bytes electrically erasable programmable read-only memory (EEPROM) memory;

15 types of interrupts;

33 bits of parallel I/O capability;

2 timers;

universal synchronous–asynchronous receiver/transmitter (USART) serial communications;

10-bit, 8-channel A/D converter;

2 analog comparators;

33 instructions;

programming in assembly or high-level languages;

low cost (approximately $10 each).

Flash memory is nonvolatile and is used to store the user program. This memory can be erased and reprogrammed electrically. EEPROM memory is used to store nonvolatile user data and can be written to or read from under program control. The microcontroller has 8K program memory, which is quite large for control based applications. In addition, the RAM memory is 368 bytes, which again is quite large for control based applications.

1.3 CENTRALIZED AND DISTRIBUTED CONTROL SYSTEMS

Until the beginning of 1980s, computer control was strictly centralized. Usually a single large computer or minicomputer (e.g. the DEC PDP11 series) was used to control the plant. The computer, associated power supplies, input–output, keyboard and display unit were all situated in a central location. The advantages of centralized control are as follows:

It is easy to manage the computer.

Only one computer is used.

Less number of people are required.


6 INTRODUCTION

In a centralized control system, the controller algorithm is implemented in a single central computer. Hence, all sensors, actuators, input units and output units must be connected directly to this central computer.

Today, distributed control is more widely used. A distributed control system (DCS) consists of a number of computers installed at different locations, each performing an independent control action. Distributed control has emerged as a result of the sharp decrease in price, and the consequent widespread use, of computers. Also, the development of computer networks has made it possible to interconnect computers in a local area network (LAN), as well as in a wide area network (WAN). The main advantages of DCSs are as follows:

A higher performance is obtained from a distributed system than from a centralized control system.

A distributed system is more reliable than a centralized system. In the case of a centralized system, if the computer fails, the whole plant becomes unusable. In a DCS, if one computer fails, only a small part of the plant will be affected and the load of the failed computer can usually be distributed among the other computers.

A DCS can easily be expanded by adding more computers to the network. For example, if 10 computers are used to control the temperature of 10 ovens, then if the number of ovens is increased to 15, it is easy to add five more computers to the network.

A DCS is more flexible than a centralized control system as it can be easily adjusted to plant requirements.

In a DCS the sensors and actuators can be connected to local computers which can execute localized controller algorithms. Thus, the local computers in a distributed control environment are usually used for direct digital control (DDC). In a DDC application the computer is used only to carry out the control action for the plant. It is also possible to add some level of supervisory control action to a DDC computer, such as displaying the values of sensors, inputs and outputs.

Distributed control systems are generally used as client–server systems. In such a system one computer (or more if necessary) is designated as the server and carries out the common control operations. Other computers in the system are called clients and they obey and implement the instructions they receive from the master computer. For example, the task of a client computer could be to receive and format analog data from a sensor, and then pass this data to the server computer every second.

Distributed control systems usually exist within finite boundaries, such as within a factory complex, and all the computers communicate with each other using a LAN cable. Wireless LAN systems are becoming popular, and there is no reason why a DCS cannot be constructed using wireless LAN technology. Using wireless, system reconfiguration is as easy as just adding or removing a computer.

1.4 SCADA SYSTEMS

The term SCADA is an abbreviation for supervisory control and data acquisition. SCADA systems integrate the data acquisition and system monitoring and control activities using graphical software packages. A SCADA system is nothing but a customized graphical applications

HARDWARE REQUIREMENTS FOR COMPUTER CONTROL

7

program with all the necessary hardware components. It can be developed using the popular visual programming languages such as Visual C++ or Visual Basic. Good human–computer interface techniques should be employed in the design of the user interface. Alternatively, graphical programming languages such as Labview or VisiDaq can be used to create powerful, user-friendly SCADA systems.

In a SCADA system the user can have access to a graphical screen in order to monitor or change a setting in the plant. SCADA systems consist of both hardware and software and are usually implemented using personal computers (PCs). Typical hardware includes the computer, keyboard, touch screen, sensors and actuators. The software is in the form of a graphical user interface, where parts of the plant, sensor data and actuator data can all be displayed in various colours on a screen. The advantage of a SCADA system is that the user can easily monitor the status of the overall system. It is important that a SCADA system should be secure and password protected to avoid unauthorized access to the control screens.

1.5 HARDWARE REQUIREMENTS FOR COMPUTER CONTROL

1.5.1 General Purpose Computers

In general, although almost any digital computer can be used for digital control there are some requirements that should be satisfied before a computer is used for such an application. Today, the majority of small and medium scale DDC-type applications are based on microcontrollers which are used as embedded controllers. Applications where user interaction and supervisory control are required are commonly designed around the standard PC hardware.

As shown in Figure 1.8, a general purpose computer consists of the following basic building elements:

central processing unit (CPU);

program memory;

data memory;

input–output devices.

The CPU is the part which contains the arithmetic and logic unit (ALU), the control unit (CU) and the general purpose registers (GPR). The ALU consists of the logic circuitry necessary to carry out arithmetic and logic operations, for example to add or subtract numbers, to compare numbers and so on. Some ALU units are equipped to carry out multiplication and division and floating point mathematical operations. The CU supervises the operations within the CPU, fetches instructions from the program memory, decodes these instructions and controls the ALU and other parts of the computer so that the required operations can be implemented. The GPR are a set of fast registers which are generally used to carry out fast operations within the CPU.

The program memory of a general purpose computer is usually an external unit and attached to the computer via the data bus and the address bus. A bus is a collection of conductors which carry electrical signals. The data bus is a bidirectional bus which carries the data to be sent or received between the CPU and the other parts of the computer. The size of this bus is 8 bits in most microprocessors and microcontrollers. Some microcontrollers have data buses that are 16 or even 32 bits wide. Minicomputers and mainframe computers usually have 64 or even higher data widths. The address bus is a unidirectional bus which is used to address the peripheral


8 INTRODUCTION

CPU

CU

ALU

GPR

Data Bus

Address Bus

Control Bus

Program

Data

Inputs

Outputs

Memory

Memory

Figure 1.8 Schematic of a general purpose computer

devices attached to the computer. For example, when data is to be written to the memory the address of the memory location is sent on the address bus and the actual data byte is sent on the data bus. The program memory is usually a nonvolatile memory, such as electrically programmable read-only memory (EPROM), EEPROM or flash memory. EPROM memory can be programmed using a suitable programmer device. This type of memory has to be erased using an ultraviolet light source before the contents can be changed. EEPROM memory can be programmed and erased by sending electrical signals to the memory. The disadvantage of this memory is that it is usually a slow process to write or read data from an EEPROM memory. Currently, flash memory is one of the most popular types of nonvolatile memory used. Flash memory is fast and can be erased under program control.

The data memory is usually a volatile memory, used to store the user data. RAM type memories are commonly used for this purpose. The size of this memory can vary from several tens of kilobytes to tens of gigabytes.

Minicomputers and larger computers are equipped with auxiliary storage mediums such as hard disks and magnetic tapes. These devices provide bulk storage for programs and data. Magnetic tape is usually used to store the entire contents of a hard disk for backup purposes.

Input–output devices are also known as the peripheral devices. Many different types of input devices – scanner, camera, keyboard, microphone and mouse – can be connected to the computer. The output devices can be printers, plotters, speakers, visual display units and so on.

General purpose computers are usually more suited to data processing type applications. For example, a minicomputer can be used in an office to provide word processing. Similarly, a large computer can be used in a bank to store and manipulate the accounts of thousands of customers.

1.5.2 Microcontrollers

A microcontroller is a single-chip computer that is specifically manufactured for embedded computer control applications. These devices are very low-cost and can be used very easily


SOFTWARE REQUIREMENTS FOR COMPUTER CONTROL

9

in digital control applications. Most microcontrollers have the built-in circuits necessary for computer control applications. For example, a microcontroller may have A/D converters so that the external signals can be sampled. They also have parallel input–output ports so that digital data can be read or output from the microcontroller. Some devices have built-in D/A converters and the output of the converter can be used to drive the plant through an actuator (e.g. an amplifier). Microcontrollers may also have built-in timer and interrupt logic. Using the timer or the interrupt facilities, we can program the microcontroller to implement the control algorithm accurately.

Microcontrollers have traditionally been programmed using the assembly language of the target device. As a result, the assembly languages of the microcontrollers manufactured by different firms are totally different and the user has to learn a new language before being able program a new type of device. Nowadays microcontrollers can be programmed using highlevel languages such as BASIC, PASCAL or C. High-level languages offer several advantages compared to the assembly language:

It is easier to develop programs using a high-level language.

Program maintenance is much easier if the program is developed using a high-level language.

Testing a program developed in a high-level language is much easier.

High-level languages are more user-friendly and less prone to making errors.

It is easier to document a program developed using a high-level language.

In addition to the above advantages, high-level languages have some disadvantages. For example, the length of the code in memory is usually larger when a high-level language is used, and the programs developed using the assembly language usually run faster than those developed using a high-level language.

In this book, PIC microcontrollers are used as digital controllers. The microcontrollers are programmed using the high-level C language.

1.6 SOFTWARE REQUIREMENTS FOR COMPUTER CONTROL

Computer hardware is nowadays very fast, and control computers are generally programmed using a high-level language. The use of the assembly language is reserved for very special and time-critical applications, such as fast, real-time device drivers. C is a popular language used in most computer control applications. It is a powerful language that enables the programmer to perform low-level operations, without the need to use the assembly language.

The software requirements in a control computer can be summarized as follows:

the ability to read data from input ports;

the ability to send data to output ports;

internal data transfer and mathematical operations;

timer interrupt facilities for timing the controller algorithm.

All of these requirements can be met by most digital computers, and, as a result, most computers can be used as controllers in digital control systems. The important point is that it is not justified and not cost-effective to use a minicomputer to control the speed of a motor, for example. A microcontroller is much more suitable for this kind of control application. On

10 INTRODUCTION

the other hand, if there are many inputs and many outputs, and if it is required to provide supervisory tasks as well then the use of a minicomputer can easily be justified.

The controller algorithm in a computer is implemented as a program which runs continuously in a loop which is executed at the start of every sampling time. Inside the loop, the desired reference value is read, the actual plant output is also read, and the difference between the desired value and the actual value is calculated. This forms the error signal. The control algorithm is then implemented and the controller output for this sampling instant is calculated. This output is sent to a D/A converter which generates an analog equivalent of the desired control action. This signal is then fed to an actuator which in turn drives the plant to the desired point.

The operation of the controller algorithm, assuming that the reference input and the plant output are digital signals, is summarized below as a sequence of simple steps:

Repeat Forever

When it is time for next sampling instant

Read the desired value, R

Read the actual plant output, Y

Calculate the error signal, E = R − Y

Calculate the controller output, U

Send the controller output to D/A converter

Wait for the next sampling instant

End

Similarly, if the reference input and the plant output are analog signals, the operation of the controller algorithm can be summarized as:

Repeat Forever

When it is time for next sampling instant

Read the desired value, R, from A/D converter

Read the actual plant output, Y , from the A/D converter

Calculate the error signal, E = R − Y

Calculate the controller output, U

Send the controller output to D/A converter

Wait for the next sampling instant

End

One of the important features of the above algorithms is that once they have been started they run continuously until some event occurs to stop them or until they are stopped manually by an operator. It is important to make sure that the loop is run continuously and exactly at the same times, i.e. exactly at the sampling instants. This is called synchronization and there are several ways in which synchronization can be achieved in practice, such as:

using polling in the control algorithm;

using external interrupts for timing;

using timer interrupts;