Filter löschen
Filter löschen

How to force a variable to a value in Simscape language?

1 Ansicht (letzte 30 Tage)
Paolo
Paolo am 14 Mär. 2017
Beantwortet: Arnav Mendiratta am 20 Mär. 2017
Hello everybody,
I'm modeling a poppet valve.
The poppet position is described as follows:
v.der == 1/m * ( A.p*A1 - B.p*A2 - k*x0 - k * x - c* x.der);
x.der == v;
I have to set a limit to the poppet position x, kind of:
if x > Xmax
x == Xmax
end
I tried with a let-in with if-else enclosed, but it says I can't pass .der to if statement.
Does anybody have any idea?
Thanks
Paolo

Antworten (1)

Arnav Mendiratta
Arnav Mendiratta am 20 Mär. 2017
As long as x.der and v.der are valid variables containing a scalar values or array, the '>' operator should work. With your code, it's hard to tell what all these variables are. This happens possibly because you are assigning a struct to x.der in this line:
x.der == v; % v is a stuct from previous line
And then, within your if-else, you are comparing a struct ('x') with a scalar value ('Xmax').
Instead of using if-else statement, a better approach is to use "assert" to test that all your variables are valid. Refer to the documentation here:

Kategorien

Mehr zu Foundation and Custom Domains finden Sie in Help Center und File Exchange

Tags

Produkte

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by