Circuit Negma

C++, C, VB.NET, PCB, Electronics, Circuit Design

Archive for March, 2006

How to test three-phase devices

Posted by Circuit Negma on March 28, 2006


How to test three-phase devices

Three-phase pumps, compressors, and the like, must be connected in proper phase sequence to avoid damage. Typically such devices will draw less current when connected wrong, and can be easily checked with an amprobe (clip on ammeter) for current draw. For example, testing an air conditioner that has a scroll compressor, one will find that if it’s hooked up in the wrong phase sequence, it will draw too little current, and thus any two wires can be switched to change the phase sequence.

There are special small pocket sized motors that are used to check phase sequence by checking the direction of rotation of the motor. These are expensive. A cheaper alternative is to use three neon lights, and whip the head (or eyes) in a quick motion past them to see which way the phase sequence is going.

Posted in Electronics | Leave a Comment »

DMM: Diode testing procedures

Posted by Circuit Negma on March 28, 2006


Posted in Electronics | Leave a Comment »

Fault Finding – Three Phase Induction Motors

Posted by Circuit Negma on March 28, 2006


Fault Finding – Three Phase Induction Motors

Motor will not start.
Supply or Starter trips out at start.
Motor Starts but has not torque.
Motor does not reach full speed.
Motor takes a long time to reach full speed.
Motor overheating.
No load amps in excess of Full load amps.
Mechanical noise or Vibration.
Noisy bearings.
Bearing Overheating
Motor amps in excess of nameplate full load amps on load.
Excessive electrical noise.
Unbalanced amps in different phases when motor on load.
Motor runs wrong direction.

Problem Possible Cause Tests Solution
Motor will not start.

  1. Fault with supply.
  2. Motor or load locked up.
  3. Wrong connections in control circuit.

  1. Check for correct voltage at motor terminals.
  2. Make sure motor and load are free to turn.
  3. Check to ensure contactors operate.

  1. Fit new fuses, reset curcuit breakers, etc.
  2. Remove clamps, locks, etc.
  3. Sort out control circuit.
Supply or Started trips out at start.

  1. Wrong or loose connections.
  2. Motor overloaded.
  3. Intertia of load to high.
  4. Low Voltage due to volt drop in cables
  5. Overload or circuit breaker incorrectly set or sized.

  1. Check all lugs are properly crimped or soldered, and connections are tight.
  2. Check load performance data against motor performance data.
  3. Measure voltage at motor terminals while motor starting.
  4. Check settings of overload and circuit breaker and allow for starting current

  1. Fix up connections.
  2. Change motor for correct size.
  3. Change cables for correct size.
  4. Correct setting of overload or breaker or change.
Motor starts but has no torque. Motor does not reach full speed or takes a long time to accelerate.

  1. Incorrect connection.
  2. Delta wound motor connect in star.
  3. Star/Delta starter staying in Star.
  4. Inertia of load to high.
  5. Motor overloaded.
  6. Low voltage due to volt drop in cables.

  1. Check connection diagram and nameplate data.
  2. Check load performance data against motor performance data.
  3. Measure voltage at motor terminals while motor starting

  1. Sort out and correct connections.
  2. Check timer and starter control circuit.
  3. Change motor for correct size.
  4. Change cables for correct size.
Motor Overheating.

  1. Motor overloaded.
  2. Ineffective cooling.
  3. Excessive ambient.
  4. Wrong connection.
  5. Delta wound motor in star.
  6. Motor “Single Phasing”.
  7. Wrong voltage or frequency.
  8. Supply voltage unbalanced.

  1. Check load performance data.
  2. Check fan and air flow and temperature of air. Look for build up of dirt.
  3. Check connection diagram and nameplate data.
  4. Check volts and amps in all three phases.
  5. Check nameplate
  6. Measure phase to phase voltage accurately

  1. Fix problem with load or fit larger motor.
  2. Clean motor. Sort out cooling of air temp. and flow.
  3. Sort out connections.
  4. Restore supply to all phases.
  5. Correct voltage or frequency.
  6. Balance supply or accept unbalance.
No load amps in excess of Full load amps

  1. Incorrect connection
  2. Star wound motor connection Delta.
  3. Voltage in excess of nameplate.
  4. Motor supplied for different voltage or frequency.

    1 & 2. Check connection diagram and nameplate data.

    3. Measure voltage at motor terminals.
    4. Compare supply voltage and frequency to nameplate.

    1 & 2. Sort out and correct connections at motor terminals.
    3. Correct supply voltage
    4. Change motor for correct voltage and frequency

Mechanical Noise or Vibration. Noisy bearings. Bearings overheating.

  1. Thrust from load or misalignment.
  2. Damaged bearings, too much grease, no grease, or foreign matter in grease.
  3. Rotor pulling or foreign matter in air gap.
  4. Out of balance load, coupling or pulley.
  5. Excessive belt pull.
  6. Motor foundations not rigid.

    1. Check gap between coupling halves and alignment.
    2 & 3. Turn shaft slowly by hand and feel for roughness or stiffness. Check for bent shaft or fan rubbing.
    4. Run motor disconnected from load and then with pulley or coupling removed.
    5. Run motor without belts.
    6. Check design and construction foundations

    1. Re-align couplings
    2 & 3. Clean bearing housing, change bearings and repack with fresh grease.
    4. Fix up out of balance items
    5. Loosen belt tension
    6. Increase strength of foundations

Motor amps in excess of nameplate full load amps on load

  1. Motor overloaded.
  2. Low supply voltage.
  3. Wrong voltage or frequency.
  4. Wrong Connections.
  5. Motor ‘Single-Phasing’.
  6. Supply voltage unbalanced.
  7. Motor Speed not matched to load.

    1. Check load and performance data.
    2. Measure voltage at motor terminals
    3. Check nameplate.
    4. Check nameplate
    5 & 6. Check volts and amps in all three phases.
    7. Measure motor speed and check load speed requirements.

    1. Fix problem with load or fit larger motor.
    2. Fix problem, maybe with larger cables.
    3. Correct voltage or frequency.
    4. Sort out and correct.
    5 & 6. Restore balanced supply to all three phases.
    7. Change motor for correct motor speed.

Excessive electric noise

  1. Wrong connections.
  2. Wrong voltage.
  3. Motor ‘Single-Phasing’.

    1. Check connections
    2. Check voltage with nameplate
    3. Check volts with amps in all three phases.

    1. Fix up connections
    2. Correct voltage.
    3. Restore supply to all three phases.

Unbalanced amps in different phases when motor loaded

  1. Unbalanced supply voltage

  1. Measure phase to phase voltage accurately

  1. Balance supply or accept unbalance
Motor runs in wrong direction

  1. Wrong connections.

  1. Watch shaft rotation

  1. Swop and two phases of supply.
 

Posted in Uncategorized | 19 Comments »

A summary of useful Linux commands

Posted by Circuit Negma on March 24, 2006


Posted in Uncategorized | Leave a Comment »

solid geometry

Posted by Circuit Negma on March 22, 2006


Posted in Uncategorized | Leave a Comment »

quantum interrogation

Posted by Circuit Negma on March 22, 2006


Sometimes called interaction-free measurement, quantum interrogation is a technique that makes use of wave-particle duality (in this case, of photons) to search a region of space without actually entering that region of space.

Utilizing two coupled optical interferometers, nested within a third, Kwiat’s team succeeded in counterfactually searching a four-element database using Grover’s quantum search algorithm.

“By placing our photon in a quantum superposition of running and not running the search algorithm, we obtained information about the answer even when the photon did not run the search algorithm,” said graduate student Onur Hosten, lead author of the Nature paper. “We also showed theoretically how to obtain the answer without ever running the algorithm, by using a ‘chained Zeno’ effect.”

Posted in Uncategorized | Leave a Comment »

Tax Calculator

Posted by Circuit Negma on March 20, 2006


      

/*
 *  Copyright © 1997-2003 Metrowerks Corporation.  All Rights Reserved.
 *
 *	Created By: Circuit Negma
 *
 *	Date	  : March 20, 2006
 *
 *	File	  : ch3_tax.cpp
 *
 *	Description: calculate taxes.
 */

// Declare Header Files
#include <iostream>
#include <iomanip>
#include <fstream>
#include <string.h>
using namespace std;

	// Define Function dCheck() to check for double numbers.
	double dCheck()
	{
		bool flag;
		double i;
		 	
 		flag = cin >> i;
 
		 while (!flag)
		 {
		       cout << endl;
		       cin.clear();
		       cin.ignore(500, '\n');
		       cout << "this is not a number" << flush << endl;
		       cout << "please enter a number again: " << flush;
		       flag = cin >> i;
		       
		}
	    
	    return i;

	}


//***************************************************************
//***************************************************************
//***************** Build in Function main() ********************

int main()
{
	
	// Declare Fixed Variables
	static const int	fedinTax = 15;		// percentage
	static const double	stateTax = 3.5;		// percentage
	static const double	ssTax	 = 5.75;	// percentage
	static const double	mmTax	 = 2.75;	// percentage
	static const int	pp	 = 5;		// percentage
	static const int	hi	 = 75;		// Dollar
	
	// Declare Input Variables
	double grossAmount;
	string nameUser;
	char FirstName[100];
	char lastName[100];
	char FileName[100];
	
	// Declare Output Variables
	double FederalTax, SteTax;
	double SoSecTax, MedicareTax;
	double PensionPlan;
	double netPay;
	
	// Declare File Stream
	ofstream outData;
	
	// Get Data from user
	cout << fixed << showpoint << setprecision(2);
	cout << flush << endl;
	cout << "Please enter your FIRST name: " << flush;
	cin >> FirstName;
	cout << endl;
	cout << "Please enter your LAST name: " << flush;
	cin >> lastName;
	cout << endl;
	cout << "Please, Enter the Gross Income: " << flush;
	grossAmount = dCheck();
	
	// Creat output file
	strcpy(FileName, FirstName);
	strcat(FileName, lastName);
	strcat(FileName, ".txt");
	outData.open(FileName);

	// Print out some informations
	cout << flush << endl;
	outData << flush << endl;
	
	cout << setw(35) << left << setfill('.') << "Federal Income Tax: "
		 << " " << fedinTax << right << setw(3) << setfill(' ') << "%" << flush << endl;	
	outData	<< setw(35) << left << setfill('.') << "Federal Income Tax: "
		 	<< " " << fedinTax << right << setw(3) << setfill(' ') << "%" << flush << endl;	
	
	cout << setw(35) << left << setfill('.') << "State Tax: "
		 << " " << stateTax << "%" << flush << endl;
	outData	<< setw(35) << left << setfill('.') << "State Tax: "
		 	<< " " << stateTax << "%" << flush << endl;
	 
	cout << setw(35) << left << setfill('.') << "Social Security Tax: "
		 << " " << ssTax << "%" << flush << endl;	
	outData	<< setw(35) << left << setfill('.') << "Social Security Tax: "
		 	<< " " << ssTax << "%" << flush << endl;	
	
	cout << setw(35) << left << setfill('.') << "Medicare/Medicaid Tax: "
		 << right << " " << setw(4) << mmTax << "%" << flush << endl;
	outData	<< setw(35) << left << setfill('.') << "Medicare/Medicaid Tax: "
		 	<< right << " " << setw(4) << mmTax << "%" << flush << endl;
		 
	cout << setw(35) << left << setfill('.') << "Pension Plan: "
		 << " " << pp << right << setw(4) << setfill(' ') << "%" << flush << endl;	
	outData	<< setw(35) << left << setfill('.') << "Pension Plan: "
		 	<< " " << pp << right << setw(4) << setfill(' ') << "%" << flush << endl;	

	cout << setw(35) << left << setfill('.') << "Health Insurance: "
		 << " $" << hi << flush << endl;	
	outData	<< setw(35) << left << setfill('.') << "Health Insurance: "
		 	<< " $" << hi << flush << endl;	
	
	// Calculate the results
	FederalTax 	= fedinTax * grossAmount / 100;
	SteTax		= stateTax * grossAmount / 100;
	SoSecTax	= ssTax	   * grossAmount / 100;
	MedicareTax     = mmTax	   * grossAmount / 100;
	PensionPlan     = pp	   * grossAmount / 100;
	netPay		= grossAmount - FederalTax - SteTax - SoSecTax - MedicareTax
				  - PensionPlan - hi;
				  
	//Print out the results
	cout << flush << endl;
	outData << flush << endl;
	
	cout << FirstName << " " << lastName << flush << endl;
	outData << FirstName << " " << lastName << flush << endl;
	
	cout << setw(35) << left << setfill('.') << "Federal Tax: "
		 << " $" << right << setw(10) << setfill(' ') << FederalTax << flush << endl;	
	outData	<< setw(35) << left << setfill('.') << "Federal Tax: "
		 	<< " $" << right << setw(10) << setfill(' ') << FederalTax << flush << endl;	
	
	cout << setw(35) << left << setfill('.') << "State Tax: "
		 << " $" << right << setfill(' ') << setw(10) << SteTax << flush << endl;
	outData	<< setw(35) << left << setfill('.') << "State Tax: "
		 	<< " $" << right << setfill(' ') << setw(10) << SteTax << flush << endl;
	 
	cout << setw(35) << left << setfill('.') << "Social Security Tax: "
		 << " $" << right << setfill(' ') << setw(10) << SoSecTax << flush << endl;	
	outData	<< setw(35) << left << setfill('.') << "Social Security Tax: "
		 	<< " $" << right << setfill(' ') << setw(10) << SoSecTax << flush << endl;	
	
	cout << setw(35) << left << setfill('.') << "Medicare/Medicaid Tax: "
		 << " $" << right << setfill(' ') << setw(10) << MedicareTax << flush << endl;
	outData	<< setw(35) << left << setfill('.') << "Medicare/Medicaid Tax: "
		 	<< " $" << right << setfill(' ') << setw(10) << MedicareTax << flush << endl;
		 
	cout << setw(35) << left << setfill('.') << "Pension Plan: "
		 << " $" << right << setw(10) << setfill(' ') << PensionPlan << flush << endl;	
	outData	<< setw(35) << left << setfill('.') << "Pension Plan: "
		 	<< " $" << right << setw(10) << setfill(' ') << PensionPlan << flush << endl;	

	cout << setw(35) << left << setfill('.') << "Health Insurance: "
		 << " $" << right << setw(10) << setfill(' ') << hi << flush << endl;	
	outData	<< setw(35) << left << setfill('.') << "Health Insurance: "
		 	<< " $" << right << setw(10) << setfill(' ') << hi << flush << endl;	

	cout << setw(35) << left << setfill('.') << "Net Pay: "
		 << " $" << right << setw(10) << setfill(' ') << netPay << flush << endl;	
	outData	<< setw(35) << left << setfill('.') << "Health Insurance: "
		 	<< " $" << right << setw(10) << setfill(' ') << netPay << flush << endl;
	
	cout << endl << endl << endl;
	cout << "The above informations are saved to " << FileName << flush << endl;
	 
	outData.close();
	return 0;
}

 

Posted in C++ | Leave a Comment »