Tuning multiple interrelated PID controllers
Hi,
I am attempting to control forces with pneumatic pistons and regulators. Feedback comes from a 6 degree of freedom load cell. I already have a program designed with PID controllers which works ok. The trouble is tuning the parameters.
So far, I have used Ziegler-Nichols for each single parameter, by testing each piston/PID element individually. Then I have adjusted these manually to make them work together. This means a lot of trial and error, often with unsuccessful results.
Is there any way to tune these parameters and account for the interdependence between them all at the same time?
To clarify the situation:
I am controlling 5 degrees of freedom (Fy is constrained). I am using 7 pistons, and 12 PID controllers - since several pistons affect multiple degrees of freedom.
I can give more detailed information, but I am most interested in suggestions about tuning methods.
Richard Godley
your project seems very interresting.
however, i do not understand how you use your PID modules. what do they control? is it just force or also position of your load. what is the feedback input itself?
in general, when having several degree of freedom, try and locate the element (in this case piston) that most sensitively and effectively affect each separate degree. with that, the other pistons should just try and keep their own degree of freedom locked. this lead to automatic self regulation, where each piston has its own tuned PID.
one other way of doing it, is by using a minimalisation routine, which would set your feedback parameters relative to your input. do that for several desired inputs, and you should get then an array of tuning parameters for each input vaule. you can then create a tuning function for each PID, which will work on whole range of inputs.
also: try to use only one PID per piston. otherwise they work against each other.
if you would detail the system, we may have better ideas.
... And here's where I keep assorted lengths of wires...
Similar Messages
-
I have a problem with simulation in Matlab 6.5 and LabVIEW for PID controllers
I have a problem with simulation in Matlab 6.5 and LabVIEW. I have some methods for granting PID controllers in MATLAB to go but not LabVIEW. International Teams degree to transfer two but when I go past the fourth degree no longer work. We changed the formula for calculating the parameters for grade four and gave me some good values for Matlab award but when I put on LabVIEW have not settled. formulas are available in PDF and are. Please help me and me someone if possible. Thanks
lim.4 generation parameters in MATLAB program and comparison methods are for second-degree transfer function.
Solved!
Go to Solution.
Attachments:
Pt net.zip 2183 KBThis is the VIs what i try to make,but is not work. This pdf. document was used to create last VIs PID. thenk you for your colaboration.
Attachments:
PID create by me.vi 312 KB
tut_3782.pdf 75 KB -
Centrally manaaging multiple Moto/Zebra Controllers
I am assisting my network engineer in centrally managing multiple Moto/Zebra controllers. For example, we want to manage 3 RFS6000 controllers using a RFS7000. We are using Wing 5.7.2.0. I can get the RFS6000 to be adopted by the RFS7000 but it adopts under the "default" RF Domain for the RFS7000. Is there any way we can have the RFS7k adopt the RFS6k while keeping the RF Domain from the RFS6k and all of it's configurations? Mind you, I am still in the learning process so forgive me if I ask too many questions.
This topic first appeared in the Spiceworks Community -
Question on multiple table view controllers
Hey there,
I don't need to know the exact code of how to do this, I am just wondering for now if this is the right way to do this.
What I want is my Root View to have 3 prototype cells(including disclosure indicators), including a subtitle, and 1 button at the bottom of the prototype cells.
When tapping a cell, (there are 3 different table view controllers that can open, depending on the cell chosen), it pushes to a Table View Controller that allows the user to tap a row they want, a check mark shows the row they tapped, then when they tap the back button to go back to the Root View, I want their choice from the Table VC they were just at, to show up in the subtitle field under the prototype cell they chose. Same goes for the other 2 prototype cells.
Once the user has chosen all 3 and can see their choices in the prototype cell's subtitle, they can tap the submit button, and it will read from a database, querying all the selections from the 3 subtitles in the root view, and take them to a new Table VC that displays the results, with disclosure indicators for each selection from the database. They can go back to the Root VC, or they can choose a row from the database results and go into the Detail VC for that selection.
I hope this makes sense, so I ask this:
1. Is this the best way to pass data back to the Root VC, as in using the subtitle of the prototype cell's. I liked it because the subtitle is smaller than the cell so it shows what you chose from the Table VC you were at and checked a certain value from.
2. If this is the way to do it, how do I pass the values from the Table VC that has a checkmark that you chose, back to the Root VC's subtitle for that cell you initially chose.
Side note: The button on my Root VC takes up the whole width of the screen and i can't seem to change it, is there a way to customize the size with my mouse or do I need to write custom code?
I am not at home so I can attach pics later as I have a 'not working model' that shows what I am doing and might be easier to udnerstand.
Any help is definitely appreciated as I just need to know if I am on the right track.
Thanks!!Hey there,
I don't need to know the exact code of how to do this, I am just wondering for now if this is the right way to do this.
What I want is my Root View to have 3 prototype cells(including disclosure indicators), including a subtitle, and 1 button at the bottom of the prototype cells.
When tapping a cell, (there are 3 different table view controllers that can open, depending on the cell chosen), it pushes to a Table View Controller that allows the user to tap a row they want, a check mark shows the row they tapped, then when they tap the back button to go back to the Root View, I want their choice from the Table VC they were just at, to show up in the subtitle field under the prototype cell they chose. Same goes for the other 2 prototype cells.
Once the user has chosen all 3 and can see their choices in the prototype cell's subtitle, they can tap the submit button, and it will read from a database, querying all the selections from the 3 subtitles in the root view, and take them to a new Table VC that displays the results, with disclosure indicators for each selection from the database. They can go back to the Root VC, or they can choose a row from the database results and go into the Detail VC for that selection.
I hope this makes sense, so I ask this:
1. Is this the best way to pass data back to the Root VC, as in using the subtitle of the prototype cell's. I liked it because the subtitle is smaller than the cell so it shows what you chose from the Table VC you were at and checked a certain value from.
2. If this is the way to do it, how do I pass the values from the Table VC that has a checkmark that you chose, back to the Root VC's subtitle for that cell you initially chose.
Side note: The button on my Root VC takes up the whole width of the screen and i can't seem to change it, is there a way to customize the size with my mouse or do I need to write custom code?
I am not at home so I can attach pics later as I have a 'not working model' that shows what I am doing and might be easier to udnerstand.
Any help is definitely appreciated as I just need to know if I am on the right track.
Thanks!! -
Multiple wireless AP controllers
We have a wireless 4402 controller in production. We would like to have a wireless 5508 controller on the same network using different APs for now. We would also use different SSIDs until the new equipment has proven to be reliable. Is this possible?
Microsoft DHCP is used to assign IPs to the access points currently.Hi
What version of code running on your 4402 & what version are you planning to put on 5508 ?
Yes it is possible to advertise a SSID on selected APs using AP-Groups. 5508 should be much more reliable than 4402 (its all about software code running on these hardware).
If you want roaming between 4402 managed AP & 5508 managed AP then you have to put these two wlc in to same mobility group and prefer to configure same RF group.
When it comes to RF group 7.4.x or 7.6.x RRM is not compatible with anything below 7.2. Since you 4402 cannot have any thing above 7.0.x You cannot put both WLC in same RF group (assuming you run a latest code like 7.4 or 7.6 on your 5508).
HTH
Rasika
**** Pls rate all useful responses **** -
RT - PID Gains - where and when to use them
The attached is example code for controlling a temperature chamber. The question is where and when to use PID Gains? This code looks as though the PID Gain is used for the variable/parameter temperature (i.e. the temperature is the controlled variable).
So would there be just one PID Gain per controlled variable/parameter (temperature in this case) or would each device controlling temperature in the system get a PID Gain?
In this example, the fan and lamp are controlling the temperature.
Attachments:
Exercise 8-1.zip 171 KBRuss_in_Louisville wrote:
I came here for help as this is where NI pointed me in their failure. I did not come here to get my "mental model" attacked.
Can you accept that your model of the system might be wrong, though? In this thread from a few weeks ago, multiple experienced users told you that what you had on your block diagram was an array, and yet you insisted - repeatedly - that what you had was a cluster. Your model was that the item on the block diagram was a cluster, leading to the question "how do I get an index display on it?" which made no sense, because the item was in fact an array. And, when you finally realized you were wrong, you couldn't even admit it or thank the people who pointed out your error - it just "turned out" that the constant wasn't what you thought it was. I am trying to tell you that you are making a similar error here by asking questions about the system that do not correspond to what the system actually does.
"Parameter/variable" isn't clear. There is correct terminology. A PID controller has, as inputs, a process variable and a setpoint. The process variable is the parameter you want to control, such as temperature. The setpoint is the desired value of the process variable. Let's say you do have a temperature control system where there is both a heating system and a cooling system (again, not the situation in your sample code). The two systems could both be driven by PID and share the same setpoint and process variable. Some control options for this system:
- a single PID controller with one set of gains, where a negative output drives the cooling system and a positive output drives the heater (or some variation on this), if both the heater and chiller have similar performance characteristics.
- two PID controllers, each with a set of gains, one controlling the heating and one controlling the cooler.
- a combination of these two: a single controller with gains that are selected based on the setpoint or process variable, which is known as gain scheduling. The advantage to a single controller is that you'd never have the two controllers fighting each other.
You could also have a code that controls several similar processes (for examply, multiple identical temperature chambers). In that situation you could have a single set of PID gains but multiple controllers each with a different setpoint and process variable.
So there's not a simple yes/no answer to when you need a separate set of PID gains or an additional PID controller. It depends on the characteristics and design goals of your system. Does that help? -
any recommendations on temp cont. out there?
also , as far as price which is cheaper...serial or gpib control ?
i do not need fast response...it will be used in a high temp test
environment with soaks at least 20 minutes
thanks
Sent via Deja.com http://www.deja.com/
Before you buy.In article <7t07on$br8$[email protected]>, wrote:
>any recommendations on temp cont. out there?
>also , as far as price which is cheaper...serial or gpib control ?
>i do not need fast response...it will be used in a high temp test
>environment with soaks at least 20 minutes
>thanks
National Instruments makes several PID controllers. I have one that is no
longer offered (P/N 320563-01), but I haven't gotten it tuned up yet.
Harry
"Little Joe for the Big Heisman, '99" -
Fuzzy - PID produces jumpy output control
I'm working on a VI that will control the voltage to a blower and I'm trying to do a fuzzy controlled PID to get the pressure of a chamber to the setpoint.
When I test it out on the actual system the voltage output from the PID jumps up to a fixed voltage and holds it there for a while making the pressure overshoot the setpoint by a long ways. After a while it will move the voltage down and hold it at another fixed point for a while.
Right as of right now its just the setpoint going into the "fuzzy controller" function, the P output from that goes into a bundle that feeds into the PID controller and the PID directly controls the voltage.
Just wondering if there is some setting I need to change so the "P" value can be updated during the process or if there is some function that I'm missing to make this work properly.
Thanks,
DanDan,
Thanks for the information. You might have received a response more quickly if you had given that information in your initial post. Specific questions tend to get more and better responses than general ones.
Fairly symmetrical is probably good enough. Systems with significant asymmetry can be difficult to control.
You say the PID output only makes step changes. Are the changes always to full scale or zero or does it change to several intermediate values in steps? How large are the steps (in terms of the chamber pressure or percentage of full scale)?
I think I would test this by first trying to get the PID controller to run as a porportional controller ovver a small portion of the range. Disable the fuzzy controller. Run at an intermediate range such as 80-100 psf. See if you can tune the PID to give you a proportional control behavior in that range, even if it overshoots somewhat or takes a minute to reach the setpoint. Then you will know the PID controller works and can make adjustments from there.
If you are not familiar with tuning PID controllers, search the web for several tuning systems which should get you started.
After you get it working reasonably well in one range repeat the process in several other ranges (2-5 psf, 15-40 psf, 50-70 psf,...) and note whether the tuning changes significantly from range to range. That will give you some clues about how adaptive the system needs to be.
Lynn -
Hi guys,
I am developing an BSP application with MVC Pattern.
I am using data binding , where model binds the data between controller and view,which is very effective and efficient.
I have read in many logs and also in sap help
that it is good approach to follow 1 controller per view
but when using multiple controller for multiple views
where data has to be shared between several views and controllers. when we have multiple controllers,it is possible to have a central instance that can access the application data.
how the data should be shared between the model and views and controllers when they are multiple.
I have read WAS book by SAP press which also doesn't cover handling multiple MVCs..
Can some one please explain me what is the best approach
and how to handle it.
Thanking you in anticipation.
Thanks & Regards,
Vishwanath PurohitHello Vishwanath,
You can handle multiple views with controllers using the attributes of the controllers.( You must define attributes for the controller for communication )
The subcontrollers of your top level controler will be listed in the m_subcontrollers parameter of the top level controller.
You can set or get the attributes of the subcontrollers using the set_attribute or get_attribute method respectively.
controller = me->get_controller( controller_id = '<id of controller>' ).
controller->set_attribute( name = '<name of attribute>'
value = '<value>' ).
or
value = controller->get_attribute( name= '<name of attribute>' ).
Similary you can access the top level controller from the subcontroller using the m_parent parameter of the subcontroller.
data : parent type ref to <class of top level controller>
parent ?= m_parent.
parent->set_attribute( name = '<name of attribute>'
value = '<value>' ).
or
value = parent->get_attribute( name= '<name of attribute>' ).
In this way you can communicate with controllers. The controllers in turn communicate with their models.
Hope this helps.
Regards,
Loveline. -
Here is a script I am using to export recordings made with EyeTV. My problem is when the script is triggered from EyeTV when the recording is done it works just fine. If I run the script as a stand alone app on a selected recording it gets stuck at the CheckMultiplePIDs subroutine. I put a display dialog before and after the "set logdata to every paragraph of input_text" line and only the first dialog box shows and nothing obvious is happening. I tried to take out the non-relevant code to make things a little easier to read. If you want to see all the code I can post that.
-- Run the python MarkCommercials script for the given recording
-- this must be run with the RecordingStarted script
-- it will check if there were multiple PIDs for the recording and runs MarkCommercials for each pid
-- requires updated MarkCommercials which allows specifying the pid
-- by Ben Blake, September 2009
global LogMsg
on RecordingDone(recordingID)
set LogMsg to ""
CheckMultiplePIDs(recordingID)
--display dialog "in RecordingDone" & recordingID
--disable this if you do not want a logfile written
end recordingdone
-- one more edit for plex export, only section below.
on readFile(unixPath)
set foo to (open for access (unixPath))
set txt to (read foo for (get eof foo))
close access foo
return txt
end readFile
-- testing code: this will not be called when triggered from EyeTV, but only when the script is run as a stand-alone script
on run
tell application "EyeTV"
set selectedRecordings to selection of programs window
repeat with theRecording in selectedRecordings
--display dialog "theRecording ID " & (get unique ID of theRecording as integer)
set recordingID to unique ID of theRecording as integer
my RecordingDone(recordingID)
end repeat
end tell
end run
on CheckMultiplePIDs(recordingID)
--check if there are multiple Video PIDs in the file
tell application "EyeTV"
set input_text to my read_from_file((path to "logs" as string) & "ETVComskip" & ":" & recordingID & "_comskip.log")
if (count of (input_text as string)) > 0 then
set logdata to every paragraph of input_text
set logdata_lastrow to (item ((count of logdata) - 1) of logdata) as string
if (items 1 thru 19 of logdata_lastrow) as string = "Video PID not found" then
--multiple Video PIDs, rerun MarkCommercials until successful
set recrdingIDInteger to recordingID as integer
set rec to recording id recrdingIDInteger
set LogMsg to "RecordingDone found multiple PIDs for recording ID: " & recordingID & ", Channel " & (channel number of rec) & " - " & (title of rec)
set PIDs to (items 44 thru ((count of logdata_lastrow) - 2) of logdata_lastrow) as string
set delims to AppleScript's text item delimiters
set AppleScript's text item delimiters to ", "
set PID_List to {}
set PID_List to every word of PIDs
set AppleScript's text item delimiters to delims
repeat with pid in PID_List
my launchComSkip(recordingID, pid)
repeat while (my mcIsRunning())
delay 5
end repeat
end repeat
end if
end if
end tell
end CheckMultiplePIDs
on read_from_file(target_file)
--return the contents of the given file
set fileRef to (open for access (target_file))
set txt to (read fileRef for (get eof fileRef) as «class utf8»)
close access fileRef
return txt
end read_from_file
on write_to_file(this_data, target_file, append_data)
--from <a class="jive-link-external-small" href="http://www.apple.com/applescript/sbrt/sbrt-09.html">http://www.apple.com/applescript/sbrt/sbrt-09.html</a>
try
set the target_file to the target_file as string
set the open_target_file to open for access file target_file with write permission
if append_data is false then set eof of the open_target_file to 0
write this_data to the open_target_file starting at eof
close access the open_target_file
return true
on error
try
close access file target_file
end try
return false
end try
end write_to_file
on launchComSkip(recID, pid)
if pid = "" then
set cmd to "'/Library/Application Support/ETVComskip/MarkCommercials.app/Contents/MacOS/MarkCommercials' --force --log " & recID & " &> /dev/null &"
else
set cmd to "'/Library/Application Support/ETVComskip/MarkCommercials.app/Contents/MacOS/MarkCommercials' --force --log " & recID & " --pid=" & pid & " &> /dev/null &"
end if
do shell script cmd
end launchComSkip
on mcIsRunning()
set processPaths to do shell script "ps -xww | awk -F/ 'NF >2' | awk -F/ '{print $NF}' | awk -F '-' '{print $1}' "
return (processPaths contains "MarkCommercials")
end mcIsRunning
--Subroutine to remove troublesome characters
to parseout(stringtoparse)
set illegals to (ASCII character of 60) & (ASCII character of 62) & (ASCII character of 58) & (ASCII character of 34) & (ASCII character of 47) & (ASCII character of 92) & (ASCII character of 124)
repeat with i from 1 to count (illegals)
set testletter to (text i thru i of illegals)
set the_offset to 1
repeat
set the_offset to offset of testletter in stringtoparse
if the_offset > 0 then
set stringtoparse to (text 1 thru (the_offset - 1) of stringtoparse) & "_" & (text (the_offset + 1) thru -1 of stringtoparse)
else
exit repeat
end if
end repeat
end repeat
return stringtoparse
end parseoutWhile this isn't a solution, you could write lots of output to a log file. You should eventually see where it is stalling out. I use textwrangle to look at the log file while it is running.
the code escape is. Notice the tag is the same for start & end:
your code here
Here is my log program.
Write debug text to the file /debugLog.txt
example
--- debug on Friday, February 11, 2011 2:23:20 PM ---
start program.
thePath = Macintosh-HD:
End of program.
fyi:
The applescript log statements are ignored when not run from the script editor.
on run
-- thePath points to the folder in which to create the debug log.
global thePath, firstRunning
(* Use the path to clause to create a generalized path statements *)
set thePath to (path to startup disk as string)
set firstRunning to ""
-- Write a message into the applescript editor event log.
log " --- Starting on " & ((current date) as string) & " --- "
debug("start program. ")
Your program here...
debug("thePath = " & thePath)
debug("End of program. ")
end run
on appendToFile(fileId, theData)
local theSize, writeWhere
set theSize to (get eof fileId)
set writeWhere to theSize + 1 as integer
write theData to fileId starting at writeWhere
end appendToFile
-- based on log by James Reynolds, 12.18.2000, University of Utah
on debug(theMessage)
global thePath, firstRunning
local theSize, startupDiskName, pathToLog, fileReference
set pathToLog to (thePath & "debugLog.txt")
try
set fileReference to (open for access file pathToLog ¬
with write permission)
log "firstRunning = " & firstRunning
set theSize to (get eof fileReference)
if firstRunning = "" then
set theSize to (get eof fileReference)
log "theSize = " & theSize
if theSize is equal to 0 then
appendToFile(fileReference, "New log created on " & ((current date) as string) & " " & return)
end if
appendToFile(fileReference, " --- debug on " & ((current date) as string) & " --- " & return)
set firstRunning to "running"
end if
appendToFile(fileReference, theMessage & return)
close access fileReference
tell application "Finder"
set the creator type of the file pathToLog ¬
to "R*ch"
end tell
on error mes
try
log " We got an error when writing to " & mes
close access fileReference
end try
end try
end debug
Robert -
Lookout4.0​.1 gets hanged in this process.
Dear Sir,
We are communicating 19 PID controllers working on modbus
protocol, 5 devices working on ASCII protocol (Digital I/Os)
and six Flow totalisers running on Modbus protocol. All the
driver objects used, are inbuilt driver objects of Lookout4.0.1.
We have purchased 500 I/Os Runtime plus Development version
of Lookout4.0.1. Our problem is that the Lookout gets
automatically hanged after working for about 12 hours.
Is this a problem of using Runtime cum development version
or something different.
Waiting for your quick response...
With Warm Regards,
Girish Nalgirkar.
for Theta Controls, Pune.
India.Mr. Nalgirkar,
It is fairly rare to see a case where Lookout hangs after running for such a long time. The first thing I would do is verify that 4.0.1 build 61 is being used on the runtime sysyem. You can determine the build of Lookout 4.0.1 by selecting "About Lookout" from the "Help" menu. If you do not have build 61, I would strongly recommend contacting NI to download the free upgrade. Contact National Instruments E-Mail Support through www.ni.com/ask. Make sure you mention your current version of Lookout, Serial Number, Keycode, and Purchasing Company, as NI must verify your license.
One possible cause of hanging behavior in Lookout is a problem with a hardware driver. However, since you are able to run for 12-hours with no problems, then it sounds like a hardware d
river problem is not the issue.
One other question. What operating system are you using? The general rule-of-thumb is that WinNT and Win2000 systems generally have much higher relibaily than Win95/98 systems.
Regards,
Greg Caesar
National Instruments,
Applications Engineer -
Error message from HP E1411B under Labview
I am running a VXI HP1401 mainframe with an E1406 GPIB controller, E1411 DMM (addr 24) and E1476 Mux (addr 25). I get the following error message when I try to access the device using an address of "VXI::24":
hpe1411b Initialize.viDriver Status: (Hex 0xBFFF00A5) The interface type is valid but the specified interface number is not configured.
Any ideas? Thanks.
BobBob,
I have used the E1406 GPIB Controller before. I had a couple of problems with using this controller, which may help you out.
NI-VISA supports multiple GPIB-VXI controllers in a single system. Because the National Instruments GPIB-VXI controller ships with a primary address of 1, NI-VISA automatically searches for any GPIB-VXI controllers at that address.
If you have changed the primary address (for example, if you added a second GPIB-VXI controller to your system, and set the address of the second controller to 9), or if you have a GPIB-VXI controller from another vendor, you need to add it using Measurement & Automation Explorer so NI-VISA can find it. Right-click on "Devices and Interfaces" and select "Create New" to add a new GPIB-VXI interface.
Specify the controller's GPIB primary and secondary addresses, as well as the GPIB board to which it is connected. Then specify a new GPIB-VXI interface number and its logical address (usually 0).
Also, make sure that Servant Area address is set higher than all of your addresses (Dip Switches on HP 1406). If you have your Servant Area set lower, you will see your instruments in MAX just fine, but you won't be able to communicate to them at all.
Joji -
System Identification and Transfer Function of the LEGO MINDSTORM NXT Robot
Can anybody please help with the below question.
Using your LabView interface, input different values of power and record the output value of the number of wheel rotations. You can convert the latter into speed by measuring the diameter of the wheel. Then, type ‘ident’ in the command line of Matlab to launch a graphical user interface for system identification. Using the data collected for input power and recorded speed, you can derive the transfer function for your robot in the Laplace domain.
You will notice that it is possible to approximate the transfer function to a first order system.
Add disturbance to your system such as wind drag, road profile or friction. You might want to model the disturbance as a sinusoidal waveform.
Analyse the system response in LabView in order to tune the response.
Finally, write a LabView program to test your controller.
Set both Integral and Derivative to 0
Increase the value for Proportional controller to 0.5, 0.8, 1, 1.1, 1.3, and 1.5
Select a suitable simulation stop time.
Compare each simulation results and draw some conclusions.
Record the steady-state error. Has it dropped to near zero?
Record the rise time. Has it decreased to less than 0.5 second? And for what values of Kp?
Check whether this response is realistic i.e. a real cruise control system generally cannot change the speed of the vehicle from 0 to 10m/s in less than 0.5 second.
Adjust the gain (Kp) to give a reasonable rise time and add an integral controller to eliminate the steady-state error.
Change both Kp and Ki and see what happens to the response. When you adjust the integral gain Ki, start with a small value since a large Ki can destabilise the response. (Ki =0.001, 0.002, 0.003, 0.004).
Then you need to adjust both the proportional gain Kp and the integral gain Ki to obtain the desired response. Record the values of Kp and Ki that can meet all the design criteria.
Write the PID-feedback control LabVIEW program as described above.
Does it work? Quantify! Show us it is working
Hand in a short report on the PID project on the cruise control of the LEGO MINDSTORM NXT Robot. Your report should contain an introduction to cruise control and uses of PID controllers, a brief explanation of how PID feedback control works. The printout of the Block Diagram and Front Panel of your LabVIEW program should be attached at the end of your report.
Put it all together. There are many questions that can be explored and written up in the result section. Be creative.
Here are some things that may be addressed: Check whether your system can stabilise speed to within 1%. What are the optimal PID parameters that you have found? Can you choose PID parameters to both reach the set speed quickly and also maintain the speed within good accuracy once the system has reached the set speed? Can you control the speed of small steps? Explain your results?Thanks for that.
DanHarryman wrote:
HI ToolMonkey
You should be able to build control system to do this using PID control VIs. The following paper is a good place to start when working with PID systems.
http://www.ni.com/white-paper/6440/en
Let me know how you get on using some of the functions in this.
Thanks
Dan.H
UKAE -
Filr 1.1 LDAP Preview Not Returning Correct Number of Result
I'm finishing set up of Filr 1.1 in our environment but noticed today that the LDAP preview does not return the correct number of results. The query:
(&(objectClass=Person)(|(employeeType=E)(employeeT ype=Y)(employeeType=Z)))
has been tried against multiple AD domain controllers and has so far returned 3 different user counts - 2895, 2800, and 2700. Mostly it always returns 2800. The correct count using powershell with the exact same ldap filter is over 5000.
I would prefer not to try a sync until I have some confidence that it will complete successfully. Any suggestions?On Wed, 22 Apr 2015 17:26:03 GMT, jameswatson3
<[email protected]> wrote:
>
> I'm finishing set up of Filr 1.1 in our environment but noticed today
> that the LDAP preview does not return the correct number of results. The
> query:
>
> (&(objectClass=Person)(|(employeeType=E)(employeeT ype=Y)(employeeType=Z)))
>
> has been tried against multiple AD domain controllers and has so far
> returned 3 different user counts - 2895, 2800, and 2700. Mostly it
> always returns 2800. The correct count using powershell with the exact
> same ldap filter is over 5000.
>
> I would prefer not to try a sync until I have some confidence that it
> will complete successfully. Any suggestions?
Could you try it with filr 1.2?
https://download.novell.com/Download...d=q-mgVFDsOKQ~ -
Hi
I am new to Cisco UCS, I have a little idea about Nexus Series Switches.
I would like to know what exactly are the differentiating factors between -
UCS 6100 Fabric Interconnect
Nexus 5000 Series
MDS 9000 Series switches
All these can support FCoE, 1G / 10G Ports, I know 6100 Fabric Interconnect has built in UCS Manager
where I can place these in a real worl solution.
Second -
Can we make multiple Blades in a chassis, or Multiple Blades in Multiple Chassis conected to a Single / Multiple interconnected 6100 Fabric Interconnect / Nexus / MDS switch, to combine as a Single / One Server.
Appreciate your kind response.
Tahnks & Regards
SunnySunny,
I hope the beow information helps clarify present questions and future knowledge you might get in the near future.
All the information is taken form the link that follows:
http://www.cisco.com/en/US/docs/solutions/Enterprise/Data_Center/VMDC/2.0/design_guide/archOver.html
Cisco Nexus 5000
The Cisco Nexus 5000 Series (http://www.cisco.com/en/US/products/ps9670/index.html) switches deliver high performance, standards-based Ethernet and FCoE that enable the consolidation of LAN, SAN, and cluster network environments onto a single Unified Fabric. Each switch contains a single unified crossbar fabric ASIC and multiple unified port controllers to support fixed ports and expansion modules.
Cisco UCS and UCSM
Cisco UCS 6100 Series Fabric Interconnects (http://www.cisco.com/en/US/partner/products/ps10276/index.html) is a family of line-rate, low-latency, lossless, 10-Gbps Ethernet and Fibre Channel over Ethernet interconnect switches.
Cisco UCS 5100 Series Blade Server Chassis (http://www.cisco.com/en/US/partner/products/ps10279/index.html) supports up to eight blade servers and up to two fabric extenders in a six rack unit (RU) enclosure.
Cisco MDS 9513
The Cisco MDS 9513 Multilayer Director allows you to deploy high-performance SANs using a high-performance, protocol-independent switch fabric. It provides uncompromising high availability, security, scalability, ease of management, and transparent integration of new technologies for extremely flexible data center SAN solutions. The Cisco MDS 9513 is compatible with first-, second-, and third-generation Cisco MDS 9000 Family switching modules.
For more information, see: http://www.cisco.com/en/US/products/hw/ps4159/index.html.
Cisco MDS 9134
The Cisco MDS 9134 Multilayer Fabric Switch is a 1RU chassis that provides line-rate 4-Gbps and 10-Gbps ports. It expands from 24 to 32 ports in 8-port increments and optionally activates 2 10-Gbps ports. The Cisco MDS 9134 offers non-blocking architecture, with all 32 4-Gbps ports and the 2 10-Gbps ports operating at line rate concurrently.
The 10-Gbps ports support a range of optics for connection to the Cisco MDS 9000 family core using 10-Gbps Inter-Switch Link (ISL) connectivity. The Cisco MDS 9134 can also be stacked using copper CX4 X2 transceivers to cost effectively offer up to 64-port densities. The Cisco MDS 9134 supports quick configuration and task wizards that allow it to be deployed quickly and easily in networks of any size. Powered by Cisco MDS 9000 NX-OS/SAN-OS Software, it includes advanced storage networking features and functions and is compatible with Cisco MDS 9500 Series Multilayer Directors and Cisco MDS 9200 Series Multilayer Fabric Switches, providing transparent, end-to-end service delivery in core-edge deployments.
For more information, see: http://www.cisco.com/en/US/products/hw/ps4159/index.html.
Cisco MDS 9148
The Cisco MDS 9148 Multilayer Fabric Switch is a one rack unit (1RU) top-of-rack (ToR) chassis that provides 48 line-rate 8-Gbps ports for storage networking deployments. It can expand from 16 to 48 ports in 8-port increments. The Cisco MDS 9148 delivers a non-blocking architecture, with all 48 1/2/4/8-Gbps ports operating at line-rate concurrently.
The Cisco MDS 9148 supports the Cisco Device Manager Quick Configuration Wizard, which allows it to be deployed quickly and easily in networks of any size. Powered by Cisco MDS 9000 NX-OS Software, it includes advanced storage networking features and functions and is compatible with Cisco MDS 9500 Series Multilayer Directors and Cisco MDS 9200 and other 9100 Series Multilayer Fabric Switches, providing transparent, end-to-end service delivery in core-edge deployments.
For more information, see: http://www.cisco.com/en/US/products/hw/ps4159/index.html.
PS: If you find it helpful, please mark it with a 5 stars grade!
-Kenny
Maybe you are looking for
-
Install new hard drive, restore from Time Machine, File Vault Problems
Hello all, I spent way too much time on this seemingly simple task, so I thought I would share my experience with others so they can avoid some pitfalls when upgrading a hard drive in a system that uses File Vault 2 encryption. The basic goal here is
-
HT1379 my video out on my 24" iMac mid 2007 will not work?
I recently attempted to connect my external video with no success. Is there a reason my ext video connection will not work with Mtn Lion? What can I do to get it to work? Thanks
-
DA server within a DMZ - ports needed for internal network
Hi, I'm planning on adding a domain joined DA server in my DMZ. The DA server will have 2 NICs, one for the internal network and the other for the external. I'll be using two consecutive public IPv4 addresses. On my external firewall I'll be opening
-
Hi everyone, I need to set a fixed location of the JRE (no the default value http://java.sun.com/products/autodl/j2se). I want the users of my application to be able to download the JRE from a location in my local network. I've tried several ways but
-
After updating to iOS 5, the 'calendar' and '+' buttons are missing!
Did a restore and still nothing. None of my calendars or events sync from my other devices, just have a blank calendar. What can I do?