Opened 5 years ago
Closed 4 years ago
#5815 closed defect (fixed)
OMEdit not showing results
Reported by: | Adam Dershowitz | Owned by: | Adeel Asghar |
---|---|---|---|
Priority: | high | Milestone: | 1.18.0 |
Component: | OMEdit | Version: | |
Keywords: | Cc: | Martin Sjölund |
Description
After a recent upgrade (both 1.16.0~dev-146 and 1.16.0~dev-154) I often can't see any results.
If I open a model (easy example: Modelica->Blocks->Example->PID_Controller) and hit simulate, it compiles and finishes successfully.
But, in the message browser I get this:
[1] 09:00:50 Scripting Error Error opening the file /private/var/folders/s4/0j3cshj161126ygbpbzsdkmd4h24dl/T/OpenModelica_adershowitz/OMEdit/Modelica.Blocks.Examples.PID_Controller/Modelica.Blocks.Examples.PID_Controller_info.json. Unknown error
And the variables browser window shows just the name of the results file, but no variables below that.
If I then hit "resimulate" I get this in the message browser window:
[2] 09:04:55 Scripting Notification Number is out of range: 1 json_parser - syntax error found, forcing abort, Line 1 Column 1
The variables do then show up correctly.
I have verified that the .mat and .json files are created. So, I think that it is an issue of OMEdit just not always opening up the results for some reason?
This is on a Mac.
Attachments (7)
Change History (56)
follow-up: 3 comment:1 by , 5 years ago
comment:2 by , 5 years ago
So, maybe the json error is not related?
No. I haven't made any changes to locale, and just have defaults. Nothing unusual.
It seems particularly strange that resimulate seems to often open the file.
Here's another potential clue:
If I compile and run it simulation it fails to open results. If I resimulate, it then opens the results file. If I then quit OM, and reopen OM and select Open Results File and select the .mat from above, I get this in messages:
[1] 11:53:59 Scripting Notification objc[19602]: Class FIFinderSyncExtensionHost is implemented in both /System/Library/PrivateFrameworks/FinderKit.framework/Versions/A/FinderKit (0x7fffb24753d8) and /System/Library/PrivateFrameworks/FileProvider.framework/OverrideBundles/FinderSyncCollaborationFileProviderOverride.bundle/Contents/MacOS/FinderSyncCollaborationFileProviderOverride (0x116867f50). One of the two will be used. Which one is undefined. [2] 11:53:59 Scripting Error Error opening the file /private/var/folders/s4/0j3cshj161126ygbpbzsdkmd4h24dl/T/OpenModelica_adershowitz/OMEdit/Modelica.Blocks.Examples.PID_Controller/Modelica.Blocks.Examples.PID_Controller_init.xml. Unknown error
Note this time is xml instead of json.
And, the same problem as above that I see the name of the results in variables, but there is no way to actually see any variable names or data.
comment:3 by , 5 years ago
Milestone: | Future → 1.16.0 |
---|---|
Resolution: | → fixed |
Status: | new → closed |
Replying to adrpo:
The simulation executable, not OMEdit, is opening the .json file. OMEdit does open the .mat result file. Do you by any chance have some weird locale? Having "," instead of "." for decimal separator?
OMEdit also reads the json file for Transformational debugger and for some of the new stuff that Martin added recently.
Anyways this issue seems similar to #5895 and I guess is already fixed. I suggest testing again with the latest nightly.
Feel free to reopen this ticket if the problem persists.
comment:4 by , 5 years ago
Resolution: | fixed |
---|---|
Status: | closed → reopened |
I just downloaded and built the newest, 1.16.0~dev-284-gd5ae327. I then tried to run a simple case and again, no results showed up. I resimulated and then was able to see results.
comment:5 by , 5 years ago
So is this happening for all the models or just specific ones? Can you share more information like omeditcommunication.log
file. Some screenshots of the problem if possible.
by , 5 years ago
Attachment: | Screen Shot 2020-04-20 at 9.13.52 AM.png added |
---|
comment:6 by , 5 years ago
For the attached screen shot I just opened OMEdit, selected PID_Controller, and simulated. The normal simulation output box popped and reports "The simulation finished successfully." Then I see the attached (Note that instead of results in the variable window it shows a file or something). If I then right click there and resimulate, I can get variables to show up there.
by , 5 years ago
Attachment: | omeditcommunication.log added |
---|
by , 5 years ago
Attachment: | omscommunication.log added |
---|
comment:7 by , 5 years ago
And, yes it seems to happen with all models (or at least the small random sampling that I've tested). And on each of those if I select "re-simulate" after a rerun I can see the output variable list open and can see the variables as used to work in the past.
comment:8 by , 5 years ago
Do you still get that parser error as well?
Can you also please attach the following files,
- Modelica.Blocks.Examples.PID_Controller_info.json
- Modelica.Blocks.Examples.PID_Controller_init.xml
- Modelica.Blocks.Examples.PID_Controller_res.mat
by , 5 years ago
Attachment: | Modelica.Blocks.Examples.PID_Controller_info.json added |
---|
by , 5 years ago
Attachment: | Modelica.Blocks.Examples.PID_Controller_init.xml added |
---|
by , 5 years ago
Attachment: | Modelica.Blocks.Examples.PID_Controller_res.mat added |
---|
comment:9 by , 5 years ago
If I open, select PID_Controller and simulate, the only message in my message window is:
[1] 10:16:38 Scripting Error
Error opening the file /private/var/folders/s4/0j3cshj161126ygbpbzsdkmd4h24dl/T/OpenModelica_adershowitz/OMEdit/Modelica.Blocks.Examples.PID_Controller/Modelica.Blocks.Examples.PID_Controller_info.json. Unknown error
by , 5 years ago
Attachment: | Result.png added |
---|
comment:10 by , 5 years ago
I can open the result file without any issues on Windows. Maybe the parser has some issues on the MAC. But surprisingly why does re-simulate works.
comment:11 by , 5 years ago
I just tried to open the results file, but just selecting "Open results file" and that does work. So, it seems that it is a communication issue of some kind where OMEdit just doesn't actually perform the open, but is capable of doing it.
comment:12 by , 5 years ago
So, for each run, I need to simulate, then manually open the results file.
comment:13 by , 5 years ago
The thing is its the same code that is used for simulate, re-simulate and opening a result file.
Anyways I found a minor issue that I fixed here. You need a newer version for it. Maybe it will help us to show the correct error.
comment:14 by , 5 years ago
I just updated to 1.16.0~dev-286-g954477b_0 (newest available), and I see the same thing as before.
It seems as though the problem is just the "simulate" is not causing it to open the correct file. Although the results are actually being generated.
comment:15 by , 5 years ago
You need version da6919f
to get my latest changes. However, it is not a fix just that we get correct error message.
comment:16 by , 5 years ago
How does the version numbering work? I just checked on Macports, and now the newest version listed is 1.16.0~dev-287-g39ab592_0 which doesn't correspond to da6919f.
I'm happy to try that one if it might give us a good error message to help explain the bug.
comment:17 by , 5 years ago
Dev versioning is from github commit hash of repo. It will take a while before it is up on macports.
comment:18 by , 5 years ago
Got it. Does GitHub, or openmodelica, have a page that shows the matchup so I can just verify when the version is up? Does a while mean an hour, overnight, days?
comment:20 by , 5 years ago
But, macports ports upgrade more frequently. They are not the nightly, but seem more like hourly upgrades or so. I just checked and the current devel version is now: 1.16.0~dev-289-gda6919f_0
So it looks like in the last 5 hours or so, the available dev version has gone from 287 to 289. And, that suffix is the same as the version that adeas31 mentioned. So, that should be the version that includes his fix for error messages. I'll try it out.
comment:21 by , 5 years ago
The same issue is still there, as expected. But, the error is slightly different:
[1] 21:23:21 Scripting Error
Error opening the file /private/var/folders/s4/0j3cshj161126ygbpbzsdkmd4h24dl/T/OpenModelica_adershowitz/OMEdit/Modelica.Blocks.Examples.PID_Controller/Modelica.Blocks.Examples.PID_Controller_info.json. syntax error, unexpected invalid
If I then resimulate, it does correctly open and show the variables, but I also see this in the messages:
[2] 21:26:39 Scripting Notification
Number is out of range: 1
json_parser - syntax error found, forcing abort, Line 1 Column 1
follow-up: 25 comment:23 by , 5 years ago
Job https://test.openmodelica.org/hudson/job/OpenModelica_UPDATE_APT_SERVER
runs each hour and updates the source code from which macports are built.
comment:24 by , 5 years ago
@dersh I added some more debug information to see what is going on. You can try once 5fc329e is up on macports.
Note that to get the debug logging you need to start OMEdit with debug flag like this,
./OMEdit --Debug=true
Post the messages you get on Messages Browser. Sorry I don't have Mac available right now for testing.
follow-up: 26 comment:25 by , 5 years ago
Replying to adrpo:
Job https://test.openmodelica.org/hudson/job/OpenModelica_UPDATE_APT_SERVER
runs each hour and updates the source code from which macports are built.
But then, as I understand it, the APT update job takes whatever was built last time. By default the Mac job runs once a day. @dersh, you may ask for an account on Hudson and start more builds manually to get them after important pull requests have been merged in, without waiting for the next day's nightly.
comment:26 by , 5 years ago
Replying to casella:
Replying to adrpo:
Job https://test.openmodelica.org/hudson/job/OpenModelica_UPDATE_APT_SERVER
runs each hour and updates the source code from which macports are built.
But then, as I understand it, the APT update job takes whatever was built last time. By default the Mac job runs once a day. @dersh, you may ask for an account on Hudson and start more builds manually to get them after important pull requests have been merged in, without waiting for the next day's nightly.
When I run macports on my machine it builds from source. So, it doesn't need the nightly. I think that what @adrpo said sounds right. So, every hour, the port file is updated (macport uses a portfile that is essentially build instructions, but points to specific source versions etc).
I'll download and build the newest one and urn it with Debug and see if there's anything different.
comment:27 by , 5 years ago
I downloaded and built 1.16.0~dev-291-ga871306_0 I then ran it with Debug=true and opened and simulated PID_Controller.
Here's what showed up in the messages:
[1] 09:46:00 Scripting Error Opening json file /private/var/folders/s4/0j3cshj161126ygbpbzsdkmd4h24dl/T/OpenModelica_adershowitz/OMEdit/Modelica.Blocks.Examples.PID_Controller/Modelica.Blocks.Examples.PID_Controller_info.json [2] 09:46:00 Scripting Error Reading json file /private/var/folders/s4/0j3cshj161126ygbpbzsdkmd4h24dl/T/OpenModelica_adershowitz/OMEdit/Modelica.Blocks.Examples.PID_Controller/Modelica.Blocks.Examples.PID_Controller_info.json [3] 09:46:00 Scripting Error Json file contents are {"format":"Transformational debugger info","version":1, "info":{"name":"Modelica.Blocks.Examples.PID_Controller","description":"Demonstrates the usage of a Continuous.LimPID controller"}, "variables":{ "PI.I.y":{"comment":"Connector of Real output signal","kind":"state","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Interfaces.mo","lineStart":329,"lineEnd":330,"colStart":5,"colEnd":56},"within":["Real"],"instance":"PII","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Continuous.Integrator$PI$I"]}}, "inertia2.w":{"comment":"Absolute angular velocity of component (= der(phi))","kind":"state","type":"Real","unit":"rad/s","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2478,"lineEnd":2480,"colStart":7,"colEnd":77},"within":["Real"],"instance":"inertia2","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.Inertia$inertia2"]}}, "integrator.y":{"comment":"Connector of Real output signal","kind":"state","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Interfaces.mo","lineStart":329,"lineEnd":330,"colStart":5,"colEnd":56},"within":["Real"],"instance":"integrator","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.Integrator$integrator"]}}, "spring.phi_rel":{"comment":"Relative rotation angle (= flange_b.phi - flange_a.phi)","kind":"state","type":"Real","unit":"rad","displayUnit":"deg","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7284,"lineEnd":7288,"colStart":7,"colEnd":73},"within":["Real"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}}, "spring.w_rel":{"comment":"Relative angular velocity (= der(phi_rel))","kind":"state","type":"Real","unit":"rad/s","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7289,"lineEnd":7290,"colStart":7,"colEnd":53},"within":["Real"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}}, "der(PI.I.y)":{"comment":"der(Connector of Real output signal)","kind":"derivative","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Interfaces.mo","lineStart":329,"lineEnd":330,"colStart":5,"colEnd":56},"within":["Real"],"instance":"PII","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Continuous.Integrator$PI$I"]}}, "der(inertia2.w)":{"comment":"der(Absolute angular velocity of component (= der(phi)))","kind":"derivative","type":"Real","unit":"s-2","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2478,"lineEnd":2480,"colStart":7,"colEnd":77},"within":["Real"],"instance":"inertia2","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.Inertia$inertia2"]}}, "der(integrator.y)":{"comment":"der(Connector of Real output signal)","kind":"derivative","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Interfaces.mo","lineStart":329,"lineEnd":330,"colStart":5,"colEnd":56},"within":["Real"],"instance":"integrator","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.Integrator$integrator"]}}, "der(spring.phi_rel)":{"comment":"der(Relative rotation angle (= flange_b.phi - flange_a.phi))","kind":"derivative","type":"Real","unit":"Hz","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7284,"lineEnd":7288,"colStart":7,"colEnd":73},"within":["Real"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}}, "der(spring.w_rel)":{"comment":"der(Relative angular velocity (= der(phi_rel)))","kind":"derivative","type":"Real","unit":"s-2","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7289,"lineEnd":7290,"colStart":7,"colEnd":53},"within":["Real"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}}, "der(inertia1.w)":{"comment":"Absolute angular velocity of component (= der(phi))","kind":"dummy derivative","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2478,"lineEnd":2480,"colStart":7,"colEnd":77},"within":["Real"],"instance":"inertia1","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.Inertia$inertia1"],"operations":[{"op":"info","display":"solved","data":["der(inertia1.w) = inertia1.a"]},{"op":"before-after","display":"differentiate d/dtime","data":["der(inertia1.w)","der(inertia1.w)"]},{"op":"before-after","display":"flattening","data":["a = der(w);","inertia1.a = der(inertia1.w);"]}]}}, "PI.I.local_set":{"comment":"","kind":"variable","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":37,"lineEnd":37,"colStart":5,"colEnd":80},"within":["Real"],"instance":"PII","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Continuous.Integrator$PI$I"],"operations":[{"op":"info","display":"solved","data":["PI.I.local_set = 0.0"]},{"op":"before-after","display":"flattening","data":["local_set = 0;","PI.I.local_set = 0.0;"]}]}}, "PI.I.u":{"comment":"Connector of Real input signal","kind":"variable","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Interfaces.mo","lineStart":327,"lineEnd":328,"colStart":5,"colEnd":58},"within":["Real"],"instance":"PII","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Continuous.Integrator$PI$I"]}}, "PI.P.u":{"comment":"Input signal connector","kind":"variable","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":546,"lineEnd":547,"colStart":5,"colEnd":58},"within":["Real"],"instance":"PIP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Gain$PI$P"]}}, "PI.P.y":{"comment":"Output signal connector","kind":"variable","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":548,"lineEnd":549,"colStart":5,"colEnd":56},"within":["Real"],"instance":"PIP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Gain$PI$P"]}}, "PI.addFF.u1":{"comment":"Connector of Real input signal 1","kind":"variable","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Interfaces.mo","lineStart":342,"lineEnd":343,"colStart":5,"colEnd":57},"within":["Real"],"instance":"PIaddFF","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add$PI$addFF"]}}, "PI.addFF.y":{"comment":"Connector of Real output signal","kind":"variable","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Interfaces.mo","lineStart":346,"lineEnd":347,"colStart":5,"colEnd":56},"within":["Real"],"instance":"PIaddFF","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add$PI$addFF"]}}, "PI.addI.u3":{"comment":"Connector of Real input signal 3","kind":"variable","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":975,"lineEnd":976,"colStart":5,"colEnd":68},"within":["Real"],"instance":"PIaddI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add3$PI$addI"]}}, "PI.addPID.y":{"comment":"Connector of Real output signal","kind":"variable","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":977,"lineEnd":978,"colStart":5,"colEnd":64},"within":["Real"],"instance":"PIaddPID","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add3"]}}, "PI.addSat.y":{"comment":"Connector of Real output signal","kind":"variable","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Interfaces.mo","lineStart":346,"lineEnd":347,"colStart":5,"colEnd":56},"within":["Real"],"instance":"PIaddSat","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add$PI$addSat"]}}, "PI.controlError":{"comment":"Control error (set point - measurement)","kind":"variable","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":887,"lineEnd":888,"colStart":5,"colEnd":48},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, "PI.y":{"comment":"Connector of actuator output signal","kind":"variable","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Interfaces.mo","lineStart":501,"lineEnd":502,"colStart":5,"colEnd":56},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, "inertia1.a":{"comment":"Absolute angular acceleration of component (= der(w))","kind":"variable","type":"Real","unit":"rad/s2","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2481,"lineEnd":2483,"colStart":7,"colEnd":77},"within":["Real"],"instance":"inertia1","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.Inertia$inertia1"]}}, "inertia1.w":{"comment":"Absolute angular velocity of component (= der(phi))","kind":"dummy state","type":"Real","unit":"rad/s","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2478,"lineEnd":2480,"colStart":7,"colEnd":77},"within":["Real"],"instance":"inertia1","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.Inertia$inertia1"]}}, "inertia2.a":{"comment":"Absolute angular acceleration of component (= der(w))","kind":"variable","type":"Real","unit":"rad/s2","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2481,"lineEnd":2483,"colStart":7,"colEnd":77},"within":["Real"],"instance":"inertia2","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.Inertia$inertia2"]}}, "integrator.local_set":{"comment":"","kind":"variable","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":37,"lineEnd":37,"colStart":5,"colEnd":80},"within":["Real"],"instance":"integrator","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.Integrator$integrator"],"operations":[{"op":"info","display":"solved","data":["integrator.local_set = 0.0"]},{"op":"before-after","display":"flattening","data":["local_set = 0;","integrator.local_set = 0.0;"]}]}}, "kinematicPTP.Ta1":{"comment":"","kind":"variable","type":"Real","unit":"s","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1474,"lineEnd":1474,"colStart":5,"colEnd":21},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"],"operations":[{"op":"info","display":"solved","data":["kinematicPTP.Ta1 = sqrt(1.0 / kinematicPTP.sdd_max)"]},{"op":"before-after","display":"flattening","data":["Ta1 = sqrt(1 / sdd_max);","kinematicPTP.Ta1 = sqrt(1.0 / kinematicPTP.sdd_max);"]}]}}, "kinematicPTP.Ta2":{"comment":"","kind":"variable","type":"Real","unit":"s","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1475,"lineEnd":1475,"colStart":5,"colEnd":21},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"],"operations":[{"op":"info","display":"solved","data":["kinematicPTP.Ta2 = kinematicPTP.sd_max / kinematicPTP.sdd_max"]},{"op":"before-after","display":"flattening","data":["Ta2 = sd_max / sdd_max;","kinematicPTP.Ta2 = kinematicPTP.sd_max / kinematicPTP.sdd_max;"]}]}}, "kinematicPTP.Te":{"comment":"","kind":"variable","type":"Real","unit":"s","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1477,"lineEnd":1477,"colStart":5,"colEnd":20},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"],"operations":[{"op":"info","display":"solved","data":["kinematicPTP.Te = if kinematicPTP.noWphase then 2.0 * kinematicPTP.Ta1 else kinematicPTP.Tv + kinematicPTP.Ta2"]},{"op":"before-after","display":"flattening","data":["Te = if noWphase then Ta1 + Ta1 else Tv + Ta2;","kinematicPTP.Te = if kinematicPTP.noWphase then 2.0 * kinematicPTP.Ta1 else kinematicPTP.Tv + kinematicPTP.Ta2;"]}]}}, "kinematicPTP.Tv":{"comment":"","kind":"variable","type":"Real","unit":"s","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1476,"lineEnd":1476,"colStart":5,"colEnd":20},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"],"operations":[{"op":"info","display":"solved","data":["kinematicPTP.Tv = if kinematicPTP.noWphase then kinematicPTP.Ta1 else 1.0 / kinematicPTP.sd_max"]},{"op":"before-after","display":"flattening","data":["Tv = if noWphase then Ta1 else 1 / sd_max;","kinematicPTP.Tv = if kinematicPTP.noWphase then kinematicPTP.Ta1 else 1.0 / kinematicPTP.sd_max;"]}]}}, "kinematicPTP.aux1[1]":{"comment":"","kind":"variable","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1472,"lineEnd":1472,"colStart":5,"colEnd":20},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"],"operations":[{"op":"info","display":"solved","data":["kinematicPTP.aux1[1] = kinematicPTP.p_deltaq[1] / kinematicPTP.p_qd_max[1]"]},{"op":"before-after","display":"flattening","data":["aux1[i] = p_deltaq[i] / p_qd_max[i];","kinematicPTP.aux1[1] = kinematicPTP.p_deltaq[1] / kinematicPTP.p_qd_max[1];"]}]}}, "kinematicPTP.aux2[1]":{"comment":"","kind":"variable","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1473,"lineEnd":1473,"colStart":5,"colEnd":20},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"],"operations":[{"op":"info","display":"solved","data":["kinematicPTP.aux2[1] = kinematicPTP.p_deltaq[1] / kinematicPTP.p_qdd_max[1]"]},{"op":"before-after","display":"flattening","data":["aux2[i] = p_deltaq[i] / p_qdd_max[i];","kinematicPTP.aux2[1] = kinematicPTP.p_deltaq[1] / kinematicPTP.p_qdd_max[1];"]}]}}, "kinematicPTP.sd_max":{"comment":"","kind":"variable","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1469,"lineEnd":1469,"colStart":5,"colEnd":16},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"],"operations":[{"op":"info","display":"solved","data":["kinematicPTP.sd_max = 1.0 / abs(kinematicPTP.aux1[1])"]},{"op":"before-after","display":"flattening","data":["sd_max = 1 / max(abs(aux1));","kinematicPTP.sd_max = 1.0 / abs(kinematicPTP.aux1[1]);"]}]}}, "kinematicPTP.sdd":{"comment":"","kind":"variable","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1471,"lineEnd":1471,"colStart":5,"colEnd":13},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"]}}, "kinematicPTP.sdd_max":{"comment":"","kind":"variable","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1470,"lineEnd":1470,"colStart":5,"colEnd":17},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"],"operations":[{"op":"info","display":"solved","data":["kinematicPTP.sdd_max = 1.0 / abs(kinematicPTP.aux2[1])"]},{"op":"before-after","display":"flattening","data":["sdd_max = 1 / max(abs(aux2));","kinematicPTP.sdd_max = 1.0 / abs(kinematicPTP.aux2[1]);"]}]}}, "kinematicPTP.y[1]":{"comment":"Connector of Real output signals","kind":"variable","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Interfaces.mo","lineStart":314,"lineEnd":315,"colStart":5,"colEnd":56},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"]}}, "loadTorque.phi":{"comment":"Angle of flange with respect to support (= flange.phi - support.phi)","kind":"dummy state","type":"Real","unit":"rad","displayUnit":"deg","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7683,"lineEnd":7684,"colStart":7,"colEnd":79},"within":["Real"],"instance":"loadTorque","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Sources.ConstantTorque$loadTorque"]}}, "loadTorque.phi_support":{"comment":"Absolute angle of support flange","kind":"variable","type":"Real","unit":"rad","displayUnit":"deg","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7429,"lineEnd":7429,"colStart":7,"colEnd":76},"within":["Real"],"instance":"loadTorque","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Sources.ConstantTorque$loadTorque"],"operations":[{"op":"info","display":"solved","data":["loadTorque.phi_support = 0.0"]},{"op":"before-after","display":"flattening","data":["phi_support = 0;","loadTorque.phi_support = 0.0;"]}]}}, "speedSensor.flange.tau":{"comment":"Cut torque in the flange","kind":"variable","type":"Real","unit":"N.m","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":6864,"lineEnd":6864,"colStart":7,"colEnd":52},"within":["Real"],"instance":"speedSensorflange","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Sensors.SpeedSensor","Modelica.Mechanics.Rotational.Interfaces.Flange_a"],"operations":[{"op":"info","display":"solved","data":["speedSensor.flange.tau = 0.0"]},{"op":"before-after","display":"flattening","data":["0 = flange.tau;","0.0 = speedSensor.flange.tau;"]}]}}, "spring.a_rel":{"comment":"Relative angular acceleration (= der(w_rel))","kind":"variable","type":"Real","unit":"rad/s2","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7291,"lineEnd":7292,"colStart":7,"colEnd":55},"within":["Real"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}}, "spring.lossPower":{"comment":"Loss power leaving component via heatPort (> 0, if heat is flowing out of component)","kind":"variable","type":"Real","unit":"W","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Thermal/HeatTransfer.mo","lineStart":3144,"lineEnd":3145,"colStart":7,"colEnd":95},"within":["Real"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}}, "spring.tau":{"comment":"Torque between flanges (= flange_b.tau)","kind":"variable","type":"Real","unit":"N.m","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7293,"lineEnd":7293,"colStart":7,"colEnd":76},"within":["Real"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}}, "spring.tau_c":{"comment":"Spring torque","kind":"variable","type":"Real","unit":"N.m","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2704,"lineEnd":2704,"colStart":7,"colEnd":52},"within":["Real"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}}, "spring.tau_d":{"comment":"Damping torque","kind":"variable","type":"Real","unit":"N.m","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2705,"lineEnd":2705,"colStart":7,"colEnd":53},"within":["Real"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}}, "torque.phi_support":{"comment":"Absolute angle of support flange","kind":"variable","type":"Real","unit":"rad","displayUnit":"deg","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7429,"lineEnd":7429,"colStart":7,"colEnd":76},"within":["Real"],"instance":"torque","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Sources.Torque"],"operations":[{"op":"info","display":"solved","data":["torque.phi_support = 0.0"]},{"op":"before-after","display":"flattening","data":["phi_support = 0;","torque.phi_support = 0.0;"]}]}}, "PI.I.local_reset":{"comment":"","kind":"discrete","type":"Boolean","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":36,"lineEnd":36,"colStart":5,"colEnd":85},"within":["Boolean"],"instance":"PII","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Continuous.Integrator$PI$I"],"operations":[{"op":"info","display":"solved","data":["PI.I.local_reset = false"]},{"op":"before-after","display":"flattening","data":["local_reset = false;","PI.I.local_reset = false;"]}]}}, "kinematicPTP.noWphase":{"comment":"","kind":"discrete","type":"Boolean","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1478,"lineEnd":1478,"colStart":5,"colEnd":21},"within":["Boolean"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"],"operations":[{"op":"info","display":"solved","data":["kinematicPTP.noWphase = kinematicPTP.Ta2 >= kinematicPTP.Ta1"]},{"op":"before-after","display":"flattening","data":["noWphase = Ta2 >= Ta1;","kinematicPTP.noWphase = kinematicPTP.Ta2 >= kinematicPTP.Ta1;"]}]}}, "PI.Dzero.k":{"comment":"Constant output value","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":216,"lineEnd":217,"colStart":5,"colEnd":102},"within":["Real"],"instance":"PIDzero","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Sources.Constant$PI$Dzero"]}}, "PI.FFzero.k":{"comment":"Constant output value","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":216,"lineEnd":217,"colStart":5,"colEnd":102},"within":["Real"],"instance":"PIFFzero","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Sources.Constant$PI$FFzero"]}}, "PI.FFzero.y":{"comment":"Connector of Real output signal","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Interfaces.mo","lineStart":300,"lineEnd":301,"colStart":5,"colEnd":56},"within":["Real"],"instance":"PIFFzero","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Sources.Constant$PI$FFzero"],"operations":[{"op":"info","display":"solved","data":["PI.FFzero.y = PI.FFzero.k"]},{"op":"before-after","display":"flattening","data":["y = k;","PI.FFzero.y = PI.FFzero.k;"]}]}}, "PI.I.k":{"comment":"Integrator gain","kind":"parameter","type":"Real","unit":"1","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":10,"lineEnd":10,"colStart":5,"colEnd":51},"within":["Real"],"instance":"PII","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Continuous.Integrator$PI$I"]}}, "PI.I.y_start":{"comment":"Initial or guess value of output (= state)","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":22,"lineEnd":23,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PII","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Continuous.Integrator$PI$I"]}}, "PI.Nd":{"comment":"The higher Nd, the more ideal the derivative block","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":911,"lineEnd":914,"colStart":5,"colEnd":96},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, "PI.Ni":{"comment":"Ni*Ti is time constant of anti-windup compensation","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":907,"lineEnd":910,"colStart":5,"colEnd":94},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, "PI.P.k":{"comment":"Gain value multiplied with input signal","kind":"parameter","type":"Real","unit":"1","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":543,"lineEnd":544,"colStart":5,"colEnd":48},"within":["Real"],"instance":"PIP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Gain$PI$P"]}}, "PI.Td":{"comment":"Time constant of Derivative block","kind":"parameter","type":"Real","unit":"s","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":896,"lineEnd":899,"colStart":5,"colEnd":76},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, "PI.Ti":{"comment":"Time constant of Integrator block","kind":"parameter","type":"Real","unit":"s","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":892,"lineEnd":895,"colStart":5,"colEnd":76},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, "PI.addFF.k1":{"comment":"Gain of input signal 1","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":911,"lineEnd":911,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddFF","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add$PI$addFF"]}}, "PI.addFF.k2":{"comment":"Gain of input signal 2","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":912,"lineEnd":912,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddFF","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add$PI$addFF"]}}, "PI.addFF.u2":{"comment":"Connector of Real input signal 2","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Interfaces.mo","lineStart":344,"lineEnd":345,"colStart":5,"colEnd":59},"within":["Real"],"instance":"PIaddFF","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add$PI$addFF"],"operations":[{"op":"info","display":"solved","data":["PI.addFF.u2 = PI.FFzero.k"]},{"op":"chain","display":"substitution","data":["PI.addFF.u2","PI.FFzero.y"]}]}}, "PI.addI.k1":{"comment":"Gain of input signal 1","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":968,"lineEnd":968,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add3$PI$addI"]}}, "PI.addI.k2":{"comment":"Gain of input signal 2","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":969,"lineEnd":969,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add3$PI$addI"]}}, "PI.addI.k3":{"comment":"Gain of input signal 3","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":970,"lineEnd":970,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add3$PI$addI"]}}, "PI.addP.k1":{"comment":"Gain of input signal 1","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":911,"lineEnd":911,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add$PI$addP"]}}, "PI.addP.k2":{"comment":"Gain of input signal 2","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":912,"lineEnd":912,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add$PI$addP"]}}, "PI.addPID.k1":{"comment":"Gain of input signal 1","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":968,"lineEnd":968,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddPID","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add3"]}}, "PI.addPID.k2":{"comment":"Gain of input signal 2","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":969,"lineEnd":969,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddPID","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add3"]}}, "PI.addPID.k3":{"comment":"Gain of input signal 3","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":970,"lineEnd":970,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddPID","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add3"]}}, "PI.addPID.u2":{"comment":"Connector of Real input signal 2","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":973,"lineEnd":974,"colStart":5,"colEnd":66},"within":["Real"],"instance":"PIaddPID","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add3"],"operations":[{"op":"info","display":"solved","data":["PI.addPID.u2 = PI.Dzero.k"]},{"op":"chain","display":"substitution","data":["PI.addPID.u2","PI.Dzero.y"]}]}}, "PI.addSat.k1":{"comment":"Gain of input signal 1","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":911,"lineEnd":911,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddSat","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add$PI$addSat"]}}, "PI.addSat.k2":{"comment":"Gain of input signal 2","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":912,"lineEnd":912,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddSat","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add$PI$addSat"]}}, "PI.gainPID.k":{"comment":"Gain value multiplied with input signal","kind":"parameter","type":"Real","unit":"1","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":543,"lineEnd":544,"colStart":5,"colEnd":48},"within":["Real"],"instance":"PIgainPID","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Gain$PI$gainPID"]}}, "PI.gainTrack.k":{"comment":"Gain value multiplied with input signal","kind":"parameter","type":"Real","unit":"1","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":543,"lineEnd":544,"colStart":5,"colEnd":48},"within":["Real"],"instance":"PIgainTrack","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Gain$PI$gainTrack"]}}, "PI.k":{"comment":"Gain of controller","kind":"parameter","type":"Real","unit":"1","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":891,"lineEnd":891,"colStart":5,"colEnd":63},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, "PI.kFF":{"comment":"Gain of feed-forward input","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":917,"lineEnd":918,"colStart":5,"colEnd":49},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, "PI.limiter.uMax":{"comment":"Upper limits of input signals","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Nonlinear.mo","lineStart":8,"lineEnd":8,"colStart":9,"colEnd":69},"within":["Real"],"instance":"PIlimiter","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Nonlinear.Limiter$PI$limiter"]}}, "PI.limiter.uMin":{"comment":"Lower limits of input signals","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Nonlinear.mo","lineStart":9,"lineEnd":9,"colStart":9,"colEnd":67},"within":["Real"],"instance":"PIlimiter","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Nonlinear.Limiter$PI$limiter"]}}, "PI.wd":{"comment":"Set-point weight for Derivative block (0..1)","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":904,"lineEnd":906,"colStart":5,"colEnd":96},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, "PI.wp":{"comment":"Set-point weight for Proportional block (0..1)","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":902,"lineEnd":903,"colStart":5,"colEnd":55},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, "PI.xd_start":{"comment":"Initial or guess value for state of derivative block","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":927,"lineEnd":931,"colStart":5,"colEnd":96},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, "PI.xi_start":{"comment":"Initial or guess value for integrator output (= integrator state)","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":922,"lineEnd":926,"colStart":5,"colEnd":87},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, "PI.yMax":{"comment":"Upper limit of output","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":900,"lineEnd":900,"colStart":5,"colEnd":57},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, "PI.yMin":{"comment":"Lower limit of output","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":901,"lineEnd":901,"colStart":5,"colEnd":54},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, "PI.y_start":{"comment":"Initial value of output","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":932,"lineEnd":934,"colStart":5,"colEnd":31},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, "driveAngle":{"comment":"Reference distance to move","kind":"parameter","type":"Real","unit":"rad","displayUnit":"deg","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/package.mo","lineStart":17,"lineEnd":18,"colStart":5,"colEnd":35},"within":["Real"],"typeLst":["Modelica.Blocks.Examples.PID_Controller"]}}, "inertia1.J":{"comment":"Moment of inertia","kind":"parameter","type":"Real","unit":"kg.m2","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2471,"lineEnd":2471,"colStart":7,"colEnd":65},"within":["Real"],"instance":"inertia1","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.Inertia$inertia1"]}}, "inertia2.J":{"comment":"Moment of inertia","kind":"parameter","type":"Real","unit":"kg.m2","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2471,"lineEnd":2471,"colStart":7,"colEnd":65},"within":["Real"],"instance":"inertia2","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.Inertia$inertia2"]}}, "inertia2.flange_b.tau":{"comment":"Cut torque in the flange","kind":"parameter","type":"Real","unit":"N.m","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":6864,"lineEnd":6864,"colStart":7,"colEnd":52},"within":["Real"],"instance":"inertia2flange_b","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.Inertia$inertia2","Modelica.Mechanics.Rotational.Interfaces.Flange_b"],"operations":[{"op":"info","display":"solved","data":["inertia2.flange_b.tau = loadTorque.tau_constant"]},{"op":"chain","display":"substitution","data":["inertia2.flange_b.tau","-loadTorque.flange.tau"]}]}}, "integrator.k":{"comment":"Integrator gain","kind":"parameter","type":"Real","unit":"1","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":10,"lineEnd":10,"colStart":5,"colEnd":51},"within":["Real"],"instance":"integrator","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.Integrator$integrator"]}}, "integrator.y_start":{"comment":"Initial or guess value of output (= state)","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":22,"lineEnd":23,"colStart":5,"colEnd":50},"within":["Real"],"instance":"integrator","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.Integrator$integrator"]}}, "kinematicPTP.deltaq[1]":{"comment":"Distance to move","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1452,"lineEnd":1453,"colStart":5,"colEnd":106},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"]}}, "kinematicPTP.p_deltaq[1]":{"comment":"","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1463,"lineEnd":1464,"colStart":5,"colEnd":31},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"]}}, "kinematicPTP.p_qd_max[1]":{"comment":"","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1465,"lineEnd":1466,"colStart":5,"colEnd":31},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"]}}, "kinematicPTP.p_qdd_max[1]":{"comment":"","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1467,"lineEnd":1468,"colStart":5,"colEnd":33},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"]}}, "kinematicPTP.qd_max[1]":{"comment":"Maximum velocities der(q)","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1454,"lineEnd":1455,"colStart":5,"colEnd":34},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"]}}, "kinematicPTP.qdd_max[1]":{"comment":"Maximum accelerations der(qd)","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1456,"lineEnd":1457,"colStart":5,"colEnd":38},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"]}}, "kinematicPTP.startTime":{"comment":"Time instant at which movement starts","kind":"parameter","type":"Real","unit":"s","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1458,"lineEnd":1458,"colStart":5,"colEnd":79},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"]}}, "loadTorque.flange.tau":{"comment":"Cut torque in the flange","kind":"parameter","type":"Real","unit":"N.m","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":6864,"lineEnd":6864,"colStart":7,"colEnd":52},"within":["Real"],"instance":"loadTorqueflange","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Sources.ConstantTorque$loadTorque","Modelica.Mechanics.Rotational.Interfaces.Flange_b"],"operations":[{"op":"info","display":"solved","data":["loadTorque.flange.tau = -loadTorque.tau_constant"]},{"op":"chain","display":"substitution","data":["loadTorque.flange.tau","loadTorque.tau"]},{"op":"before-after","display":"flattening","data":["tau = -flange.tau;","loadTorque.tau = -loadTorque.flange.tau;"]}]}}, "loadTorque.tau":{"comment":"Accelerating torque acting at flange (= -flange.tau)","kind":"parameter","type":"Real","unit":"N.m","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":6685,"lineEnd":6686,"colStart":7,"colEnd":63},"within":["Real"],"instance":"loadTorque","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Sources.ConstantTorque$loadTorque"],"operations":[{"op":"info","display":"solved","data":["loadTorque.tau = loadTorque.tau_constant"]},{"op":"before-after","display":"flattening","data":["tau = tau_constant;","loadTorque.tau = loadTorque.tau_constant;"]}]}}, "loadTorque.tau_constant":{"comment":"Constant torque (if negative, torque is acting as load in positive direction of rotation)","kind":"parameter","type":"Real","unit":"N.m","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":6681,"lineEnd":6682,"colStart":7,"colEnd":100},"within":["Real"],"instance":"loadTorque","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Sources.ConstantTorque$loadTorque"]}}, "spring.c":{"comment":"Spring constant","kind":"parameter","type":"Real","unit":"N.m/rad","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2694,"lineEnd":2695,"colStart":7,"colEnd":26},"within":["Real"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}}, "spring.d":{"comment":"Damping constant","kind":"parameter","type":"Real","unit":"N.m.s/rad","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2696,"lineEnd":2697,"colStart":7,"colEnd":27},"within":["Real"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}}, "spring.phi_nominal":{"comment":"Nominal value of phi_rel (used for scaling)","kind":"parameter","type":"Real","unit":"rad","displayUnit":"rad","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7299,"lineEnd":7302,"colStart":7,"colEnd":44},"within":["Real"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}}, "spring.phi_rel0":{"comment":"Unstretched spring angle","kind":"parameter","type":"Real","unit":"rad","displayUnit":"deg","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2698,"lineEnd":2698,"colStart":7,"colEnd":63},"within":["Real"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}}, "PI.I.initType":{"comment":"Type of initialization (1: no init, 2: steady state, 3,4: initial output)","kind":"parameter","type":"Enumeration","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":19,"lineEnd":21,"colStart":5,"colEnd":40},"within":["Modelica.Blocks.Types.Init"],"instance":"PII","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Continuous.Integrator$PI$I"]}}, "PI.homotopyType":{"comment":"Simplified model for homotopy-based initialization","kind":"parameter","type":"Enumeration","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":935,"lineEnd":937,"colStart":5,"colEnd":65},"within":["Modelica.Blocks.Types.LimiterHomotopy"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, "PI.initType":{"comment":"Type of initialization (1: no init, 2: steady state, 3: initial state, 4: initial output)","kind":"parameter","type":"Enumeration","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":919,"lineEnd":921,"colStart":5,"colEnd":64},"within":["Modelica.Blocks.Types.InitPID"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, "PI.limiter.homotopyType":{"comment":"Simplified model for homotopy-based initialization","kind":"parameter","type":"Enumeration","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Nonlinear.mo","lineStart":12,"lineEnd":13,"colStart":9,"colEnd":69},"within":["Modelica.Blocks.Types.LimiterHomotopy"],"instance":"PIlimiter","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Nonlinear.Limiter$PI$limiter"]}}, "inertia1.stateSelect":{"comment":"Priority to use phi and w as states","kind":"parameter","type":"Enumeration","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2472,"lineEnd":2474,"colStart":7,"colEnd":61},"within":["StateSelect"],"instance":"inertia1","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.Inertia$inertia1"]}}, "inertia2.stateSelect":{"comment":"Priority to use phi and w as states","kind":"parameter","type":"Enumeration","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2472,"lineEnd":2474,"colStart":7,"colEnd":61},"within":["StateSelect"],"instance":"inertia2","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.Inertia$inertia2"]}}, "integrator.initType":{"comment":"Type of initialization (1: no init, 2: steady state, 3,4: initial output)","kind":"parameter","type":"Enumeration","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":19,"lineEnd":21,"colStart":5,"colEnd":40},"within":["Modelica.Blocks.Types.Init"],"instance":"integrator","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.Integrator$integrator"]}}, "kinematicPTP.nout":{"comment":"Number of outputs","kind":"parameter","type":"Integer","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Interfaces.mo","lineStart":313,"lineEnd":313,"colStart":5,"colEnd":58},"within":["Integer"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"]}}, "spring.stateSelect":{"comment":"Priority to use phi_rel and w_rel as states","kind":"parameter","type":"Enumeration","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7303,"lineEnd":7305,"colStart":7,"colEnd":61},"within":["StateSelect"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}}, "PI.I.use_reset":{"comment":"=true, if reset port enabled","kind":"parameter","type":"Boolean","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":11,"lineEnd":12,"colStart":5,"colEnd":73},"within":["Boolean"],"instance":"PII","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Continuous.Integrator$PI$I"]}}, "PI.limiter.limitsAtInit":{"comment":"Has no longer an effect and is only kept for backwards compatibility (the implementation uses now the homotopy operator)","kind":"parameter","type":"Boolean","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Nonlinear.mo","lineStart":14,"lineEnd":16,"colStart":9,"colEnd":81},"within":["Boolean"],"instance":"PIlimiter","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Nonlinear.Limiter$PI$limiter"]}}, "PI.limiter.strict":{"comment":"= true, if strict limits with noEvent(..)","kind":"parameter","type":"Boolean","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Nonlinear.mo","lineStart":10,"lineEnd":11,"colStart":9,"colEnd":85},"within":["Boolean"],"instance":"PIlimiter","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Nonlinear.Limiter$PI$limiter"]}}, "PI.limitsAtInit":{"comment":"Has no longer an effect and is only kept for backwards compatibility (the implementation uses now the homotopy operator)","kind":"parameter","type":"Boolean","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":940,"lineEnd":942,"colStart":5,"colEnd":77},"within":["Boolean"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, "PI.strict":{"comment":"= true, if strict limits with noEvent(..)","kind":"parameter","type":"Boolean","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":938,"lineEnd":939,"colStart":5,"colEnd":81},"within":["Boolean"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, "PI.withFeedForward":{"comment":"Use feed-forward input?","kind":"parameter","type":"Boolean","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":915,"lineEnd":916,"colStart":5,"colEnd":56},"within":["Boolean"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, "PI.with_D":{"comment":"","kind":"parameter","type":"Boolean","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":995,"lineEnd":996,"colStart":5,"colEnd":111},"within":["Boolean"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, "PI.with_I":{"comment":"","kind":"parameter","type":"Boolean","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":993,"lineEnd":994,"colStart":5,"colEnd":111},"within":["Boolean"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, "integrator.use_reset":{"comment":"=true, if reset port enabled","kind":"parameter","type":"Boolean","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":11,"lineEnd":12,"colStart":5,"colEnd":73},"within":["Boolean"],"instance":"integrator","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.Integrator$integrator"]}}, "integrator.use_set":{"comment":"=true, if set port enabled and used as reinitialization value when reset","kind":"parameter","type":"Boolean","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":13,"lineEnd":14,"colStart":5,"colEnd":99},"within":["Boolean"],"instance":"integrator","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.Integrator$integrator"]}}, "loadTorque.useSupport":{"comment":"= true, if support flange enabled, otherwise implicitly grounded","kind":"parameter","type":"Boolean","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7417,"lineEnd":7422,"colStart":7,"colEnd":32},"within":["Boolean"],"instance":"loadTorque","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Sources.ConstantTorque$loadTorque"]}}, "spring.useHeatPort":{"comment":"=true, if heatPort is enabled","kind":"parameter","type":"Boolean","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Thermal/HeatTransfer.mo","lineStart":3137,"lineEnd":3138,"colStart":7,"colEnd":75},"within":["Boolean"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}}, "torque.useSupport":{"comment":"= true, if support flange enabled, otherwise implicitly grounded","kind":"parameter","type":"Boolean","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7417,"lineEnd":7422,"colStart":7,"colEnd":32},"within":["Boolean"],"instance":"torque","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Sources.Torque"]}}, "PI.unitTime":{"comment":"","kind":"constant","type":"Real","unit":"s","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":943,"lineEnd":943,"colStart":5,"colEnd":75},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}} }, "equations":[{"eqIndex":0,"tag":"dummy"}, {"eqIndex":1,"section":"initial","tag":"assign","defines":["PI.I.local_reset"],"uses":[],"equation":["false"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":36,"lineEnd":36,"colStart":5,"colEnd":85},"within":["Boolean"],"instance":"PII","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Continuous.Integrator$PI$I"],"operations":[{"op":"info","display":"solved","data":["PI.I.local_reset = false"]},{"op":"info","display":"solved","data":["PI.I.local_reset = false"]},{"op":"info","display":"solved","data":["PI.I.local_reset = false"]},{"op":"before-after","display":"flattening","data":["local_reset = false;","PI.I.local_reset = false;"]}]}}, {"eqIndex":2,"section":"initial","tag":"assign","defines":["PI.I.local_set"],"uses":[],"equation":["0.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":37,"lineEnd":37,"colStart":5,"colEnd":80},"within":["Real"],"instance":"PII","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Continuous.Integrator$PI$I"],"operations":[{"op":"info","display":"solved","data":["PI.I.local_set = 0.0"]},{"op":"info","display":"solved","data":["PI.I.local_set = 0.0"]},{"op":"info","display":"solved","data":["PI.I.local_set = 0.0"]},{"op":"before-after","display":"flattening","data":["local_set = 0;","PI.I.local_set = 0.0;"]}]}}, {"eqIndex":3,"section":"initial","tag":"assign","defines":["torque.phi_support"],"uses":[],"equation":["0.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7429,"lineEnd":7429,"colStart":7,"colEnd":76},"within":["Real"],"instance":"torque","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Sources.Torque"],"operations":[{"op":"info","display":"solved","data":["torque.phi_support = 0.0"]},{"op":"info","display":"solved","data":["torque.phi_support = 0.0"]},{"op":"info","display":"solved","data":["torque.phi_support = 0.0"]},{"op":"before-after","display":"flattening","data":["phi_support = 0;","torque.phi_support = 0.0;"]}]}}, {"eqIndex":4,"section":"initial","tag":"assign","defines":["integrator.local_reset"],"uses":[],"equation":["false"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":36,"lineEnd":36,"colStart":5,"colEnd":85},"within":["Boolean"],"instance":"integrator","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.Integrator$integrator"],"operations":[{"op":"info","display":"solved","data":["integrator.local_reset = false"]},{"op":"info","display":"solved","data":["integrator.local_reset = false"]},{"op":"info","display":"solved","data":["integrator.local_reset = false"]},{"op":"before-after","display":"flattening","data":["local_reset = false;","integrator.local_reset = false;"]}]}}, {"eqIndex":5,"section":"initial","tag":"assign","defines":["integrator.local_set"],"uses":[],"equation":["0.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":37,"lineEnd":37,"colStart":5,"colEnd":80},"within":["Real"],"instance":"integrator","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.Integrator$integrator"],"operations":[{"op":"info","display":"solved","data":["integrator.local_set = 0.0"]},{"op":"info","display":"solved","data":["integrator.local_set = 0.0"]},{"op":"info","display":"solved","data":["integrator.local_set = 0.0"]},{"op":"before-after","display":"flattening","data":["local_set = 0;","integrator.local_set = 0.0;"]}]}}, {"eqIndex":6,"section":"initial","tag":"assign","defines":["kinematicPTP.aux1[1]"],"uses":["kinematicPTP.p_qd_max[1]","kinematicPTP.p_deltaq[1]"],"equation":["kinematicPTP.p_deltaq[1] / kinematicPTP.p_qd_max[1]"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1472,"lineEnd":1472,"colStart":5,"colEnd":20},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"],"operations":[{"op":"info","display":"solved","data":["kinematicPTP.aux1[1] = kinematicPTP.p_deltaq[1] / kinematicPTP.p_qd_max[1]"]},{"op":"info","display":"solved","data":["kinematicPTP.aux1[1] = kinematicPTP.p_deltaq[1] / kinematicPTP.p_qd_max[1]"]},{"op":"info","display":"solved","data":["kinematicPTP.aux1[1] = kinematicPTP.p_deltaq[1] / kinematicPTP.p_qd_max[1]"]},{"op":"before-after","display":"flattening","data":["aux1[i] = p_deltaq[i] / p_qd_max[i];","kinematicPTP.aux1[1] = kinematicPTP.p_deltaq[1] / kinematicPTP.p_qd_max[1];"]}]}}, {"eqIndex":7,"section":"initial","tag":"assign","defines":["kinematicPTP.sd_max"],"uses":["kinematicPTP.aux1[1]"],"equation":["1.0 / abs(kinematicPTP.aux1[1])"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1469,"lineEnd":1469,"colStart":5,"colEnd":16},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"],"operations":[{"op":"info","display":"solved","data":["kinematicPTP.sd_max = 1.0 / abs(kinematicPTP.aux1[1])"]},{"op":"info","display":"solved","data":["kinematicPTP.sd_max = 1.0 / abs(kinematicPTP.aux1[1])"]},{"op":"info","display":"solved","data":["kinematicPTP.sd_max = 1.0 / abs(kinematicPTP.aux1[1])"]},{"op":"before-after","display":"flattening","data":["sd_max = 1 / max(abs(aux1));","kinematicPTP.sd_max = 1.0 / abs(kinematicPTP.aux1[1]);"]}]}}, {"eqIndex":8,"section":"initial","tag":"assign","defines":["kinematicPTP.aux2[1]"],"uses":["kinematicPTP.p_qdd_max[1]","kinematicPTP.p_deltaq[1]"],"equation":["kinematicPTP.p_deltaq[1] / kinematicPTP.p_qdd_max[1]"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1473,"lineEnd":1473,"colStart":5,"colEnd":20},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"],"operations":[{"op":"info","display":"solved","data":["kinematicPTP.aux2[1] = kinematicPTP.p_deltaq[1] / kinematicPTP.p_qdd_max[1]"]},{"op":"info","display":"solved","data":["kinematicPTP.aux2[1] = kinematicPTP.p_deltaq[1] / kinematicPTP.p_qdd_max[1]"]},{"op":"info","display":"solved","data":["kinematicPTP.aux2[1] = kinematicPTP.p_deltaq[1] / kinematicPTP.p_qdd_max[1]"]},{"op":"before-after","display":"flattening","data":["aux2[i] = p_deltaq[i] / p_qdd_max[i];","kinematicPTP.aux2[1] = kinematicPTP.p_deltaq[1] / kinematicPTP.p_qdd_max[1];"]}]}}, {"eqIndex":9,"section":"initial","tag":"assign","defines":["kinematicPTP.sdd_max"],"uses":["kinematicPTP.aux2[1]"],"equation":["1.0 / abs(kinematicPTP.aux2[1])"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1470,"lineEnd":1470,"colStart":5,"colEnd":17},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"],"operations":[{"op":"info","display":"solved","data":["kinematicPTP.sdd_max = 1.0 / abs(kinematicPTP.aux2[1])"]},{"op":"info","display":"solved","data":["kinematicPTP.sdd_max = 1.0 / abs(kinematicPTP.aux2[1])"]},{"op":"info","display":"solved","data":["kinematicPTP.sdd_max = 1.0 / abs(kinematicPTP.aux2[1])"]},{"op":"before-after","display":"flattening","data":["sdd_max = 1 / max(abs(aux2));","kinematicPTP.sdd_max = 1.0 / abs(kinematicPTP.aux2[1]);"]}]}}, {"eqIndex":10,"section":"initial","tag":"assign","defines":["kinematicPTP.Ta2"],"uses":["kinematicPTP.sdd_max","kinematicPTP.sd_max"],"equation":["kinematicPTP.sd_max / kinematicPTP.sdd_max"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1475,"lineEnd":1475,"colStart":5,"colEnd":21},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"],"operations":[{"op":"info","display":"solved","data":["kinematicPTP.Ta2 = kinematicPTP.sd_max / kinematicPTP.sdd_max"]},{"op":"info","display":"solved","data":["kinematicPTP.Ta2 = kinematicPTP.sd_max / kinematicPTP.sdd_max"]},{"op":"info","display":"solved","data":["kinematicPTP.Ta2 = kinematicPTP.sd_max / kinematicPTP.sdd_max"]},{"op":"before-after","display":"flattening","data":["Ta2 = sd_max / sdd_max;","kinematicPTP.Ta2 = kinematicPTP.sd_max / kinematicPTP.sdd_max;"]}]}}, {"eqIndex":11,"section":"initial","tag":"assign","defines":["kinematicPTP.Ta1"],"uses":["kinematicPTP.sdd_max"],"equation":["sqrt(1.0 / kinematicPTP.sdd_max)"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1474,"lineEnd":1474,"colStart":5,"colEnd":21},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"],"operations":[{"op":"info","display":"solved","data":["kinematicPTP.Ta1 = sqrt(1.0 / kinematicPTP.sdd_max)"]},{"op":"info","display":"solved","data":["kinematicPTP.Ta1 = sqrt(1.0 / kinematicPTP.sdd_max)"]},{"op":"info","display":"solved","data":["kinematicPTP.Ta1 = sqrt(1.0 / kinematicPTP.sdd_max)"]},{"op":"before-after","display":"flattening","data":["Ta1 = sqrt(1 / sdd_max);","kinematicPTP.Ta1 = sqrt(1.0 / kinematicPTP.sdd_max);"]}]}}, {"eqIndex":12,"tag":"alias","equation":[187],"section":"initial"}, {"eqIndex":13,"tag":"alias","equation":[188],"section":"initial"}, {"eqIndex":14,"tag":"alias","equation":[189],"section":"initial"}, {"eqIndex":15,"tag":"alias","equation":[198],"section":"initial"}, {"eqIndex":16,"tag":"alias","equation":[199],"section":"initial"}, {"eqIndex":17,"tag":"alias","equation":[200],"section":"initial"}, {"eqIndex":18,"section":"initial","tag":"assign","defines":["speedSensor.flange.tau"],"uses":[],"equation":["0.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":6864,"lineEnd":6864,"colStart":7,"colEnd":52},"within":["Real"],"instance":"speedSensorflange","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Sensors.SpeedSensor","Modelica.Mechanics.Rotational.Interfaces.Flange_a"],"operations":[{"op":"info","display":"solved","data":["speedSensor.flange.tau = 0.0"]},{"op":"info","display":"solved","data":["speedSensor.flange.tau = 0.0"]},{"op":"info","display":"solved","data":["speedSensor.flange.tau = 0.0"]},{"op":"before-after","display":"flattening","data":["0 = flange.tau;","0.0 = speedSensor.flange.tau;"]}]}}, {"eqIndex":19,"section":"initial","tag":"assign","defines":["loadTorque.phi_support"],"uses":[],"equation":["0.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7429,"lineEnd":7429,"colStart":7,"colEnd":76},"within":["Real"],"instance":"loadTorque","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Sources.ConstantTorque$loadTorque"],"operations":[{"op":"info","display":"solved","data":["loadTorque.phi_support = 0.0"]},{"op":"info","display":"solved","data":["loadTorque.phi_support = 0.0"]},{"op":"info","display":"solved","data":["loadTorque.phi_support = 0.0"]},{"op":"before-after","display":"flattening","data":["phi_support = 0;","loadTorque.phi_support = 0.0;"]}]}}, {"eqIndex":20,"section":"initial","tag":"assign","defines":["inertia1.phi"],"uses":["$START.inertia1.phi"],"equation":["$START.inertia1.phi"],"source":{"info":{"file":"","lineStart":0,"lineEnd":0,"colStart":0,"colEnd":0},"operations":[{"op":"info","display":"solved","data":["inertia1.phi = $START.inertia1.phi"]},{"op":"info","display":"solved","data":["inertia1.phi = $START.inertia1.phi"]}]}}, {"eqIndex":21,"section":"initial","tag":"assign","defines":["inertia1.a"],"uses":["$START.inertia1.a"],"equation":["$START.inertia1.a"],"source":{"info":{"file":"","lineStart":0,"lineEnd":0,"colStart":0,"colEnd":0},"operations":[{"op":"info","display":"solved","data":["inertia1.a = $START.inertia1.a"]},{"op":"info","display":"solved","data":["inertia1.a = $START.inertia1.a"]}]}}, {"eqIndex":22,"tag":"alias","equation":[212],"section":"initial"}, {"eqIndex":23,"section":"initial","tag":"assign","defines":["spring.w_rel"],"uses":["$START.spring.w_rel"],"equation":["$START.spring.w_rel"],"source":{"info":{"file":"","lineStart":0,"lineEnd":0,"colStart":0,"colEnd":0},"operations":[{"op":"info","display":"solved","data":["spring.w_rel = $START.spring.w_rel"]},{"op":"info","display":"solved","data":["spring.w_rel = $START.spring.w_rel"]}]}}, {"eqIndex":24,"tag":"alias","equation":[197],"section":"initial"}, {"eqIndex":25,"tag":"alias","equation":[192],"section":"initial"}, {"eqIndex":26,"tag":"alias","equation":[193],"section":"initial"}, {"eqIndex":27,"section":"initial","tag":"assign","defines":["der(spring.w_rel)"],"uses":[],"equation":["0.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/package.mo","lineStart":59,"lineEnd":59,"colStart":5,"colEnd":26},"within":["Modelica.Blocks.Examples.PID_Controller"],"operations":[{"op":"info","display":"solved","data":["der(spring.w_rel) = 0.0"]},{"op":"info","display":"solved","data":["der(spring.w_rel) = 0.0"]},{"op":"before-after","display":"differentiate d/dtime","data":["der(spring.w_rel)","der(spring.w_rel)"]},{"op":"before-after","display":"flattening","data":["der(spring.w_rel) = 0;","#UNKNOWN_EQUATION#"]}]}}, {"eqIndex":28,"section":"initial","tag":"assign","defines":["spring.a_rel"],"uses":["der(spring.w_rel)"],"equation":["$DER.spring.w_rel"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7310,"lineEnd":7310,"colStart":7,"colEnd":25},"within":["Modelica.Mechanics.Rotational.Components.SpringDamper$spring"],"instance":"spring","operations":[{"op":"info","display":"solved","data":["spring.a_rel = $DER.spring.w_rel"]},{"op":"info","display":"solved","data":["spring.a_rel = $DER.spring.w_rel"]},{"op":"before-after","display":"differentiate d/dtime","data":["der(spring.w_rel)","der(spring.w_rel)"]},{"op":"before-after","display":"flattening","data":["a_rel = der(w_rel);","spring.a_rel = der(spring.w_rel);"]}]}}, {"eqIndex":29,"section":"initial","tag":"assign","defines":["inertia2.a"],"uses":["spring.a_rel","inertia1.a"],"equation":["inertia1.a + spring.a_rel"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7308,"lineEnd":7308,"colStart":7,"colEnd":44},"within":["Modelica.Mechanics.Rotational.Components.SpringDamper$spring"],"instance":"spring","operations":[{"op":"info","display":"solved","data":["inertia2.a = inertia1.a + spring.a_rel"]},{"op":"info","display":"solved","data":["inertia2.a = inertia1.a + spring.a_rel"]},{"op":"before-after","display":"differentiate d/dtime","data":["inertia2.w - inertia1.w","der(inertia2.w) - der(inertia1.w)"]},{"op":"before-after","display":"differentiate d/dtime","data":["spring.w_rel","der(spring.w_rel)"]},{"op":"before-after","display":"differentiate d/dtime","data":["loadTorque.phi - inertia1.phi","der(loadTorque.phi) - der(inertia1.phi)"]},{"op":"before-after","display":"differentiate d/dtime","data":["spring.phi_rel","der(spring.phi_rel)"]},{"op":"chain","display":"substitution","data":["spring.flange_b.phi - spring.flange_a.phi","loadTorque.phi - inertia1.phi","inertia2.phi - inertia1.phi"]},{"op":"before-after","display":"flattening","data":["phi_rel = flange_b.phi - flange_a.phi;","spring.phi_rel = spring.flange_b.phi - spring.flange_a.phi;"]}]}}, {"eqIndex":30,"section":"initial","tag":"assign","defines":["spring.tau"],"uses":["inertia2.a","inertia2.J","loadTorque.tau_constant"],"equation":["loadTorque.tau_constant - inertia2.J * inertia2.a"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2490,"lineEnd":2490,"colStart":7,"colEnd":40},"within":["Modelica.Mechanics.Rotational.Components.Inertia$inertia2"],"instance":"inertia2","operations":[{"op":"info","display":"solved","data":["spring.tau = loadTorque.tau_constant - inertia2.J * inertia2.a"]},{"op":"info","display":"solved","data":["spring.tau = loadTorque.tau_constant - inertia2.J * inertia2.a"]},{"op":"before-after","display":"simplify","data":["inertia2.J * inertia2.a = (-spring.tau) + loadTorque.tau_constant","inertia2.J * inertia2.a = loadTorque.tau_constant - spring.tau"]},{"op":"chain","display":"substitution","data":["inertia2.flange_a.tau + inertia2.flange_b.tau","(-spring.tau) + loadTorque.tau_constant"]},{"op":"before-after","display":"flattening","data":["J * a = flange_a.tau + flange_b.tau;","inertia2.J * inertia2.a = inertia2.flange_a.tau + inertia2.flange_b.tau;"]}]}}, {"eqIndex":31,"section":"initial","tag":"assign","defines":["spring.tau_c"],"uses":["spring.tau_d","spring.tau"],"equation":["spring.tau - spring.tau_d"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2709,"lineEnd":2709,"colStart":7,"colEnd":26},"within":["Modelica.Mechanics.Rotational.Components.SpringDamper$spring"],"instance":"spring","operations":[{"op":"info","display":"solved","data":["spring.tau_c = spring.tau - spring.tau_d"]},{"op":"info","display":"solved","data":["spring.tau_c = spring.tau - spring.tau_d"]},{"op":"before-after","display":"flattening","data":["tau = tau_c + tau_d;","spring.tau = spring.tau_c + spring.tau_d;"]}]}}, {"eqIndex":32,"section":"initial","tag":"assign","defines":["spring.phi_rel"],"uses":["spring.phi_rel0","spring.c","spring.tau_c"],"equation":["spring.tau_c / spring.c + spring.phi_rel0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2707,"lineEnd":2707,"colStart":7,"colEnd":37},"within":["Modelica.Mechanics.Rotational.Components.SpringDamper$spring"],"instance":"spring","operations":[{"op":"info","display":"solved","data":["spring.phi_rel = spring.tau_c / spring.c + spring.phi_rel0"]},{"op":"info","display":"solved","data":["spring.phi_rel = spring.tau_c / spring.c + spring.phi_rel0"]},{"op":"before-after","display":"flattening","data":["tau_c = c * (phi_rel - phi_rel0);","spring.tau_c = spring.c * (spring.phi_rel - spring.phi_rel0);"]}]}}, {"eqIndex":33,"tag":"alias","equation":[218],"section":"initial"}, {"eqIndex":34,"section":"initial","tag":"assign","defines":["PI.y"],"uses":["spring.tau","inertia1.a","inertia1.J"],"equation":["inertia1.J * inertia1.a - spring.tau"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2490,"lineEnd":2490,"colStart":7,"colEnd":40},"within":["Modelica.Mechanics.Rotational.Components.Inertia$inertia1"],"instance":"inertia1","operations":[{"op":"info","display":"solved","data":["PI.y = inertia1.J * inertia1.a - spring.tau"]},{"op":"info","display":"solved","data":["PI.y = inertia1.J * inertia1.a - spring.tau"]},{"op":"chain","display":"substitution","data":["inertia1.flange_a.tau + inertia1.flange_b.tau","PI.y + spring.tau","PI.y + inertia1.flange_b.tau"]},{"op":"before-after","display":"flattening","data":["J * a = flange_a.tau + flange_b.tau;","inertia1.J * inertia1.a = inertia1.flange_a.tau + inertia1.flange_b.tau;"]}]}}, {"eqIndex":35,"parent":36,"section":"initial","tag":"residual","uses":["PI.limiter.uMin","PI.limiter.uMax","PI.addFF.y","PI.y"],"equation":["PI.y - homotopy(smooth(0, if PI.addFF.y > PI.limiter.uMax then PI.limiter.uMax else if PI.addFF.y < PI.limiter.uMin then PI.limiter.uMin else PI.addFF.y), PI.addFF.y)"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Nonlinear.mo","lineStart":39,"lineEnd":40,"colStart":13,"colEnd":52},"within":["Modelica.Blocks.Nonlinear.Limiter$PI$limiter"],"instance":"PIlimiter","operations":[{"op":"chain","display":"substitution","data":["homotopy(smooth(0, if PI.limiter.u > PI.limiter.uMax then PI.limiter.uMax else if PI.limiter.u < PI.limiter.uMin then PI.limiter.uMin else PI.limiter.u), PI.limiter.simplifiedExpr)","homotopy(smooth(0, if PI.addFF.y > PI.limiter.uMax then PI.limiter.uMax else if PI.addFF.y < PI.limiter.uMin then PI.limiter.uMin else PI.addFF.y), PI.addFF.y)"]},{"op":"chain","display":"substitution","data":["PI.limiter.y","PI.y"]},{"op":"before-after","display":"flattening","data":["y = homotopy(actual = smooth(0, if u > uMax then uMax else if u < uMin then uMin else u), simplified = simplifiedExpr);","PI.limiter.y = homotopy(smooth(0, if PI.limiter.u > PI.limiter.uMax then PI.limiter.uMax else if PI.limiter.u < PI.limiter.uMin then PI.limiter.uMin else PI.limiter.u), PI.limiter.simplifiedExpr);"]}]}}, {"eqIndex":36,"section":"initial","tag":"system","display":"non-linear","unknowns":1,"defines":["PI.addFF.y"],"equation":[[35],[]]}, {"eqIndex":37,"tag":"alias","equation":[213],"section":"initial"}, {"eqIndex":38,"tag":"alias","equation":[214],"section":"initial"}, {"eqIndex":39,"section":"initial","tag":"assign","defines":["PI.addFF.u1"],"uses":["PI.addFF.k1","PI.FFzero.k","PI.addFF.k2","PI.addFF.y"],"equation":["(PI.addFF.y - PI.addFF.k2 * PI.FFzero.k) / PI.addFF.k1"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":915,"lineEnd":915,"colStart":5,"colEnd":22},"within":["Modelica.Blocks.Math.Add$PI$addFF"],"instance":"PIaddFF","operations":[{"op":"info","display":"solved","data":["PI.addFF.u1 = (PI.addFF.y - PI.addFF.k2 * PI.FFzero.k) / PI.addFF.k1"]},{"op":"info","display":"solved","data":["PI.addFF.u1 = (PI.addFF.y - PI.addFF.k2 * PI.FFzero.k) / PI.addFF.k1"]},{"op":"chain","display":"substitution","data":["PI.addFF.k1 * PI.addFF.u1 + PI.addFF.k2 * PI.addFF.u2","PI.addFF.k1 * PI.addFF.u1 + PI.addFF.k2 * PI.FFzero.k"]},{"op":"before-after","display":"flattening","data":["y = k1 * u1 + k2 * u2;","PI.addFF.y = PI.addFF.k1 * PI.addFF.u1 + PI.addFF.k2 * PI.addFF.u2;"]}]}}, {"eqIndex":40,"section":"initial","tag":"assign","defines":["PI.addPID.y"],"uses":["PI.gainPID.k","PI.addFF.u1"],"equation":["PI.addFF.u1 / PI.gainPID.k"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":552,"lineEnd":552,"colStart":5,"colEnd":12},"within":["Modelica.Blocks.Math.Gain$PI$gainPID"],"instance":"PIgainPID","operations":[{"op":"info","display":"solved","data":["PI.addPID.y = PI.addFF.u1 / PI.gainPID.k"]},{"op":"info","display":"solved","data":["PI.addPID.y = PI.addFF.u1 / PI.gainPID.k"]},{"op":"chain","display":"substitution","data":["PI.gainPID.k * PI.gainPID.u","PI.gainPID.k * PI.addPID.y"]},{"op":"chain","display":"substitution","data":["PI.gainPID.y","PI.addFF.u1"]},{"op":"before-after","display":"flattening","data":["y = k * u;","PI.gainPID.y = PI.gainPID.k * PI.gainPID.u;"]}]}}, {"eqIndex":41,"tag":"alias","equation":[196],"section":"initial"}, {"eqIndex":42,"section":"initial","tag":"assign","defines":["integrator.y"],"uses":["integrator.y_start"],"equation":["integrator.y_start"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":44,"lineEnd":44,"colStart":7,"colEnd":18},"within":["Modelica.Blocks.Continuous.Integrator$integrator"],"instance":"integrator","operations":[{"op":"info","display":"solved","data":["integrator.y = integrator.y_start"]},{"op":"info","display":"solved","data":["integrator.y = integrator.y_start"]},{"op":"before-after","display":"flattening","data":["y = y_start;","#UNKNOWN_EQUATION#"]}]}}, {"eqIndex":43,"section":"initial","tag":"assign","defines":["der(PI.I.y)"],"uses":[],"equation":["0.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":41,"lineEnd":41,"colStart":8,"colEnd":18},"within":["Modelica.Blocks.Continuous.Integrator$PI$I"],"instance":"PII","operations":[{"op":"info","display":"solved","data":["der(PI.I.y) = 0.0"]},{"op":"info","display":"solved","data":["der(PI.I.y) = 0.0"]},{"op":"before-after","display":"flattening","data":["der(y) = 0;","#UNKNOWN_EQUATION#"]}]}}, {"eqIndex":44,"section":"initial","tag":"assign","defines":["PI.I.u"],"uses":["PI.I.k","der(PI.I.y)"],"equation":["$DER.PI.I.y / PI.I.k"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":61,"lineEnd":61,"colStart":5,"colEnd":17},"within":["Modelica.Blocks.Continuous.Integrator$PI$I"],"instance":"PII","operations":[{"op":"info","display":"solved","data":["PI.I.u = $DER.PI.I.y / PI.I.k"]},{"op":"info","display":"solved","data":["PI.I.u = $DER.PI.I.y / PI.I.k"]},{"op":"before-after","display":"differentiate d/dtime","data":["der(PI.I.y)","der(PI.I.y)"]},{"op":"before-after","display":"flattening","data":["der(y) = k * u;","der(PI.I.y) = PI.I.k * PI.I.u;"]}]}}, {"eqIndex":45,"section":"initial","tag":"assign","defines":["inertia1.w"],"uses":["PI.addI.k2","PI.addI.u3","PI.addI.k3","integrator.y","PI.addI.k1","PI.I.u"],"equation":["(PI.I.u - (PI.addI.k1 * integrator.y + PI.addI.k3 * PI.addI.u3)) / PI.addI.k2"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":981,"lineEnd":981,"colStart":5,"colEnd":30},"within":["Modelica.Blocks.Math.Add3$PI$addI"],"instance":"PIaddI","operations":[{"op":"info","display":"solved","data":["inertia1.w = (PI.I.u - (PI.addI.k1 * integrator.y + PI.addI.k3 * PI.addI.u3)) / PI.addI.k2"]},{"op":"info","display":"solved","data":["inertia1.w = (PI.I.u - (PI.addI.k1 * integrator.y + PI.addI.k3 * PI.addI.u3)) / PI.addI.k2"]},{"op":"chain","display":"substitution","data":["PI.addI.k1 * PI.addI.u1 + PI.addI.k2 * PI.addI.u2 + PI.addI.k3 * PI.addI.u3","PI.addI.k1 * integrator.y + PI.addI.k2 * inertia1.w + PI.addI.k3 * PI.addI.u3","PI.addI.k1 * integrator.y + PI.addI.k2 * PI.u_m + PI.addI.k3 * PI.addI.u3"]},{"op":"chain","display":"substitution","data":["PI.addI.y","PI.I.u"]},{"op":"before-after","display":"flattening","data":["y = k1 * u1 + k2 * u2 + k3 * u3;","PI.addI.y = PI.addI.k1 * PI.addI.u1 + PI.addI.k2 * PI.addI.u2 + PI.addI.k3 * PI.addI.u3;"]}]}}, {"eqIndex":46,"section":"initial","tag":"assign","defines":["inertia2.w"],"uses":["spring.w_rel","inertia1.w"],"equation":["inertia1.w + spring.w_rel"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7308,"lineEnd":7308,"colStart":7,"colEnd":44},"within":["Modelica.Mechanics.Rotational.Components.SpringDamper$spring"],"instance":"spring","operations":[{"op":"info","display":"solved","data":["inertia2.w = inertia1.w + spring.w_rel"]},{"op":"info","display":"solved","data":["inertia2.w = inertia1.w + spring.w_rel"]},{"op":"before-after","display":"differentiate d/dtime","data":["loadTorque.phi - inertia1.phi","der(loadTorque.phi) - der(inertia1.phi)"]},{"op":"before-after","display":"differentiate d/dtime","data":["spring.phi_rel","der(spring.phi_rel)"]},{"op":"chain","display":"substitution","data":["spring.flange_b.phi - spring.flange_a.phi","loadTorque.phi - inertia1.phi","inertia2.phi - inertia1.phi"]},{"op":"before-after","display":"flattening","data":["phi_rel = flange_b.phi - flange_a.phi;","spring.phi_rel = spring.flange_b.phi - spring.flange_a.phi;"]}]}}, {"eqIndex":47,"tag":"alias","equation":[190],"section":"initial"}, {"eqIndex":48,"tag":"alias","equation":[202],"section":"initial"}, {"eqIndex":49,"tag":"alias","equation":[203],"section":"initial"}, {"eqIndex":50,"tag":"alias","equation":[204],"section":"initial"}, {"eqIndex":51,"section":"initial","tag":"assign","defines":["PI.I.y"],"uses":["PI.addPID.k3","PI.Dzero.k","PI.addPID.k2","PI.P.y","PI.addPID.k1","PI.addPID.y"],"equation":["(PI.addPID.y - (PI.addPID.k1 * PI.P.y + PI.addPID.k2 * PI.Dzero.k)) / PI.addPID.k3"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":981,"lineEnd":981,"colStart":5,"colEnd":30},"within":["Modelica.Blocks.Math.Add3"],"instance":"PIaddPID","operations":[{"op":"info","display":"solved","data":["PI.I.y = (PI.addPID.y - (PI.addPID.k1 * PI.P.y + PI.addPID.k2 * PI.Dzero.k)) / PI.addPID.k3"]},{"op":"info","display":"solved","data":["PI.I.y = (PI.addPID.y - (PI.addPID.k1 * PI.P.y + PI.addPID.k2 * PI.Dzero.k)) / PI.addPID.k3"]},{"op":"chain","display":"substitution","data":["PI.addPID.k1 * PI.addPID.u1 + PI.addPID.k2 * PI.addPID.u2 + PI.addPID.k3 * PI.addPID.u3","PI.addPID.k1 * PI.P.y + PI.addPID.k2 * PI.Dzero.k + PI.addPID.k3 * PI.I.y"]},{"op":"before-after","display":"flattening","data":["y = k1 * u1 + k2 * u2 + k3 * u3;","PI.addPID.y = PI.addPID.k1 * PI.addPID.u1 + PI.addPID.k2 * PI.addPID.u2 + PI.addPID.k3 * PI.addPID.u3;"]}]}}, {"eqIndex":52,"tag":"alias","equation":[217],"section":"initial"}, {"eqIndex":53,"section":"initial","tag":"algorithm","equation":["assert(PI.limiter.uMax >= PI.limiter.uMin, \"Limiter: Limits must be consistent. However, uMax (=\" + String(PI.limiter.uMax, 6, 0, true) + \") < uMin (=\" + String(PI.limiter.uMin, 6, 0, true) + \")\");"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Nonlinear.mo","lineStart":22,"lineEnd":23,"colStart":9,"colEnd":65},"within":["Modelica.Blocks.Nonlinear.Limiter$PI$limiter"],"instance":"PIlimiter","operations":[{"op":"info","display":"scode","data":["assert(uMax >= uMin, \"Limiter: Limits must be consistent. However, uMax (=\" + String(uMax) + \") < uMin (=\" + String(uMin) + \")\");"]}]}}, {"eqIndex":54,"section":"initial-lambda0","tag":"assign","defines":["PI.controllerType"],"uses":[],"equation":["Modelica.Blocks.Types.SimpleController.PI"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":889,"lineEnd":890,"colStart":5,"colEnd":76},"within":["Modelica.Blocks.Types.SimpleController"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, {"eqIndex":55,"section":"initial-lambda0","tag":"assign","defines":["PI.Td"],"uses":[],"equation":["0.1"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":896,"lineEnd":899,"colStart":5,"colEnd":76},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, {"eqIndex":56,"section":"initial-lambda0","tag":"assign","defines":["PI.wd"],"uses":[],"equation":["0.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":904,"lineEnd":906,"colStart":5,"colEnd":96},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, {"eqIndex":57,"section":"initial-lambda0","tag":"assign","defines":["PI.Nd"],"uses":[],"equation":["10.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":911,"lineEnd":914,"colStart":5,"colEnd":96},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, {"eqIndex":58,"section":"initial-lambda0","tag":"assign","defines":["PI.withFeedForward"],"uses":[],"equation":["false"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":915,"lineEnd":916,"colStart":5,"colEnd":56},"within":["Boolean"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, {"eqIndex":59,"section":"initial-lambda0","tag":"assign","defines":["PI.initType"],"uses":[],"equation":["Modelica.Blocks.Types.InitPID.SteadyState"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":919,"lineEnd":921,"colStart":5,"colEnd":64},"within":["Modelica.Blocks.Types.InitPID"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, {"eqIndex":60,"section":"initial-lambda0","tag":"assign","defines":["PI.xd_start"],"uses":[],"equation":["0.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":927,"lineEnd":931,"colStart":5,"colEnd":96},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, {"eqIndex":61,"section":"initial-lambda0","tag":"assign","defines":["PI.y_start"],"uses":[],"equation":["0.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":932,"lineEnd":934,"colStart":5,"colEnd":31},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, {"eqIndex":62,"section":"initial-lambda0","tag":"assign","defines":["PI.homotopyType"],"uses":[],"equation":["Modelica.Blocks.Types.LimiterHomotopy.Linear"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":935,"lineEnd":937,"colStart":5,"colEnd":65},"within":["Modelica.Blocks.Types.LimiterHomotopy"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, {"eqIndex":63,"section":"initial-lambda0","tag":"assign","defines":["PI.strict"],"uses":[],"equation":["false"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":938,"lineEnd":939,"colStart":5,"colEnd":81},"within":["Boolean"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, {"eqIndex":64,"section":"initial-lambda0","tag":"assign","defines":["PI.limitsAtInit"],"uses":[],"equation":["false"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":940,"lineEnd":942,"colStart":5,"colEnd":77},"within":["Boolean"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, {"eqIndex":65,"section":"initial-lambda0","tag":"assign","defines":["PI.addP.k1"],"uses":["PI.wp"],"equation":["PI.wp"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":911,"lineEnd":911,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add$PI$addP"]}}, {"eqIndex":66,"section":"initial-lambda0","tag":"assign","defines":["PI.wp"],"uses":[],"equation":["1.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":902,"lineEnd":903,"colStart":5,"colEnd":55},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, {"eqIndex":67,"section":"initial-lambda0","tag":"assign","defines":["PI.addP.k2"],"uses":[],"equation":["-1.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":912,"lineEnd":912,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add$PI$addP"]}}, {"eqIndex":68,"section":"initial-lambda0","tag":"assign","defines":["PI.P.k"],"uses":[],"equation":["1.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":543,"lineEnd":544,"colStart":5,"colEnd":48},"within":["Real"],"instance":"PIP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Gain$PI$P"]}}, {"eqIndex":69,"section":"initial-lambda0","tag":"assign","defines":["PI.gainPID.k"],"uses":["PI.k"],"equation":["PI.k"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":543,"lineEnd":544,"colStart":5,"colEnd":48},"within":["Real"],"instance":"PIgainPID","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Gain$PI$gainPID"]}}, {"eqIndex":70,"section":"initial-lambda0","tag":"assign","defines":["PI.addPID.k1"],"uses":[],"equation":["1.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":968,"lineEnd":968,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddPID","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add3"]}}, {"eqIndex":71,"section":"initial-lambda0","tag":"assign","defines":["PI.addPID.k2"],"uses":[],"equation":["1.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":969,"lineEnd":969,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddPID","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add3"]}}, {"eqIndex":72,"section":"initial-lambda0","tag":"assign","defines":["PI.addPID.k3"],"uses":[],"equation":["1.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":970,"lineEnd":970,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddPID","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add3"]}}, {"eqIndex":73,"section":"initial-lambda0","tag":"assign","defines":["PI.limiter.uMax"],"uses":["PI.yMax"],"equation":["PI.yMax"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Nonlinear.mo","lineStart":8,"lineEnd":8,"colStart":9,"colEnd":69},"within":["Real"],"instance":"PIlimiter","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Nonlinear.Limiter$PI$limiter"]}}, {"eqIndex":74,"section":"initial-lambda0","tag":"assign","defines":["PI.limiter.uMin"],"uses":["PI.yMin"],"equation":["PI.yMin"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Nonlinear.mo","lineStart":9,"lineEnd":9,"colStart":9,"colEnd":67},"within":["Real"],"instance":"PIlimiter","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Nonlinear.Limiter$PI$limiter"]}}, {"eqIndex":75,"section":"initial-lambda0","tag":"assign","defines":["PI.yMin"],"uses":["PI.yMax"],"equation":["-PI.yMax"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":901,"lineEnd":901,"colStart":5,"colEnd":54},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, {"eqIndex":76,"section":"initial-lambda0","tag":"assign","defines":["PI.yMax"],"uses":[],"equation":["12.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":900,"lineEnd":900,"colStart":5,"colEnd":57},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, {"eqIndex":77,"section":"initial-lambda0","tag":"assign","defines":["PI.limiter.strict"],"uses":[],"equation":["false"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Nonlinear.mo","lineStart":10,"lineEnd":11,"colStart":9,"colEnd":85},"within":["Boolean"],"instance":"PIlimiter","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Nonlinear.Limiter$PI$limiter"]}}, {"eqIndex":78,"section":"initial-lambda0","tag":"assign","defines":["PI.limiter.homotopyType"],"uses":[],"equation":["Modelica.Blocks.Types.LimiterHomotopy.Linear"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Nonlinear.mo","lineStart":12,"lineEnd":13,"colStart":9,"colEnd":69},"within":["Modelica.Blocks.Types.LimiterHomotopy"],"instance":"PIlimiter","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Nonlinear.Limiter$PI$limiter"]}}, {"eqIndex":79,"section":"initial-lambda0","tag":"assign","defines":["PI.limiter.limitsAtInit"],"uses":[],"equation":["false"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Nonlinear.mo","lineStart":14,"lineEnd":16,"colStart":9,"colEnd":81},"within":["Boolean"],"instance":"PIlimiter","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Nonlinear.Limiter$PI$limiter"]}}, {"eqIndex":80,"section":"initial-lambda0","tag":"assign","defines":["PI.with_I"],"uses":[],"equation":["true"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":993,"lineEnd":994,"colStart":5,"colEnd":111},"within":["Boolean"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, {"eqIndex":81,"section":"initial-lambda0","tag":"assign","defines":["PI.with_D"],"uses":[],"equation":["false"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":995,"lineEnd":996,"colStart":5,"colEnd":111},"within":["Boolean"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, {"eqIndex":82,"section":"initial-lambda0","tag":"assign","defines":["PI.addFF.k1"],"uses":[],"equation":["1.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":911,"lineEnd":911,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddFF","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add$PI$addFF"]}}, {"eqIndex":83,"section":"initial-lambda0","tag":"assign","defines":["PI.addFF.k2"],"uses":["PI.kFF"],"equation":["PI.kFF"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":912,"lineEnd":912,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddFF","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add$PI$addFF"]}}, {"eqIndex":84,"section":"initial-lambda0","tag":"assign","defines":["PI.kFF"],"uses":[],"equation":["1.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":917,"lineEnd":918,"colStart":5,"colEnd":49},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, {"eqIndex":85,"section":"initial-lambda0","tag":"assign","defines":["PI.I.k"],"uses":["PI.Ti"],"equation":["1.0 / PI.Ti"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":10,"lineEnd":10,"colStart":5,"colEnd":51},"within":["Real"],"instance":"PII","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Continuous.Integrator$PI$I"]}}, {"eqIndex":86,"section":"initial-lambda0","tag":"assign","defines":["PI.Ti"],"uses":[],"equation":["0.1"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":892,"lineEnd":895,"colStart":5,"colEnd":76},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, {"eqIndex":87,"section":"initial-lambda0","tag":"assign","defines":["PI.I.use_reset"],"uses":[],"equation":["false"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":11,"lineEnd":12,"colStart":5,"colEnd":73},"within":["Boolean"],"instance":"PII","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Continuous.Integrator$PI$I"]}}, {"eqIndex":88,"section":"initial-lambda0","tag":"assign","defines":["PI.I.use_set"],"uses":[],"equation":["false"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":13,"lineEnd":14,"colStart":5,"colEnd":99},"within":["Boolean"],"instance":"PII","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Continuous.Integrator$PI$I"]}}, {"eqIndex":89,"section":"initial-lambda0","tag":"assign","defines":["PI.I.initType"],"uses":[],"equation":["Modelica.Blocks.Types.Init.SteadyState"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":19,"lineEnd":21,"colStart":5,"colEnd":40},"within":["Modelica.Blocks.Types.Init"],"instance":"PII","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Continuous.Integrator$PI$I"]}}, {"eqIndex":90,"section":"initial-lambda0","tag":"assign","defines":["PI.I.y_start"],"uses":["PI.xi_start"],"equation":["PI.xi_start"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":22,"lineEnd":23,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PII","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Continuous.Integrator$PI$I"]}}, {"eqIndex":91,"section":"initial-lambda0","tag":"assign","defines":["PI.xi_start"],"uses":[],"equation":["0.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":922,"lineEnd":926,"colStart":5,"colEnd":87},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, {"eqIndex":92,"section":"initial-lambda0","tag":"assign","defines":["PI.addI.k1"],"uses":[],"equation":["1.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":968,"lineEnd":968,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add3$PI$addI"]}}, {"eqIndex":93,"section":"initial-lambda0","tag":"assign","defines":["PI.addI.k2"],"uses":[],"equation":["-1.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":969,"lineEnd":969,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add3$PI$addI"]}}, {"eqIndex":94,"section":"initial-lambda0","tag":"assign","defines":["PI.addI.k3"],"uses":[],"equation":["1.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":970,"lineEnd":970,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add3$PI$addI"]}}, {"eqIndex":95,"section":"initial-lambda0","tag":"assign","defines":["PI.addSat.k1"],"uses":[],"equation":["1.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":911,"lineEnd":911,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddSat","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add$PI$addSat"]}}, {"eqIndex":96,"section":"initial-lambda0","tag":"assign","defines":["PI.addSat.k2"],"uses":[],"equation":["-1.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":912,"lineEnd":912,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddSat","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add$PI$addSat"]}}, {"eqIndex":97,"section":"initial-lambda0","tag":"assign","defines":["PI.gainTrack.k"],"uses":["PI.k","PI.Ni"],"equation":["1.0 / (PI.Ni * PI.k)"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":543,"lineEnd":544,"colStart":5,"colEnd":48},"within":["Real"],"instance":"PIgainTrack","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Gain$PI$gainTrack"]}}, {"eqIndex":98,"section":"initial-lambda0","tag":"assign","defines":["PI.Ni"],"uses":[],"equation":["0.1"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":907,"lineEnd":910,"colStart":5,"colEnd":94},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, {"eqIndex":99,"section":"initial-lambda0","tag":"assign","defines":["PI.k"],"uses":[],"equation":["100.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":891,"lineEnd":891,"colStart":5,"colEnd":63},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, {"eqIndex":100,"section":"initial-lambda0","tag":"assign","defines":["inertia1.J"],"uses":[],"equation":["1.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2471,"lineEnd":2471,"colStart":7,"colEnd":65},"within":["Real"],"instance":"inertia1","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.Inertia$inertia1"]}}, {"eqIndex":101,"section":"initial-lambda0","tag":"assign","defines":["inertia1.stateSelect"],"uses":[],"equation":["StateSelect.default"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2472,"lineEnd":2474,"colStart":7,"colEnd":61},"within":["StateSelect"],"instance":"inertia1","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.Inertia$inertia1"]}}, {"eqIndex":102,"section":"initial-lambda0","tag":"assign","defines":["torque.useSupport"],"uses":[],"equation":["false"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7417,"lineEnd":7422,"colStart":7,"colEnd":32},"within":["Boolean"],"instance":"torque","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Sources.Torque"]}}, {"eqIndex":103,"section":"initial-lambda0","tag":"assign","defines":["spring.phi_nominal"],"uses":[],"equation":["0.0001"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7299,"lineEnd":7302,"colStart":7,"colEnd":44},"within":["Real"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}}, {"eqIndex":104,"section":"initial-lambda0","tag":"assign","defines":["spring.stateSelect"],"uses":[],"equation":["StateSelect.prefer"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7303,"lineEnd":7305,"colStart":7,"colEnd":61},"within":["StateSelect"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}}, {"eqIndex":105,"section":"initial-lambda0","tag":"assign","defines":["spring.useHeatPort"],"uses":[],"equation":["false"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Thermal/HeatTransfer.mo","lineStart":3137,"lineEnd":3138,"colStart":7,"colEnd":75},"within":["Boolean"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}}, {"eqIndex":106,"section":"initial-lambda0","tag":"assign","defines":["spring.c"],"uses":[],"equation":["10000.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2694,"lineEnd":2695,"colStart":7,"colEnd":26},"within":["Real"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}}, {"eqIndex":107,"section":"initial-lambda0","tag":"assign","defines":["spring.d"],"uses":[],"equation":["100.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2696,"lineEnd":2697,"colStart":7,"colEnd":27},"within":["Real"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}}, {"eqIndex":108,"section":"initial-lambda0","tag":"assign","defines":["spring.phi_rel0"],"uses":[],"equation":["0.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2698,"lineEnd":2698,"colStart":7,"colEnd":63},"within":["Real"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}}, {"eqIndex":109,"section":"initial-lambda0","tag":"assign","defines":["inertia2.J"],"uses":[],"equation":["2.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2471,"lineEnd":2471,"colStart":7,"colEnd":65},"within":["Real"],"instance":"inertia2","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.Inertia$inertia2"]}}, {"eqIndex":110,"section":"initial-lambda0","tag":"assign","defines":["inertia2.stateSelect"],"uses":[],"equation":["StateSelect.default"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2472,"lineEnd":2474,"colStart":7,"colEnd":61},"within":["StateSelect"],"instance":"inertia2","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.Inertia$inertia2"]}}, {"eqIndex":111,"section":"initial-lambda0","tag":"assign","defines":["kinematicPTP.nout"],"uses":[],"equation":["1"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Interfaces.mo","lineStart":313,"lineEnd":313,"colStart":5,"colEnd":58},"within":["Integer"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"]}}, {"eqIndex":112,"section":"initial-lambda0","tag":"assign","defines":["kinematicPTP.startTime"],"uses":[],"equation":["0.5"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1458,"lineEnd":1458,"colStart":5,"colEnd":79},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"]}}, {"eqIndex":113,"section":"initial-lambda0","tag":"assign","defines":["kinematicPTP.p_deltaq[1]"],"uses":["kinematicPTP.deltaq[1]"],"equation":["kinematicPTP.deltaq[1]"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1463,"lineEnd":1464,"colStart":5,"colEnd":31},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"]}}, {"eqIndex":114,"section":"initial-lambda0","tag":"assign","defines":["kinematicPTP.deltaq[1]"],"uses":["driveAngle"],"equation":["driveAngle"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1452,"lineEnd":1453,"colStart":5,"colEnd":106},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"]}}, {"eqIndex":115,"section":"initial-lambda0","tag":"assign","defines":["driveAngle"],"uses":[],"equation":["1.570796326794897"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/package.mo","lineStart":17,"lineEnd":18,"colStart":5,"colEnd":35},"within":["Real"],"typeLst":["Modelica.Blocks.Examples.PID_Controller"]}}, {"eqIndex":116,"section":"initial-lambda0","tag":"assign","defines":["kinematicPTP.p_qd_max[1]"],"uses":["kinematicPTP.qd_max[1]"],"equation":["kinematicPTP.qd_max[1]"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1465,"lineEnd":1466,"colStart":5,"colEnd":31},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"]}}, {"eqIndex":117,"section":"initial-lambda0","tag":"assign","defines":["kinematicPTP.qd_max[1]"],"uses":[],"equation":["1.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1454,"lineEnd":1455,"colStart":5,"colEnd":34},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"]}}, {"eqIndex":118,"section":"initial-lambda0","tag":"assign","defines":["kinematicPTP.p_qdd_max[1]"],"uses":["kinematicPTP.qdd_max[1]"],"equation":["kinematicPTP.qdd_max[1]"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1467,"lineEnd":1468,"colStart":5,"colEnd":33},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"]}}, {"eqIndex":119,"section":"initial-lambda0","tag":"assign","defines":["kinematicPTP.qdd_max[1]"],"uses":[],"equation":["1.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1456,"lineEnd":1457,"colStart":5,"colEnd":38},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"]}}, {"eqIndex":120,"section":"initial-lambda0","tag":"assign","defines":["integrator.k"],"uses":[],"equation":["1.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":10,"lineEnd":10,"colStart":5,"colEnd":51},"within":["Real"],"instance":"integrator","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.Integrator$integrator"]}}, {"eqIndex":121,"section":"initial-lambda0","tag":"assign","defines":["integrator.use_reset"],"uses":[],"equation":["false"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":11,"lineEnd":12,"colStart":5,"colEnd":73},"within":["Boolean"],"instance":"integrator","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.Integrator$integrator"]}}, {"eqIndex":122,"section":"initial-lambda0","tag":"assign","defines":["integrator.use_set"],"uses":[],"equation":["false"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":13,"lineEnd":14,"colStart":5,"colEnd":99},"within":["Boolean"],"instance":"integrator","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.Integrator$integrator"]}}, {"eqIndex":123,"section":"initial-lambda0","tag":"assign","defines":["integrator.initType"],"uses":[],"equation":["Modelica.Blocks.Types.Init.InitialState"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":19,"lineEnd":21,"colStart":5,"colEnd":40},"within":["Modelica.Blocks.Types.Init"],"instance":"integrator","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.Integrator$integrator"]}}, {"eqIndex":124,"section":"initial-lambda0","tag":"assign","defines":["integrator.y_start"],"uses":[],"equation":["0.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":22,"lineEnd":23,"colStart":5,"colEnd":50},"within":["Real"],"instance":"integrator","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.Integrator$integrator"]}}, {"eqIndex":125,"section":"initial-lambda0","tag":"assign","defines":["loadTorque.useSupport"],"uses":[],"equation":["false"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7417,"lineEnd":7422,"colStart":7,"colEnd":32},"within":["Boolean"],"instance":"loadTorque","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Sources.ConstantTorque$loadTorque"]}}, {"eqIndex":126,"section":"initial-lambda0","tag":"assign","defines":["loadTorque.tau"],"uses":["loadTorque.tau_constant"],"equation":["loadTorque.tau_constant"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":6685,"lineEnd":6686,"colStart":7,"colEnd":63},"within":["Real"],"instance":"loadTorque","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Sources.ConstantTorque$loadTorque"],"operations":[{"op":"info","display":"solved","data":["loadTorque.tau = loadTorque.tau_constant"]},{"op":"before-after","display":"flattening","data":["tau = tau_constant;","loadTorque.tau = loadTorque.tau_constant;"]}]}}, {"eqIndex":127,"section":"initial-lambda0","tag":"assign","defines":["loadTorque.flange.tau"],"uses":["loadTorque.tau_constant"],"equation":["-loadTorque.tau_constant"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":6864,"lineEnd":6864,"colStart":7,"colEnd":52},"within":["Real"],"instance":"loadTorqueflange","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Sources.ConstantTorque$loadTorque","Modelica.Mechanics.Rotational.Interfaces.Flange_b"],"operations":[{"op":"info","display":"solved","data":["loadTorque.flange.tau = -loadTorque.tau_constant"]},{"op":"chain","display":"substitution","data":["loadTorque.flange.tau","loadTorque.tau"]},{"op":"before-after","display":"flattening","data":["tau = -flange.tau;","loadTorque.tau = -loadTorque.flange.tau;"]}]}}, {"eqIndex":128,"section":"initial-lambda0","tag":"assign","defines":["inertia2.flange_b.tau"],"uses":["loadTorque.tau_constant"],"equation":["loadTorque.tau_constant"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":6864,"lineEnd":6864,"colStart":7,"colEnd":52},"within":["Real"],"instance":"inertia2flange_b","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.Inertia$inertia2","Modelica.Mechanics.Rotational.Interfaces.Flange_b"],"operations":[{"op":"info","display":"solved","data":["inertia2.flange_b.tau = loadTorque.tau_constant"]},{"op":"chain","display":"substitution","data":["inertia2.flange_b.tau","-loadTorque.flange.tau"]}]}}, {"eqIndex":129,"section":"initial-lambda0","tag":"assign","defines":["loadTorque.tau_constant"],"uses":[],"equation":["10.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":6681,"lineEnd":6682,"colStart":7,"colEnd":100},"within":["Real"],"instance":"loadTorque","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Sources.ConstantTorque$loadTorque"]}}, {"eqIndex":130,"section":"initial-lambda0","tag":"assign","defines":["PI.FFzero.y"],"uses":["PI.FFzero.k"],"equation":["PI.FFzero.k"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Interfaces.mo","lineStart":300,"lineEnd":301,"colStart":5,"colEnd":56},"within":["Real"],"instance":"PIFFzero","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Sources.Constant$PI$FFzero"],"operations":[{"op":"info","display":"solved","data":["PI.FFzero.y = PI.FFzero.k"]},{"op":"before-after","display":"flattening","data":["y = k;","PI.FFzero.y = PI.FFzero.k;"]}]}}, {"eqIndex":131,"section":"initial-lambda0","tag":"assign","defines":["PI.addFF.u2"],"uses":["PI.FFzero.k"],"equation":["PI.FFzero.k"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Interfaces.mo","lineStart":344,"lineEnd":345,"colStart":5,"colEnd":59},"within":["Real"],"instance":"PIaddFF","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add$PI$addFF"],"operations":[{"op":"info","display":"solved","data":["PI.addFF.u2 = PI.FFzero.k"]},{"op":"chain","display":"substitution","data":["PI.addFF.u2","PI.FFzero.y"]}]}}, {"eqIndex":132,"section":"initial-lambda0","tag":"assign","defines":["PI.FFzero.k"],"uses":[],"equation":["0.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":216,"lineEnd":217,"colStart":5,"colEnd":102},"within":["Real"],"instance":"PIFFzero","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Sources.Constant$PI$FFzero"]}}, {"eqIndex":133,"section":"initial-lambda0","tag":"assign","defines":["PI.Dzero.y"],"uses":["PI.Dzero.k"],"equation":["PI.Dzero.k"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Interfaces.mo","lineStart":300,"lineEnd":301,"colStart":5,"colEnd":56},"within":["Real"],"instance":"PIDzero","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Sources.Constant$PI$Dzero"],"operations":[{"op":"info","display":"solved","data":["PI.Dzero.y = PI.Dzero.k"]},{"op":"before-after","display":"flattening","data":["y = k;","PI.Dzero.y = PI.Dzero.k;"]}]}}, {"eqIndex":134,"section":"initial-lambda0","tag":"assign","defines":["PI.addPID.u2"],"uses":["PI.Dzero.k"],"equation":["PI.Dzero.k"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":973,"lineEnd":974,"colStart":5,"colEnd":66},"within":["Real"],"instance":"PIaddPID","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add3"],"operations":[{"op":"info","display":"solved","data":["PI.addPID.u2 = PI.Dzero.k"]},{"op":"chain","display":"substitution","data":["PI.addPID.u2","PI.Dzero.y"]}]}}, {"eqIndex":135,"section":"initial-lambda0","tag":"assign","defines":["PI.Dzero.k"],"uses":[],"equation":["0.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":216,"lineEnd":217,"colStart":5,"colEnd":102},"within":["Real"],"instance":"PIDzero","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Sources.Constant$PI$Dzero"]}}, {"eqIndex":136,"tag":"alias","equation":[1],"section":"initial-lambda0"}, {"eqIndex":137,"tag":"alias","equation":[2],"section":"initial-lambda0"}, {"eqIndex":138,"tag":"alias","equation":[3],"section":"initial-lambda0"}, {"eqIndex":139,"tag":"alias","equation":[4],"section":"initial-lambda0"}, {"eqIndex":140,"tag":"alias","equation":[5],"section":"initial-lambda0"}, {"eqIndex":141,"tag":"alias","equation":[6],"section":"initial-lambda0"}, {"eqIndex":142,"tag":"alias","equation":[7],"section":"initial-lambda0"}, {"eqIndex":143,"tag":"alias","equation":[8],"section":"initial-lambda0"}, {"eqIndex":144,"tag":"alias","equation":[9],"section":"initial-lambda0"}, {"eqIndex":145,"tag":"alias","equation":[10],"section":"initial-lambda0"}, {"eqIndex":146,"tag":"alias","equation":[11],"section":"initial-lambda0"}, {"eqIndex":147,"tag":"alias","equation":[187],"section":"initial-lambda0"}, {"eqIndex":148,"tag":"alias","equation":[188],"section":"initial-lambda0"}, {"eqIndex":149,"tag":"alias","equation":[189],"section":"initial-lambda0"}, {"eqIndex":150,"tag":"alias","equation":[198],"section":"initial-lambda0"}, {"eqIndex":151,"tag":"alias","equation":[199],"section":"initial-lambda0"}, {"eqIndex":152,"tag":"alias","equation":[200],"section":"initial-lambda0"}, {"eqIndex":153,"tag":"alias","equation":[18],"section":"initial-lambda0"}, {"eqIndex":154,"tag":"alias","equation":[19],"section":"initial-lambda0"}, {"eqIndex":155,"tag":"alias","equation":[20],"section":"initial-lambda0"}, {"eqIndex":156,"tag":"alias","equation":[21],"section":"initial-lambda0"}, {"eqIndex":157,"tag":"alias","equation":[212],"section":"initial-lambda0"}, {"eqIndex":158,"tag":"alias","equation":[23],"section":"initial-lambda0"}, {"eqIndex":159,"tag":"alias","equation":[197],"section":"initial-lambda0"}, {"eqIndex":160,"tag":"alias","equation":[192],"section":"initial-lambda0"}, {"eqIndex":161,"tag":"alias","equation":[193],"section":"initial-lambda0"}, {"eqIndex":162,"tag":"alias","equation":[27],"section":"initial-lambda0"}, {"eqIndex":163,"tag":"alias","equation":[28],"section":"initial-lambda0"}, {"eqIndex":164,"tag":"alias","equation":[29],"section":"initial-lambda0"}, {"eqIndex":165,"tag":"alias","equation":[30],"section":"initial-lambda0"}, {"eqIndex":166,"tag":"alias","equation":[31],"section":"initial-lambda0"}, {"eqIndex":167,"tag":"alias","equation":[32],"section":"initial-lambda0"}, {"eqIndex":168,"tag":"alias","equation":[218],"section":"initial-lambda0"}, {"eqIndex":169,"tag":"alias","equation":[34],"section":"initial-lambda0"}, {"eqIndex":170,"section":"initial-lambda0","tag":"assign","defines":["PI.addFF.y"],"uses":["PI.y"],"equation":["PI.y"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Nonlinear.mo","lineStart":39,"lineEnd":40,"colStart":13,"colEnd":52},"within":["Modelica.Blocks.Nonlinear.Limiter$PI$limiter"],"instance":"PIlimiter","operations":[{"op":"info","display":"solved","data":["PI.addFF.y = PI.y"]},{"op":"info","display":"solved","data":["PI.addFF.y = PI.y"]},{"op":"chain","display":"substitution","data":["homotopy(smooth(0, if PI.limiter.u > PI.limiter.uMax then PI.limiter.uMax else if PI.limiter.u < PI.limiter.uMin then PI.limiter.uMin else PI.limiter.u), PI.limiter.simplifiedExpr)","homotopy(smooth(0, if PI.addFF.y > PI.limiter.uMax then PI.limiter.uMax else if PI.addFF.y < PI.limiter.uMin then PI.limiter.uMin else PI.addFF.y), PI.addFF.y)"]},{"op":"chain","display":"substitution","data":["PI.limiter.y","PI.y"]},{"op":"before-after","display":"flattening","data":["y = homotopy(actual = smooth(0, if u > uMax then uMax else if u < uMin then uMin else u), simplified = simplifiedExpr);","PI.limiter.y = homotopy(smooth(0, if PI.limiter.u > PI.limiter.uMax then PI.limiter.uMax else if PI.limiter.u < PI.limiter.uMin then PI.limiter.uMin else PI.limiter.u), PI.limiter.simplifiedExpr);"]}]}}, {"eqIndex":171,"tag":"alias","equation":[213],"section":"initial-lambda0"}, {"eqIndex":172,"tag":"alias","equation":[214],"section":"initial-lambda0"}, {"eqIndex":173,"tag":"alias","equation":[39],"section":"initial-lambda0"}, {"eqIndex":174,"tag":"alias","equation":[40],"section":"initial-lambda0"}, {"eqIndex":175,"tag":"alias","equation":[196],"section":"initial-lambda0"}, {"eqIndex":176,"tag":"alias","equation":[42],"section":"initial-lambda0"}, {"eqIndex":177,"tag":"alias","equation":[43],"section":"initial-lambda0"}, {"eqIndex":178,"tag":"alias","equation":[44],"section":"initial-lambda0"}, {"eqIndex":179,"tag":"alias","equation":[45],"section":"initial-lambda0"}, {"eqIndex":180,"tag":"alias","equation":[46],"section":"initial-lambda0"}, {"eqIndex":181,"tag":"alias","equation":[190],"section":"initial-lambda0"}, {"eqIndex":182,"tag":"alias","equation":[202],"section":"initial-lambda0"}, {"eqIndex":183,"tag":"alias","equation":[203],"section":"initial-lambda0"}, {"eqIndex":184,"tag":"alias","equation":[204],"section":"initial-lambda0"}, {"eqIndex":185,"tag":"alias","equation":[51],"section":"initial-lambda0"}, {"eqIndex":186,"tag":"alias","equation":[217],"section":"initial-lambda0"}, {"eqIndex":187,"section":"regular","tag":"assign","defines":["kinematicPTP.noWphase"],"uses":["kinematicPTP.Ta1","kinematicPTP.Ta2"],"equation":["kinematicPTP.Ta2 >= kinematicPTP.Ta1"],"source":{"info":{"file":"","lineStart":0,"lineEnd":0,"colStart":0,"colEnd":0},"operations":[{"op":"info","display":"solved","data":["kinematicPTP.noWphase = kinematicPTP.Ta2 >= kinematicPTP.Ta1"]},{"op":"info","display":"solved","data":["kinematicPTP.noWphase = kinematicPTP.Ta2 >= kinematicPTP.Ta1"]}]}}, {"eqIndex":188,"section":"regular","tag":"assign","defines":["kinematicPTP.Tv"],"uses":["kinematicPTP.sd_max","kinematicPTP.Ta1","kinematicPTP.noWphase"],"equation":["if kinematicPTP.noWphase then kinematicPTP.Ta1 else 1.0 / kinematicPTP.sd_max"],"source":{"info":{"file":"","lineStart":0,"lineEnd":0,"colStart":0,"colEnd":0},"operations":[{"op":"info","display":"solved","data":["kinematicPTP.Tv = if kinematicPTP.noWphase then kinematicPTP.Ta1 else 1.0 / kinematicPTP.sd_max"]},{"op":"info","display":"solved","data":["kinematicPTP.Tv = if kinematicPTP.noWphase then kinematicPTP.Ta1 else 1.0 / kinematicPTP.sd_max"]}]}}, {"eqIndex":189,"section":"regular","tag":"assign","defines":["kinematicPTP.Te"],"uses":["kinematicPTP.Ta2","kinematicPTP.Tv","kinematicPTP.Ta1","kinematicPTP.noWphase"],"equation":["if kinematicPTP.noWphase then 2.0 * kinematicPTP.Ta1 else kinematicPTP.Tv + kinematicPTP.Ta2"],"source":{"info":{"file":"","lineStart":0,"lineEnd":0,"colStart":0,"colEnd":0},"operations":[{"op":"info","display":"solved","data":["kinematicPTP.Te = if kinematicPTP.noWphase then 2.0 * kinematicPTP.Ta1 else kinematicPTP.Tv + kinematicPTP.Ta2"]},{"op":"info","display":"solved","data":["kinematicPTP.Te = if kinematicPTP.noWphase then 2.0 * kinematicPTP.Ta1 else kinematicPTP.Tv + kinematicPTP.Ta2"]}]}}, {"eqIndex":190,"section":"regular","tag":"assign","defines":["der(loadTorque.phi)"],"uses":["inertia2.w"],"equation":["inertia2.w"],"source":{"info":{"file":"","lineStart":0,"lineEnd":0,"colStart":0,"colEnd":0},"operations":[{"op":"info","display":"solved","data":["der(loadTorque.phi) = inertia2.w"]},{"op":"info","display":"solved","data":["der(loadTorque.phi) = inertia2.w"]}]}}, {"eqIndex":191,"section":"regular","tag":"assign","defines":["spring.tau_c"],"uses":["spring.phi_rel0","spring.phi_rel","spring.c"],"equation":["spring.c * (spring.phi_rel - spring.phi_rel0)"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2707,"lineEnd":2707,"colStart":7,"colEnd":37},"within":["Modelica.Mechanics.Rotational.Components.SpringDamper$spring"],"instance":"spring","operations":[{"op":"info","display":"solved","data":["spring.tau_c = spring.c * (spring.phi_rel - spring.phi_rel0)"]},{"op":"info","display":"solved","data":["spring.tau_c = spring.c * (spring.phi_rel - spring.phi_rel0)"]},{"op":"before-after","display":"flattening","data":["tau_c = c * (phi_rel - phi_rel0);","spring.tau_c = spring.c * (spring.phi_rel - spring.phi_rel0);"]}]}}, {"eqIndex":192,"section":"regular","tag":"assign","defines":["spring.tau_d"],"uses":["spring.w_rel","spring.d"],"equation":["spring.d * spring.w_rel"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2708,"lineEnd":2708,"colStart":7,"colEnd":22},"within":["Modelica.Mechanics.Rotational.Components.SpringDamper$spring"],"instance":"spring","operations":[{"op":"info","display":"solved","data":["spring.tau_d = spring.d * spring.w_rel"]},{"op":"info","display":"solved","data":["spring.tau_d = spring.d * spring.w_rel"]},{"op":"before-after","display":"flattening","data":["tau_d = d * w_rel;","spring.tau_d = spring.d * spring.w_rel;"]}]}}, {"eqIndex":193,"section":"regular","tag":"assign","defines":["spring.lossPower"],"uses":["spring.w_rel","spring.tau_d"],"equation":["spring.tau_d * spring.w_rel"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2710,"lineEnd":2710,"colStart":7,"colEnd":30},"within":["Modelica.Mechanics.Rotational.Components.SpringDamper$spring"],"instance":"spring","operations":[{"op":"info","display":"solved","data":["spring.lossPower = spring.tau_d * spring.w_rel"]},{"op":"info","display":"solved","data":["spring.lossPower = spring.tau_d * spring.w_rel"]},{"op":"before-after","display":"flattening","data":["lossPower = tau_d * w_rel;","spring.lossPower = spring.tau_d * spring.w_rel;"]}]}}, {"eqIndex":194,"section":"regular","tag":"assign","defines":["spring.tau"],"uses":["spring.tau_d","spring.tau_c"],"equation":["spring.tau_c + spring.tau_d"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2709,"lineEnd":2709,"colStart":7,"colEnd":26},"within":["Modelica.Mechanics.Rotational.Components.SpringDamper$spring"],"instance":"spring","operations":[{"op":"info","display":"solved","data":["spring.tau = spring.tau_c + spring.tau_d"]},{"op":"info","display":"solved","data":["spring.tau = spring.tau_c + spring.tau_d"]},{"op":"before-after","display":"flattening","data":["tau = tau_c + tau_d;","spring.tau = spring.tau_c + spring.tau_d;"]}]}}, {"eqIndex":195,"section":"regular","tag":"assign","defines":["inertia2.a"],"uses":["inertia2.J","spring.tau","loadTorque.tau_constant"],"equation":["(loadTorque.tau_constant - spring.tau) / inertia2.J"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2490,"lineEnd":2490,"colStart":7,"colEnd":40},"within":["Modelica.Mechanics.Rotational.Components.Inertia$inertia2"],"instance":"inertia2","operations":[{"op":"info","display":"solved","data":["inertia2.a = (loadTorque.tau_constant - spring.tau) / inertia2.J"]},{"op":"info","display":"solved","data":["inertia2.a = (loadTorque.tau_constant - spring.tau) / inertia2.J"]},{"op":"before-after","display":"simplify","data":["inertia2.J * inertia2.a = (-spring.tau) + loadTorque.tau_constant","inertia2.J * inertia2.a = loadTorque.tau_constant - spring.tau"]},{"op":"chain","display":"substitution","data":["inertia2.flange_a.tau + inertia2.flange_b.tau","(-spring.tau) + loadTorque.tau_constant"]},{"op":"before-after","display":"flattening","data":["J * a = flange_a.tau + flange_b.tau;","inertia2.J * inertia2.a = inertia2.flange_a.tau + inertia2.flange_b.tau;"]}]}}, {"eqIndex":196,"section":"regular","tag":"assign","defines":["der(inertia2.w)"],"uses":["inertia2.a"],"equation":["inertia2.a"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2489,"lineEnd":2489,"colStart":7,"colEnd":17},"within":["Modelica.Mechanics.Rotational.Components.Inertia$inertia2"],"instance":"inertia2","operations":[{"op":"info","display":"solved","data":["der(inertia2.w) = inertia2.a"]},{"op":"info","display":"solved","data":["der(inertia2.w) = inertia2.a"]},{"op":"before-after","display":"differentiate d/dtime","data":["der(inertia2.w)","der(inertia2.w)"]},{"op":"before-after","display":"flattening","data":["a = der(w);","inertia2.a = der(inertia2.w);"]}]}}, {"eqIndex":197,"section":"regular","tag":"assign","defines":["der(spring.phi_rel)"],"uses":["spring.w_rel"],"equation":["spring.w_rel"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7309,"lineEnd":7309,"colStart":7,"colEnd":27},"within":["Modelica.Mechanics.Rotational.Components.SpringDamper$spring"],"instance":"spring","operations":[{"op":"info","display":"solved","data":["der(spring.phi_rel) = spring.w_rel"]},{"op":"info","display":"solved","data":["der(spring.phi_rel) = spring.w_rel"]},{"op":"before-after","display":"differentiate d/dtime","data":["der(spring.phi_rel)","der(spring.phi_rel)"]},{"op":"before-after","display":"flattening","data":["w_rel = der(phi_rel);","spring.w_rel = der(spring.phi_rel);"]}]}}, {"eqIndex":198,"section":"regular","tag":"assign","defines":["kinematicPTP.sdd"],"uses":["kinematicPTP.Tv","kinematicPTP.Ta2","kinematicPTP.Te","kinematicPTP.sdd_max","kinematicPTP.Ta1","kinematicPTP.noWphase","kinematicPTP.startTime","time"],"equation":["if time < kinematicPTP.startTime then 0.0 else if kinematicPTP.noWphase then if time < kinematicPTP.Ta1 + kinematicPTP.startTime then kinematicPTP.sdd_max else if time < kinematicPTP.Te + kinematicPTP.startTime then -kinematicPTP.sdd_max else 0.0 else if time < kinematicPTP.Ta2 + kinematicPTP.startTime then kinematicPTP.sdd_max else if time < kinematicPTP.Tv + kinematicPTP.startTime then 0.0 else if time < kinematicPTP.Te + kinematicPTP.startTime then -kinematicPTP.sdd_max else 0.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1495,"lineEnd":1498,"colStart":5,"colEnd":80},"within":["Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"],"instance":"kinematicPTP","operations":[{"op":"info","display":"solved","data":["kinematicPTP.sdd = if time < kinematicPTP.startTime then 0.0 else if kinematicPTP.noWphase then if time < kinematicPTP.Ta1 + kinematicPTP.startTime then kinematicPTP.sdd_max else if time < kinematicPTP.Te + kinematicPTP.startTime then -kinematicPTP.sdd_max else 0.0 else if time < kinematicPTP.Ta2 + kinematicPTP.startTime then kinematicPTP.sdd_max else if time < kinematicPTP.Tv + kinematicPTP.startTime then 0.0 else if time < kinematicPTP.Te + kinematicPTP.startTime then -kinematicPTP.sdd_max else 0.0"]},{"op":"info","display":"solved","data":["kinematicPTP.sdd = if time < kinematicPTP.startTime then 0.0 else if kinematicPTP.noWphase then if time < kinematicPTP.Ta1 + kinematicPTP.startTime then kinematicPTP.sdd_max else if time < kinematicPTP.Te + kinematicPTP.startTime then -kinematicPTP.sdd_max else 0.0 else if time < kinematicPTP.Ta2 + kinematicPTP.startTime then kinematicPTP.sdd_max else if time < kinematicPTP.Tv + kinematicPTP.startTime then 0.0 else if time < kinematicPTP.Te + kinematicPTP.startTime then -kinematicPTP.sdd_max else 0.0"]},{"op":"before-after","display":"flattening","data":["sdd = if time < startTime then 0 else if noWphase then if time < Ta1 + startTime then sdd_max else if time < Te + startTime then -sdd_max else 0 else if time < Ta2 + startTime then sdd_max else if time < Tv + startTime then 0 else if time < Te + startTime then -sdd_max else 0;","kinematicPTP.sdd = if time < kinematicPTP.startTime then 0.0 else if kinematicPTP.noWphase then if time < kinematicPTP.Ta1 + kinematicPTP.startTime then kinematicPTP.sdd_max else if time < kinematicPTP.Te + kinematicPTP.startTime then -kinematicPTP.sdd_max else 0.0 else if time < kinematicPTP.Ta2 + kinematicPTP.startTime then kinematicPTP.sdd_max else if time < kinematicPTP.Tv + kinematicPTP.startTime then 0.0 else if time < kinematicPTP.Te + kinematicPTP.startTime then -kinematicPTP.sdd_max else 0.0;"]}]}}, {"eqIndex":199,"section":"regular","tag":"assign","defines":["kinematicPTP.y[1]"],"uses":["kinematicPTP.sdd","kinematicPTP.p_deltaq[1]"],"equation":["kinematicPTP.p_deltaq[1] * kinematicPTP.sdd"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1501,"lineEnd":1501,"colStart":5,"colEnd":21},"within":["Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"],"instance":"kinematicPTP","operations":[{"op":"info","display":"solved","data":["kinematicPTP.y[1] = kinematicPTP.p_deltaq[1] * kinematicPTP.sdd"]},{"op":"info","display":"solved","data":["kinematicPTP.y[1] = kinematicPTP.p_deltaq[1] * kinematicPTP.sdd"]},{"op":"before-after","display":"flattening","data":["y = p_deltaq * sdd;","kinematicPTP.y[1] = kinematicPTP.p_deltaq[1] * kinematicPTP.sdd;"]}]}}, {"eqIndex":200,"section":"regular","tag":"assign","defines":["der(integrator.y)"],"uses":["kinematicPTP.y[1]","integrator.k"],"equation":["integrator.k * kinematicPTP.y[1]"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":61,"lineEnd":61,"colStart":5,"colEnd":17},"within":["Modelica.Blocks.Continuous.Integrator$integrator"],"instance":"integrator","operations":[{"op":"info","display":"solved","data":["der(integrator.y) = integrator.k * kinematicPTP.y[1]"]},{"op":"info","display":"solved","data":["der(integrator.y) = integrator.k * kinematicPTP.y[1]"]},{"op":"chain","display":"substitution","data":["integrator.k * integrator.u","integrator.k * kinematicPTP.y[1]"]},{"op":"before-after","display":"differentiate d/dtime","data":["der(integrator.y)","der(integrator.y)"]},{"op":"before-after","display":"flattening","data":["der(y) = k * u;","der(integrator.y) = integrator.k * integrator.u;"]}]}}, {"eqIndex":201,"section":"regular","tag":"assign","defines":["inertia1.w"],"uses":["spring.w_rel","inertia2.w"],"equation":["inertia2.w - spring.w_rel"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7308,"lineEnd":7308,"colStart":7,"colEnd":44},"within":["Modelica.Mechanics.Rotational.Components.SpringDamper$spring"],"instance":"spring","operations":[{"op":"info","display":"solved","data":["inertia1.w = inertia2.w - spring.w_rel"]},{"op":"info","display":"solved","data":["inertia1.w = inertia2.w - spring.w_rel"]},{"op":"before-after","display":"differentiate d/dtime","data":["loadTorque.phi - inertia1.phi","der(loadTorque.phi) - der(inertia1.phi)"]},{"op":"before-after","display":"differentiate d/dtime","data":["spring.phi_rel","der(spring.phi_rel)"]},{"op":"chain","display":"substitution","data":["spring.flange_b.phi - spring.flange_a.phi","loadTorque.phi - inertia1.phi","inertia2.phi - inertia1.phi"]},{"op":"before-after","display":"flattening","data":["phi_rel = flange_b.phi - flange_a.phi;","spring.phi_rel = spring.flange_b.phi - spring.flange_a.phi;"]}]}}, {"eqIndex":202,"section":"regular","tag":"assign","defines":["der(inertia1.phi)"],"uses":["inertia1.w"],"equation":["inertia1.w"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2488,"lineEnd":2488,"colStart":7,"colEnd":19},"within":["Modelica.Mechanics.Rotational.Components.Inertia$inertia1"],"instance":"inertia1","operations":[{"op":"info","display":"solved","data":["der(inertia1.phi) = inertia1.w"]},{"op":"info","display":"solved","data":["der(inertia1.phi) = inertia1.w"]},{"op":"before-after","display":"differentiate d/dtime","data":["der(inertia1.phi)","der(inertia1.phi)"]},{"op":"before-after","display":"flattening","data":["w = der(phi);","inertia1.w = der(inertia1.phi);"]}]}}, {"eqIndex":203,"section":"regular","tag":"assign","defines":["PI.P.u"],"uses":["inertia1.w","PI.addP.k2","integrator.y","PI.addP.k1"],"equation":["PI.addP.k1 * integrator.y + PI.addP.k2 * inertia1.w"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":915,"lineEnd":915,"colStart":5,"colEnd":22},"within":["Modelica.Blocks.Math.Add$PI$addP"],"instance":"PIaddP","operations":[{"op":"info","display":"solved","data":["PI.P.u = PI.addP.k1 * integrator.y + PI.addP.k2 * inertia1.w"]},{"op":"info","display":"solved","data":["PI.P.u = PI.addP.k1 * integrator.y + PI.addP.k2 * inertia1.w"]},{"op":"chain","display":"substitution","data":["PI.addP.k1 * PI.addP.u1 + PI.addP.k2 * PI.addP.u2","PI.addP.k1 * integrator.y + PI.addP.k2 * inertia1.w","PI.addP.k1 * integrator.y + PI.addP.k2 * PI.u_m"]},{"op":"chain","display":"substitution","data":["PI.addP.y","PI.P.u"]},{"op":"before-after","display":"flattening","data":["y = k1 * u1 + k2 * u2;","PI.addP.y = PI.addP.k1 * PI.addP.u1 + PI.addP.k2 * PI.addP.u2;"]}]}}, {"eqIndex":204,"section":"regular","tag":"assign","defines":["PI.P.y"],"uses":["PI.P.u","PI.P.k"],"equation":["PI.P.k * PI.P.u"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":552,"lineEnd":552,"colStart":5,"colEnd":12},"within":["Modelica.Blocks.Math.Gain$PI$P"],"instance":"PIP","operations":[{"op":"info","display":"solved","data":["PI.P.y = PI.P.k * PI.P.u"]},{"op":"info","display":"solved","data":["PI.P.y = PI.P.k * PI.P.u"]},{"op":"before-after","display":"flattening","data":["y = k * u;","PI.P.y = PI.P.k * PI.P.u;"]}]}}, {"eqIndex":205,"section":"regular","tag":"assign","defines":["PI.addPID.y"],"uses":["PI.I.y","PI.addPID.k3","PI.Dzero.k","PI.addPID.k2","PI.P.y","PI.addPID.k1"],"equation":["PI.addPID.k1 * PI.P.y + PI.addPID.k2 * PI.Dzero.k + PI.addPID.k3 * PI.I.y"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":981,"lineEnd":981,"colStart":5,"colEnd":30},"within":["Modelica.Blocks.Math.Add3"],"instance":"PIaddPID","operations":[{"op":"info","display":"solved","data":["PI.addPID.y = PI.addPID.k1 * PI.P.y + PI.addPID.k2 * PI.Dzero.k + PI.addPID.k3 * PI.I.y"]},{"op":"info","display":"solved","data":["PI.addPID.y = PI.addPID.k1 * PI.P.y + PI.addPID.k2 * PI.Dzero.k + PI.addPID.k3 * PI.I.y"]},{"op":"chain","display":"substitution","data":["PI.addPID.k1 * PI.addPID.u1 + PI.addPID.k2 * PI.addPID.u2 + PI.addPID.k3 * PI.addPID.u3","PI.addPID.k1 * PI.P.y + PI.addPID.k2 * PI.Dzero.k + PI.addPID.k3 * PI.I.y"]},{"op":"before-after","display":"flattening","data":["y = k1 * u1 + k2 * u2 + k3 * u3;","PI.addPID.y = PI.addPID.k1 * PI.addPID.u1 + PI.addPID.k2 * PI.addPID.u2 + PI.addPID.k3 * PI.addPID.u3;"]}]}}, {"eqIndex":206,"section":"regular","tag":"assign","defines":["PI.addFF.u1"],"uses":["PI.addPID.y","PI.gainPID.k"],"equation":["PI.gainPID.k * PI.addPID.y"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":552,"lineEnd":552,"colStart":5,"colEnd":12},"within":["Modelica.Blocks.Math.Gain$PI$gainPID"],"instance":"PIgainPID","operations":[{"op":"info","display":"solved","data":["PI.addFF.u1 = PI.gainPID.k * PI.addPID.y"]},{"op":"info","display":"solved","data":["PI.addFF.u1 = PI.gainPID.k * PI.addPID.y"]},{"op":"chain","display":"substitution","data":["PI.gainPID.k * PI.gainPID.u","PI.gainPID.k * PI.addPID.y"]},{"op":"chain","display":"substitution","data":["PI.gainPID.y","PI.addFF.u1"]},{"op":"before-after","display":"flattening","data":["y = k * u;","PI.gainPID.y = PI.gainPID.k * PI.gainPID.u;"]}]}}, {"eqIndex":207,"section":"regular","tag":"assign","defines":["PI.addFF.y"],"uses":["PI.FFzero.k","PI.addFF.k2","PI.addFF.u1","PI.addFF.k1"],"equation":["PI.addFF.k1 * PI.addFF.u1 + PI.addFF.k2 * PI.FFzero.k"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":915,"lineEnd":915,"colStart":5,"colEnd":22},"within":["Modelica.Blocks.Math.Add$PI$addFF"],"instance":"PIaddFF","operations":[{"op":"info","display":"solved","data":["PI.addFF.y = PI.addFF.k1 * PI.addFF.u1 + PI.addFF.k2 * PI.FFzero.k"]},{"op":"info","display":"solved","data":["PI.addFF.y = PI.addFF.k1 * PI.addFF.u1 + PI.addFF.k2 * PI.FFzero.k"]},{"op":"chain","display":"substitution","data":["PI.addFF.k1 * PI.addFF.u1 + PI.addFF.k2 * PI.addFF.u2","PI.addFF.k1 * PI.addFF.u1 + PI.addFF.k2 * PI.FFzero.k"]},{"op":"before-after","display":"flattening","data":["y = k1 * u1 + k2 * u2;","PI.addFF.y = PI.addFF.k1 * PI.addFF.u1 + PI.addFF.k2 * PI.addFF.u2;"]}]}}, {"eqIndex":208,"section":"regular","tag":"assign","defines":["PI.y"],"uses":["PI.limiter.uMin","PI.limiter.uMax","PI.addFF.y"],"equation":["smooth(0, if PI.addFF.y > PI.limiter.uMax then PI.limiter.uMax else if PI.addFF.y < PI.limiter.uMin then PI.limiter.uMin else PI.addFF.y)"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Nonlinear.mo","lineStart":39,"lineEnd":40,"colStart":13,"colEnd":52},"within":["Modelica.Blocks.Nonlinear.Limiter$PI$limiter"],"instance":"PIlimiter","operations":[{"op":"info","display":"solved","data":["PI.y = smooth(0, if PI.addFF.y > PI.limiter.uMax then PI.limiter.uMax else if PI.addFF.y < PI.limiter.uMin then PI.limiter.uMin else PI.addFF.y)"]},{"op":"info","display":"solved","data":["PI.y = smooth(0, if PI.addFF.y > PI.limiter.uMax then PI.limiter.uMax else if PI.addFF.y < PI.limiter.uMin then PI.limiter.uMin else PI.addFF.y)"]},{"op":"chain","display":"substitution","data":["homotopy(smooth(0, if PI.limiter.u > PI.limiter.uMax then PI.limiter.uMax else if PI.limiter.u < PI.limiter.uMin then PI.limiter.uMin else PI.limiter.u), PI.limiter.simplifiedExpr)","homotopy(smooth(0, if PI.addFF.y > PI.limiter.uMax then PI.limiter.uMax else if PI.addFF.y < PI.limiter.uMin then PI.limiter.uMin else PI.addFF.y), PI.addFF.y)"]},{"op":"chain","display":"substitution","data":["PI.limiter.y","PI.y"]},{"op":"before-after","display":"flattening","data":["y = homotopy(actual = smooth(0, if u > uMax then uMax else if u < uMin then uMin else u), simplified = simplifiedExpr);","PI.limiter.y = homotopy(smooth(0, if PI.limiter.u > PI.limiter.uMax then PI.limiter.uMax else if PI.limiter.u < PI.limiter.uMin then PI.limiter.uMin else PI.limiter.u), PI.limiter.simplifiedExpr);"]}]}}, {"eqIndex":209,"section":"regular","tag":"assign","defines":["inertia1.a"],"uses":["inertia1.J","spring.tau","PI.y"],"equation":["(PI.y + spring.tau) / inertia1.J"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2490,"lineEnd":2490,"colStart":7,"colEnd":40},"within":["Modelica.Mechanics.Rotational.Components.Inertia$inertia1"],"instance":"inertia1","operations":[{"op":"info","display":"solved","data":["inertia1.a = (PI.y + spring.tau) / inertia1.J"]},{"op":"info","display":"solved","data":["inertia1.a = (PI.y + spring.tau) / inertia1.J"]},{"op":"chain","display":"substitution","data":["inertia1.flange_a.tau + inertia1.flange_b.tau","PI.y + spring.tau","PI.y + inertia1.flange_b.tau"]},{"op":"before-after","display":"flattening","data":["J * a = flange_a.tau + flange_b.tau;","inertia1.J * inertia1.a = inertia1.flange_a.tau + inertia1.flange_b.tau;"]}]}}, {"eqIndex":210,"section":"regular","tag":"assign","defines":["spring.a_rel"],"uses":["inertia1.a","inertia2.a"],"equation":["inertia2.a - inertia1.a"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7308,"lineEnd":7308,"colStart":7,"colEnd":44},"within":["Modelica.Mechanics.Rotational.Components.SpringDamper$spring"],"instance":"spring","operations":[{"op":"info","display":"solved","data":["spring.a_rel = inertia2.a - inertia1.a"]},{"op":"info","display":"solved","data":["spring.a_rel = inertia2.a - inertia1.a"]},{"op":"before-after","display":"differentiate d/dtime","data":["inertia2.w - inertia1.w","der(inertia2.w) - der(inertia1.w)"]},{"op":"before-after","display":"differentiate d/dtime","data":["spring.w_rel","der(spring.w_rel)"]},{"op":"before-after","display":"differentiate d/dtime","data":["loadTorque.phi - inertia1.phi","der(loadTorque.phi) - der(inertia1.phi)"]},{"op":"before-after","display":"differentiate d/dtime","data":["spring.phi_rel","der(spring.phi_rel)"]},{"op":"chain","display":"substitution","data":["spring.flange_b.phi - spring.flange_a.phi","loadTorque.phi - inertia1.phi","inertia2.phi - inertia1.phi"]},{"op":"before-after","display":"flattening","data":["phi_rel = flange_b.phi - flange_a.phi;","spring.phi_rel = spring.flange_b.phi - spring.flange_a.phi;"]}]}}, {"eqIndex":211,"section":"regular","tag":"assign","defines":["der(spring.w_rel)"],"uses":["spring.a_rel"],"equation":["spring.a_rel"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7310,"lineEnd":7310,"colStart":7,"colEnd":25},"within":["Modelica.Mechanics.Rotational.Components.SpringDamper$spring"],"instance":"spring","operations":[{"op":"info","display":"solved","data":["der(spring.w_rel) = spring.a_rel"]},{"op":"info","display":"solved","data":["der(spring.w_rel) = spring.a_rel"]},{"op":"before-after","display":"differentiate d/dtime","data":["der(spring.w_rel)","der(spring.w_rel)"]},{"op":"before-after","display":"flattening","data":["a_rel = der(w_rel);","spring.a_rel = der(spring.w_rel);"]}]}}, {"eqIndex":212,"section":"regular","tag":"assign","defines":["der(inertia1.w)"],"uses":["inertia1.a"],"equation":["inertia1.a"],"source":{"info":{"file":"","lineStart":0,"lineEnd":0,"colStart":0,"colEnd":0},"operations":[{"op":"info","display":"solved","data":["der(inertia1.w) = inertia1.a"]},{"op":"info","display":"solved","data":["der(inertia1.w) = inertia1.a"]}]}}, {"eqIndex":213,"section":"regular","tag":"assign","defines":["PI.addSat.y"],"uses":["PI.addFF.y","PI.addSat.k2","PI.y","PI.addSat.k1"],"equation":["PI.addSat.k1 * PI.y + PI.addSat.k2 * PI.addFF.y"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":915,"lineEnd":915,"colStart":5,"colEnd":22},"within":["Modelica.Blocks.Math.Add$PI$addSat"],"instance":"PIaddSat","operations":[{"op":"info","display":"solved","data":["PI.addSat.y = PI.addSat.k1 * PI.y + PI.addSat.k2 * PI.addFF.y"]},{"op":"info","display":"solved","data":["PI.addSat.y = PI.addSat.k1 * PI.y + PI.addSat.k2 * PI.addFF.y"]},{"op":"chain","display":"substitution","data":["PI.addSat.k1 * PI.addSat.u1 + PI.addSat.k2 * PI.addSat.u2","PI.addSat.k1 * PI.y + PI.addSat.k2 * PI.addFF.y"]},{"op":"before-after","display":"flattening","data":["y = k1 * u1 + k2 * u2;","PI.addSat.y = PI.addSat.k1 * PI.addSat.u1 + PI.addSat.k2 * PI.addSat.u2;"]}]}}, {"eqIndex":214,"section":"regular","tag":"assign","defines":["PI.addI.u3"],"uses":["PI.addSat.y","PI.gainTrack.k"],"equation":["PI.gainTrack.k * PI.addSat.y"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":552,"lineEnd":552,"colStart":5,"colEnd":12},"within":["Modelica.Blocks.Math.Gain$PI$gainTrack"],"instance":"PIgainTrack","operations":[{"op":"info","display":"solved","data":["PI.addI.u3 = PI.gainTrack.k * PI.addSat.y"]},{"op":"info","display":"solved","data":["PI.addI.u3 = PI.gainTrack.k * PI.addSat.y"]},{"op":"chain","display":"substitution","data":["PI.gainTrack.k * PI.gainTrack.u","PI.gainTrack.k * PI.addSat.y"]},{"op":"chain","display":"substitution","data":["PI.gainTrack.y","PI.addI.u3"]},{"op":"before-after","display":"flattening","data":["y = k * u;","PI.gainTrack.y = PI.gainTrack.k * PI.gainTrack.u;"]}]}}, {"eqIndex":215,"section":"regular","tag":"assign","defines":["PI.I.u"],"uses":["PI.addI.u3","PI.addI.k3","inertia1.w","PI.addI.k2","integrator.y","PI.addI.k1"],"equation":["PI.addI.k1 * integrator.y + PI.addI.k2 * inertia1.w + PI.addI.k3 * PI.addI.u3"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":981,"lineEnd":981,"colStart":5,"colEnd":30},"within":["Modelica.Blocks.Math.Add3$PI$addI"],"instance":"PIaddI","operations":[{"op":"info","display":"solved","data":["PI.I.u = PI.addI.k1 * integrator.y + PI.addI.k2 * inertia1.w + PI.addI.k3 * PI.addI.u3"]},{"op":"info","display":"solved","data":["PI.I.u = PI.addI.k1 * integrator.y + PI.addI.k2 * inertia1.w + PI.addI.k3 * PI.addI.u3"]},{"op":"chain","display":"substitution","data":["PI.addI.k1 * PI.addI.u1 + PI.addI.k2 * PI.addI.u2 + PI.addI.k3 * PI.addI.u3","PI.addI.k1 * integrator.y + PI.addI.k2 * inertia1.w + PI.addI.k3 * PI.addI.u3","PI.addI.k1 * integrator.y + PI.addI.k2 * PI.u_m + PI.addI.k3 * PI.addI.u3"]},{"op":"chain","display":"substitution","data":["PI.addI.y","PI.I.u"]},{"op":"before-after","display":"flattening","data":["y = k1 * u1 + k2 * u2 + k3 * u3;","PI.addI.y = PI.addI.k1 * PI.addI.u1 + PI.addI.k2 * PI.addI.u2 + PI.addI.k3 * PI.addI.u3;"]}]}}, {"eqIndex":216,"section":"regular","tag":"assign","defines":["der(PI.I.y)"],"uses":["PI.I.u","PI.I.k"],"equation":["PI.I.k * PI.I.u"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":61,"lineEnd":61,"colStart":5,"colEnd":17},"within":["Modelica.Blocks.Continuous.Integrator$PI$I"],"instance":"PII","operations":[{"op":"info","display":"solved","data":["der(PI.I.y) = PI.I.k * PI.I.u"]},{"op":"info","display":"solved","data":["der(PI.I.y) = PI.I.k * PI.I.u"]},{"op":"before-after","display":"differentiate d/dtime","data":["der(PI.I.y)","der(PI.I.y)"]},{"op":"before-after","display":"flattening","data":["der(y) = k * u;","der(PI.I.y) = PI.I.k * PI.I.u;"]}]}}, {"eqIndex":217,"section":"regular","tag":"assign","defines":["PI.controlError"],"uses":["inertia1.w","integrator.y"],"equation":["integrator.y - inertia1.w"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":887,"lineEnd":888,"colStart":5,"colEnd":48},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"],"operations":[{"op":"info","display":"solved","data":["PI.controlError = integrator.y - inertia1.w"]},{"op":"info","display":"solved","data":["PI.controlError = integrator.y - inertia1.w"]},{"op":"chain","display":"substitution","data":["PI.u_s - PI.u_m","integrator.y - inertia1.w","integrator.y - PI.u_m"]}]}}, {"eqIndex":218,"section":"regular","tag":"assign","defines":["loadTorque.phi"],"uses":["spring.phi_rel","inertia1.phi"],"equation":["inertia1.phi + spring.phi_rel"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7308,"lineEnd":7308,"colStart":7,"colEnd":44},"within":["Modelica.Mechanics.Rotational.Components.SpringDamper$spring"],"instance":"spring","operations":[{"op":"info","display":"solved","data":["loadTorque.phi = inertia1.phi + spring.phi_rel"]},{"op":"info","display":"solved","data":["loadTorque.phi = inertia1.phi + spring.phi_rel"]},{"op":"chain","display":"substitution","data":["spring.flange_b.phi - spring.flange_a.phi","loadTorque.phi - inertia1.phi","inertia2.phi - inertia1.phi"]},{"op":"before-after","display":"flattening","data":["phi_rel = flange_b.phi - flange_a.phi;","spring.phi_rel = spring.flange_b.phi - spring.flange_a.phi;"]}]}}, {"eqIndex":219,"section":"regular","tag":"algorithm","equation":["assert(PI.limiter.uMax >= PI.limiter.uMin, \"Limiter: Limits must be consistent. However, uMax (=\" + String(PI.limiter.uMax, 6, 0, true) + \") < uMin (=\" + String(PI.limiter.uMin, 6, 0, true) + \")\");"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Nonlinear.mo","lineStart":22,"lineEnd":23,"colStart":9,"colEnd":65},"within":["Modelica.Blocks.Nonlinear.Limiter$PI$limiter"],"instance":"PIlimiter","operations":[{"op":"info","display":"scode","data":["assert(uMax >= uMin, \"Limiter: Limits must be consistent. However, uMax (=\" + String(uMax) + \") < uMin (=\" + String(uMin) + \")\");"]}]}}, {"eqIndex":220,"section":"start","tag":"assign","defines":["$START.integrator.y"],"uses":["integrator.y_start"],"equation":["integrator.y_start"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Interfaces.mo","lineStart":329,"lineEnd":330,"colStart":5,"colEnd":56},"within":["Real"],"instance":"integrator","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.Integrator$integrator"]}}, {"eqIndex":221,"section":"start","tag":"assign","defines":["$START.PI.I.y"],"uses":["PI.I.y_start"],"equation":["PI.I.y_start"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Interfaces.mo","lineStart":329,"lineEnd":330,"colStart":5,"colEnd":56},"within":["Real"],"instance":"PII","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Continuous.Integrator$PI$I"]}}, {"eqIndex":222,"section":"nominal","tag":"assign","defines":["spring.phi_rel"],"uses":["spring.phi_nominal"],"equation":["if spring.phi_nominal >= 1e-15 then spring.phi_nominal else 1.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7284,"lineEnd":7288,"colStart":7,"colEnd":73},"within":["Real"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}}, {"eqIndex":223,"tag":"alias","equation":[134],"section":"parameter"}, {"eqIndex":224,"tag":"alias","equation":[133],"section":"parameter"}, {"eqIndex":225,"tag":"alias","equation":[131],"section":"parameter"}, {"eqIndex":226,"tag":"alias","equation":[130],"section":"parameter"}, {"eqIndex":227,"tag":"alias","equation":[128],"section":"parameter"}, {"eqIndex":228,"tag":"alias","equation":[127],"section":"parameter"}, {"eqIndex":229,"tag":"alias","equation":[126],"section":"parameter"}, {"eqIndex":230,"tag":"alias","equation":[125],"section":"parameter"}, {"eqIndex":231,"tag":"alias","equation":[123],"section":"parameter"}, {"eqIndex":232,"tag":"alias","equation":[122],"section":"parameter"}, {"eqIndex":233,"tag":"alias","equation":[121],"section":"parameter"}, {"eqIndex":234,"tag":"alias","equation":[118],"section":"parameter"}, {"eqIndex":235,"tag":"alias","equation":[116],"section":"parameter"}, {"eqIndex":236,"tag":"alias","equation":[114],"section":"parameter"}, {"eqIndex":237,"tag":"alias","equation":[113],"section":"parameter"}, {"eqIndex":238,"tag":"alias","equation":[111],"section":"parameter"}, {"eqIndex":239,"tag":"alias","equation":[110],"section":"parameter"}, {"eqIndex":240,"tag":"alias","equation":[105],"section":"parameter"}, {"eqIndex":241,"tag":"alias","equation":[104],"section":"parameter"}, {"eqIndex":242,"tag":"alias","equation":[102],"section":"parameter"}, {"eqIndex":243,"tag":"alias","equation":[101],"section":"parameter"}, {"eqIndex":244,"tag":"alias","equation":[97],"section":"parameter"}, {"eqIndex":245,"tag":"alias","equation":[90],"section":"parameter"}, {"eqIndex":246,"tag":"alias","equation":[89],"section":"parameter"}, {"eqIndex":247,"tag":"alias","equation":[88],"section":"parameter"}, {"eqIndex":248,"tag":"alias","equation":[87],"section":"parameter"}, {"eqIndex":249,"tag":"alias","equation":[85],"section":"parameter"}, {"eqIndex":250,"tag":"alias","equation":[83],"section":"parameter"}, {"eqIndex":251,"tag":"alias","equation":[81],"section":"parameter"}, {"eqIndex":252,"tag":"alias","equation":[80],"section":"parameter"}, {"eqIndex":253,"tag":"alias","equation":[79],"section":"parameter"}, {"eqIndex":254,"tag":"alias","equation":[78],"section":"parameter"}, {"eqIndex":255,"tag":"alias","equation":[77],"section":"parameter"}, {"eqIndex":256,"tag":"alias","equation":[75],"section":"parameter"}, {"eqIndex":257,"tag":"alias","equation":[74],"section":"parameter"}, {"eqIndex":258,"tag":"alias","equation":[73],"section":"parameter"}, {"eqIndex":259,"tag":"alias","equation":[69],"section":"parameter"}, {"eqIndex":260,"tag":"alias","equation":[65],"section":"parameter"}, {"eqIndex":261,"tag":"alias","equation":[64],"section":"parameter"}, {"eqIndex":262,"tag":"alias","equation":[63],"section":"parameter"}, {"eqIndex":263,"tag":"alias","equation":[62],"section":"parameter"}, {"eqIndex":264,"tag":"alias","equation":[59],"section":"parameter"}, {"eqIndex":265,"tag":"alias","equation":[58],"section":"parameter"}, {"eqIndex":266,"tag":"alias","equation":[54],"section":"parameter"}, {"eqIndex":267,"tag":"alias","equation":[19],"section":"parameter"}, {"eqIndex":268,"tag":"alias","equation":[18],"section":"parameter"}, {"eqIndex":269,"tag":"alias","equation":[8],"section":"parameter"}, {"eqIndex":270,"tag":"alias","equation":[6],"section":"parameter"}, {"eqIndex":271,"tag":"alias","equation":[7],"section":"parameter"}, {"eqIndex":272,"tag":"alias","equation":[9],"section":"parameter"}, {"eqIndex":273,"tag":"alias","equation":[10],"section":"parameter"}, {"eqIndex":274,"tag":"alias","equation":[11],"section":"parameter"}, {"eqIndex":275,"tag":"alias","equation":[5],"section":"parameter"}, {"eqIndex":276,"tag":"alias","equation":[4],"section":"parameter"}, {"eqIndex":277,"tag":"alias","equation":[3],"section":"parameter"}, {"eqIndex":278,"tag":"alias","equation":[2],"section":"parameter"}, {"eqIndex":279,"tag":"alias","equation":[1],"section":"parameter"}, {"eqIndex":280,"section":"parameter","tag":"algorithm","equation":["assert(integrator.initType >= Modelica.Blocks.Types.Init.NoInit and integrator.initType <= Modelica.Blocks.Types.Init.InitialOutput, \"Variable violating min/max constraint: Modelica.Blocks.Types.Init.NoInit <= integrator.initType <= Modelica.Blocks.Types.Init.InitialOutput, has value: \" + String(integrator.initType, \"d\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":19,"lineEnd":21,"colStart":5,"colEnd":40},"within":["Modelica.Blocks.Types.Init"],"instance":"integrator","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.Integrator$integrator"]}}, {"eqIndex":281,"section":"parameter","tag":"algorithm","equation":["assert(kinematicPTP.qdd_max[1] >= 1e-60, \"Variable violating min constraint: 1e-60 <= kinematicPTP.qdd_max[1], has value: \" + String(kinematicPTP.qdd_max[1], \"g\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1456,"lineEnd":1457,"colStart":5,"colEnd":38},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"]}}, {"eqIndex":282,"section":"parameter","tag":"algorithm","equation":["assert(kinematicPTP.qd_max[1] >= 1e-60, \"Variable violating min constraint: 1e-60 <= kinematicPTP.qd_max[1], has value: \" + String(kinematicPTP.qd_max[1], \"g\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1454,"lineEnd":1455,"colStart":5,"colEnd":34},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"]}}, {"eqIndex":283,"section":"parameter","tag":"algorithm","equation":["assert(kinematicPTP.nout >= 1, \"Variable violating min constraint: 1 <= kinematicPTP.nout, has value: \" + String(kinematicPTP.nout, \"d\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Interfaces.mo","lineStart":313,"lineEnd":313,"colStart":5,"colEnd":58},"within":["Integer"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"]}}, {"eqIndex":284,"section":"parameter","tag":"algorithm","equation":["assert(inertia2.stateSelect >= StateSelect.never and inertia2.stateSelect <= StateSelect.always, \"Variable violating min/max constraint: StateSelect.never <= inertia2.stateSelect <= StateSelect.always, has value: \" + String(inertia2.stateSelect, \"d\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2472,"lineEnd":2474,"colStart":7,"colEnd":61},"within":["StateSelect"],"instance":"inertia2","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.Inertia$inertia2"]}}, {"eqIndex":285,"section":"parameter","tag":"algorithm","equation":["assert(inertia2.J >= 0.0, \"Variable violating min constraint: 0.0 <= inertia2.J, has value: \" + String(inertia2.J, \"g\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2471,"lineEnd":2471,"colStart":7,"colEnd":65},"within":["Real"],"instance":"inertia2","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.Inertia$inertia2"]}}, {"eqIndex":286,"section":"parameter","tag":"algorithm","equation":["assert(spring.d >= 0.0, \"Variable violating min constraint: 0.0 <= spring.d, has value: \" + String(spring.d, \"g\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2696,"lineEnd":2697,"colStart":7,"colEnd":27},"within":["Real"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}}, {"eqIndex":287,"section":"parameter","tag":"algorithm","equation":["assert(spring.c >= 0.0, \"Variable violating min constraint: 0.0 <= spring.c, has value: \" + String(spring.c, \"g\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2694,"lineEnd":2695,"colStart":7,"colEnd":26},"within":["Real"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}}, {"eqIndex":288,"section":"parameter","tag":"algorithm","equation":["assert(spring.stateSelect >= StateSelect.never and spring.stateSelect <= StateSelect.always, \"Variable violating min/max constraint: StateSelect.never <= spring.stateSelect <= StateSelect.always, has value: \" + String(spring.stateSelect, \"d\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7303,"lineEnd":7305,"colStart":7,"colEnd":61},"within":["StateSelect"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}}, {"eqIndex":289,"section":"parameter","tag":"algorithm","equation":["assert(spring.phi_nominal >= 0.0, \"Variable violating min constraint: 0.0 <= spring.phi_nominal, has value: \" + String(spring.phi_nominal, \"g\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7299,"lineEnd":7302,"colStart":7,"colEnd":44},"within":["Real"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}}, {"eqIndex":290,"section":"parameter","tag":"algorithm","equation":["assert(inertia1.stateSelect >= StateSelect.never and inertia1.stateSelect <= StateSelect.always, \"Variable violating min/max constraint: StateSelect.never <= inertia1.stateSelect <= StateSelect.always, has value: \" + String(inertia1.stateSelect, \"d\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2472,"lineEnd":2474,"colStart":7,"colEnd":61},"within":["StateSelect"],"instance":"inertia1","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.Inertia$inertia1"]}}, {"eqIndex":291,"section":"parameter","tag":"algorithm","equation":["assert(inertia1.J >= 0.0, \"Variable violating min constraint: 0.0 <= inertia1.J, has value: \" + String(inertia1.J, \"g\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2471,"lineEnd":2471,"colStart":7,"colEnd":65},"within":["Real"],"instance":"inertia1","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.Inertia$inertia1"]}}, {"eqIndex":292,"section":"parameter","tag":"algorithm","equation":["assert(PI.k >= 0.0, \"Variable violating min constraint: 0.0 <= PI.k, has value: \" + String(PI.k, \"g\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":891,"lineEnd":891,"colStart":5,"colEnd":63},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, {"eqIndex":293,"section":"parameter","tag":"algorithm","equation":["assert(PI.Ni >= 1e-13, \"Variable violating min constraint: 1e-13 <= PI.Ni, has value: \" + String(PI.Ni, \"g\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":907,"lineEnd":910,"colStart":5,"colEnd":94},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, {"eqIndex":294,"section":"parameter","tag":"algorithm","equation":["assert(PI.I.initType >= Modelica.Blocks.Types.Init.NoInit and PI.I.initType <= Modelica.Blocks.Types.Init.InitialOutput, \"Variable violating min/max constraint: Modelica.Blocks.Types.Init.NoInit <= PI.I.initType <= Modelica.Blocks.Types.Init.InitialOutput, has value: \" + String(PI.I.initType, \"d\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":19,"lineEnd":21,"colStart":5,"colEnd":40},"within":["Modelica.Blocks.Types.Init"],"instance":"PII","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Continuous.Integrator$PI$I"]}}, {"eqIndex":295,"section":"parameter","tag":"algorithm","equation":["assert(PI.Ti >= 1e-60, \"Variable violating min constraint: 1e-60 <= PI.Ti, has value: \" + String(PI.Ti, \"g\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":892,"lineEnd":895,"colStart":5,"colEnd":76},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, {"eqIndex":296,"section":"parameter","tag":"algorithm","equation":["assert(PI.limiter.homotopyType >= Modelica.Blocks.Types.LimiterHomotopy.NoHomotopy and PI.limiter.homotopyType <= Modelica.Blocks.Types.LimiterHomotopy.LowerLimit, \"Variable violating min/max constraint: Modelica.Blocks.Types.LimiterHomotopy.NoHomotopy <= PI.limiter.homotopyType <= Modelica.Blocks.Types.LimiterHomotopy.LowerLimit, has value: \" + String(PI.limiter.homotopyType, \"d\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Nonlinear.mo","lineStart":12,"lineEnd":13,"colStart":9,"colEnd":69},"within":["Modelica.Blocks.Types.LimiterHomotopy"],"instance":"PIlimiter","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Nonlinear.Limiter$PI$limiter"]}}, {"eqIndex":297,"section":"parameter","tag":"algorithm","equation":["assert(PI.wp >= 0.0, \"Variable violating min constraint: 0.0 <= PI.wp, has value: \" + String(PI.wp, \"g\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":902,"lineEnd":903,"colStart":5,"colEnd":55},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, {"eqIndex":298,"section":"parameter","tag":"algorithm","equation":["assert(PI.homotopyType >= Modelica.Blocks.Types.LimiterHomotopy.NoHomotopy and PI.homotopyType <= Modelica.Blocks.Types.LimiterHomotopy.LowerLimit, \"Variable violating min/max constraint: Modelica.Blocks.Types.LimiterHomotopy.NoHomotopy <= PI.homotopyType <= Modelica.Blocks.Types.LimiterHomotopy.LowerLimit, has value: \" + String(PI.homotopyType, \"d\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":935,"lineEnd":937,"colStart":5,"colEnd":65},"within":["Modelica.Blocks.Types.LimiterHomotopy"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, {"eqIndex":299,"section":"parameter","tag":"algorithm","equation":["assert(PI.initType >= Modelica.Blocks.Types.InitPID.NoInit and PI.initType <= Modelica.Blocks.Types.InitPID.DoNotUse_InitialIntegratorState, \"Variable violating min/max constraint: Modelica.Blocks.Types.InitPID.NoInit <= PI.initType <= Modelica.Blocks.Types.InitPID.DoNotUse_InitialIntegratorState, has value: \" + String(PI.initType, \"d\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":919,"lineEnd":921,"colStart":5,"colEnd":64},"within":["Modelica.Blocks.Types.InitPID"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, {"eqIndex":300,"section":"parameter","tag":"algorithm","equation":["assert(PI.Nd >= 1e-13, \"Variable violating min constraint: 1e-13 <= PI.Nd, has value: \" + String(PI.Nd, \"g\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":911,"lineEnd":914,"colStart":5,"colEnd":96},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, {"eqIndex":301,"section":"parameter","tag":"algorithm","equation":["assert(PI.wd >= 0.0, \"Variable violating min constraint: 0.0 <= PI.wd, has value: \" + String(PI.wd, \"g\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":904,"lineEnd":906,"colStart":5,"colEnd":96},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, {"eqIndex":302,"section":"parameter","tag":"algorithm","equation":["assert(PI.Td >= 0.0, \"Variable violating min constraint: 0.0 <= PI.Td, has value: \" + String(PI.Td, \"g\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":896,"lineEnd":899,"colStart":5,"colEnd":76},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, {"eqIndex":303,"section":"parameter","tag":"algorithm","equation":["assert(PI.controllerType >= Modelica.Blocks.Types.SimpleController.P and PI.controllerType <= Modelica.Blocks.Types.SimpleController.PID, \"Variable violating min/max constraint: Modelica.Blocks.Types.SimpleController.P <= PI.controllerType <= Modelica.Blocks.Types.SimpleController.PID, has value: \" + String(PI.controllerType, \"d\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":889,"lineEnd":890,"colStart":5,"colEnd":76},"within":["Modelica.Blocks.Types.SimpleController"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}} ], "functions":[ ] } [4] 09:46:00 Scripting Error Parsing json file /private/var/folders/s4/0j3cshj161126ygbpbzsdkmd4h24dl/T/OpenModelica_adershowitz/OMEdit/Modelica.Blocks.Examples.PID_Controller/Modelica.Blocks.Examples.PID_Controller_info.json [5] 09:46:00 Scripting Error Failed to parse json file /private/var/folders/s4/0j3cshj161126ygbpbzsdkmd4h24dl/T/OpenModelica_adershowitz/OMEdit/Modelica.Blocks.Examples.PID_Controller/Modelica.Blocks.Examples.PID_Controller_info.json [6] 09:46:00 Scripting Error Error opening the file /private/var/folders/s4/0j3cshj161126ygbpbzsdkmd4h24dl/T/OpenModelica_adershowitz/OMEdit/Modelica.Blocks.Examples.PID_Controller/Modelica.Blocks.Examples.PID_Controller_info.json. syntax error, unexpected invalid [7] 09:46:00 Scripting Notification Number is out of range: 1 json_parser - syntax error found, forcing abort, Line 1 Column 1
I then right clicked on the "not-opened" results file and clicked resimulate and it opened. Here's what then showed up in the messages:
[8] 09:49:37 Scripting Error Opening json file /private/var/folders/s4/0j3cshj161126ygbpbzsdkmd4h24dl/T/OpenModelica_adershowitz/OMEdit/Modelica.Blocks.Examples.PID_Controller/Modelica.Blocks.Examples.PID_Controller_info.json [9] 09:49:37 Scripting Error Reading json file /private/var/folders/s4/0j3cshj161126ygbpbzsdkmd4h24dl/T/OpenModelica_adershowitz/OMEdit/Modelica.Blocks.Examples.PID_Controller/Modelica.Blocks.Examples.PID_Controller_info.json [10] 09:49:37 Scripting Error Json file contents are {"format":"Transformational debugger info","version":1, "info":{"name":"Modelica.Blocks.Examples.PID_Controller","description":"Demonstrates the usage of a Continuous.LimPID controller"}, "variables":{ "PI.I.y":{"comment":"Connector of Real output signal","kind":"state","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Interfaces.mo","lineStart":329,"lineEnd":330,"colStart":5,"colEnd":56},"within":["Real"],"instance":"PII","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Continuous.Integrator$PI$I"]}}, "inertia2.w":{"comment":"Absolute angular velocity of component (= der(phi))","kind":"state","type":"Real","unit":"rad/s","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2478,"lineEnd":2480,"colStart":7,"colEnd":77},"within":["Real"],"instance":"inertia2","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.Inertia$inertia2"]}}, "integrator.y":{"comment":"Connector of Real output signal","kind":"state","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Interfaces.mo","lineStart":329,"lineEnd":330,"colStart":5,"colEnd":56},"within":["Real"],"instance":"integrator","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.Integrator$integrator"]}}, "spring.phi_rel":{"comment":"Relative rotation angle (= flange_b.phi - flange_a.phi)","kind":"state","type":"Real","unit":"rad","displayUnit":"deg","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7284,"lineEnd":7288,"colStart":7,"colEnd":73},"within":["Real"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}}, "spring.w_rel":{"comment":"Relative angular velocity (= der(phi_rel))","kind":"state","type":"Real","unit":"rad/s","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7289,"lineEnd":7290,"colStart":7,"colEnd":53},"within":["Real"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}}, "der(PI.I.y)":{"comment":"der(Connector of Real output signal)","kind":"derivative","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Interfaces.mo","lineStart":329,"lineEnd":330,"colStart":5,"colEnd":56},"within":["Real"],"instance":"PII","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Continuous.Integrator$PI$I"]}}, "der(inertia2.w)":{"comment":"der(Absolute angular velocity of component (= der(phi)))","kind":"derivative","type":"Real","unit":"s-2","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2478,"lineEnd":2480,"colStart":7,"colEnd":77},"within":["Real"],"instance":"inertia2","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.Inertia$inertia2"]}}, "der(integrator.y)":{"comment":"der(Connector of Real output signal)","kind":"derivative","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Interfaces.mo","lineStart":329,"lineEnd":330,"colStart":5,"colEnd":56},"within":["Real"],"instance":"integrator","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.Integrator$integrator"]}}, "der(spring.phi_rel)":{"comment":"der(Relative rotation angle (= flange_b.phi - flange_a.phi))","kind":"derivative","type":"Real","unit":"Hz","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7284,"lineEnd":7288,"colStart":7,"colEnd":73},"within":["Real"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}}, "der(spring.w_rel)":{"comment":"der(Relative angular velocity (= der(phi_rel)))","kind":"derivative","type":"Real","unit":"s-2","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7289,"lineEnd":7290,"colStart":7,"colEnd":53},"within":["Real"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}}, "der(inertia1.w)":{"comment":"Absolute angular velocity of component (= der(phi))","kind":"dummy derivative","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2478,"lineEnd":2480,"colStart":7,"colEnd":77},"within":["Real"],"instance":"inertia1","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.Inertia$inertia1"],"operations":[{"op":"info","display":"solved","data":["der(inertia1.w) = inertia1.a"]},{"op":"before-after","display":"differentiate d/dtime","data":["der(inertia1.w)","der(inertia1.w)"]},{"op":"before-after","display":"flattening","data":["a = der(w);","inertia1.a = der(inertia1.w);"]}]}}, "PI.I.local_set":{"comment":"","kind":"variable","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":37,"lineEnd":37,"colStart":5,"colEnd":80},"within":["Real"],"instance":"PII","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Continuous.Integrator$PI$I"],"operations":[{"op":"info","display":"solved","data":["PI.I.local_set = 0.0"]},{"op":"before-after","display":"flattening","data":["local_set = 0;","PI.I.local_set = 0.0;"]}]}}, "PI.I.u":{"comment":"Connector of Real input signal","kind":"variable","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Interfaces.mo","lineStart":327,"lineEnd":328,"colStart":5,"colEnd":58},"within":["Real"],"instance":"PII","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Continuous.Integrator$PI$I"]}}, "PI.P.u":{"comment":"Input signal connector","kind":"variable","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":546,"lineEnd":547,"colStart":5,"colEnd":58},"within":["Real"],"instance":"PIP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Gain$PI$P"]}}, "PI.P.y":{"comment":"Output signal connector","kind":"variable","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":548,"lineEnd":549,"colStart":5,"colEnd":56},"within":["Real"],"instance":"PIP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Gain$PI$P"]}}, "PI.addFF.u1":{"comment":"Connector of Real input signal 1","kind":"variable","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Interfaces.mo","lineStart":342,"lineEnd":343,"colStart":5,"colEnd":57},"within":["Real"],"instance":"PIaddFF","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add$PI$addFF"]}}, "PI.addFF.y":{"comment":"Connector of Real output signal","kind":"variable","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Interfaces.mo","lineStart":346,"lineEnd":347,"colStart":5,"colEnd":56},"within":["Real"],"instance":"PIaddFF","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add$PI$addFF"]}}, "PI.addI.u3":{"comment":"Connector of Real input signal 3","kind":"variable","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":975,"lineEnd":976,"colStart":5,"colEnd":68},"within":["Real"],"instance":"PIaddI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add3$PI$addI"]}}, "PI.addPID.y":{"comment":"Connector of Real output signal","kind":"variable","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":977,"lineEnd":978,"colStart":5,"colEnd":64},"within":["Real"],"instance":"PIaddPID","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add3"]}}, "PI.addSat.y":{"comment":"Connector of Real output signal","kind":"variable","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Interfaces.mo","lineStart":346,"lineEnd":347,"colStart":5,"colEnd":56},"within":["Real"],"instance":"PIaddSat","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add$PI$addSat"]}}, "PI.controlError":{"comment":"Control error (set point - measurement)","kind":"variable","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":887,"lineEnd":888,"colStart":5,"colEnd":48},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, "PI.y":{"comment":"Connector of actuator output signal","kind":"variable","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Interfaces.mo","lineStart":501,"lineEnd":502,"colStart":5,"colEnd":56},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, "inertia1.a":{"comment":"Absolute angular acceleration of component (= der(w))","kind":"variable","type":"Real","unit":"rad/s2","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2481,"lineEnd":2483,"colStart":7,"colEnd":77},"within":["Real"],"instance":"inertia1","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.Inertia$inertia1"]}}, "inertia1.w":{"comment":"Absolute angular velocity of component (= der(phi))","kind":"dummy state","type":"Real","unit":"rad/s","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2478,"lineEnd":2480,"colStart":7,"colEnd":77},"within":["Real"],"instance":"inertia1","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.Inertia$inertia1"]}}, "inertia2.a":{"comment":"Absolute angular acceleration of component (= der(w))","kind":"variable","type":"Real","unit":"rad/s2","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2481,"lineEnd":2483,"colStart":7,"colEnd":77},"within":["Real"],"instance":"inertia2","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.Inertia$inertia2"]}}, "integrator.local_set":{"comment":"","kind":"variable","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":37,"lineEnd":37,"colStart":5,"colEnd":80},"within":["Real"],"instance":"integrator","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.Integrator$integrator"],"operations":[{"op":"info","display":"solved","data":["integrator.local_set = 0.0"]},{"op":"before-after","display":"flattening","data":["local_set = 0;","integrator.local_set = 0.0;"]}]}}, "kinematicPTP.Ta1":{"comment":"","kind":"variable","type":"Real","unit":"s","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1474,"lineEnd":1474,"colStart":5,"colEnd":21},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"],"operations":[{"op":"info","display":"solved","data":["kinematicPTP.Ta1 = sqrt(1.0 / kinematicPTP.sdd_max)"]},{"op":"before-after","display":"flattening","data":["Ta1 = sqrt(1 / sdd_max);","kinematicPTP.Ta1 = sqrt(1.0 / kinematicPTP.sdd_max);"]}]}}, "kinematicPTP.Ta2":{"comment":"","kind":"variable","type":"Real","unit":"s","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1475,"lineEnd":1475,"colStart":5,"colEnd":21},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"],"operations":[{"op":"info","display":"solved","data":["kinematicPTP.Ta2 = kinematicPTP.sd_max / kinematicPTP.sdd_max"]},{"op":"before-after","display":"flattening","data":["Ta2 = sd_max / sdd_max;","kinematicPTP.Ta2 = kinematicPTP.sd_max / kinematicPTP.sdd_max;"]}]}}, "kinematicPTP.Te":{"comment":"","kind":"variable","type":"Real","unit":"s","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1477,"lineEnd":1477,"colStart":5,"colEnd":20},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"],"operations":[{"op":"info","display":"solved","data":["kinematicPTP.Te = if kinematicPTP.noWphase then 2.0 * kinematicPTP.Ta1 else kinematicPTP.Tv + kinematicPTP.Ta2"]},{"op":"before-after","display":"flattening","data":["Te = if noWphase then Ta1 + Ta1 else Tv + Ta2;","kinematicPTP.Te = if kinematicPTP.noWphase then 2.0 * kinematicPTP.Ta1 else kinematicPTP.Tv + kinematicPTP.Ta2;"]}]}}, "kinematicPTP.Tv":{"comment":"","kind":"variable","type":"Real","unit":"s","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1476,"lineEnd":1476,"colStart":5,"colEnd":20},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"],"operations":[{"op":"info","display":"solved","data":["kinematicPTP.Tv = if kinematicPTP.noWphase then kinematicPTP.Ta1 else 1.0 / kinematicPTP.sd_max"]},{"op":"before-after","display":"flattening","data":["Tv = if noWphase then Ta1 else 1 / sd_max;","kinematicPTP.Tv = if kinematicPTP.noWphase then kinematicPTP.Ta1 else 1.0 / kinematicPTP.sd_max;"]}]}}, "kinematicPTP.aux1[1]":{"comment":"","kind":"variable","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1472,"lineEnd":1472,"colStart":5,"colEnd":20},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"],"operations":[{"op":"info","display":"solved","data":["kinematicPTP.aux1[1] = kinematicPTP.p_deltaq[1] / kinematicPTP.p_qd_max[1]"]},{"op":"before-after","display":"flattening","data":["aux1[i] = p_deltaq[i] / p_qd_max[i];","kinematicPTP.aux1[1] = kinematicPTP.p_deltaq[1] / kinematicPTP.p_qd_max[1];"]}]}}, "kinematicPTP.aux2[1]":{"comment":"","kind":"variable","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1473,"lineEnd":1473,"colStart":5,"colEnd":20},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"],"operations":[{"op":"info","display":"solved","data":["kinematicPTP.aux2[1] = kinematicPTP.p_deltaq[1] / kinematicPTP.p_qdd_max[1]"]},{"op":"before-after","display":"flattening","data":["aux2[i] = p_deltaq[i] / p_qdd_max[i];","kinematicPTP.aux2[1] = kinematicPTP.p_deltaq[1] / kinematicPTP.p_qdd_max[1];"]}]}}, "kinematicPTP.sd_max":{"comment":"","kind":"variable","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1469,"lineEnd":1469,"colStart":5,"colEnd":16},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"],"operations":[{"op":"info","display":"solved","data":["kinematicPTP.sd_max = 1.0 / abs(kinematicPTP.aux1[1])"]},{"op":"before-after","display":"flattening","data":["sd_max = 1 / max(abs(aux1));","kinematicPTP.sd_max = 1.0 / abs(kinematicPTP.aux1[1]);"]}]}}, "kinematicPTP.sdd":{"comment":"","kind":"variable","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1471,"lineEnd":1471,"colStart":5,"colEnd":13},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"]}}, "kinematicPTP.sdd_max":{"comment":"","kind":"variable","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1470,"lineEnd":1470,"colStart":5,"colEnd":17},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"],"operations":[{"op":"info","display":"solved","data":["kinematicPTP.sdd_max = 1.0 / abs(kinematicPTP.aux2[1])"]},{"op":"before-after","display":"flattening","data":["sdd_max = 1 / max(abs(aux2));","kinematicPTP.sdd_max = 1.0 / abs(kinematicPTP.aux2[1]);"]}]}}, "kinematicPTP.y[1]":{"comment":"Connector of Real output signals","kind":"variable","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Interfaces.mo","lineStart":314,"lineEnd":315,"colStart":5,"colEnd":56},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"]}}, "loadTorque.phi":{"comment":"Angle of flange with respect to support (= flange.phi - support.phi)","kind":"dummy state","type":"Real","unit":"rad","displayUnit":"deg","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7683,"lineEnd":7684,"colStart":7,"colEnd":79},"within":["Real"],"instance":"loadTorque","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Sources.ConstantTorque$loadTorque"]}}, "loadTorque.phi_support":{"comment":"Absolute angle of support flange","kind":"variable","type":"Real","unit":"rad","displayUnit":"deg","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7429,"lineEnd":7429,"colStart":7,"colEnd":76},"within":["Real"],"instance":"loadTorque","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Sources.ConstantTorque$loadTorque"],"operations":[{"op":"info","display":"solved","data":["loadTorque.phi_support = 0.0"]},{"op":"before-after","display":"flattening","data":["phi_support = 0;","loadTorque.phi_support = 0.0;"]}]}}, "speedSensor.flange.tau":{"comment":"Cut torque in the flange","kind":"variable","type":"Real","unit":"N.m","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":6864,"lineEnd":6864,"colStart":7,"colEnd":52},"within":["Real"],"instance":"speedSensorflange","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Sensors.SpeedSensor","Modelica.Mechanics.Rotational.Interfaces.Flange_a"],"operations":[{"op":"info","display":"solved","data":["speedSensor.flange.tau = 0.0"]},{"op":"before-after","display":"flattening","data":["0 = flange.tau;","0.0 = speedSensor.flange.tau;"]}]}}, "spring.a_rel":{"comment":"Relative angular acceleration (= der(w_rel))","kind":"variable","type":"Real","unit":"rad/s2","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7291,"lineEnd":7292,"colStart":7,"colEnd":55},"within":["Real"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}}, "spring.lossPower":{"comment":"Loss power leaving component via heatPort (> 0, if heat is flowing out of component)","kind":"variable","type":"Real","unit":"W","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Thermal/HeatTransfer.mo","lineStart":3144,"lineEnd":3145,"colStart":7,"colEnd":95},"within":["Real"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}}, "spring.tau":{"comment":"Torque between flanges (= flange_b.tau)","kind":"variable","type":"Real","unit":"N.m","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7293,"lineEnd":7293,"colStart":7,"colEnd":76},"within":["Real"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}}, "spring.tau_c":{"comment":"Spring torque","kind":"variable","type":"Real","unit":"N.m","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2704,"lineEnd":2704,"colStart":7,"colEnd":52},"within":["Real"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}}, "spring.tau_d":{"comment":"Damping torque","kind":"variable","type":"Real","unit":"N.m","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2705,"lineEnd":2705,"colStart":7,"colEnd":53},"within":["Real"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}}, "torque.phi_support":{"comment":"Absolute angle of support flange","kind":"variable","type":"Real","unit":"rad","displayUnit":"deg","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7429,"lineEnd":7429,"colStart":7,"colEnd":76},"within":["Real"],"instance":"torque","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Sources.Torque"],"operations":[{"op":"info","display":"solved","data":["torque.phi_support = 0.0"]},{"op":"before-after","display":"flattening","data":["phi_support = 0;","torque.phi_support = 0.0;"]}]}}, "PI.I.local_reset":{"comment":"","kind":"discrete","type":"Boolean","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":36,"lineEnd":36,"colStart":5,"colEnd":85},"within":["Boolean"],"instance":"PII","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Continuous.Integrator$PI$I"],"operations":[{"op":"info","display":"solved","data":["PI.I.local_reset = false"]},{"op":"before-after","display":"flattening","data":["local_reset = false;","PI.I.local_reset = false;"]}]}}, "kinematicPTP.noWphase":{"comment":"","kind":"discrete","type":"Boolean","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1478,"lineEnd":1478,"colStart":5,"colEnd":21},"within":["Boolean"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"],"operations":[{"op":"info","display":"solved","data":["kinematicPTP.noWphase = kinematicPTP.Ta2 >= kinematicPTP.Ta1"]},{"op":"before-after","display":"flattening","data":["noWphase = Ta2 >= Ta1;","kinematicPTP.noWphase = kinematicPTP.Ta2 >= kinematicPTP.Ta1;"]}]}}, "PI.Dzero.k":{"comment":"Constant output value","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":216,"lineEnd":217,"colStart":5,"colEnd":102},"within":["Real"],"instance":"PIDzero","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Sources.Constant$PI$Dzero"]}}, "PI.FFzero.k":{"comment":"Constant output value","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":216,"lineEnd":217,"colStart":5,"colEnd":102},"within":["Real"],"instance":"PIFFzero","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Sources.Constant$PI$FFzero"]}}, "PI.FFzero.y":{"comment":"Connector of Real output signal","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Interfaces.mo","lineStart":300,"lineEnd":301,"colStart":5,"colEnd":56},"within":["Real"],"instance":"PIFFzero","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Sources.Constant$PI$FFzero"],"operations":[{"op":"info","display":"solved","data":["PI.FFzero.y = PI.FFzero.k"]},{"op":"before-after","display":"flattening","data":["y = k;","PI.FFzero.y = PI.FFzero.k;"]}]}}, "PI.I.k":{"comment":"Integrator gain","kind":"parameter","type":"Real","unit":"1","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":10,"lineEnd":10,"colStart":5,"colEnd":51},"within":["Real"],"instance":"PII","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Continuous.Integrator$PI$I"]}}, "PI.I.y_start":{"comment":"Initial or guess value of output (= state)","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":22,"lineEnd":23,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PII","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Continuous.Integrator$PI$I"]}}, "PI.Nd":{"comment":"The higher Nd, the more ideal the derivative block","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":911,"lineEnd":914,"colStart":5,"colEnd":96},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, "PI.Ni":{"comment":"Ni*Ti is time constant of anti-windup compensation","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":907,"lineEnd":910,"colStart":5,"colEnd":94},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, "PI.P.k":{"comment":"Gain value multiplied with input signal","kind":"parameter","type":"Real","unit":"1","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":543,"lineEnd":544,"colStart":5,"colEnd":48},"within":["Real"],"instance":"PIP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Gain$PI$P"]}}, "PI.Td":{"comment":"Time constant of Derivative block","kind":"parameter","type":"Real","unit":"s","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":896,"lineEnd":899,"colStart":5,"colEnd":76},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, "PI.Ti":{"comment":"Time constant of Integrator block","kind":"parameter","type":"Real","unit":"s","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":892,"lineEnd":895,"colStart":5,"colEnd":76},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, "PI.addFF.k1":{"comment":"Gain of input signal 1","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":911,"lineEnd":911,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddFF","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add$PI$addFF"]}}, "PI.addFF.k2":{"comment":"Gain of input signal 2","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":912,"lineEnd":912,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddFF","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add$PI$addFF"]}}, "PI.addFF.u2":{"comment":"Connector of Real input signal 2","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Interfaces.mo","lineStart":344,"lineEnd":345,"colStart":5,"colEnd":59},"within":["Real"],"instance":"PIaddFF","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add$PI$addFF"],"operations":[{"op":"info","display":"solved","data":["PI.addFF.u2 = PI.FFzero.k"]},{"op":"chain","display":"substitution","data":["PI.addFF.u2","PI.FFzero.y"]}]}}, "PI.addI.k1":{"comment":"Gain of input signal 1","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":968,"lineEnd":968,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add3$PI$addI"]}}, "PI.addI.k2":{"comment":"Gain of input signal 2","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":969,"lineEnd":969,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add3$PI$addI"]}}, "PI.addI.k3":{"comment":"Gain of input signal 3","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":970,"lineEnd":970,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add3$PI$addI"]}}, "PI.addP.k1":{"comment":"Gain of input signal 1","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":911,"lineEnd":911,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add$PI$addP"]}}, "PI.addP.k2":{"comment":"Gain of input signal 2","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":912,"lineEnd":912,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add$PI$addP"]}}, "PI.addPID.k1":{"comment":"Gain of input signal 1","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":968,"lineEnd":968,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddPID","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add3"]}}, "PI.addPID.k2":{"comment":"Gain of input signal 2","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":969,"lineEnd":969,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddPID","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add3"]}}, "PI.addPID.k3":{"comment":"Gain of input signal 3","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":970,"lineEnd":970,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddPID","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add3"]}}, "PI.addPID.u2":{"comment":"Connector of Real input signal 2","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":973,"lineEnd":974,"colStart":5,"colEnd":66},"within":["Real"],"instance":"PIaddPID","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add3"],"operations":[{"op":"info","display":"solved","data":["PI.addPID.u2 = PI.Dzero.k"]},{"op":"chain","display":"substitution","data":["PI.addPID.u2","PI.Dzero.y"]}]}}, "PI.addSat.k1":{"comment":"Gain of input signal 1","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":911,"lineEnd":911,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddSat","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add$PI$addSat"]}}, "PI.addSat.k2":{"comment":"Gain of input signal 2","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":912,"lineEnd":912,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddSat","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add$PI$addSat"]}}, "PI.gainPID.k":{"comment":"Gain value multiplied with input signal","kind":"parameter","type":"Real","unit":"1","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":543,"lineEnd":544,"colStart":5,"colEnd":48},"within":["Real"],"instance":"PIgainPID","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Gain$PI$gainPID"]}}, "PI.gainTrack.k":{"comment":"Gain value multiplied with input signal","kind":"parameter","type":"Real","unit":"1","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":543,"lineEnd":544,"colStart":5,"colEnd":48},"within":["Real"],"instance":"PIgainTrack","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Gain$PI$gainTrack"]}}, "PI.k":{"comment":"Gain of controller","kind":"parameter","type":"Real","unit":"1","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":891,"lineEnd":891,"colStart":5,"colEnd":63},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, "PI.kFF":{"comment":"Gain of feed-forward input","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":917,"lineEnd":918,"colStart":5,"colEnd":49},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, "PI.limiter.uMax":{"comment":"Upper limits of input signals","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Nonlinear.mo","lineStart":8,"lineEnd":8,"colStart":9,"colEnd":69},"within":["Real"],"instance":"PIlimiter","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Nonlinear.Limiter$PI$limiter"]}}, "PI.limiter.uMin":{"comment":"Lower limits of input signals","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Nonlinear.mo","lineStart":9,"lineEnd":9,"colStart":9,"colEnd":67},"within":["Real"],"instance":"PIlimiter","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Nonlinear.Limiter$PI$limiter"]}}, "PI.wd":{"comment":"Set-point weight for Derivative block (0..1)","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":904,"lineEnd":906,"colStart":5,"colEnd":96},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, "PI.wp":{"comment":"Set-point weight for Proportional block (0..1)","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":902,"lineEnd":903,"colStart":5,"colEnd":55},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, "PI.xd_start":{"comment":"Initial or guess value for state of derivative block","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":927,"lineEnd":931,"colStart":5,"colEnd":96},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, "PI.xi_start":{"comment":"Initial or guess value for integrator output (= integrator state)","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":922,"lineEnd":926,"colStart":5,"colEnd":87},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, "PI.yMax":{"comment":"Upper limit of output","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":900,"lineEnd":900,"colStart":5,"colEnd":57},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, "PI.yMin":{"comment":"Lower limit of output","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":901,"lineEnd":901,"colStart":5,"colEnd":54},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, "PI.y_start":{"comment":"Initial value of output","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":932,"lineEnd":934,"colStart":5,"colEnd":31},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, "driveAngle":{"comment":"Reference distance to move","kind":"parameter","type":"Real","unit":"rad","displayUnit":"deg","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/package.mo","lineStart":17,"lineEnd":18,"colStart":5,"colEnd":35},"within":["Real"],"typeLst":["Modelica.Blocks.Examples.PID_Controller"]}}, "inertia1.J":{"comment":"Moment of inertia","kind":"parameter","type":"Real","unit":"kg.m2","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2471,"lineEnd":2471,"colStart":7,"colEnd":65},"within":["Real"],"instance":"inertia1","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.Inertia$inertia1"]}}, "inertia2.J":{"comment":"Moment of inertia","kind":"parameter","type":"Real","unit":"kg.m2","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2471,"lineEnd":2471,"colStart":7,"colEnd":65},"within":["Real"],"instance":"inertia2","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.Inertia$inertia2"]}}, "inertia2.flange_b.tau":{"comment":"Cut torque in the flange","kind":"parameter","type":"Real","unit":"N.m","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":6864,"lineEnd":6864,"colStart":7,"colEnd":52},"within":["Real"],"instance":"inertia2flange_b","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.Inertia$inertia2","Modelica.Mechanics.Rotational.Interfaces.Flange_b"],"operations":[{"op":"info","display":"solved","data":["inertia2.flange_b.tau = loadTorque.tau_constant"]},{"op":"chain","display":"substitution","data":["inertia2.flange_b.tau","-loadTorque.flange.tau"]}]}}, "integrator.k":{"comment":"Integrator gain","kind":"parameter","type":"Real","unit":"1","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":10,"lineEnd":10,"colStart":5,"colEnd":51},"within":["Real"],"instance":"integrator","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.Integrator$integrator"]}}, "integrator.y_start":{"comment":"Initial or guess value of output (= state)","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":22,"lineEnd":23,"colStart":5,"colEnd":50},"within":["Real"],"instance":"integrator","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.Integrator$integrator"]}}, "kinematicPTP.deltaq[1]":{"comment":"Distance to move","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1452,"lineEnd":1453,"colStart":5,"colEnd":106},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"]}}, "kinematicPTP.p_deltaq[1]":{"comment":"","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1463,"lineEnd":1464,"colStart":5,"colEnd":31},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"]}}, "kinematicPTP.p_qd_max[1]":{"comment":"","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1465,"lineEnd":1466,"colStart":5,"colEnd":31},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"]}}, "kinematicPTP.p_qdd_max[1]":{"comment":"","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1467,"lineEnd":1468,"colStart":5,"colEnd":33},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"]}}, "kinematicPTP.qd_max[1]":{"comment":"Maximum velocities der(q)","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1454,"lineEnd":1455,"colStart":5,"colEnd":34},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"]}}, "kinematicPTP.qdd_max[1]":{"comment":"Maximum accelerations der(qd)","kind":"parameter","type":"Real","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1456,"lineEnd":1457,"colStart":5,"colEnd":38},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"]}}, "kinematicPTP.startTime":{"comment":"Time instant at which movement starts","kind":"parameter","type":"Real","unit":"s","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1458,"lineEnd":1458,"colStart":5,"colEnd":79},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"]}}, "loadTorque.flange.tau":{"comment":"Cut torque in the flange","kind":"parameter","type":"Real","unit":"N.m","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":6864,"lineEnd":6864,"colStart":7,"colEnd":52},"within":["Real"],"instance":"loadTorqueflange","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Sources.ConstantTorque$loadTorque","Modelica.Mechanics.Rotational.Interfaces.Flange_b"],"operations":[{"op":"info","display":"solved","data":["loadTorque.flange.tau = -loadTorque.tau_constant"]},{"op":"chain","display":"substitution","data":["loadTorque.flange.tau","loadTorque.tau"]},{"op":"before-after","display":"flattening","data":["tau = -flange.tau;","loadTorque.tau = -loadTorque.flange.tau;"]}]}}, "loadTorque.tau":{"comment":"Accelerating torque acting at flange (= -flange.tau)","kind":"parameter","type":"Real","unit":"N.m","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":6685,"lineEnd":6686,"colStart":7,"colEnd":63},"within":["Real"],"instance":"loadTorque","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Sources.ConstantTorque$loadTorque"],"operations":[{"op":"info","display":"solved","data":["loadTorque.tau = loadTorque.tau_constant"]},{"op":"before-after","display":"flattening","data":["tau = tau_constant;","loadTorque.tau = loadTorque.tau_constant;"]}]}}, "loadTorque.tau_constant":{"comment":"Constant torque (if negative, torque is acting as load in positive direction of rotation)","kind":"parameter","type":"Real","unit":"N.m","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":6681,"lineEnd":6682,"colStart":7,"colEnd":100},"within":["Real"],"instance":"loadTorque","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Sources.ConstantTorque$loadTorque"]}}, "spring.c":{"comment":"Spring constant","kind":"parameter","type":"Real","unit":"N.m/rad","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2694,"lineEnd":2695,"colStart":7,"colEnd":26},"within":["Real"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}}, "spring.d":{"comment":"Damping constant","kind":"parameter","type":"Real","unit":"N.m.s/rad","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2696,"lineEnd":2697,"colStart":7,"colEnd":27},"within":["Real"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}}, "spring.phi_nominal":{"comment":"Nominal value of phi_rel (used for scaling)","kind":"parameter","type":"Real","unit":"rad","displayUnit":"rad","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7299,"lineEnd":7302,"colStart":7,"colEnd":44},"within":["Real"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}}, "spring.phi_rel0":{"comment":"Unstretched spring angle","kind":"parameter","type":"Real","unit":"rad","displayUnit":"deg","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2698,"lineEnd":2698,"colStart":7,"colEnd":63},"within":["Real"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}}, "PI.I.initType":{"comment":"Type of initialization (1: no init, 2: steady state, 3,4: initial output)","kind":"parameter","type":"Enumeration","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":19,"lineEnd":21,"colStart":5,"colEnd":40},"within":["Modelica.Blocks.Types.Init"],"instance":"PII","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Continuous.Integrator$PI$I"]}}, "PI.homotopyType":{"comment":"Simplified model for homotopy-based initialization","kind":"parameter","type":"Enumeration","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":935,"lineEnd":937,"colStart":5,"colEnd":65},"within":["Modelica.Blocks.Types.LimiterHomotopy"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, "PI.initType":{"comment":"Type of initialization (1: no init, 2: steady state, 3: initial state, 4: initial output)","kind":"parameter","type":"Enumeration","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":919,"lineEnd":921,"colStart":5,"colEnd":64},"within":["Modelica.Blocks.Types.InitPID"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, "PI.limiter.homotopyType":{"comment":"Simplified model for homotopy-based initialization","kind":"parameter","type":"Enumeration","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Nonlinear.mo","lineStart":12,"lineEnd":13,"colStart":9,"colEnd":69},"within":["Modelica.Blocks.Types.LimiterHomotopy"],"instance":"PIlimiter","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Nonlinear.Limiter$PI$limiter"]}}, "inertia1.stateSelect":{"comment":"Priority to use phi and w as states","kind":"parameter","type":"Enumeration","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2472,"lineEnd":2474,"colStart":7,"colEnd":61},"within":["StateSelect"],"instance":"inertia1","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.Inertia$inertia1"]}}, "inertia2.stateSelect":{"comment":"Priority to use phi and w as states","kind":"parameter","type":"Enumeration","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2472,"lineEnd":2474,"colStart":7,"colEnd":61},"within":["StateSelect"],"instance":"inertia2","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.Inertia$inertia2"]}}, "integrator.initType":{"comment":"Type of initialization (1: no init, 2: steady state, 3,4: initial output)","kind":"parameter","type":"Enumeration","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":19,"lineEnd":21,"colStart":5,"colEnd":40},"within":["Modelica.Blocks.Types.Init"],"instance":"integrator","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.Integrator$integrator"]}}, "kinematicPTP.nout":{"comment":"Number of outputs","kind":"parameter","type":"Integer","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Interfaces.mo","lineStart":313,"lineEnd":313,"colStart":5,"colEnd":58},"within":["Integer"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"]}}, "spring.stateSelect":{"comment":"Priority to use phi_rel and w_rel as states","kind":"parameter","type":"Enumeration","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7303,"lineEnd":7305,"colStart":7,"colEnd":61},"within":["StateSelect"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}}, "PI.I.use_reset":{"comment":"=true, if reset port enabled","kind":"parameter","type":"Boolean","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":11,"lineEnd":12,"colStart":5,"colEnd":73},"within":["Boolean"],"instance":"PII","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Continuous.Integrator$PI$I"]}}, "PI.limiter.limitsAtInit":{"comment":"Has no longer an effect and is only kept for backwards compatibility (the implementation uses now the homotopy operator)","kind":"parameter","type":"Boolean","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Nonlinear.mo","lineStart":14,"lineEnd":16,"colStart":9,"colEnd":81},"within":["Boolean"],"instance":"PIlimiter","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Nonlinear.Limiter$PI$limiter"]}}, "PI.limiter.strict":{"comment":"= true, if strict limits with noEvent(..)","kind":"parameter","type":"Boolean","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Nonlinear.mo","lineStart":10,"lineEnd":11,"colStart":9,"colEnd":85},"within":["Boolean"],"instance":"PIlimiter","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Nonlinear.Limiter$PI$limiter"]}}, "PI.limitsAtInit":{"comment":"Has no longer an effect and is only kept for backwards compatibility (the implementation uses now the homotopy operator)","kind":"parameter","type":"Boolean","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":940,"lineEnd":942,"colStart":5,"colEnd":77},"within":["Boolean"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, "PI.strict":{"comment":"= true, if strict limits with noEvent(..)","kind":"parameter","type":"Boolean","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":938,"lineEnd":939,"colStart":5,"colEnd":81},"within":["Boolean"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, "PI.withFeedForward":{"comment":"Use feed-forward input?","kind":"parameter","type":"Boolean","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":915,"lineEnd":916,"colStart":5,"colEnd":56},"within":["Boolean"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, "PI.with_D":{"comment":"","kind":"parameter","type":"Boolean","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":995,"lineEnd":996,"colStart":5,"colEnd":111},"within":["Boolean"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, "PI.with_I":{"comment":"","kind":"parameter","type":"Boolean","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":993,"lineEnd":994,"colStart":5,"colEnd":111},"within":["Boolean"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, "integrator.use_reset":{"comment":"=true, if reset port enabled","kind":"parameter","type":"Boolean","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":11,"lineEnd":12,"colStart":5,"colEnd":73},"within":["Boolean"],"instance":"integrator","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.Integrator$integrator"]}}, "integrator.use_set":{"comment":"=true, if set port enabled and used as reinitialization value when reset","kind":"parameter","type":"Boolean","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":13,"lineEnd":14,"colStart":5,"colEnd":99},"within":["Boolean"],"instance":"integrator","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.Integrator$integrator"]}}, "loadTorque.useSupport":{"comment":"= true, if support flange enabled, otherwise implicitly grounded","kind":"parameter","type":"Boolean","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7417,"lineEnd":7422,"colStart":7,"colEnd":32},"within":["Boolean"],"instance":"loadTorque","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Sources.ConstantTorque$loadTorque"]}}, "spring.useHeatPort":{"comment":"=true, if heatPort is enabled","kind":"parameter","type":"Boolean","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Thermal/HeatTransfer.mo","lineStart":3137,"lineEnd":3138,"colStart":7,"colEnd":75},"within":["Boolean"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}}, "torque.useSupport":{"comment":"= true, if support flange enabled, otherwise implicitly grounded","kind":"parameter","type":"Boolean","unit":"","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7417,"lineEnd":7422,"colStart":7,"colEnd":32},"within":["Boolean"],"instance":"torque","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Sources.Torque"]}}, "PI.unitTime":{"comment":"","kind":"constant","type":"Real","unit":"s","displayUnit":"","source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":943,"lineEnd":943,"colStart":5,"colEnd":75},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}} }, "equations":[{"eqIndex":0,"tag":"dummy"}, {"eqIndex":1,"section":"initial","tag":"assign","defines":["PI.I.local_reset"],"uses":[],"equation":["false"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":36,"lineEnd":36,"colStart":5,"colEnd":85},"within":["Boolean"],"instance":"PII","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Continuous.Integrator$PI$I"],"operations":[{"op":"info","display":"solved","data":["PI.I.local_reset = false"]},{"op":"info","display":"solved","data":["PI.I.local_reset = false"]},{"op":"info","display":"solved","data":["PI.I.local_reset = false"]},{"op":"before-after","display":"flattening","data":["local_reset = false;","PI.I.local_reset = false;"]}]}}, {"eqIndex":2,"section":"initial","tag":"assign","defines":["PI.I.local_set"],"uses":[],"equation":["0.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":37,"lineEnd":37,"colStart":5,"colEnd":80},"within":["Real"],"instance":"PII","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Continuous.Integrator$PI$I"],"operations":[{"op":"info","display":"solved","data":["PI.I.local_set = 0.0"]},{"op":"info","display":"solved","data":["PI.I.local_set = 0.0"]},{"op":"info","display":"solved","data":["PI.I.local_set = 0.0"]},{"op":"before-after","display":"flattening","data":["local_set = 0;","PI.I.local_set = 0.0;"]}]}}, {"eqIndex":3,"section":"initial","tag":"assign","defines":["torque.phi_support"],"uses":[],"equation":["0.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7429,"lineEnd":7429,"colStart":7,"colEnd":76},"within":["Real"],"instance":"torque","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Sources.Torque"],"operations":[{"op":"info","display":"solved","data":["torque.phi_support = 0.0"]},{"op":"info","display":"solved","data":["torque.phi_support = 0.0"]},{"op":"info","display":"solved","data":["torque.phi_support = 0.0"]},{"op":"before-after","display":"flattening","data":["phi_support = 0;","torque.phi_support = 0.0;"]}]}}, {"eqIndex":4,"section":"initial","tag":"assign","defines":["integrator.local_reset"],"uses":[],"equation":["false"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":36,"lineEnd":36,"colStart":5,"colEnd":85},"within":["Boolean"],"instance":"integrator","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.Integrator$integrator"],"operations":[{"op":"info","display":"solved","data":["integrator.local_reset = false"]},{"op":"info","display":"solved","data":["integrator.local_reset = false"]},{"op":"info","display":"solved","data":["integrator.local_reset = false"]},{"op":"before-after","display":"flattening","data":["local_reset = false;","integrator.local_reset = false;"]}]}}, {"eqIndex":5,"section":"initial","tag":"assign","defines":["integrator.local_set"],"uses":[],"equation":["0.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":37,"lineEnd":37,"colStart":5,"colEnd":80},"within":["Real"],"instance":"integrator","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.Integrator$integrator"],"operations":[{"op":"info","display":"solved","data":["integrator.local_set = 0.0"]},{"op":"info","display":"solved","data":["integrator.local_set = 0.0"]},{"op":"info","display":"solved","data":["integrator.local_set = 0.0"]},{"op":"before-after","display":"flattening","data":["local_set = 0;","integrator.local_set = 0.0;"]}]}}, {"eqIndex":6,"section":"initial","tag":"assign","defines":["kinematicPTP.aux1[1]"],"uses":["kinematicPTP.p_qd_max[1]","kinematicPTP.p_deltaq[1]"],"equation":["kinematicPTP.p_deltaq[1] / kinematicPTP.p_qd_max[1]"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1472,"lineEnd":1472,"colStart":5,"colEnd":20},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"],"operations":[{"op":"info","display":"solved","data":["kinematicPTP.aux1[1] = kinematicPTP.p_deltaq[1] / kinematicPTP.p_qd_max[1]"]},{"op":"info","display":"solved","data":["kinematicPTP.aux1[1] = kinematicPTP.p_deltaq[1] / kinematicPTP.p_qd_max[1]"]},{"op":"info","display":"solved","data":["kinematicPTP.aux1[1] = kinematicPTP.p_deltaq[1] / kinematicPTP.p_qd_max[1]"]},{"op":"before-after","display":"flattening","data":["aux1[i] = p_deltaq[i] / p_qd_max[i];","kinematicPTP.aux1[1] = kinematicPTP.p_deltaq[1] / kinematicPTP.p_qd_max[1];"]}]}}, {"eqIndex":7,"section":"initial","tag":"assign","defines":["kinematicPTP.sd_max"],"uses":["kinematicPTP.aux1[1]"],"equation":["1.0 / abs(kinematicPTP.aux1[1])"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1469,"lineEnd":1469,"colStart":5,"colEnd":16},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"],"operations":[{"op":"info","display":"solved","data":["kinematicPTP.sd_max = 1.0 / abs(kinematicPTP.aux1[1])"]},{"op":"info","display":"solved","data":["kinematicPTP.sd_max = 1.0 / abs(kinematicPTP.aux1[1])"]},{"op":"info","display":"solved","data":["kinematicPTP.sd_max = 1.0 / abs(kinematicPTP.aux1[1])"]},{"op":"before-after","display":"flattening","data":["sd_max = 1 / max(abs(aux1));","kinematicPTP.sd_max = 1.0 / abs(kinematicPTP.aux1[1]);"]}]}}, {"eqIndex":8,"section":"initial","tag":"assign","defines":["kinematicPTP.aux2[1]"],"uses":["kinematicPTP.p_qdd_max[1]","kinematicPTP.p_deltaq[1]"],"equation":["kinematicPTP.p_deltaq[1] / kinematicPTP.p_qdd_max[1]"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1473,"lineEnd":1473,"colStart":5,"colEnd":20},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"],"operations":[{"op":"info","display":"solved","data":["kinematicPTP.aux2[1] = kinematicPTP.p_deltaq[1] / kinematicPTP.p_qdd_max[1]"]},{"op":"info","display":"solved","data":["kinematicPTP.aux2[1] = kinematicPTP.p_deltaq[1] / kinematicPTP.p_qdd_max[1]"]},{"op":"info","display":"solved","data":["kinematicPTP.aux2[1] = kinematicPTP.p_deltaq[1] / kinematicPTP.p_qdd_max[1]"]},{"op":"before-after","display":"flattening","data":["aux2[i] = p_deltaq[i] / p_qdd_max[i];","kinematicPTP.aux2[1] = kinematicPTP.p_deltaq[1] / kinematicPTP.p_qdd_max[1];"]}]}}, {"eqIndex":9,"section":"initial","tag":"assign","defines":["kinematicPTP.sdd_max"],"uses":["kinematicPTP.aux2[1]"],"equation":["1.0 / abs(kinematicPTP.aux2[1])"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1470,"lineEnd":1470,"colStart":5,"colEnd":17},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"],"operations":[{"op":"info","display":"solved","data":["kinematicPTP.sdd_max = 1.0 / abs(kinematicPTP.aux2[1])"]},{"op":"info","display":"solved","data":["kinematicPTP.sdd_max = 1.0 / abs(kinematicPTP.aux2[1])"]},{"op":"info","display":"solved","data":["kinematicPTP.sdd_max = 1.0 / abs(kinematicPTP.aux2[1])"]},{"op":"before-after","display":"flattening","data":["sdd_max = 1 / max(abs(aux2));","kinematicPTP.sdd_max = 1.0 / abs(kinematicPTP.aux2[1]);"]}]}}, {"eqIndex":10,"section":"initial","tag":"assign","defines":["kinematicPTP.Ta2"],"uses":["kinematicPTP.sdd_max","kinematicPTP.sd_max"],"equation":["kinematicPTP.sd_max / kinematicPTP.sdd_max"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1475,"lineEnd":1475,"colStart":5,"colEnd":21},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"],"operations":[{"op":"info","display":"solved","data":["kinematicPTP.Ta2 = kinematicPTP.sd_max / kinematicPTP.sdd_max"]},{"op":"info","display":"solved","data":["kinematicPTP.Ta2 = kinematicPTP.sd_max / kinematicPTP.sdd_max"]},{"op":"info","display":"solved","data":["kinematicPTP.Ta2 = kinematicPTP.sd_max / kinematicPTP.sdd_max"]},{"op":"before-after","display":"flattening","data":["Ta2 = sd_max / sdd_max;","kinematicPTP.Ta2 = kinematicPTP.sd_max / kinematicPTP.sdd_max;"]}]}}, {"eqIndex":11,"section":"initial","tag":"assign","defines":["kinematicPTP.Ta1"],"uses":["kinematicPTP.sdd_max"],"equation":["sqrt(1.0 / kinematicPTP.sdd_max)"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1474,"lineEnd":1474,"colStart":5,"colEnd":21},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"],"operations":[{"op":"info","display":"solved","data":["kinematicPTP.Ta1 = sqrt(1.0 / kinematicPTP.sdd_max)"]},{"op":"info","display":"solved","data":["kinematicPTP.Ta1 = sqrt(1.0 / kinematicPTP.sdd_max)"]},{"op":"info","display":"solved","data":["kinematicPTP.Ta1 = sqrt(1.0 / kinematicPTP.sdd_max)"]},{"op":"before-after","display":"flattening","data":["Ta1 = sqrt(1 / sdd_max);","kinematicPTP.Ta1 = sqrt(1.0 / kinematicPTP.sdd_max);"]}]}}, {"eqIndex":12,"tag":"alias","equation":[187],"section":"initial"}, {"eqIndex":13,"tag":"alias","equation":[188],"section":"initial"}, {"eqIndex":14,"tag":"alias","equation":[189],"section":"initial"}, {"eqIndex":15,"tag":"alias","equation":[198],"section":"initial"}, {"eqIndex":16,"tag":"alias","equation":[199],"section":"initial"}, {"eqIndex":17,"tag":"alias","equation":[200],"section":"initial"}, {"eqIndex":18,"section":"initial","tag":"assign","defines":["speedSensor.flange.tau"],"uses":[],"equation":["0.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":6864,"lineEnd":6864,"colStart":7,"colEnd":52},"within":["Real"],"instance":"speedSensorflange","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Sensors.SpeedSensor","Modelica.Mechanics.Rotational.Interfaces.Flange_a"],"operations":[{"op":"info","display":"solved","data":["speedSensor.flange.tau = 0.0"]},{"op":"info","display":"solved","data":["speedSensor.flange.tau = 0.0"]},{"op":"info","display":"solved","data":["speedSensor.flange.tau = 0.0"]},{"op":"before-after","display":"flattening","data":["0 = flange.tau;","0.0 = speedSensor.flange.tau;"]}]}}, {"eqIndex":19,"section":"initial","tag":"assign","defines":["loadTorque.phi_support"],"uses":[],"equation":["0.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7429,"lineEnd":7429,"colStart":7,"colEnd":76},"within":["Real"],"instance":"loadTorque","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Sources.ConstantTorque$loadTorque"],"operations":[{"op":"info","display":"solved","data":["loadTorque.phi_support = 0.0"]},{"op":"info","display":"solved","data":["loadTorque.phi_support = 0.0"]},{"op":"info","display":"solved","data":["loadTorque.phi_support = 0.0"]},{"op":"before-after","display":"flattening","data":["phi_support = 0;","loadTorque.phi_support = 0.0;"]}]}}, {"eqIndex":20,"section":"initial","tag":"assign","defines":["inertia1.phi"],"uses":["$START.inertia1.phi"],"equation":["$START.inertia1.phi"],"source":{"info":{"file":"","lineStart":0,"lineEnd":0,"colStart":0,"colEnd":0},"operations":[{"op":"info","display":"solved","data":["inertia1.phi = $START.inertia1.phi"]},{"op":"info","display":"solved","data":["inertia1.phi = $START.inertia1.phi"]}]}}, {"eqIndex":21,"section":"initial","tag":"assign","defines":["inertia1.a"],"uses":["$START.inertia1.a"],"equation":["$START.inertia1.a"],"source":{"info":{"file":"","lineStart":0,"lineEnd":0,"colStart":0,"colEnd":0},"operations":[{"op":"info","display":"solved","data":["inertia1.a = $START.inertia1.a"]},{"op":"info","display":"solved","data":["inertia1.a = $START.inertia1.a"]}]}}, {"eqIndex":22,"tag":"alias","equation":[212],"section":"initial"}, {"eqIndex":23,"section":"initial","tag":"assign","defines":["spring.w_rel"],"uses":["$START.spring.w_rel"],"equation":["$START.spring.w_rel"],"source":{"info":{"file":"","lineStart":0,"lineEnd":0,"colStart":0,"colEnd":0},"operations":[{"op":"info","display":"solved","data":["spring.w_rel = $START.spring.w_rel"]},{"op":"info","display":"solved","data":["spring.w_rel = $START.spring.w_rel"]}]}}, {"eqIndex":24,"tag":"alias","equation":[197],"section":"initial"}, {"eqIndex":25,"tag":"alias","equation":[192],"section":"initial"}, {"eqIndex":26,"tag":"alias","equation":[193],"section":"initial"}, {"eqIndex":27,"section":"initial","tag":"assign","defines":["der(spring.w_rel)"],"uses":[],"equation":["0.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/package.mo","lineStart":59,"lineEnd":59,"colStart":5,"colEnd":26},"within":["Modelica.Blocks.Examples.PID_Controller"],"operations":[{"op":"info","display":"solved","data":["der(spring.w_rel) = 0.0"]},{"op":"info","display":"solved","data":["der(spring.w_rel) = 0.0"]},{"op":"before-after","display":"differentiate d/dtime","data":["der(spring.w_rel)","der(spring.w_rel)"]},{"op":"before-after","display":"flattening","data":["der(spring.w_rel) = 0;","#UNKNOWN_EQUATION#"]}]}}, {"eqIndex":28,"section":"initial","tag":"assign","defines":["spring.a_rel"],"uses":["der(spring.w_rel)"],"equation":["$DER.spring.w_rel"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7310,"lineEnd":7310,"colStart":7,"colEnd":25},"within":["Modelica.Mechanics.Rotational.Components.SpringDamper$spring"],"instance":"spring","operations":[{"op":"info","display":"solved","data":["spring.a_rel = $DER.spring.w_rel"]},{"op":"info","display":"solved","data":["spring.a_rel = $DER.spring.w_rel"]},{"op":"before-after","display":"differentiate d/dtime","data":["der(spring.w_rel)","der(spring.w_rel)"]},{"op":"before-after","display":"flattening","data":["a_rel = der(w_rel);","spring.a_rel = der(spring.w_rel);"]}]}}, {"eqIndex":29,"section":"initial","tag":"assign","defines":["inertia2.a"],"uses":["spring.a_rel","inertia1.a"],"equation":["inertia1.a + spring.a_rel"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7308,"lineEnd":7308,"colStart":7,"colEnd":44},"within":["Modelica.Mechanics.Rotational.Components.SpringDamper$spring"],"instance":"spring","operations":[{"op":"info","display":"solved","data":["inertia2.a = inertia1.a + spring.a_rel"]},{"op":"info","display":"solved","data":["inertia2.a = inertia1.a + spring.a_rel"]},{"op":"before-after","display":"differentiate d/dtime","data":["inertia2.w - inertia1.w","der(inertia2.w) - der(inertia1.w)"]},{"op":"before-after","display":"differentiate d/dtime","data":["spring.w_rel","der(spring.w_rel)"]},{"op":"before-after","display":"differentiate d/dtime","data":["loadTorque.phi - inertia1.phi","der(loadTorque.phi) - der(inertia1.phi)"]},{"op":"before-after","display":"differentiate d/dtime","data":["spring.phi_rel","der(spring.phi_rel)"]},{"op":"chain","display":"substitution","data":["spring.flange_b.phi - spring.flange_a.phi","loadTorque.phi - inertia1.phi","inertia2.phi - inertia1.phi"]},{"op":"before-after","display":"flattening","data":["phi_rel = flange_b.phi - flange_a.phi;","spring.phi_rel = spring.flange_b.phi - spring.flange_a.phi;"]}]}}, {"eqIndex":30,"section":"initial","tag":"assign","defines":["spring.tau"],"uses":["inertia2.a","inertia2.J","loadTorque.tau_constant"],"equation":["loadTorque.tau_constant - inertia2.J * inertia2.a"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2490,"lineEnd":2490,"colStart":7,"colEnd":40},"within":["Modelica.Mechanics.Rotational.Components.Inertia$inertia2"],"instance":"inertia2","operations":[{"op":"info","display":"solved","data":["spring.tau = loadTorque.tau_constant - inertia2.J * inertia2.a"]},{"op":"info","display":"solved","data":["spring.tau = loadTorque.tau_constant - inertia2.J * inertia2.a"]},{"op":"before-after","display":"simplify","data":["inertia2.J * inertia2.a = (-spring.tau) + loadTorque.tau_constant","inertia2.J * inertia2.a = loadTorque.tau_constant - spring.tau"]},{"op":"chain","display":"substitution","data":["inertia2.flange_a.tau + inertia2.flange_b.tau","(-spring.tau) + loadTorque.tau_constant"]},{"op":"before-after","display":"flattening","data":["J * a = flange_a.tau + flange_b.tau;","inertia2.J * inertia2.a = inertia2.flange_a.tau + inertia2.flange_b.tau;"]}]}}, {"eqIndex":31,"section":"initial","tag":"assign","defines":["spring.tau_c"],"uses":["spring.tau_d","spring.tau"],"equation":["spring.tau - spring.tau_d"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2709,"lineEnd":2709,"colStart":7,"colEnd":26},"within":["Modelica.Mechanics.Rotational.Components.SpringDamper$spring"],"instance":"spring","operations":[{"op":"info","display":"solved","data":["spring.tau_c = spring.tau - spring.tau_d"]},{"op":"info","display":"solved","data":["spring.tau_c = spring.tau - spring.tau_d"]},{"op":"before-after","display":"flattening","data":["tau = tau_c + tau_d;","spring.tau = spring.tau_c + spring.tau_d;"]}]}}, {"eqIndex":32,"section":"initial","tag":"assign","defines":["spring.phi_rel"],"uses":["spring.phi_rel0","spring.c","spring.tau_c"],"equation":["spring.tau_c / spring.c + spring.phi_rel0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2707,"lineEnd":2707,"colStart":7,"colEnd":37},"within":["Modelica.Mechanics.Rotational.Components.SpringDamper$spring"],"instance":"spring","operations":[{"op":"info","display":"solved","data":["spring.phi_rel = spring.tau_c / spring.c + spring.phi_rel0"]},{"op":"info","display":"solved","data":["spring.phi_rel = spring.tau_c / spring.c + spring.phi_rel0"]},{"op":"before-after","display":"flattening","data":["tau_c = c * (phi_rel - phi_rel0);","spring.tau_c = spring.c * (spring.phi_rel - spring.phi_rel0);"]}]}}, {"eqIndex":33,"tag":"alias","equation":[218],"section":"initial"}, {"eqIndex":34,"section":"initial","tag":"assign","defines":["PI.y"],"uses":["spring.tau","inertia1.a","inertia1.J"],"equation":["inertia1.J * inertia1.a - spring.tau"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2490,"lineEnd":2490,"colStart":7,"colEnd":40},"within":["Modelica.Mechanics.Rotational.Components.Inertia$inertia1"],"instance":"inertia1","operations":[{"op":"info","display":"solved","data":["PI.y = inertia1.J * inertia1.a - spring.tau"]},{"op":"info","display":"solved","data":["PI.y = inertia1.J * inertia1.a - spring.tau"]},{"op":"chain","display":"substitution","data":["inertia1.flange_a.tau + inertia1.flange_b.tau","PI.y + spring.tau","PI.y + inertia1.flange_b.tau"]},{"op":"before-after","display":"flattening","data":["J * a = flange_a.tau + flange_b.tau;","inertia1.J * inertia1.a = inertia1.flange_a.tau + inertia1.flange_b.tau;"]}]}}, {"eqIndex":35,"parent":36,"section":"initial","tag":"residual","uses":["PI.limiter.uMin","PI.limiter.uMax","PI.addFF.y","PI.y"],"equation":["PI.y - homotopy(smooth(0, if PI.addFF.y > PI.limiter.uMax then PI.limiter.uMax else if PI.addFF.y < PI.limiter.uMin then PI.limiter.uMin else PI.addFF.y), PI.addFF.y)"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Nonlinear.mo","lineStart":39,"lineEnd":40,"colStart":13,"colEnd":52},"within":["Modelica.Blocks.Nonlinear.Limiter$PI$limiter"],"instance":"PIlimiter","operations":[{"op":"chain","display":"substitution","data":["homotopy(smooth(0, if PI.limiter.u > PI.limiter.uMax then PI.limiter.uMax else if PI.limiter.u < PI.limiter.uMin then PI.limiter.uMin else PI.limiter.u), PI.limiter.simplifiedExpr)","homotopy(smooth(0, if PI.addFF.y > PI.limiter.uMax then PI.limiter.uMax else if PI.addFF.y < PI.limiter.uMin then PI.limiter.uMin else PI.addFF.y), PI.addFF.y)"]},{"op":"chain","display":"substitution","data":["PI.limiter.y","PI.y"]},{"op":"before-after","display":"flattening","data":["y = homotopy(actual = smooth(0, if u > uMax then uMax else if u < uMin then uMin else u), simplified = simplifiedExpr);","PI.limiter.y = homotopy(smooth(0, if PI.limiter.u > PI.limiter.uMax then PI.limiter.uMax else if PI.limiter.u < PI.limiter.uMin then PI.limiter.uMin else PI.limiter.u), PI.limiter.simplifiedExpr);"]}]}}, {"eqIndex":36,"section":"initial","tag":"system","display":"non-linear","unknowns":1,"defines":["PI.addFF.y"],"equation":[[35],[]]}, {"eqIndex":37,"tag":"alias","equation":[213],"section":"initial"}, {"eqIndex":38,"tag":"alias","equation":[214],"section":"initial"}, {"eqIndex":39,"section":"initial","tag":"assign","defines":["PI.addFF.u1"],"uses":["PI.addFF.k1","PI.FFzero.k","PI.addFF.k2","PI.addFF.y"],"equation":["(PI.addFF.y - PI.addFF.k2 * PI.FFzero.k) / PI.addFF.k1"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":915,"lineEnd":915,"colStart":5,"colEnd":22},"within":["Modelica.Blocks.Math.Add$PI$addFF"],"instance":"PIaddFF","operations":[{"op":"info","display":"solved","data":["PI.addFF.u1 = (PI.addFF.y - PI.addFF.k2 * PI.FFzero.k) / PI.addFF.k1"]},{"op":"info","display":"solved","data":["PI.addFF.u1 = (PI.addFF.y - PI.addFF.k2 * PI.FFzero.k) / PI.addFF.k1"]},{"op":"chain","display":"substitution","data":["PI.addFF.k1 * PI.addFF.u1 + PI.addFF.k2 * PI.addFF.u2","PI.addFF.k1 * PI.addFF.u1 + PI.addFF.k2 * PI.FFzero.k"]},{"op":"before-after","display":"flattening","data":["y = k1 * u1 + k2 * u2;","PI.addFF.y = PI.addFF.k1 * PI.addFF.u1 + PI.addFF.k2 * PI.addFF.u2;"]}]}}, {"eqIndex":40,"section":"initial","tag":"assign","defines":["PI.addPID.y"],"uses":["PI.gainPID.k","PI.addFF.u1"],"equation":["PI.addFF.u1 / PI.gainPID.k"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":552,"lineEnd":552,"colStart":5,"colEnd":12},"within":["Modelica.Blocks.Math.Gain$PI$gainPID"],"instance":"PIgainPID","operations":[{"op":"info","display":"solved","data":["PI.addPID.y = PI.addFF.u1 / PI.gainPID.k"]},{"op":"info","display":"solved","data":["PI.addPID.y = PI.addFF.u1 / PI.gainPID.k"]},{"op":"chain","display":"substitution","data":["PI.gainPID.k * PI.gainPID.u","PI.gainPID.k * PI.addPID.y"]},{"op":"chain","display":"substitution","data":["PI.gainPID.y","PI.addFF.u1"]},{"op":"before-after","display":"flattening","data":["y = k * u;","PI.gainPID.y = PI.gainPID.k * PI.gainPID.u;"]}]}}, {"eqIndex":41,"tag":"alias","equation":[196],"section":"initial"}, {"eqIndex":42,"section":"initial","tag":"assign","defines":["integrator.y"],"uses":["integrator.y_start"],"equation":["integrator.y_start"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":44,"lineEnd":44,"colStart":7,"colEnd":18},"within":["Modelica.Blocks.Continuous.Integrator$integrator"],"instance":"integrator","operations":[{"op":"info","display":"solved","data":["integrator.y = integrator.y_start"]},{"op":"info","display":"solved","data":["integrator.y = integrator.y_start"]},{"op":"before-after","display":"flattening","data":["y = y_start;","#UNKNOWN_EQUATION#"]}]}}, {"eqIndex":43,"section":"initial","tag":"assign","defines":["der(PI.I.y)"],"uses":[],"equation":["0.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":41,"lineEnd":41,"colStart":8,"colEnd":18},"within":["Modelica.Blocks.Continuous.Integrator$PI$I"],"instance":"PII","operations":[{"op":"info","display":"solved","data":["der(PI.I.y) = 0.0"]},{"op":"info","display":"solved","data":["der(PI.I.y) = 0.0"]},{"op":"before-after","display":"flattening","data":["der(y) = 0;","#UNKNOWN_EQUATION#"]}]}}, {"eqIndex":44,"section":"initial","tag":"assign","defines":["PI.I.u"],"uses":["PI.I.k","der(PI.I.y)"],"equation":["$DER.PI.I.y / PI.I.k"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":61,"lineEnd":61,"colStart":5,"colEnd":17},"within":["Modelica.Blocks.Continuous.Integrator$PI$I"],"instance":"PII","operations":[{"op":"info","display":"solved","data":["PI.I.u = $DER.PI.I.y / PI.I.k"]},{"op":"info","display":"solved","data":["PI.I.u = $DER.PI.I.y / PI.I.k"]},{"op":"before-after","display":"differentiate d/dtime","data":["der(PI.I.y)","der(PI.I.y)"]},{"op":"before-after","display":"flattening","data":["der(y) = k * u;","der(PI.I.y) = PI.I.k * PI.I.u;"]}]}}, {"eqIndex":45,"section":"initial","tag":"assign","defines":["inertia1.w"],"uses":["PI.addI.k2","PI.addI.u3","PI.addI.k3","integrator.y","PI.addI.k1","PI.I.u"],"equation":["(PI.I.u - (PI.addI.k1 * integrator.y + PI.addI.k3 * PI.addI.u3)) / PI.addI.k2"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":981,"lineEnd":981,"colStart":5,"colEnd":30},"within":["Modelica.Blocks.Math.Add3$PI$addI"],"instance":"PIaddI","operations":[{"op":"info","display":"solved","data":["inertia1.w = (PI.I.u - (PI.addI.k1 * integrator.y + PI.addI.k3 * PI.addI.u3)) / PI.addI.k2"]},{"op":"info","display":"solved","data":["inertia1.w = (PI.I.u - (PI.addI.k1 * integrator.y + PI.addI.k3 * PI.addI.u3)) / PI.addI.k2"]},{"op":"chain","display":"substitution","data":["PI.addI.k1 * PI.addI.u1 + PI.addI.k2 * PI.addI.u2 + PI.addI.k3 * PI.addI.u3","PI.addI.k1 * integrator.y + PI.addI.k2 * inertia1.w + PI.addI.k3 * PI.addI.u3","PI.addI.k1 * integrator.y + PI.addI.k2 * PI.u_m + PI.addI.k3 * PI.addI.u3"]},{"op":"chain","display":"substitution","data":["PI.addI.y","PI.I.u"]},{"op":"before-after","display":"flattening","data":["y = k1 * u1 + k2 * u2 + k3 * u3;","PI.addI.y = PI.addI.k1 * PI.addI.u1 + PI.addI.k2 * PI.addI.u2 + PI.addI.k3 * PI.addI.u3;"]}]}}, {"eqIndex":46,"section":"initial","tag":"assign","defines":["inertia2.w"],"uses":["spring.w_rel","inertia1.w"],"equation":["inertia1.w + spring.w_rel"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7308,"lineEnd":7308,"colStart":7,"colEnd":44},"within":["Modelica.Mechanics.Rotational.Components.SpringDamper$spring"],"instance":"spring","operations":[{"op":"info","display":"solved","data":["inertia2.w = inertia1.w + spring.w_rel"]},{"op":"info","display":"solved","data":["inertia2.w = inertia1.w + spring.w_rel"]},{"op":"before-after","display":"differentiate d/dtime","data":["loadTorque.phi - inertia1.phi","der(loadTorque.phi) - der(inertia1.phi)"]},{"op":"before-after","display":"differentiate d/dtime","data":["spring.phi_rel","der(spring.phi_rel)"]},{"op":"chain","display":"substitution","data":["spring.flange_b.phi - spring.flange_a.phi","loadTorque.phi - inertia1.phi","inertia2.phi - inertia1.phi"]},{"op":"before-after","display":"flattening","data":["phi_rel = flange_b.phi - flange_a.phi;","spring.phi_rel = spring.flange_b.phi - spring.flange_a.phi;"]}]}}, {"eqIndex":47,"tag":"alias","equation":[190],"section":"initial"}, {"eqIndex":48,"tag":"alias","equation":[202],"section":"initial"}, {"eqIndex":49,"tag":"alias","equation":[203],"section":"initial"}, {"eqIndex":50,"tag":"alias","equation":[204],"section":"initial"}, {"eqIndex":51,"section":"initial","tag":"assign","defines":["PI.I.y"],"uses":["PI.addPID.k3","PI.Dzero.k","PI.addPID.k2","PI.P.y","PI.addPID.k1","PI.addPID.y"],"equation":["(PI.addPID.y - (PI.addPID.k1 * PI.P.y + PI.addPID.k2 * PI.Dzero.k)) / PI.addPID.k3"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":981,"lineEnd":981,"colStart":5,"colEnd":30},"within":["Modelica.Blocks.Math.Add3"],"instance":"PIaddPID","operations":[{"op":"info","display":"solved","data":["PI.I.y = (PI.addPID.y - (PI.addPID.k1 * PI.P.y + PI.addPID.k2 * PI.Dzero.k)) / PI.addPID.k3"]},{"op":"info","display":"solved","data":["PI.I.y = (PI.addPID.y - (PI.addPID.k1 * PI.P.y + PI.addPID.k2 * PI.Dzero.k)) / PI.addPID.k3"]},{"op":"chain","display":"substitution","data":["PI.addPID.k1 * PI.addPID.u1 + PI.addPID.k2 * PI.addPID.u2 + PI.addPID.k3 * PI.addPID.u3","PI.addPID.k1 * PI.P.y + PI.addPID.k2 * PI.Dzero.k + PI.addPID.k3 * PI.I.y"]},{"op":"before-after","display":"flattening","data":["y = k1 * u1 + k2 * u2 + k3 * u3;","PI.addPID.y = PI.addPID.k1 * PI.addPID.u1 + PI.addPID.k2 * PI.addPID.u2 + PI.addPID.k3 * PI.addPID.u3;"]}]}}, {"eqIndex":52,"tag":"alias","equation":[217],"section":"initial"}, {"eqIndex":53,"section":"initial","tag":"algorithm","equation":["assert(PI.limiter.uMax >= PI.limiter.uMin, \"Limiter: Limits must be consistent. However, uMax (=\" + String(PI.limiter.uMax, 6, 0, true) + \") < uMin (=\" + String(PI.limiter.uMin, 6, 0, true) + \")\");"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Nonlinear.mo","lineStart":22,"lineEnd":23,"colStart":9,"colEnd":65},"within":["Modelica.Blocks.Nonlinear.Limiter$PI$limiter"],"instance":"PIlimiter","operations":[{"op":"info","display":"scode","data":["assert(uMax >= uMin, \"Limiter: Limits must be consistent. However, uMax (=\" + String(uMax) + \") < uMin (=\" + String(uMin) + \")\");"]}]}}, {"eqIndex":54,"section":"initial-lambda0","tag":"assign","defines":["PI.controllerType"],"uses":[],"equation":["Modelica.Blocks.Types.SimpleController.PI"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":889,"lineEnd":890,"colStart":5,"colEnd":76},"within":["Modelica.Blocks.Types.SimpleController"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, {"eqIndex":55,"section":"initial-lambda0","tag":"assign","defines":["PI.Td"],"uses":[],"equation":["0.1"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":896,"lineEnd":899,"colStart":5,"colEnd":76},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, {"eqIndex":56,"section":"initial-lambda0","tag":"assign","defines":["PI.wd"],"uses":[],"equation":["0.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":904,"lineEnd":906,"colStart":5,"colEnd":96},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, {"eqIndex":57,"section":"initial-lambda0","tag":"assign","defines":["PI.Nd"],"uses":[],"equation":["10.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":911,"lineEnd":914,"colStart":5,"colEnd":96},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, {"eqIndex":58,"section":"initial-lambda0","tag":"assign","defines":["PI.withFeedForward"],"uses":[],"equation":["false"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":915,"lineEnd":916,"colStart":5,"colEnd":56},"within":["Boolean"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, {"eqIndex":59,"section":"initial-lambda0","tag":"assign","defines":["PI.initType"],"uses":[],"equation":["Modelica.Blocks.Types.InitPID.SteadyState"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":919,"lineEnd":921,"colStart":5,"colEnd":64},"within":["Modelica.Blocks.Types.InitPID"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, {"eqIndex":60,"section":"initial-lambda0","tag":"assign","defines":["PI.xd_start"],"uses":[],"equation":["0.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":927,"lineEnd":931,"colStart":5,"colEnd":96},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, {"eqIndex":61,"section":"initial-lambda0","tag":"assign","defines":["PI.y_start"],"uses":[],"equation":["0.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":932,"lineEnd":934,"colStart":5,"colEnd":31},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, {"eqIndex":62,"section":"initial-lambda0","tag":"assign","defines":["PI.homotopyType"],"uses":[],"equation":["Modelica.Blocks.Types.LimiterHomotopy.Linear"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":935,"lineEnd":937,"colStart":5,"colEnd":65},"within":["Modelica.Blocks.Types.LimiterHomotopy"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, {"eqIndex":63,"section":"initial-lambda0","tag":"assign","defines":["PI.strict"],"uses":[],"equation":["false"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":938,"lineEnd":939,"colStart":5,"colEnd":81},"within":["Boolean"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, {"eqIndex":64,"section":"initial-lambda0","tag":"assign","defines":["PI.limitsAtInit"],"uses":[],"equation":["false"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":940,"lineEnd":942,"colStart":5,"colEnd":77},"within":["Boolean"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, {"eqIndex":65,"section":"initial-lambda0","tag":"assign","defines":["PI.addP.k1"],"uses":["PI.wp"],"equation":["PI.wp"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":911,"lineEnd":911,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add$PI$addP"]}}, {"eqIndex":66,"section":"initial-lambda0","tag":"assign","defines":["PI.wp"],"uses":[],"equation":["1.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":902,"lineEnd":903,"colStart":5,"colEnd":55},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, {"eqIndex":67,"section":"initial-lambda0","tag":"assign","defines":["PI.addP.k2"],"uses":[],"equation":["-1.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":912,"lineEnd":912,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add$PI$addP"]}}, {"eqIndex":68,"section":"initial-lambda0","tag":"assign","defines":["PI.P.k"],"uses":[],"equation":["1.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":543,"lineEnd":544,"colStart":5,"colEnd":48},"within":["Real"],"instance":"PIP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Gain$PI$P"]}}, {"eqIndex":69,"section":"initial-lambda0","tag":"assign","defines":["PI.gainPID.k"],"uses":["PI.k"],"equation":["PI.k"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":543,"lineEnd":544,"colStart":5,"colEnd":48},"within":["Real"],"instance":"PIgainPID","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Gain$PI$gainPID"]}}, {"eqIndex":70,"section":"initial-lambda0","tag":"assign","defines":["PI.addPID.k1"],"uses":[],"equation":["1.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":968,"lineEnd":968,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddPID","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add3"]}}, {"eqIndex":71,"section":"initial-lambda0","tag":"assign","defines":["PI.addPID.k2"],"uses":[],"equation":["1.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":969,"lineEnd":969,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddPID","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add3"]}}, {"eqIndex":72,"section":"initial-lambda0","tag":"assign","defines":["PI.addPID.k3"],"uses":[],"equation":["1.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":970,"lineEnd":970,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddPID","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add3"]}}, {"eqIndex":73,"section":"initial-lambda0","tag":"assign","defines":["PI.limiter.uMax"],"uses":["PI.yMax"],"equation":["PI.yMax"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Nonlinear.mo","lineStart":8,"lineEnd":8,"colStart":9,"colEnd":69},"within":["Real"],"instance":"PIlimiter","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Nonlinear.Limiter$PI$limiter"]}}, {"eqIndex":74,"section":"initial-lambda0","tag":"assign","defines":["PI.limiter.uMin"],"uses":["PI.yMin"],"equation":["PI.yMin"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Nonlinear.mo","lineStart":9,"lineEnd":9,"colStart":9,"colEnd":67},"within":["Real"],"instance":"PIlimiter","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Nonlinear.Limiter$PI$limiter"]}}, {"eqIndex":75,"section":"initial-lambda0","tag":"assign","defines":["PI.yMin"],"uses":["PI.yMax"],"equation":["-PI.yMax"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":901,"lineEnd":901,"colStart":5,"colEnd":54},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, {"eqIndex":76,"section":"initial-lambda0","tag":"assign","defines":["PI.yMax"],"uses":[],"equation":["12.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":900,"lineEnd":900,"colStart":5,"colEnd":57},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, {"eqIndex":77,"section":"initial-lambda0","tag":"assign","defines":["PI.limiter.strict"],"uses":[],"equation":["false"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Nonlinear.mo","lineStart":10,"lineEnd":11,"colStart":9,"colEnd":85},"within":["Boolean"],"instance":"PIlimiter","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Nonlinear.Limiter$PI$limiter"]}}, {"eqIndex":78,"section":"initial-lambda0","tag":"assign","defines":["PI.limiter.homotopyType"],"uses":[],"equation":["Modelica.Blocks.Types.LimiterHomotopy.Linear"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Nonlinear.mo","lineStart":12,"lineEnd":13,"colStart":9,"colEnd":69},"within":["Modelica.Blocks.Types.LimiterHomotopy"],"instance":"PIlimiter","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Nonlinear.Limiter$PI$limiter"]}}, {"eqIndex":79,"section":"initial-lambda0","tag":"assign","defines":["PI.limiter.limitsAtInit"],"uses":[],"equation":["false"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Nonlinear.mo","lineStart":14,"lineEnd":16,"colStart":9,"colEnd":81},"within":["Boolean"],"instance":"PIlimiter","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Nonlinear.Limiter$PI$limiter"]}}, {"eqIndex":80,"section":"initial-lambda0","tag":"assign","defines":["PI.with_I"],"uses":[],"equation":["true"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":993,"lineEnd":994,"colStart":5,"colEnd":111},"within":["Boolean"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, {"eqIndex":81,"section":"initial-lambda0","tag":"assign","defines":["PI.with_D"],"uses":[],"equation":["false"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":995,"lineEnd":996,"colStart":5,"colEnd":111},"within":["Boolean"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, {"eqIndex":82,"section":"initial-lambda0","tag":"assign","defines":["PI.addFF.k1"],"uses":[],"equation":["1.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":911,"lineEnd":911,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddFF","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add$PI$addFF"]}}, {"eqIndex":83,"section":"initial-lambda0","tag":"assign","defines":["PI.addFF.k2"],"uses":["PI.kFF"],"equation":["PI.kFF"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":912,"lineEnd":912,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddFF","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add$PI$addFF"]}}, {"eqIndex":84,"section":"initial-lambda0","tag":"assign","defines":["PI.kFF"],"uses":[],"equation":["1.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":917,"lineEnd":918,"colStart":5,"colEnd":49},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, {"eqIndex":85,"section":"initial-lambda0","tag":"assign","defines":["PI.I.k"],"uses":["PI.Ti"],"equation":["1.0 / PI.Ti"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":10,"lineEnd":10,"colStart":5,"colEnd":51},"within":["Real"],"instance":"PII","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Continuous.Integrator$PI$I"]}}, {"eqIndex":86,"section":"initial-lambda0","tag":"assign","defines":["PI.Ti"],"uses":[],"equation":["0.1"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":892,"lineEnd":895,"colStart":5,"colEnd":76},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, {"eqIndex":87,"section":"initial-lambda0","tag":"assign","defines":["PI.I.use_reset"],"uses":[],"equation":["false"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":11,"lineEnd":12,"colStart":5,"colEnd":73},"within":["Boolean"],"instance":"PII","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Continuous.Integrator$PI$I"]}}, {"eqIndex":88,"section":"initial-lambda0","tag":"assign","defines":["PI.I.use_set"],"uses":[],"equation":["false"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":13,"lineEnd":14,"colStart":5,"colEnd":99},"within":["Boolean"],"instance":"PII","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Continuous.Integrator$PI$I"]}}, {"eqIndex":89,"section":"initial-lambda0","tag":"assign","defines":["PI.I.initType"],"uses":[],"equation":["Modelica.Blocks.Types.Init.SteadyState"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":19,"lineEnd":21,"colStart":5,"colEnd":40},"within":["Modelica.Blocks.Types.Init"],"instance":"PII","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Continuous.Integrator$PI$I"]}}, {"eqIndex":90,"section":"initial-lambda0","tag":"assign","defines":["PI.I.y_start"],"uses":["PI.xi_start"],"equation":["PI.xi_start"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":22,"lineEnd":23,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PII","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Continuous.Integrator$PI$I"]}}, {"eqIndex":91,"section":"initial-lambda0","tag":"assign","defines":["PI.xi_start"],"uses":[],"equation":["0.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":922,"lineEnd":926,"colStart":5,"colEnd":87},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, {"eqIndex":92,"section":"initial-lambda0","tag":"assign","defines":["PI.addI.k1"],"uses":[],"equation":["1.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":968,"lineEnd":968,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add3$PI$addI"]}}, {"eqIndex":93,"section":"initial-lambda0","tag":"assign","defines":["PI.addI.k2"],"uses":[],"equation":["-1.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":969,"lineEnd":969,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add3$PI$addI"]}}, {"eqIndex":94,"section":"initial-lambda0","tag":"assign","defines":["PI.addI.k3"],"uses":[],"equation":["1.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":970,"lineEnd":970,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add3$PI$addI"]}}, {"eqIndex":95,"section":"initial-lambda0","tag":"assign","defines":["PI.addSat.k1"],"uses":[],"equation":["1.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":911,"lineEnd":911,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddSat","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add$PI$addSat"]}}, {"eqIndex":96,"section":"initial-lambda0","tag":"assign","defines":["PI.addSat.k2"],"uses":[],"equation":["-1.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":912,"lineEnd":912,"colStart":5,"colEnd":50},"within":["Real"],"instance":"PIaddSat","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add$PI$addSat"]}}, {"eqIndex":97,"section":"initial-lambda0","tag":"assign","defines":["PI.gainTrack.k"],"uses":["PI.k","PI.Ni"],"equation":["1.0 / (PI.Ni * PI.k)"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":543,"lineEnd":544,"colStart":5,"colEnd":48},"within":["Real"],"instance":"PIgainTrack","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Gain$PI$gainTrack"]}}, {"eqIndex":98,"section":"initial-lambda0","tag":"assign","defines":["PI.Ni"],"uses":[],"equation":["0.1"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":907,"lineEnd":910,"colStart":5,"colEnd":94},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, {"eqIndex":99,"section":"initial-lambda0","tag":"assign","defines":["PI.k"],"uses":[],"equation":["100.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":891,"lineEnd":891,"colStart":5,"colEnd":63},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, {"eqIndex":100,"section":"initial-lambda0","tag":"assign","defines":["inertia1.J"],"uses":[],"equation":["1.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2471,"lineEnd":2471,"colStart":7,"colEnd":65},"within":["Real"],"instance":"inertia1","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.Inertia$inertia1"]}}, {"eqIndex":101,"section":"initial-lambda0","tag":"assign","defines":["inertia1.stateSelect"],"uses":[],"equation":["StateSelect.default"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2472,"lineEnd":2474,"colStart":7,"colEnd":61},"within":["StateSelect"],"instance":"inertia1","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.Inertia$inertia1"]}}, {"eqIndex":102,"section":"initial-lambda0","tag":"assign","defines":["torque.useSupport"],"uses":[],"equation":["false"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7417,"lineEnd":7422,"colStart":7,"colEnd":32},"within":["Boolean"],"instance":"torque","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Sources.Torque"]}}, {"eqIndex":103,"section":"initial-lambda0","tag":"assign","defines":["spring.phi_nominal"],"uses":[],"equation":["0.0001"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7299,"lineEnd":7302,"colStart":7,"colEnd":44},"within":["Real"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}}, {"eqIndex":104,"section":"initial-lambda0","tag":"assign","defines":["spring.stateSelect"],"uses":[],"equation":["StateSelect.prefer"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7303,"lineEnd":7305,"colStart":7,"colEnd":61},"within":["StateSelect"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}}, {"eqIndex":105,"section":"initial-lambda0","tag":"assign","defines":["spring.useHeatPort"],"uses":[],"equation":["false"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Thermal/HeatTransfer.mo","lineStart":3137,"lineEnd":3138,"colStart":7,"colEnd":75},"within":["Boolean"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}}, {"eqIndex":106,"section":"initial-lambda0","tag":"assign","defines":["spring.c"],"uses":[],"equation":["10000.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2694,"lineEnd":2695,"colStart":7,"colEnd":26},"within":["Real"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}}, {"eqIndex":107,"section":"initial-lambda0","tag":"assign","defines":["spring.d"],"uses":[],"equation":["100.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2696,"lineEnd":2697,"colStart":7,"colEnd":27},"within":["Real"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}}, {"eqIndex":108,"section":"initial-lambda0","tag":"assign","defines":["spring.phi_rel0"],"uses":[],"equation":["0.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2698,"lineEnd":2698,"colStart":7,"colEnd":63},"within":["Real"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}}, {"eqIndex":109,"section":"initial-lambda0","tag":"assign","defines":["inertia2.J"],"uses":[],"equation":["2.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2471,"lineEnd":2471,"colStart":7,"colEnd":65},"within":["Real"],"instance":"inertia2","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.Inertia$inertia2"]}}, {"eqIndex":110,"section":"initial-lambda0","tag":"assign","defines":["inertia2.stateSelect"],"uses":[],"equation":["StateSelect.default"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2472,"lineEnd":2474,"colStart":7,"colEnd":61},"within":["StateSelect"],"instance":"inertia2","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.Inertia$inertia2"]}}, {"eqIndex":111,"section":"initial-lambda0","tag":"assign","defines":["kinematicPTP.nout"],"uses":[],"equation":["1"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Interfaces.mo","lineStart":313,"lineEnd":313,"colStart":5,"colEnd":58},"within":["Integer"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"]}}, {"eqIndex":112,"section":"initial-lambda0","tag":"assign","defines":["kinematicPTP.startTime"],"uses":[],"equation":["0.5"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1458,"lineEnd":1458,"colStart":5,"colEnd":79},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"]}}, {"eqIndex":113,"section":"initial-lambda0","tag":"assign","defines":["kinematicPTP.p_deltaq[1]"],"uses":["kinematicPTP.deltaq[1]"],"equation":["kinematicPTP.deltaq[1]"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1463,"lineEnd":1464,"colStart":5,"colEnd":31},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"]}}, {"eqIndex":114,"section":"initial-lambda0","tag":"assign","defines":["kinematicPTP.deltaq[1]"],"uses":["driveAngle"],"equation":["driveAngle"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1452,"lineEnd":1453,"colStart":5,"colEnd":106},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"]}}, {"eqIndex":115,"section":"initial-lambda0","tag":"assign","defines":["driveAngle"],"uses":[],"equation":["1.570796326794897"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/package.mo","lineStart":17,"lineEnd":18,"colStart":5,"colEnd":35},"within":["Real"],"typeLst":["Modelica.Blocks.Examples.PID_Controller"]}}, {"eqIndex":116,"section":"initial-lambda0","tag":"assign","defines":["kinematicPTP.p_qd_max[1]"],"uses":["kinematicPTP.qd_max[1]"],"equation":["kinematicPTP.qd_max[1]"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1465,"lineEnd":1466,"colStart":5,"colEnd":31},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"]}}, {"eqIndex":117,"section":"initial-lambda0","tag":"assign","defines":["kinematicPTP.qd_max[1]"],"uses":[],"equation":["1.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1454,"lineEnd":1455,"colStart":5,"colEnd":34},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"]}}, {"eqIndex":118,"section":"initial-lambda0","tag":"assign","defines":["kinematicPTP.p_qdd_max[1]"],"uses":["kinematicPTP.qdd_max[1]"],"equation":["kinematicPTP.qdd_max[1]"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1467,"lineEnd":1468,"colStart":5,"colEnd":33},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"]}}, {"eqIndex":119,"section":"initial-lambda0","tag":"assign","defines":["kinematicPTP.qdd_max[1]"],"uses":[],"equation":["1.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1456,"lineEnd":1457,"colStart":5,"colEnd":38},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"]}}, {"eqIndex":120,"section":"initial-lambda0","tag":"assign","defines":["integrator.k"],"uses":[],"equation":["1.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":10,"lineEnd":10,"colStart":5,"colEnd":51},"within":["Real"],"instance":"integrator","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.Integrator$integrator"]}}, {"eqIndex":121,"section":"initial-lambda0","tag":"assign","defines":["integrator.use_reset"],"uses":[],"equation":["false"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":11,"lineEnd":12,"colStart":5,"colEnd":73},"within":["Boolean"],"instance":"integrator","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.Integrator$integrator"]}}, {"eqIndex":122,"section":"initial-lambda0","tag":"assign","defines":["integrator.use_set"],"uses":[],"equation":["false"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":13,"lineEnd":14,"colStart":5,"colEnd":99},"within":["Boolean"],"instance":"integrator","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.Integrator$integrator"]}}, {"eqIndex":123,"section":"initial-lambda0","tag":"assign","defines":["integrator.initType"],"uses":[],"equation":["Modelica.Blocks.Types.Init.InitialState"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":19,"lineEnd":21,"colStart":5,"colEnd":40},"within":["Modelica.Blocks.Types.Init"],"instance":"integrator","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.Integrator$integrator"]}}, {"eqIndex":124,"section":"initial-lambda0","tag":"assign","defines":["integrator.y_start"],"uses":[],"equation":["0.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":22,"lineEnd":23,"colStart":5,"colEnd":50},"within":["Real"],"instance":"integrator","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.Integrator$integrator"]}}, {"eqIndex":125,"section":"initial-lambda0","tag":"assign","defines":["loadTorque.useSupport"],"uses":[],"equation":["false"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7417,"lineEnd":7422,"colStart":7,"colEnd":32},"within":["Boolean"],"instance":"loadTorque","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Sources.ConstantTorque$loadTorque"]}}, {"eqIndex":126,"section":"initial-lambda0","tag":"assign","defines":["loadTorque.tau"],"uses":["loadTorque.tau_constant"],"equation":["loadTorque.tau_constant"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":6685,"lineEnd":6686,"colStart":7,"colEnd":63},"within":["Real"],"instance":"loadTorque","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Sources.ConstantTorque$loadTorque"],"operations":[{"op":"info","display":"solved","data":["loadTorque.tau = loadTorque.tau_constant"]},{"op":"before-after","display":"flattening","data":["tau = tau_constant;","loadTorque.tau = loadTorque.tau_constant;"]}]}}, {"eqIndex":127,"section":"initial-lambda0","tag":"assign","defines":["loadTorque.flange.tau"],"uses":["loadTorque.tau_constant"],"equation":["-loadTorque.tau_constant"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":6864,"lineEnd":6864,"colStart":7,"colEnd":52},"within":["Real"],"instance":"loadTorqueflange","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Sources.ConstantTorque$loadTorque","Modelica.Mechanics.Rotational.Interfaces.Flange_b"],"operations":[{"op":"info","display":"solved","data":["loadTorque.flange.tau = -loadTorque.tau_constant"]},{"op":"chain","display":"substitution","data":["loadTorque.flange.tau","loadTorque.tau"]},{"op":"before-after","display":"flattening","data":["tau = -flange.tau;","loadTorque.tau = -loadTorque.flange.tau;"]}]}}, {"eqIndex":128,"section":"initial-lambda0","tag":"assign","defines":["inertia2.flange_b.tau"],"uses":["loadTorque.tau_constant"],"equation":["loadTorque.tau_constant"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":6864,"lineEnd":6864,"colStart":7,"colEnd":52},"within":["Real"],"instance":"inertia2flange_b","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.Inertia$inertia2","Modelica.Mechanics.Rotational.Interfaces.Flange_b"],"operations":[{"op":"info","display":"solved","data":["inertia2.flange_b.tau = loadTorque.tau_constant"]},{"op":"chain","display":"substitution","data":["inertia2.flange_b.tau","-loadTorque.flange.tau"]}]}}, {"eqIndex":129,"section":"initial-lambda0","tag":"assign","defines":["loadTorque.tau_constant"],"uses":[],"equation":["10.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":6681,"lineEnd":6682,"colStart":7,"colEnd":100},"within":["Real"],"instance":"loadTorque","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Sources.ConstantTorque$loadTorque"]}}, {"eqIndex":130,"section":"initial-lambda0","tag":"assign","defines":["PI.FFzero.y"],"uses":["PI.FFzero.k"],"equation":["PI.FFzero.k"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Interfaces.mo","lineStart":300,"lineEnd":301,"colStart":5,"colEnd":56},"within":["Real"],"instance":"PIFFzero","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Sources.Constant$PI$FFzero"],"operations":[{"op":"info","display":"solved","data":["PI.FFzero.y = PI.FFzero.k"]},{"op":"before-after","display":"flattening","data":["y = k;","PI.FFzero.y = PI.FFzero.k;"]}]}}, {"eqIndex":131,"section":"initial-lambda0","tag":"assign","defines":["PI.addFF.u2"],"uses":["PI.FFzero.k"],"equation":["PI.FFzero.k"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Interfaces.mo","lineStart":344,"lineEnd":345,"colStart":5,"colEnd":59},"within":["Real"],"instance":"PIaddFF","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add$PI$addFF"],"operations":[{"op":"info","display":"solved","data":["PI.addFF.u2 = PI.FFzero.k"]},{"op":"chain","display":"substitution","data":["PI.addFF.u2","PI.FFzero.y"]}]}}, {"eqIndex":132,"section":"initial-lambda0","tag":"assign","defines":["PI.FFzero.k"],"uses":[],"equation":["0.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":216,"lineEnd":217,"colStart":5,"colEnd":102},"within":["Real"],"instance":"PIFFzero","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Sources.Constant$PI$FFzero"]}}, {"eqIndex":133,"section":"initial-lambda0","tag":"assign","defines":["PI.Dzero.y"],"uses":["PI.Dzero.k"],"equation":["PI.Dzero.k"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Interfaces.mo","lineStart":300,"lineEnd":301,"colStart":5,"colEnd":56},"within":["Real"],"instance":"PIDzero","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Sources.Constant$PI$Dzero"],"operations":[{"op":"info","display":"solved","data":["PI.Dzero.y = PI.Dzero.k"]},{"op":"before-after","display":"flattening","data":["y = k;","PI.Dzero.y = PI.Dzero.k;"]}]}}, {"eqIndex":134,"section":"initial-lambda0","tag":"assign","defines":["PI.addPID.u2"],"uses":["PI.Dzero.k"],"equation":["PI.Dzero.k"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":973,"lineEnd":974,"colStart":5,"colEnd":66},"within":["Real"],"instance":"PIaddPID","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Math.Add3"],"operations":[{"op":"info","display":"solved","data":["PI.addPID.u2 = PI.Dzero.k"]},{"op":"chain","display":"substitution","data":["PI.addPID.u2","PI.Dzero.y"]}]}}, {"eqIndex":135,"section":"initial-lambda0","tag":"assign","defines":["PI.Dzero.k"],"uses":[],"equation":["0.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":216,"lineEnd":217,"colStart":5,"colEnd":102},"within":["Real"],"instance":"PIDzero","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Sources.Constant$PI$Dzero"]}}, {"eqIndex":136,"tag":"alias","equation":[1],"section":"initial-lambda0"}, {"eqIndex":137,"tag":"alias","equation":[2],"section":"initial-lambda0"}, {"eqIndex":138,"tag":"alias","equation":[3],"section":"initial-lambda0"}, {"eqIndex":139,"tag":"alias","equation":[4],"section":"initial-lambda0"}, {"eqIndex":140,"tag":"alias","equation":[5],"section":"initial-lambda0"}, {"eqIndex":141,"tag":"alias","equation":[6],"section":"initial-lambda0"}, {"eqIndex":142,"tag":"alias","equation":[7],"section":"initial-lambda0"}, {"eqIndex":143,"tag":"alias","equation":[8],"section":"initial-lambda0"}, {"eqIndex":144,"tag":"alias","equation":[9],"section":"initial-lambda0"}, {"eqIndex":145,"tag":"alias","equation":[10],"section":"initial-lambda0"}, {"eqIndex":146,"tag":"alias","equation":[11],"section":"initial-lambda0"}, {"eqIndex":147,"tag":"alias","equation":[187],"section":"initial-lambda0"}, {"eqIndex":148,"tag":"alias","equation":[188],"section":"initial-lambda0"}, {"eqIndex":149,"tag":"alias","equation":[189],"section":"initial-lambda0"}, {"eqIndex":150,"tag":"alias","equation":[198],"section":"initial-lambda0"}, {"eqIndex":151,"tag":"alias","equation":[199],"section":"initial-lambda0"}, {"eqIndex":152,"tag":"alias","equation":[200],"section":"initial-lambda0"}, {"eqIndex":153,"tag":"alias","equation":[18],"section":"initial-lambda0"}, {"eqIndex":154,"tag":"alias","equation":[19],"section":"initial-lambda0"}, {"eqIndex":155,"tag":"alias","equation":[20],"section":"initial-lambda0"}, {"eqIndex":156,"tag":"alias","equation":[21],"section":"initial-lambda0"}, {"eqIndex":157,"tag":"alias","equation":[212],"section":"initial-lambda0"}, {"eqIndex":158,"tag":"alias","equation":[23],"section":"initial-lambda0"}, {"eqIndex":159,"tag":"alias","equation":[197],"section":"initial-lambda0"}, {"eqIndex":160,"tag":"alias","equation":[192],"section":"initial-lambda0"}, {"eqIndex":161,"tag":"alias","equation":[193],"section":"initial-lambda0"}, {"eqIndex":162,"tag":"alias","equation":[27],"section":"initial-lambda0"}, {"eqIndex":163,"tag":"alias","equation":[28],"section":"initial-lambda0"}, {"eqIndex":164,"tag":"alias","equation":[29],"section":"initial-lambda0"}, {"eqIndex":165,"tag":"alias","equation":[30],"section":"initial-lambda0"}, {"eqIndex":166,"tag":"alias","equation":[31],"section":"initial-lambda0"}, {"eqIndex":167,"tag":"alias","equation":[32],"section":"initial-lambda0"}, {"eqIndex":168,"tag":"alias","equation":[218],"section":"initial-lambda0"}, {"eqIndex":169,"tag":"alias","equation":[34],"section":"initial-lambda0"}, {"eqIndex":170,"section":"initial-lambda0","tag":"assign","defines":["PI.addFF.y"],"uses":["PI.y"],"equation":["PI.y"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Nonlinear.mo","lineStart":39,"lineEnd":40,"colStart":13,"colEnd":52},"within":["Modelica.Blocks.Nonlinear.Limiter$PI$limiter"],"instance":"PIlimiter","operations":[{"op":"info","display":"solved","data":["PI.addFF.y = PI.y"]},{"op":"info","display":"solved","data":["PI.addFF.y = PI.y"]},{"op":"chain","display":"substitution","data":["homotopy(smooth(0, if PI.limiter.u > PI.limiter.uMax then PI.limiter.uMax else if PI.limiter.u < PI.limiter.uMin then PI.limiter.uMin else PI.limiter.u), PI.limiter.simplifiedExpr)","homotopy(smooth(0, if PI.addFF.y > PI.limiter.uMax then PI.limiter.uMax else if PI.addFF.y < PI.limiter.uMin then PI.limiter.uMin else PI.addFF.y), PI.addFF.y)"]},{"op":"chain","display":"substitution","data":["PI.limiter.y","PI.y"]},{"op":"before-after","display":"flattening","data":["y = homotopy(actual = smooth(0, if u > uMax then uMax else if u < uMin then uMin else u), simplified = simplifiedExpr);","PI.limiter.y = homotopy(smooth(0, if PI.limiter.u > PI.limiter.uMax then PI.limiter.uMax else if PI.limiter.u < PI.limiter.uMin then PI.limiter.uMin else PI.limiter.u), PI.limiter.simplifiedExpr);"]}]}}, {"eqIndex":171,"tag":"alias","equation":[213],"section":"initial-lambda0"}, {"eqIndex":172,"tag":"alias","equation":[214],"section":"initial-lambda0"}, {"eqIndex":173,"tag":"alias","equation":[39],"section":"initial-lambda0"}, {"eqIndex":174,"tag":"alias","equation":[40],"section":"initial-lambda0"}, {"eqIndex":175,"tag":"alias","equation":[196],"section":"initial-lambda0"}, {"eqIndex":176,"tag":"alias","equation":[42],"section":"initial-lambda0"}, {"eqIndex":177,"tag":"alias","equation":[43],"section":"initial-lambda0"}, {"eqIndex":178,"tag":"alias","equation":[44],"section":"initial-lambda0"}, {"eqIndex":179,"tag":"alias","equation":[45],"section":"initial-lambda0"}, {"eqIndex":180,"tag":"alias","equation":[46],"section":"initial-lambda0"}, {"eqIndex":181,"tag":"alias","equation":[190],"section":"initial-lambda0"}, {"eqIndex":182,"tag":"alias","equation":[202],"section":"initial-lambda0"}, {"eqIndex":183,"tag":"alias","equation":[203],"section":"initial-lambda0"}, {"eqIndex":184,"tag":"alias","equation":[204],"section":"initial-lambda0"}, {"eqIndex":185,"tag":"alias","equation":[51],"section":"initial-lambda0"}, {"eqIndex":186,"tag":"alias","equation":[217],"section":"initial-lambda0"}, {"eqIndex":187,"section":"regular","tag":"assign","defines":["kinematicPTP.noWphase"],"uses":["kinematicPTP.Ta1","kinematicPTP.Ta2"],"equation":["kinematicPTP.Ta2 >= kinematicPTP.Ta1"],"source":{"info":{"file":"","lineStart":0,"lineEnd":0,"colStart":0,"colEnd":0},"operations":[{"op":"info","display":"solved","data":["kinematicPTP.noWphase = kinematicPTP.Ta2 >= kinematicPTP.Ta1"]},{"op":"info","display":"solved","data":["kinematicPTP.noWphase = kinematicPTP.Ta2 >= kinematicPTP.Ta1"]}]}}, {"eqIndex":188,"section":"regular","tag":"assign","defines":["kinematicPTP.Tv"],"uses":["kinematicPTP.sd_max","kinematicPTP.Ta1","kinematicPTP.noWphase"],"equation":["if kinematicPTP.noWphase then kinematicPTP.Ta1 else 1.0 / kinematicPTP.sd_max"],"source":{"info":{"file":"","lineStart":0,"lineEnd":0,"colStart":0,"colEnd":0},"operations":[{"op":"info","display":"solved","data":["kinematicPTP.Tv = if kinematicPTP.noWphase then kinematicPTP.Ta1 else 1.0 / kinematicPTP.sd_max"]},{"op":"info","display":"solved","data":["kinematicPTP.Tv = if kinematicPTP.noWphase then kinematicPTP.Ta1 else 1.0 / kinematicPTP.sd_max"]}]}}, {"eqIndex":189,"section":"regular","tag":"assign","defines":["kinematicPTP.Te"],"uses":["kinematicPTP.Ta2","kinematicPTP.Tv","kinematicPTP.Ta1","kinematicPTP.noWphase"],"equation":["if kinematicPTP.noWphase then 2.0 * kinematicPTP.Ta1 else kinematicPTP.Tv + kinematicPTP.Ta2"],"source":{"info":{"file":"","lineStart":0,"lineEnd":0,"colStart":0,"colEnd":0},"operations":[{"op":"info","display":"solved","data":["kinematicPTP.Te = if kinematicPTP.noWphase then 2.0 * kinematicPTP.Ta1 else kinematicPTP.Tv + kinematicPTP.Ta2"]},{"op":"info","display":"solved","data":["kinematicPTP.Te = if kinematicPTP.noWphase then 2.0 * kinematicPTP.Ta1 else kinematicPTP.Tv + kinematicPTP.Ta2"]}]}}, {"eqIndex":190,"section":"regular","tag":"assign","defines":["der(loadTorque.phi)"],"uses":["inertia2.w"],"equation":["inertia2.w"],"source":{"info":{"file":"","lineStart":0,"lineEnd":0,"colStart":0,"colEnd":0},"operations":[{"op":"info","display":"solved","data":["der(loadTorque.phi) = inertia2.w"]},{"op":"info","display":"solved","data":["der(loadTorque.phi) = inertia2.w"]}]}}, {"eqIndex":191,"section":"regular","tag":"assign","defines":["spring.tau_c"],"uses":["spring.phi_rel0","spring.phi_rel","spring.c"],"equation":["spring.c * (spring.phi_rel - spring.phi_rel0)"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2707,"lineEnd":2707,"colStart":7,"colEnd":37},"within":["Modelica.Mechanics.Rotational.Components.SpringDamper$spring"],"instance":"spring","operations":[{"op":"info","display":"solved","data":["spring.tau_c = spring.c * (spring.phi_rel - spring.phi_rel0)"]},{"op":"info","display":"solved","data":["spring.tau_c = spring.c * (spring.phi_rel - spring.phi_rel0)"]},{"op":"before-after","display":"flattening","data":["tau_c = c * (phi_rel - phi_rel0);","spring.tau_c = spring.c * (spring.phi_rel - spring.phi_rel0);"]}]}}, {"eqIndex":192,"section":"regular","tag":"assign","defines":["spring.tau_d"],"uses":["spring.w_rel","spring.d"],"equation":["spring.d * spring.w_rel"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2708,"lineEnd":2708,"colStart":7,"colEnd":22},"within":["Modelica.Mechanics.Rotational.Components.SpringDamper$spring"],"instance":"spring","operations":[{"op":"info","display":"solved","data":["spring.tau_d = spring.d * spring.w_rel"]},{"op":"info","display":"solved","data":["spring.tau_d = spring.d * spring.w_rel"]},{"op":"before-after","display":"flattening","data":["tau_d = d * w_rel;","spring.tau_d = spring.d * spring.w_rel;"]}]}}, {"eqIndex":193,"section":"regular","tag":"assign","defines":["spring.lossPower"],"uses":["spring.w_rel","spring.tau_d"],"equation":["spring.tau_d * spring.w_rel"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2710,"lineEnd":2710,"colStart":7,"colEnd":30},"within":["Modelica.Mechanics.Rotational.Components.SpringDamper$spring"],"instance":"spring","operations":[{"op":"info","display":"solved","data":["spring.lossPower = spring.tau_d * spring.w_rel"]},{"op":"info","display":"solved","data":["spring.lossPower = spring.tau_d * spring.w_rel"]},{"op":"before-after","display":"flattening","data":["lossPower = tau_d * w_rel;","spring.lossPower = spring.tau_d * spring.w_rel;"]}]}}, {"eqIndex":194,"section":"regular","tag":"assign","defines":["spring.tau"],"uses":["spring.tau_d","spring.tau_c"],"equation":["spring.tau_c + spring.tau_d"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2709,"lineEnd":2709,"colStart":7,"colEnd":26},"within":["Modelica.Mechanics.Rotational.Components.SpringDamper$spring"],"instance":"spring","operations":[{"op":"info","display":"solved","data":["spring.tau = spring.tau_c + spring.tau_d"]},{"op":"info","display":"solved","data":["spring.tau = spring.tau_c + spring.tau_d"]},{"op":"before-after","display":"flattening","data":["tau = tau_c + tau_d;","spring.tau = spring.tau_c + spring.tau_d;"]}]}}, {"eqIndex":195,"section":"regular","tag":"assign","defines":["inertia2.a"],"uses":["inertia2.J","spring.tau","loadTorque.tau_constant"],"equation":["(loadTorque.tau_constant - spring.tau) / inertia2.J"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2490,"lineEnd":2490,"colStart":7,"colEnd":40},"within":["Modelica.Mechanics.Rotational.Components.Inertia$inertia2"],"instance":"inertia2","operations":[{"op":"info","display":"solved","data":["inertia2.a = (loadTorque.tau_constant - spring.tau) / inertia2.J"]},{"op":"info","display":"solved","data":["inertia2.a = (loadTorque.tau_constant - spring.tau) / inertia2.J"]},{"op":"before-after","display":"simplify","data":["inertia2.J * inertia2.a = (-spring.tau) + loadTorque.tau_constant","inertia2.J * inertia2.a = loadTorque.tau_constant - spring.tau"]},{"op":"chain","display":"substitution","data":["inertia2.flange_a.tau + inertia2.flange_b.tau","(-spring.tau) + loadTorque.tau_constant"]},{"op":"before-after","display":"flattening","data":["J * a = flange_a.tau + flange_b.tau;","inertia2.J * inertia2.a = inertia2.flange_a.tau + inertia2.flange_b.tau;"]}]}}, {"eqIndex":196,"section":"regular","tag":"assign","defines":["der(inertia2.w)"],"uses":["inertia2.a"],"equation":["inertia2.a"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2489,"lineEnd":2489,"colStart":7,"colEnd":17},"within":["Modelica.Mechanics.Rotational.Components.Inertia$inertia2"],"instance":"inertia2","operations":[{"op":"info","display":"solved","data":["der(inertia2.w) = inertia2.a"]},{"op":"info","display":"solved","data":["der(inertia2.w) = inertia2.a"]},{"op":"before-after","display":"differentiate d/dtime","data":["der(inertia2.w)","der(inertia2.w)"]},{"op":"before-after","display":"flattening","data":["a = der(w);","inertia2.a = der(inertia2.w);"]}]}}, {"eqIndex":197,"section":"regular","tag":"assign","defines":["der(spring.phi_rel)"],"uses":["spring.w_rel"],"equation":["spring.w_rel"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7309,"lineEnd":7309,"colStart":7,"colEnd":27},"within":["Modelica.Mechanics.Rotational.Components.SpringDamper$spring"],"instance":"spring","operations":[{"op":"info","display":"solved","data":["der(spring.phi_rel) = spring.w_rel"]},{"op":"info","display":"solved","data":["der(spring.phi_rel) = spring.w_rel"]},{"op":"before-after","display":"differentiate d/dtime","data":["der(spring.phi_rel)","der(spring.phi_rel)"]},{"op":"before-after","display":"flattening","data":["w_rel = der(phi_rel);","spring.w_rel = der(spring.phi_rel);"]}]}}, {"eqIndex":198,"section":"regular","tag":"assign","defines":["kinematicPTP.sdd"],"uses":["kinematicPTP.Tv","kinematicPTP.Ta2","kinematicPTP.Te","kinematicPTP.sdd_max","kinematicPTP.Ta1","kinematicPTP.noWphase","kinematicPTP.startTime","time"],"equation":["if time < kinematicPTP.startTime then 0.0 else if kinematicPTP.noWphase then if time < kinematicPTP.Ta1 + kinematicPTP.startTime then kinematicPTP.sdd_max else if time < kinematicPTP.Te + kinematicPTP.startTime then -kinematicPTP.sdd_max else 0.0 else if time < kinematicPTP.Ta2 + kinematicPTP.startTime then kinematicPTP.sdd_max else if time < kinematicPTP.Tv + kinematicPTP.startTime then 0.0 else if time < kinematicPTP.Te + kinematicPTP.startTime then -kinematicPTP.sdd_max else 0.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1495,"lineEnd":1498,"colStart":5,"colEnd":80},"within":["Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"],"instance":"kinematicPTP","operations":[{"op":"info","display":"solved","data":["kinematicPTP.sdd = if time < kinematicPTP.startTime then 0.0 else if kinematicPTP.noWphase then if time < kinematicPTP.Ta1 + kinematicPTP.startTime then kinematicPTP.sdd_max else if time < kinematicPTP.Te + kinematicPTP.startTime then -kinematicPTP.sdd_max else 0.0 else if time < kinematicPTP.Ta2 + kinematicPTP.startTime then kinematicPTP.sdd_max else if time < kinematicPTP.Tv + kinematicPTP.startTime then 0.0 else if time < kinematicPTP.Te + kinematicPTP.startTime then -kinematicPTP.sdd_max else 0.0"]},{"op":"info","display":"solved","data":["kinematicPTP.sdd = if time < kinematicPTP.startTime then 0.0 else if kinematicPTP.noWphase then if time < kinematicPTP.Ta1 + kinematicPTP.startTime then kinematicPTP.sdd_max else if time < kinematicPTP.Te + kinematicPTP.startTime then -kinematicPTP.sdd_max else 0.0 else if time < kinematicPTP.Ta2 + kinematicPTP.startTime then kinematicPTP.sdd_max else if time < kinematicPTP.Tv + kinematicPTP.startTime then 0.0 else if time < kinematicPTP.Te + kinematicPTP.startTime then -kinematicPTP.sdd_max else 0.0"]},{"op":"before-after","display":"flattening","data":["sdd = if time < startTime then 0 else if noWphase then if time < Ta1 + startTime then sdd_max else if time < Te + startTime then -sdd_max else 0 else if time < Ta2 + startTime then sdd_max else if time < Tv + startTime then 0 else if time < Te + startTime then -sdd_max else 0;","kinematicPTP.sdd = if time < kinematicPTP.startTime then 0.0 else if kinematicPTP.noWphase then if time < kinematicPTP.Ta1 + kinematicPTP.startTime then kinematicPTP.sdd_max else if time < kinematicPTP.Te + kinematicPTP.startTime then -kinematicPTP.sdd_max else 0.0 else if time < kinematicPTP.Ta2 + kinematicPTP.startTime then kinematicPTP.sdd_max else if time < kinematicPTP.Tv + kinematicPTP.startTime then 0.0 else if time < kinematicPTP.Te + kinematicPTP.startTime then -kinematicPTP.sdd_max else 0.0;"]}]}}, {"eqIndex":199,"section":"regular","tag":"assign","defines":["kinematicPTP.y[1]"],"uses":["kinematicPTP.sdd","kinematicPTP.p_deltaq[1]"],"equation":["kinematicPTP.p_deltaq[1] * kinematicPTP.sdd"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1501,"lineEnd":1501,"colStart":5,"colEnd":21},"within":["Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"],"instance":"kinematicPTP","operations":[{"op":"info","display":"solved","data":["kinematicPTP.y[1] = kinematicPTP.p_deltaq[1] * kinematicPTP.sdd"]},{"op":"info","display":"solved","data":["kinematicPTP.y[1] = kinematicPTP.p_deltaq[1] * kinematicPTP.sdd"]},{"op":"before-after","display":"flattening","data":["y = p_deltaq * sdd;","kinematicPTP.y[1] = kinematicPTP.p_deltaq[1] * kinematicPTP.sdd;"]}]}}, {"eqIndex":200,"section":"regular","tag":"assign","defines":["der(integrator.y)"],"uses":["kinematicPTP.y[1]","integrator.k"],"equation":["integrator.k * kinematicPTP.y[1]"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":61,"lineEnd":61,"colStart":5,"colEnd":17},"within":["Modelica.Blocks.Continuous.Integrator$integrator"],"instance":"integrator","operations":[{"op":"info","display":"solved","data":["der(integrator.y) = integrator.k * kinematicPTP.y[1]"]},{"op":"info","display":"solved","data":["der(integrator.y) = integrator.k * kinematicPTP.y[1]"]},{"op":"chain","display":"substitution","data":["integrator.k * integrator.u","integrator.k * kinematicPTP.y[1]"]},{"op":"before-after","display":"differentiate d/dtime","data":["der(integrator.y)","der(integrator.y)"]},{"op":"before-after","display":"flattening","data":["der(y) = k * u;","der(integrator.y) = integrator.k * integrator.u;"]}]}}, {"eqIndex":201,"section":"regular","tag":"assign","defines":["inertia1.w"],"uses":["spring.w_rel","inertia2.w"],"equation":["inertia2.w - spring.w_rel"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7308,"lineEnd":7308,"colStart":7,"colEnd":44},"within":["Modelica.Mechanics.Rotational.Components.SpringDamper$spring"],"instance":"spring","operations":[{"op":"info","display":"solved","data":["inertia1.w = inertia2.w - spring.w_rel"]},{"op":"info","display":"solved","data":["inertia1.w = inertia2.w - spring.w_rel"]},{"op":"before-after","display":"differentiate d/dtime","data":["loadTorque.phi - inertia1.phi","der(loadTorque.phi) - der(inertia1.phi)"]},{"op":"before-after","display":"differentiate d/dtime","data":["spring.phi_rel","der(spring.phi_rel)"]},{"op":"chain","display":"substitution","data":["spring.flange_b.phi - spring.flange_a.phi","loadTorque.phi - inertia1.phi","inertia2.phi - inertia1.phi"]},{"op":"before-after","display":"flattening","data":["phi_rel = flange_b.phi - flange_a.phi;","spring.phi_rel = spring.flange_b.phi - spring.flange_a.phi;"]}]}}, {"eqIndex":202,"section":"regular","tag":"assign","defines":["der(inertia1.phi)"],"uses":["inertia1.w"],"equation":["inertia1.w"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2488,"lineEnd":2488,"colStart":7,"colEnd":19},"within":["Modelica.Mechanics.Rotational.Components.Inertia$inertia1"],"instance":"inertia1","operations":[{"op":"info","display":"solved","data":["der(inertia1.phi) = inertia1.w"]},{"op":"info","display":"solved","data":["der(inertia1.phi) = inertia1.w"]},{"op":"before-after","display":"differentiate d/dtime","data":["der(inertia1.phi)","der(inertia1.phi)"]},{"op":"before-after","display":"flattening","data":["w = der(phi);","inertia1.w = der(inertia1.phi);"]}]}}, {"eqIndex":203,"section":"regular","tag":"assign","defines":["PI.P.u"],"uses":["inertia1.w","PI.addP.k2","integrator.y","PI.addP.k1"],"equation":["PI.addP.k1 * integrator.y + PI.addP.k2 * inertia1.w"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":915,"lineEnd":915,"colStart":5,"colEnd":22},"within":["Modelica.Blocks.Math.Add$PI$addP"],"instance":"PIaddP","operations":[{"op":"info","display":"solved","data":["PI.P.u = PI.addP.k1 * integrator.y + PI.addP.k2 * inertia1.w"]},{"op":"info","display":"solved","data":["PI.P.u = PI.addP.k1 * integrator.y + PI.addP.k2 * inertia1.w"]},{"op":"chain","display":"substitution","data":["PI.addP.k1 * PI.addP.u1 + PI.addP.k2 * PI.addP.u2","PI.addP.k1 * integrator.y + PI.addP.k2 * inertia1.w","PI.addP.k1 * integrator.y + PI.addP.k2 * PI.u_m"]},{"op":"chain","display":"substitution","data":["PI.addP.y","PI.P.u"]},{"op":"before-after","display":"flattening","data":["y = k1 * u1 + k2 * u2;","PI.addP.y = PI.addP.k1 * PI.addP.u1 + PI.addP.k2 * PI.addP.u2;"]}]}}, {"eqIndex":204,"section":"regular","tag":"assign","defines":["PI.P.y"],"uses":["PI.P.u","PI.P.k"],"equation":["PI.P.k * PI.P.u"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":552,"lineEnd":552,"colStart":5,"colEnd":12},"within":["Modelica.Blocks.Math.Gain$PI$P"],"instance":"PIP","operations":[{"op":"info","display":"solved","data":["PI.P.y = PI.P.k * PI.P.u"]},{"op":"info","display":"solved","data":["PI.P.y = PI.P.k * PI.P.u"]},{"op":"before-after","display":"flattening","data":["y = k * u;","PI.P.y = PI.P.k * PI.P.u;"]}]}}, {"eqIndex":205,"section":"regular","tag":"assign","defines":["PI.addPID.y"],"uses":["PI.I.y","PI.addPID.k3","PI.Dzero.k","PI.addPID.k2","PI.P.y","PI.addPID.k1"],"equation":["PI.addPID.k1 * PI.P.y + PI.addPID.k2 * PI.Dzero.k + PI.addPID.k3 * PI.I.y"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":981,"lineEnd":981,"colStart":5,"colEnd":30},"within":["Modelica.Blocks.Math.Add3"],"instance":"PIaddPID","operations":[{"op":"info","display":"solved","data":["PI.addPID.y = PI.addPID.k1 * PI.P.y + PI.addPID.k2 * PI.Dzero.k + PI.addPID.k3 * PI.I.y"]},{"op":"info","display":"solved","data":["PI.addPID.y = PI.addPID.k1 * PI.P.y + PI.addPID.k2 * PI.Dzero.k + PI.addPID.k3 * PI.I.y"]},{"op":"chain","display":"substitution","data":["PI.addPID.k1 * PI.addPID.u1 + PI.addPID.k2 * PI.addPID.u2 + PI.addPID.k3 * PI.addPID.u3","PI.addPID.k1 * PI.P.y + PI.addPID.k2 * PI.Dzero.k + PI.addPID.k3 * PI.I.y"]},{"op":"before-after","display":"flattening","data":["y = k1 * u1 + k2 * u2 + k3 * u3;","PI.addPID.y = PI.addPID.k1 * PI.addPID.u1 + PI.addPID.k2 * PI.addPID.u2 + PI.addPID.k3 * PI.addPID.u3;"]}]}}, {"eqIndex":206,"section":"regular","tag":"assign","defines":["PI.addFF.u1"],"uses":["PI.addPID.y","PI.gainPID.k"],"equation":["PI.gainPID.k * PI.addPID.y"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":552,"lineEnd":552,"colStart":5,"colEnd":12},"within":["Modelica.Blocks.Math.Gain$PI$gainPID"],"instance":"PIgainPID","operations":[{"op":"info","display":"solved","data":["PI.addFF.u1 = PI.gainPID.k * PI.addPID.y"]},{"op":"info","display":"solved","data":["PI.addFF.u1 = PI.gainPID.k * PI.addPID.y"]},{"op":"chain","display":"substitution","data":["PI.gainPID.k * PI.gainPID.u","PI.gainPID.k * PI.addPID.y"]},{"op":"chain","display":"substitution","data":["PI.gainPID.y","PI.addFF.u1"]},{"op":"before-after","display":"flattening","data":["y = k * u;","PI.gainPID.y = PI.gainPID.k * PI.gainPID.u;"]}]}}, {"eqIndex":207,"section":"regular","tag":"assign","defines":["PI.addFF.y"],"uses":["PI.FFzero.k","PI.addFF.k2","PI.addFF.u1","PI.addFF.k1"],"equation":["PI.addFF.k1 * PI.addFF.u1 + PI.addFF.k2 * PI.FFzero.k"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":915,"lineEnd":915,"colStart":5,"colEnd":22},"within":["Modelica.Blocks.Math.Add$PI$addFF"],"instance":"PIaddFF","operations":[{"op":"info","display":"solved","data":["PI.addFF.y = PI.addFF.k1 * PI.addFF.u1 + PI.addFF.k2 * PI.FFzero.k"]},{"op":"info","display":"solved","data":["PI.addFF.y = PI.addFF.k1 * PI.addFF.u1 + PI.addFF.k2 * PI.FFzero.k"]},{"op":"chain","display":"substitution","data":["PI.addFF.k1 * PI.addFF.u1 + PI.addFF.k2 * PI.addFF.u2","PI.addFF.k1 * PI.addFF.u1 + PI.addFF.k2 * PI.FFzero.k"]},{"op":"before-after","display":"flattening","data":["y = k1 * u1 + k2 * u2;","PI.addFF.y = PI.addFF.k1 * PI.addFF.u1 + PI.addFF.k2 * PI.addFF.u2;"]}]}}, {"eqIndex":208,"section":"regular","tag":"assign","defines":["PI.y"],"uses":["PI.limiter.uMin","PI.limiter.uMax","PI.addFF.y"],"equation":["smooth(0, if PI.addFF.y > PI.limiter.uMax then PI.limiter.uMax else if PI.addFF.y < PI.limiter.uMin then PI.limiter.uMin else PI.addFF.y)"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Nonlinear.mo","lineStart":39,"lineEnd":40,"colStart":13,"colEnd":52},"within":["Modelica.Blocks.Nonlinear.Limiter$PI$limiter"],"instance":"PIlimiter","operations":[{"op":"info","display":"solved","data":["PI.y = smooth(0, if PI.addFF.y > PI.limiter.uMax then PI.limiter.uMax else if PI.addFF.y < PI.limiter.uMin then PI.limiter.uMin else PI.addFF.y)"]},{"op":"info","display":"solved","data":["PI.y = smooth(0, if PI.addFF.y > PI.limiter.uMax then PI.limiter.uMax else if PI.addFF.y < PI.limiter.uMin then PI.limiter.uMin else PI.addFF.y)"]},{"op":"chain","display":"substitution","data":["homotopy(smooth(0, if PI.limiter.u > PI.limiter.uMax then PI.limiter.uMax else if PI.limiter.u < PI.limiter.uMin then PI.limiter.uMin else PI.limiter.u), PI.limiter.simplifiedExpr)","homotopy(smooth(0, if PI.addFF.y > PI.limiter.uMax then PI.limiter.uMax else if PI.addFF.y < PI.limiter.uMin then PI.limiter.uMin else PI.addFF.y), PI.addFF.y)"]},{"op":"chain","display":"substitution","data":["PI.limiter.y","PI.y"]},{"op":"before-after","display":"flattening","data":["y = homotopy(actual = smooth(0, if u > uMax then uMax else if u < uMin then uMin else u), simplified = simplifiedExpr);","PI.limiter.y = homotopy(smooth(0, if PI.limiter.u > PI.limiter.uMax then PI.limiter.uMax else if PI.limiter.u < PI.limiter.uMin then PI.limiter.uMin else PI.limiter.u), PI.limiter.simplifiedExpr);"]}]}}, {"eqIndex":209,"section":"regular","tag":"assign","defines":["inertia1.a"],"uses":["inertia1.J","spring.tau","PI.y"],"equation":["(PI.y + spring.tau) / inertia1.J"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2490,"lineEnd":2490,"colStart":7,"colEnd":40},"within":["Modelica.Mechanics.Rotational.Components.Inertia$inertia1"],"instance":"inertia1","operations":[{"op":"info","display":"solved","data":["inertia1.a = (PI.y + spring.tau) / inertia1.J"]},{"op":"info","display":"solved","data":["inertia1.a = (PI.y + spring.tau) / inertia1.J"]},{"op":"chain","display":"substitution","data":["inertia1.flange_a.tau + inertia1.flange_b.tau","PI.y + spring.tau","PI.y + inertia1.flange_b.tau"]},{"op":"before-after","display":"flattening","data":["J * a = flange_a.tau + flange_b.tau;","inertia1.J * inertia1.a = inertia1.flange_a.tau + inertia1.flange_b.tau;"]}]}}, {"eqIndex":210,"section":"regular","tag":"assign","defines":["spring.a_rel"],"uses":["inertia1.a","inertia2.a"],"equation":["inertia2.a - inertia1.a"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7308,"lineEnd":7308,"colStart":7,"colEnd":44},"within":["Modelica.Mechanics.Rotational.Components.SpringDamper$spring"],"instance":"spring","operations":[{"op":"info","display":"solved","data":["spring.a_rel = inertia2.a - inertia1.a"]},{"op":"info","display":"solved","data":["spring.a_rel = inertia2.a - inertia1.a"]},{"op":"before-after","display":"differentiate d/dtime","data":["inertia2.w - inertia1.w","der(inertia2.w) - der(inertia1.w)"]},{"op":"before-after","display":"differentiate d/dtime","data":["spring.w_rel","der(spring.w_rel)"]},{"op":"before-after","display":"differentiate d/dtime","data":["loadTorque.phi - inertia1.phi","der(loadTorque.phi) - der(inertia1.phi)"]},{"op":"before-after","display":"differentiate d/dtime","data":["spring.phi_rel","der(spring.phi_rel)"]},{"op":"chain","display":"substitution","data":["spring.flange_b.phi - spring.flange_a.phi","loadTorque.phi - inertia1.phi","inertia2.phi - inertia1.phi"]},{"op":"before-after","display":"flattening","data":["phi_rel = flange_b.phi - flange_a.phi;","spring.phi_rel = spring.flange_b.phi - spring.flange_a.phi;"]}]}}, {"eqIndex":211,"section":"regular","tag":"assign","defines":["der(spring.w_rel)"],"uses":["spring.a_rel"],"equation":["spring.a_rel"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7310,"lineEnd":7310,"colStart":7,"colEnd":25},"within":["Modelica.Mechanics.Rotational.Components.SpringDamper$spring"],"instance":"spring","operations":[{"op":"info","display":"solved","data":["der(spring.w_rel) = spring.a_rel"]},{"op":"info","display":"solved","data":["der(spring.w_rel) = spring.a_rel"]},{"op":"before-after","display":"differentiate d/dtime","data":["der(spring.w_rel)","der(spring.w_rel)"]},{"op":"before-after","display":"flattening","data":["a_rel = der(w_rel);","spring.a_rel = der(spring.w_rel);"]}]}}, {"eqIndex":212,"section":"regular","tag":"assign","defines":["der(inertia1.w)"],"uses":["inertia1.a"],"equation":["inertia1.a"],"source":{"info":{"file":"","lineStart":0,"lineEnd":0,"colStart":0,"colEnd":0},"operations":[{"op":"info","display":"solved","data":["der(inertia1.w) = inertia1.a"]},{"op":"info","display":"solved","data":["der(inertia1.w) = inertia1.a"]}]}}, {"eqIndex":213,"section":"regular","tag":"assign","defines":["PI.addSat.y"],"uses":["PI.addFF.y","PI.addSat.k2","PI.y","PI.addSat.k1"],"equation":["PI.addSat.k1 * PI.y + PI.addSat.k2 * PI.addFF.y"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":915,"lineEnd":915,"colStart":5,"colEnd":22},"within":["Modelica.Blocks.Math.Add$PI$addSat"],"instance":"PIaddSat","operations":[{"op":"info","display":"solved","data":["PI.addSat.y = PI.addSat.k1 * PI.y + PI.addSat.k2 * PI.addFF.y"]},{"op":"info","display":"solved","data":["PI.addSat.y = PI.addSat.k1 * PI.y + PI.addSat.k2 * PI.addFF.y"]},{"op":"chain","display":"substitution","data":["PI.addSat.k1 * PI.addSat.u1 + PI.addSat.k2 * PI.addSat.u2","PI.addSat.k1 * PI.y + PI.addSat.k2 * PI.addFF.y"]},{"op":"before-after","display":"flattening","data":["y = k1 * u1 + k2 * u2;","PI.addSat.y = PI.addSat.k1 * PI.addSat.u1 + PI.addSat.k2 * PI.addSat.u2;"]}]}}, {"eqIndex":214,"section":"regular","tag":"assign","defines":["PI.addI.u3"],"uses":["PI.addSat.y","PI.gainTrack.k"],"equation":["PI.gainTrack.k * PI.addSat.y"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":552,"lineEnd":552,"colStart":5,"colEnd":12},"within":["Modelica.Blocks.Math.Gain$PI$gainTrack"],"instance":"PIgainTrack","operations":[{"op":"info","display":"solved","data":["PI.addI.u3 = PI.gainTrack.k * PI.addSat.y"]},{"op":"info","display":"solved","data":["PI.addI.u3 = PI.gainTrack.k * PI.addSat.y"]},{"op":"chain","display":"substitution","data":["PI.gainTrack.k * PI.gainTrack.u","PI.gainTrack.k * PI.addSat.y"]},{"op":"chain","display":"substitution","data":["PI.gainTrack.y","PI.addI.u3"]},{"op":"before-after","display":"flattening","data":["y = k * u;","PI.gainTrack.y = PI.gainTrack.k * PI.gainTrack.u;"]}]}}, {"eqIndex":215,"section":"regular","tag":"assign","defines":["PI.I.u"],"uses":["PI.addI.u3","PI.addI.k3","inertia1.w","PI.addI.k2","integrator.y","PI.addI.k1"],"equation":["PI.addI.k1 * integrator.y + PI.addI.k2 * inertia1.w + PI.addI.k3 * PI.addI.u3"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Math.mo","lineStart":981,"lineEnd":981,"colStart":5,"colEnd":30},"within":["Modelica.Blocks.Math.Add3$PI$addI"],"instance":"PIaddI","operations":[{"op":"info","display":"solved","data":["PI.I.u = PI.addI.k1 * integrator.y + PI.addI.k2 * inertia1.w + PI.addI.k3 * PI.addI.u3"]},{"op":"info","display":"solved","data":["PI.I.u = PI.addI.k1 * integrator.y + PI.addI.k2 * inertia1.w + PI.addI.k3 * PI.addI.u3"]},{"op":"chain","display":"substitution","data":["PI.addI.k1 * PI.addI.u1 + PI.addI.k2 * PI.addI.u2 + PI.addI.k3 * PI.addI.u3","PI.addI.k1 * integrator.y + PI.addI.k2 * inertia1.w + PI.addI.k3 * PI.addI.u3","PI.addI.k1 * integrator.y + PI.addI.k2 * PI.u_m + PI.addI.k3 * PI.addI.u3"]},{"op":"chain","display":"substitution","data":["PI.addI.y","PI.I.u"]},{"op":"before-after","display":"flattening","data":["y = k1 * u1 + k2 * u2 + k3 * u3;","PI.addI.y = PI.addI.k1 * PI.addI.u1 + PI.addI.k2 * PI.addI.u2 + PI.addI.k3 * PI.addI.u3;"]}]}}, {"eqIndex":216,"section":"regular","tag":"assign","defines":["der(PI.I.y)"],"uses":["PI.I.u","PI.I.k"],"equation":["PI.I.k * PI.I.u"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":61,"lineEnd":61,"colStart":5,"colEnd":17},"within":["Modelica.Blocks.Continuous.Integrator$PI$I"],"instance":"PII","operations":[{"op":"info","display":"solved","data":["der(PI.I.y) = PI.I.k * PI.I.u"]},{"op":"info","display":"solved","data":["der(PI.I.y) = PI.I.k * PI.I.u"]},{"op":"before-after","display":"differentiate d/dtime","data":["der(PI.I.y)","der(PI.I.y)"]},{"op":"before-after","display":"flattening","data":["der(y) = k * u;","der(PI.I.y) = PI.I.k * PI.I.u;"]}]}}, {"eqIndex":217,"section":"regular","tag":"assign","defines":["PI.controlError"],"uses":["inertia1.w","integrator.y"],"equation":["integrator.y - inertia1.w"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":887,"lineEnd":888,"colStart":5,"colEnd":48},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"],"operations":[{"op":"info","display":"solved","data":["PI.controlError = integrator.y - inertia1.w"]},{"op":"info","display":"solved","data":["PI.controlError = integrator.y - inertia1.w"]},{"op":"chain","display":"substitution","data":["PI.u_s - PI.u_m","integrator.y - inertia1.w","integrator.y - PI.u_m"]}]}}, {"eqIndex":218,"section":"regular","tag":"assign","defines":["loadTorque.phi"],"uses":["spring.phi_rel","inertia1.phi"],"equation":["inertia1.phi + spring.phi_rel"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7308,"lineEnd":7308,"colStart":7,"colEnd":44},"within":["Modelica.Mechanics.Rotational.Components.SpringDamper$spring"],"instance":"spring","operations":[{"op":"info","display":"solved","data":["loadTorque.phi = inertia1.phi + spring.phi_rel"]},{"op":"info","display":"solved","data":["loadTorque.phi = inertia1.phi + spring.phi_rel"]},{"op":"chain","display":"substitution","data":["spring.flange_b.phi - spring.flange_a.phi","loadTorque.phi - inertia1.phi","inertia2.phi - inertia1.phi"]},{"op":"before-after","display":"flattening","data":["phi_rel = flange_b.phi - flange_a.phi;","spring.phi_rel = spring.flange_b.phi - spring.flange_a.phi;"]}]}}, {"eqIndex":219,"section":"regular","tag":"algorithm","equation":["assert(PI.limiter.uMax >= PI.limiter.uMin, \"Limiter: Limits must be consistent. However, uMax (=\" + String(PI.limiter.uMax, 6, 0, true) + \") < uMin (=\" + String(PI.limiter.uMin, 6, 0, true) + \")\");"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Nonlinear.mo","lineStart":22,"lineEnd":23,"colStart":9,"colEnd":65},"within":["Modelica.Blocks.Nonlinear.Limiter$PI$limiter"],"instance":"PIlimiter","operations":[{"op":"info","display":"scode","data":["assert(uMax >= uMin, \"Limiter: Limits must be consistent. However, uMax (=\" + String(uMax) + \") < uMin (=\" + String(uMin) + \")\");"]}]}}, {"eqIndex":220,"section":"start","tag":"assign","defines":["$START.integrator.y"],"uses":["integrator.y_start"],"equation":["integrator.y_start"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Interfaces.mo","lineStart":329,"lineEnd":330,"colStart":5,"colEnd":56},"within":["Real"],"instance":"integrator","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.Integrator$integrator"]}}, {"eqIndex":221,"section":"start","tag":"assign","defines":["$START.PI.I.y"],"uses":["PI.I.y_start"],"equation":["PI.I.y_start"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Interfaces.mo","lineStart":329,"lineEnd":330,"colStart":5,"colEnd":56},"within":["Real"],"instance":"PII","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Continuous.Integrator$PI$I"]}}, {"eqIndex":222,"section":"nominal","tag":"assign","defines":["spring.phi_rel"],"uses":["spring.phi_nominal"],"equation":["if spring.phi_nominal >= 1e-15 then spring.phi_nominal else 1.0"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7284,"lineEnd":7288,"colStart":7,"colEnd":73},"within":["Real"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}}, {"eqIndex":223,"tag":"alias","equation":[134],"section":"parameter"}, {"eqIndex":224,"tag":"alias","equation":[133],"section":"parameter"}, {"eqIndex":225,"tag":"alias","equation":[131],"section":"parameter"}, {"eqIndex":226,"tag":"alias","equation":[130],"section":"parameter"}, {"eqIndex":227,"tag":"alias","equation":[128],"section":"parameter"}, {"eqIndex":228,"tag":"alias","equation":[127],"section":"parameter"}, {"eqIndex":229,"tag":"alias","equation":[126],"section":"parameter"}, {"eqIndex":230,"tag":"alias","equation":[125],"section":"parameter"}, {"eqIndex":231,"tag":"alias","equation":[123],"section":"parameter"}, {"eqIndex":232,"tag":"alias","equation":[122],"section":"parameter"}, {"eqIndex":233,"tag":"alias","equation":[121],"section":"parameter"}, {"eqIndex":234,"tag":"alias","equation":[118],"section":"parameter"}, {"eqIndex":235,"tag":"alias","equation":[116],"section":"parameter"}, {"eqIndex":236,"tag":"alias","equation":[114],"section":"parameter"}, {"eqIndex":237,"tag":"alias","equation":[113],"section":"parameter"}, {"eqIndex":238,"tag":"alias","equation":[111],"section":"parameter"}, {"eqIndex":239,"tag":"alias","equation":[110],"section":"parameter"}, {"eqIndex":240,"tag":"alias","equation":[105],"section":"parameter"}, {"eqIndex":241,"tag":"alias","equation":[104],"section":"parameter"}, {"eqIndex":242,"tag":"alias","equation":[102],"section":"parameter"}, {"eqIndex":243,"tag":"alias","equation":[101],"section":"parameter"}, {"eqIndex":244,"tag":"alias","equation":[97],"section":"parameter"}, {"eqIndex":245,"tag":"alias","equation":[90],"section":"parameter"}, {"eqIndex":246,"tag":"alias","equation":[89],"section":"parameter"}, {"eqIndex":247,"tag":"alias","equation":[88],"section":"parameter"}, {"eqIndex":248,"tag":"alias","equation":[87],"section":"parameter"}, {"eqIndex":249,"tag":"alias","equation":[85],"section":"parameter"}, {"eqIndex":250,"tag":"alias","equation":[83],"section":"parameter"}, {"eqIndex":251,"tag":"alias","equation":[81],"section":"parameter"}, {"eqIndex":252,"tag":"alias","equation":[80],"section":"parameter"}, {"eqIndex":253,"tag":"alias","equation":[79],"section":"parameter"}, {"eqIndex":254,"tag":"alias","equation":[78],"section":"parameter"}, {"eqIndex":255,"tag":"alias","equation":[77],"section":"parameter"}, {"eqIndex":256,"tag":"alias","equation":[75],"section":"parameter"}, {"eqIndex":257,"tag":"alias","equation":[74],"section":"parameter"}, {"eqIndex":258,"tag":"alias","equation":[73],"section":"parameter"}, {"eqIndex":259,"tag":"alias","equation":[69],"section":"parameter"}, {"eqIndex":260,"tag":"alias","equation":[65],"section":"parameter"}, {"eqIndex":261,"tag":"alias","equation":[64],"section":"parameter"}, {"eqIndex":262,"tag":"alias","equation":[63],"section":"parameter"}, {"eqIndex":263,"tag":"alias","equation":[62],"section":"parameter"}, {"eqIndex":264,"tag":"alias","equation":[59],"section":"parameter"}, {"eqIndex":265,"tag":"alias","equation":[58],"section":"parameter"}, {"eqIndex":266,"tag":"alias","equation":[54],"section":"parameter"}, {"eqIndex":267,"tag":"alias","equation":[19],"section":"parameter"}, {"eqIndex":268,"tag":"alias","equation":[18],"section":"parameter"}, {"eqIndex":269,"tag":"alias","equation":[8],"section":"parameter"}, {"eqIndex":270,"tag":"alias","equation":[6],"section":"parameter"}, {"eqIndex":271,"tag":"alias","equation":[7],"section":"parameter"}, {"eqIndex":272,"tag":"alias","equation":[9],"section":"parameter"}, {"eqIndex":273,"tag":"alias","equation":[10],"section":"parameter"}, {"eqIndex":274,"tag":"alias","equation":[11],"section":"parameter"}, {"eqIndex":275,"tag":"alias","equation":[5],"section":"parameter"}, {"eqIndex":276,"tag":"alias","equation":[4],"section":"parameter"}, {"eqIndex":277,"tag":"alias","equation":[3],"section":"parameter"}, {"eqIndex":278,"tag":"alias","equation":[2],"section":"parameter"}, {"eqIndex":279,"tag":"alias","equation":[1],"section":"parameter"}, {"eqIndex":280,"section":"parameter","tag":"algorithm","equation":["assert(integrator.initType >= Modelica.Blocks.Types.Init.NoInit and integrator.initType <= Modelica.Blocks.Types.Init.InitialOutput, \"Variable violating min/max constraint: Modelica.Blocks.Types.Init.NoInit <= integrator.initType <= Modelica.Blocks.Types.Init.InitialOutput, has value: \" + String(integrator.initType, \"d\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":19,"lineEnd":21,"colStart":5,"colEnd":40},"within":["Modelica.Blocks.Types.Init"],"instance":"integrator","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.Integrator$integrator"]}}, {"eqIndex":281,"section":"parameter","tag":"algorithm","equation":["assert(kinematicPTP.qdd_max[1] >= 1e-60, \"Variable violating min constraint: 1e-60 <= kinematicPTP.qdd_max[1], has value: \" + String(kinematicPTP.qdd_max[1], \"g\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1456,"lineEnd":1457,"colStart":5,"colEnd":38},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"]}}, {"eqIndex":282,"section":"parameter","tag":"algorithm","equation":["assert(kinematicPTP.qd_max[1] >= 1e-60, \"Variable violating min constraint: 1e-60 <= kinematicPTP.qd_max[1], has value: \" + String(kinematicPTP.qd_max[1], \"g\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Sources.mo","lineStart":1454,"lineEnd":1455,"colStart":5,"colEnd":34},"within":["Real"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"]}}, {"eqIndex":283,"section":"parameter","tag":"algorithm","equation":["assert(kinematicPTP.nout >= 1, \"Variable violating min constraint: 1 <= kinematicPTP.nout, has value: \" + String(kinematicPTP.nout, \"d\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Interfaces.mo","lineStart":313,"lineEnd":313,"colStart":5,"colEnd":58},"within":["Integer"],"instance":"kinematicPTP","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Sources.KinematicPTP$kinematicPTP"]}}, {"eqIndex":284,"section":"parameter","tag":"algorithm","equation":["assert(inertia2.stateSelect >= StateSelect.never and inertia2.stateSelect <= StateSelect.always, \"Variable violating min/max constraint: StateSelect.never <= inertia2.stateSelect <= StateSelect.always, has value: \" + String(inertia2.stateSelect, \"d\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2472,"lineEnd":2474,"colStart":7,"colEnd":61},"within":["StateSelect"],"instance":"inertia2","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.Inertia$inertia2"]}}, {"eqIndex":285,"section":"parameter","tag":"algorithm","equation":["assert(inertia2.J >= 0.0, \"Variable violating min constraint: 0.0 <= inertia2.J, has value: \" + String(inertia2.J, \"g\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2471,"lineEnd":2471,"colStart":7,"colEnd":65},"within":["Real"],"instance":"inertia2","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.Inertia$inertia2"]}}, {"eqIndex":286,"section":"parameter","tag":"algorithm","equation":["assert(spring.d >= 0.0, \"Variable violating min constraint: 0.0 <= spring.d, has value: \" + String(spring.d, \"g\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2696,"lineEnd":2697,"colStart":7,"colEnd":27},"within":["Real"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}}, {"eqIndex":287,"section":"parameter","tag":"algorithm","equation":["assert(spring.c >= 0.0, \"Variable violating min constraint: 0.0 <= spring.c, has value: \" + String(spring.c, \"g\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2694,"lineEnd":2695,"colStart":7,"colEnd":26},"within":["Real"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}}, {"eqIndex":288,"section":"parameter","tag":"algorithm","equation":["assert(spring.stateSelect >= StateSelect.never and spring.stateSelect <= StateSelect.always, \"Variable violating min/max constraint: StateSelect.never <= spring.stateSelect <= StateSelect.always, has value: \" + String(spring.stateSelect, \"d\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7303,"lineEnd":7305,"colStart":7,"colEnd":61},"within":["StateSelect"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}}, {"eqIndex":289,"section":"parameter","tag":"algorithm","equation":["assert(spring.phi_nominal >= 0.0, \"Variable violating min constraint: 0.0 <= spring.phi_nominal, has value: \" + String(spring.phi_nominal, \"g\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":7299,"lineEnd":7302,"colStart":7,"colEnd":44},"within":["Real"],"instance":"spring","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.SpringDamper$spring"]}}, {"eqIndex":290,"section":"parameter","tag":"algorithm","equation":["assert(inertia1.stateSelect >= StateSelect.never and inertia1.stateSelect <= StateSelect.always, \"Variable violating min/max constraint: StateSelect.never <= inertia1.stateSelect <= StateSelect.always, has value: \" + String(inertia1.stateSelect, \"d\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2472,"lineEnd":2474,"colStart":7,"colEnd":61},"within":["StateSelect"],"instance":"inertia1","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.Inertia$inertia1"]}}, {"eqIndex":291,"section":"parameter","tag":"algorithm","equation":["assert(inertia1.J >= 0.0, \"Variable violating min constraint: 0.0 <= inertia1.J, has value: \" + String(inertia1.J, \"g\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Mechanics/Rotational.mo","lineStart":2471,"lineEnd":2471,"colStart":7,"colEnd":65},"within":["Real"],"instance":"inertia1","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Mechanics.Rotational.Components.Inertia$inertia1"]}}, {"eqIndex":292,"section":"parameter","tag":"algorithm","equation":["assert(PI.k >= 0.0, \"Variable violating min constraint: 0.0 <= PI.k, has value: \" + String(PI.k, \"g\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":891,"lineEnd":891,"colStart":5,"colEnd":63},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, {"eqIndex":293,"section":"parameter","tag":"algorithm","equation":["assert(PI.Ni >= 1e-13, \"Variable violating min constraint: 1e-13 <= PI.Ni, has value: \" + String(PI.Ni, \"g\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":907,"lineEnd":910,"colStart":5,"colEnd":94},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, {"eqIndex":294,"section":"parameter","tag":"algorithm","equation":["assert(PI.I.initType >= Modelica.Blocks.Types.Init.NoInit and PI.I.initType <= Modelica.Blocks.Types.Init.InitialOutput, \"Variable violating min/max constraint: Modelica.Blocks.Types.Init.NoInit <= PI.I.initType <= Modelica.Blocks.Types.Init.InitialOutput, has value: \" + String(PI.I.initType, \"d\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":19,"lineEnd":21,"colStart":5,"colEnd":40},"within":["Modelica.Blocks.Types.Init"],"instance":"PII","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Continuous.Integrator$PI$I"]}}, {"eqIndex":295,"section":"parameter","tag":"algorithm","equation":["assert(PI.Ti >= 1e-60, \"Variable violating min constraint: 1e-60 <= PI.Ti, has value: \" + String(PI.Ti, \"g\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":892,"lineEnd":895,"colStart":5,"colEnd":76},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, {"eqIndex":296,"section":"parameter","tag":"algorithm","equation":["assert(PI.limiter.homotopyType >= Modelica.Blocks.Types.LimiterHomotopy.NoHomotopy and PI.limiter.homotopyType <= Modelica.Blocks.Types.LimiterHomotopy.LowerLimit, \"Variable violating min/max constraint: Modelica.Blocks.Types.LimiterHomotopy.NoHomotopy <= PI.limiter.homotopyType <= Modelica.Blocks.Types.LimiterHomotopy.LowerLimit, has value: \" + String(PI.limiter.homotopyType, \"d\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Nonlinear.mo","lineStart":12,"lineEnd":13,"colStart":9,"colEnd":69},"within":["Modelica.Blocks.Types.LimiterHomotopy"],"instance":"PIlimiter","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI","Modelica.Blocks.Nonlinear.Limiter$PI$limiter"]}}, {"eqIndex":297,"section":"parameter","tag":"algorithm","equation":["assert(PI.wp >= 0.0, \"Variable violating min constraint: 0.0 <= PI.wp, has value: \" + String(PI.wp, \"g\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":902,"lineEnd":903,"colStart":5,"colEnd":55},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, {"eqIndex":298,"section":"parameter","tag":"algorithm","equation":["assert(PI.homotopyType >= Modelica.Blocks.Types.LimiterHomotopy.NoHomotopy and PI.homotopyType <= Modelica.Blocks.Types.LimiterHomotopy.LowerLimit, \"Variable violating min/max constraint: Modelica.Blocks.Types.LimiterHomotopy.NoHomotopy <= PI.homotopyType <= Modelica.Blocks.Types.LimiterHomotopy.LowerLimit, has value: \" + String(PI.homotopyType, \"d\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":935,"lineEnd":937,"colStart":5,"colEnd":65},"within":["Modelica.Blocks.Types.LimiterHomotopy"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, {"eqIndex":299,"section":"parameter","tag":"algorithm","equation":["assert(PI.initType >= Modelica.Blocks.Types.InitPID.NoInit and PI.initType <= Modelica.Blocks.Types.InitPID.DoNotUse_InitialIntegratorState, \"Variable violating min/max constraint: Modelica.Blocks.Types.InitPID.NoInit <= PI.initType <= Modelica.Blocks.Types.InitPID.DoNotUse_InitialIntegratorState, has value: \" + String(PI.initType, \"d\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":919,"lineEnd":921,"colStart":5,"colEnd":64},"within":["Modelica.Blocks.Types.InitPID"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, {"eqIndex":300,"section":"parameter","tag":"algorithm","equation":["assert(PI.Nd >= 1e-13, \"Variable violating min constraint: 1e-13 <= PI.Nd, has value: \" + String(PI.Nd, \"g\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":911,"lineEnd":914,"colStart":5,"colEnd":96},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, {"eqIndex":301,"section":"parameter","tag":"algorithm","equation":["assert(PI.wd >= 0.0, \"Variable violating min constraint: 0.0 <= PI.wd, has value: \" + String(PI.wd, \"g\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":904,"lineEnd":906,"colStart":5,"colEnd":96},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, {"eqIndex":302,"section":"parameter","tag":"algorithm","equation":["assert(PI.Td >= 0.0, \"Variable violating min constraint: 0.0 <= PI.Td, has value: \" + String(PI.Td, \"g\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":896,"lineEnd":899,"colStart":5,"colEnd":76},"within":["Real"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}}, {"eqIndex":303,"section":"parameter","tag":"algorithm","equation":["assert(PI.controllerType >= Modelica.Blocks.Types.SimpleController.P and PI.controllerType <= Modelica.Blocks.Types.SimpleController.PID, \"Variable violating min/max constraint: Modelica.Blocks.Types.SimpleController.P <= PI.controllerType <= Modelica.Blocks.Types.SimpleController.PID, has value: \" + String(PI.controllerType, \"d\"));"],"source":{"info":{"file":"/opt/local/lib/omlibrary/Modelica 3.2.3/Blocks/Continuous.mo","lineStart":889,"lineEnd":890,"colStart":5,"colEnd":76},"within":["Modelica.Blocks.Types.SimpleController"],"instance":"PI","typeLst":["Modelica.Blocks.Examples.PID_Controller","Modelica.Blocks.Continuous.LimPID$PI"]}} ], "functions":[ ] } [11] 09:49:37 Scripting Error Parsing json file /private/var/folders/s4/0j3cshj161126ygbpbzsdkmd4h24dl/T/OpenModelica_adershowitz/OMEdit/Modelica.Blocks.Examples.PID_Controller/Modelica.Blocks.Examples.PID_Controller_info.json [12] 09:49:37 Scripting Error Parsed json file /private/var/folders/s4/0j3cshj161126ygbpbzsdkmd4h24dl/T/OpenModelica_adershowitz/OMEdit/Modelica.Blocks.Examples.PID_Controller/Modelica.Blocks.Examples.PID_Controller_info.json
If the communication log, or anything else would also be useful, let me know. It does some strange to me that I can open the
comment:28 by , 5 years ago
No idea what is going on here. Both times the json file contents are same and correct but one time parser fails and the other time it works.
Does it work if you try to simulate with transformational debugger?
comment:29 by , 5 years ago
It's the same with Transformational debugger. The debugger opens, as it should. But, the plot window still shows no variables. It just shows the "MAT" icon and "(Active) Modelica.Blocks.Examples.PID_Controller" There is no tab to click to open that and see the actual variables. And, still if I right-click on that and select resimulate then it shows the expected tab and variables in the list below.
So, it seems like OMEdit is just not completing the "open."
I just checked if I had any older versions still on my machine that work correctly and found that @1.16.0~dev-20-gdb95ef6_0 opens the variables as expected and @1.16.0~dev-78-g9317df6_0 fails to. I don't have any between those to help narrow down when the change was made.
comment:30 by , 4 years ago
I have been running some simulations lately,and every time, I've been seeing the same thing as discussed above (no results show up in OM, until I resimulate), so I need to run each simulation twice.
I've not been able to test any new versions of OMEdit due to this bug:
https://trac.openmodelica.org/OpenModelica/ticket/6038
I wanted to see if there's been any progress with this?
comment:31 by , 4 years ago
I was able to upgrade and I'm now running 1.16.0~dev-582-ga906312. And, still I need to run every simulation twice to see any results. The first time, it compiles and simulates, but no results show up. If I then resimulate I can see the results.
comment:32 by , 4 years ago
Potentially another clue:
After a simulation (with it showing results or not) I right click on "re-simulate Setup" then click OK (whether I make any changes or not) it again gives me no results (and if I had results, they disappear).
And, as before, if instead I just "re-simulate" I do get results to show up.
I realize that this is a strange problem, but it is pretty critical that it is impossible to see simulation results, except by running the simulation then re-running a second time.
comment:33 by , 4 years ago
I just upgraded to 1.17.0~dev-7-gfacfb1f_0 and this bug is still present.
Perhaps there is timing information that OMEdit is not checking or the new results file at the right time? So, doing a seconds run actually shows the first results?
comment:34 by , 4 years ago
@adeas31, just do a try catch here:
https://github.com/OpenModelica/OpenModelica/blob/master/OMEdit/OMEditLIB/Plotting/VariablesWidget.cpp#L610
and if you cannot read the json just give a warning and continue and read the mat file.
comment:35 by , 4 years ago
The commit 46ede29/OpenModelica just makes sure that the result variables are shown even if OMEdit fails to parse the json file. You will still see an error message that reading the json has failed. I am still not sure why the parsing is failing.
comment:36 by , 4 years ago
I'll try it out once I can get the new version to build. At the moment I'm again seeing build errors. https://trac.openmodelica.org/OpenModelica/ticket/6136
comment:37 by , 4 years ago
I got it to build, and yes it now shows results (and also shows error messages as you expected):
[1] 12:24:36 Scripting Error Error opening the file /private/var/folders/s4/0j3cshj161126ygbpbzsdkmd4h24dl/T/OpenModelica_adershowitz/OMEdit/Modelica.Blocks.Examples.PID_Controller/Modelica.Blocks.Examples.PID_Controller_info.json. syntax error, unexpected invalid [2] 12:24:36 Scripting Notification Number is out of range: 1 json_parser - syntax error found, forcing abort, Line 1 Column 1
It's a big improvement.
comment:39 by , 4 years ago
It seems to have the basic functionality, so I'm fine with it.
I'm curious why the error shows up and what it means. But, it does't seem critical.
Thanks,
comment:40 by , 4 years ago
It means that the debugging functionality that is linked with variables browser is not available. The context menu items of the variable will be disabled.
comment:41 by , 4 years ago
@dersh, would you like to have this in the final 1.16.0 release, or are you fine with 1.17.0-dev?
comment:42 by , 4 years ago
I already ported this to 1.16 maintenance branch so it will be part of final release or next beta.
comment:43 by , 4 years ago
Does this mean that debugging can not be used at all on a Mac? If so, it seems like another important bug. But, it's not affecting me right now.
comment:44 by , 4 years ago
Resolution: | → fixed |
---|---|
Status: | reopened → closed |
I understand the specific issue of this ticket is resolved in 1.16.0.
@dersh, if you have issues with the debugger, please open another one which is specific to that.
comment:45 by , 4 years ago
Resolution: | fixed |
---|---|
Status: | closed → reopened |
No the specific issue of this ticket is not solved. Its just a workaround with a compromise of debugger. We should investigate more about this issue.
comment:48 by , 4 years ago
Milestone: | 1.17.0 → 1.18.0 |
---|
Retargeted to 1.18.0 because of 1.17.0 timed release.
comment:49 by , 4 years ago
Resolution: | → fixed |
---|---|
Status: | reopened → closed |
This should work fine now as we have updated to Qt 5 and removed the old json implementation. You can re-open the ticket if you still have issues.
The simulation executable, not OMEdit, is opening the .json file. OMEdit does open the .mat result file. Do you by any chance have some weird locale? Having "," instead of "." for decimal separator?